maria-developers team mailing list archive
-
maria-developers team
-
Mailing list archive
-
Message #06434
Re: Preparing MDEV-4506, Parallel replication, for 10.0.5 release
Hi!
>>>>> "Kristian" == Kristian Nielsen <knielsen@xxxxxxxxxxxxxxx> writes:
Kristian> Hi Monty,
Kristian> I was asked to prepare MDEV-4506, parallel replication, for release of 10.0.5
Kristian> on Monday.
Kristian> For this, I did merge to 10.0-base and then to 10.0. I have pushed the results
Kristian> here:
Kristian> lp:~maria-captains/maria/mdev-4506-base # for 10.0-base merge
Kristian> lp:~maria-captains/maria/mdev-4506 # for 10.0 merge
Kristian> However, I had problems with a couple of your changes, to temporary tables and
Kristian> innodb log file size. The code that you modified in 10.0-base does not seem to
Kristian> exist in 10.0 (or at least I couldn't find it easily).
Kristian> Can you take a look at this and see if you can complete the merge? The missing
Kristian> bits are just the few hunks appended at the end of this mail, so I assume it
Kristian> should be easy for someone who knows what the patches are supposed to do.
IKristian> The tree lp:~maria-captains/maria/mdev-4506 currently has a lot of test
Kristian> failures, but it looks like most of them will be fixed by completing the last
Kristian> bits of the merge.
ok.
What kind of errors ?
(I assume I will notice these when I start testing this).
I will fix mdev-4506 and push this into mdev-4506 and in 10.0 if I can
get things to run without errors.
I assume we can then push mdev-4506-base to 10.0-base.
Kristian> sql/sql_base.cc:
Kristian> <<<<<<< TREE
Kristian> if (table_list->mdl_request.type >= MDL_SHARED_WRITE &&
Kristian> thd->tx_read_only &&
Kristian> !(flags & (MYSQL_LOCK_LOG_TABLE | MYSQL_OPEN_HAS_MDL_LOCK)))
Kristian> ||||||| BASE-REVISION
Kristian> if (table_list->open_type != OT_BASE_ONLY &&
Kristian> ! (flags & MYSQL_OPEN_SKIP_TEMPORARY))
Kristian> =======
Kristian> if (table_list->open_type != OT_BASE_ONLY &&
Kristian> ! (flags & MYSQL_OPEN_SKIP_TEMPORARY) && thd->have_temporary_tables())
The reason for the merge failure is that in 5.6 they now open temporary
tables in a total manner and in a different place than before.
Fixed. (This code was now in open_temporary_table()).
Kristian> sql/slave.cc:
Kristian> <<<<<<< TREE
Kristian> static void set_thd_in_use_temporary_tables(Relay_log_info *rli)
Kristian> {
Kristian> TABLE *table;
Kristian> for (table= rli->save_temporary_tables ; table ; table= table->next)
Kristian> {
Kristian> table->in_use= rli->sql_thd;
Kristian> if (table->file != NULL)
Kristian> {
Kristian> /*
Kristian> Since we are stealing opened temporary tables from one thread to another,
Kristian> we need to let the performance schema know that,
Kristian> for aggregates per thread to work properly.
Kristian> */
Kristian> table->file->unbind_psi();
Kristian> table->file->rebind_psi();
Kristian> }
Kristian> }
Kristian> }
Kristian> ||||||| BASE-REVISION
Kristian> static void set_thd_in_use_temporary_tables(Relay_log_info *rli)
Kristian> {
Kristian> TABLE *table;
Kristian> for (table= rli->save_temporary_tables ; table ; table= table->next)
Kristian> table->in_use= rli->sql_thd;
Kristian> }
Kristian> =======
We don't need the function set_thd_in_use_for_temporary_tables()
anymore, so there was nothing to merge.
Kristian> === modified file 'storage/innobase/srv/srv0start.c'
Kristian> --- storage/innobase/srv/srv0start.c 2013-09-06 20:31:30 +0000
Kristian> +++ storage/innobase/srv/srv0start.c 2013-11-01 08:17:06 +0000
Kristian> @@ -621,7 +621,7 @@ open_or_create_log_file(
Kristian> || size_high != srv_calc_high32(srv_log_file_size)) {
Kristian> fprintf(stderr,
Kristian> - "InnoDB: Error: log file %s is"
Kristian> + "InnoDB: Warning: log file %s is"
Kristian> " of different size %lu %lu bytes\n"
Kristian> "InnoDB: than specified in the .cnf"
Kristian> " file %lu %lu bytes!\n",
Kristian> @@ -629,7 +629,8 @@ open_or_create_log_file(
Kristian> (ulong) srv_calc_high32(srv_log_file_size),
Kristian> (ulong) srv_calc_low32(srv_log_file_size));
Kristian> - return(DB_ERROR);
Kristian> + srv_log_file_size= size +
Kristian> + (((longlong) size_high) << 32);
The last patch was not needed anymore.
Will now start building and testing my changes. Will push to mdev-4506
before going to bed.
The main thing to fix was to change
sql_base.cc::find_temporary_table(THD *thd, const TABLE_LIST *tl) to
use the same find_temporary_table() function as the rest of the code.
Regards,
Monty
References