Loading sql/ha_innodb.cc +0 −130 Original line number Diff line number Diff line Loading @@ -1769,25 +1769,6 @@ innobase_report_binlog_offset_and_commit( trx->mysql_log_file_name = log_file_name; trx->mysql_log_offset = (ib_longlong)end_offset; #ifdef HAVE_REPLICATION if (thd->variables.sync_replication) { /* Let us store the binlog file name and the position, so that we know how long to wait for the binlog to the replicated to the slave in synchronous replication. */ if (trx->repl_wait_binlog_name == NULL) { trx->repl_wait_binlog_name = (char*)mem_alloc_noninline(FN_REFLEN + 100); } ut_a(strlen(log_file_name) < FN_REFLEN + 100); strcpy(trx->repl_wait_binlog_name, log_file_name); trx->repl_wait_binlog_pos = (ib_longlong)end_offset; } #endif /* HAVE_REPLICATION */ trx->flush_log_later = TRUE; innobase_commit(thd, TRUE); Loading Loading @@ -1856,117 +1837,6 @@ innobase_commit_complete( trx_commit_complete_for_mysql(trx); } #ifdef HAVE_REPLICATION if (thd->variables.sync_replication && trx->repl_wait_binlog_name && innobase_repl_state != 0) { struct timespec abstime; int cmp; int ret; /* In synchronous replication, let us wait until the MySQL replication has sent the relevant binlog segment to the replication slave. */ pthread_mutex_lock(&innobase_repl_cond_mutex); try_again: if (innobase_repl_state == 0) { pthread_mutex_unlock(&innobase_repl_cond_mutex); return(0); } cmp = strcmp(innobase_repl_file_name, trx->repl_wait_binlog_name); if (cmp > 0 || (cmp == 0 && innobase_repl_pos >= (my_off_t)trx->repl_wait_binlog_pos)) { /* We have already sent the relevant binlog to the slave: no need to wait here */ pthread_mutex_unlock(&innobase_repl_cond_mutex); /* printf("Binlog now sent\n"); */ return(0); } /* Let us update the info about the minimum binlog position of waiting threads in the innobase_repl_... variables */ if (innobase_repl_wait_file_name_inited != 0) { cmp = strcmp(trx->repl_wait_binlog_name, innobase_repl_wait_file_name); if (cmp < 0 || (cmp == 0 && (my_off_t)trx->repl_wait_binlog_pos <= innobase_repl_wait_pos)) { /* This thd has an even lower position, let us update the minimum info */ strcpy(innobase_repl_wait_file_name, trx->repl_wait_binlog_name); innobase_repl_wait_pos = trx->repl_wait_binlog_pos; } } else { strcpy(innobase_repl_wait_file_name, trx->repl_wait_binlog_name); innobase_repl_wait_pos = trx->repl_wait_binlog_pos; innobase_repl_wait_file_name_inited = 1; } set_timespec(abstime, thd->variables.sync_replication_timeout); /* Let us suspend this thread to wait on the condition; when replication has progressed far enough, we will release these waiting threads. The following call pthread_cond_timedwait also atomically unlocks innobase_repl_cond_mutex. */ innobase_repl_n_wait_threads++; /* printf("Waiting for binlog to be sent\n"); */ ret = pthread_cond_timedwait(&innobase_repl_cond, &innobase_repl_cond_mutex, &abstime); innobase_repl_n_wait_threads--; if (ret != 0) { ut_print_timestamp(stderr); sql_print_error("MySQL synchronous replication was " "not able to send the binlog to the " "slave within the timeout %lu. We " "assume that the slave has become " "inaccessible, and switch off " "synchronous replication until the " "communication to the slave works " "again. MySQL synchronous replication " "has sent binlog to the slave up to " "file %s, position %lu. This " "transaction needs it to be sent up " "to file %s, position %lu.", thd->variables.sync_replication_timeout, innobase_repl_file_name, (ulong) innobase_repl_pos, trx->repl_wait_binlog_name, (ulong) trx->repl_wait_binlog_pos); innobase_repl_state = 0; pthread_mutex_unlock(&innobase_repl_cond_mutex); return(0); } goto try_again; } #endif // HAVE_REPLICATION return(0); } Loading sql/ha_innodb.h +0 −3 Original line number Diff line number Diff line Loading @@ -316,9 +316,6 @@ int innobase_rollback_by_xid( XID *xid); /* in : X/Open XA Transaction Identification */ int innobase_repl_report_sent_binlog(THD *thd, char *log_file_name, my_off_t end_offset); /*********************************************************************** Create a consistent view for a cursor based on current transaction which is created if the corresponding MySQL thread still lacks one. Loading sql/mysqld.cc +0 −17 Original line number Diff line number Diff line Loading @@ -6160,23 +6160,6 @@ The minimum value for this variable is 4096.", {"sync-frm", OPT_SYNC_FRM, "Sync .frm to disk on create. Enabled by default.", (gptr*) &opt_sync_frm, (gptr*) &opt_sync_frm, 0, GET_BOOL, NO_ARG, 1, 0, 0, 0, 0, 0}, #ifdef HAVE_REPLICATION {"sync-replication", OPT_SYNC_REPLICATION, "Enable synchronous replication.", (gptr*) &global_system_variables.sync_replication, (gptr*) &global_system_variables.sync_replication, 0, GET_ULONG, REQUIRED_ARG, 0, 0, 1, 0, 1, 0}, {"sync-replication-slave-id", OPT_SYNC_REPLICATION_SLAVE_ID, "Synchronous replication is wished for this slave.", (gptr*) &global_system_variables.sync_replication_slave_id, (gptr*) &global_system_variables.sync_replication_slave_id, 0, GET_ULONG, REQUIRED_ARG, 0, 0, ~0L, 0, 1, 0}, {"sync-replication-timeout", OPT_SYNC_REPLICATION_TIMEOUT, "Synchronous replication timeout.", (gptr*) &global_system_variables.sync_replication_timeout, (gptr*) &global_system_variables.sync_replication_timeout, 0, GET_ULONG, REQUIRED_ARG, 10, 0, ~0L, 0, 1, 0}, #endif /* HAVE_REPLICATION */ {"table_cache", OPT_TABLE_OPEN_CACHE, "Deprecated; use --table_open_cache instead.", (gptr*) &table_cache_size, (gptr*) &table_cache_size, 0, GET_ULONG, Loading sql/set_var.cc +0 −13 Original line number Diff line number Diff line Loading @@ -436,14 +436,6 @@ sys_var_thd_storage_engine sys_storage_engine("storage_engine", &SV::table_type); #ifdef HAVE_REPLICATION sys_var_sync_binlog_period sys_sync_binlog_period("sync_binlog", &sync_binlog_period); sys_var_thd_ulong sys_sync_replication("sync_replication", &SV::sync_replication); sys_var_thd_ulong sys_sync_replication_slave_id( "sync_replication_slave_id", &SV::sync_replication_slave_id); sys_var_thd_ulong sys_sync_replication_timeout( "sync_replication_timeout", &SV::sync_replication_timeout); #endif sys_var_bool_ptr sys_sync_frm("sync_frm", &opt_sync_frm); sys_var_long_ptr sys_table_def_size("table_definition_cache", Loading Loading @@ -966,11 +958,6 @@ SHOW_VAR init_vars[]= { {sys_sync_binlog_period.name,(char*) &sys_sync_binlog_period, SHOW_SYS}, #endif {sys_sync_frm.name, (char*) &sys_sync_frm, SHOW_SYS}, #ifdef HAVE_REPLICATION {sys_sync_replication.name, (char*) &sys_sync_replication, SHOW_SYS}, {sys_sync_replication_slave_id.name, (char*) &sys_sync_replication_slave_id,SHOW_SYS}, {sys_sync_replication_timeout.name, (char*) &sys_sync_replication_timeout,SHOW_SYS}, #endif #ifdef HAVE_TZNAME {"system_time_zone", system_time_zone, SHOW_CHAR}, #endif Loading sql/sql_class.h +0 −5 Original line number Diff line number Diff line Loading @@ -241,11 +241,6 @@ struct system_variables my_bool new_mode; my_bool query_cache_wlock_invalidate; my_bool engine_condition_pushdown; #ifdef HAVE_REPLICATION ulong sync_replication; ulong sync_replication_slave_id; ulong sync_replication_timeout; #endif /* HAVE_REPLICATION */ my_bool innodb_table_locks; my_bool innodb_support_xa; my_bool ndb_force_send; Loading sql/sql_repl.cc +9 −9 File changed.Contains only whitespace changes. Show changes Loading
sql/ha_innodb.cc +0 −130 Original line number Diff line number Diff line Loading @@ -1769,25 +1769,6 @@ innobase_report_binlog_offset_and_commit( trx->mysql_log_file_name = log_file_name; trx->mysql_log_offset = (ib_longlong)end_offset; #ifdef HAVE_REPLICATION if (thd->variables.sync_replication) { /* Let us store the binlog file name and the position, so that we know how long to wait for the binlog to the replicated to the slave in synchronous replication. */ if (trx->repl_wait_binlog_name == NULL) { trx->repl_wait_binlog_name = (char*)mem_alloc_noninline(FN_REFLEN + 100); } ut_a(strlen(log_file_name) < FN_REFLEN + 100); strcpy(trx->repl_wait_binlog_name, log_file_name); trx->repl_wait_binlog_pos = (ib_longlong)end_offset; } #endif /* HAVE_REPLICATION */ trx->flush_log_later = TRUE; innobase_commit(thd, TRUE); Loading Loading @@ -1856,117 +1837,6 @@ innobase_commit_complete( trx_commit_complete_for_mysql(trx); } #ifdef HAVE_REPLICATION if (thd->variables.sync_replication && trx->repl_wait_binlog_name && innobase_repl_state != 0) { struct timespec abstime; int cmp; int ret; /* In synchronous replication, let us wait until the MySQL replication has sent the relevant binlog segment to the replication slave. */ pthread_mutex_lock(&innobase_repl_cond_mutex); try_again: if (innobase_repl_state == 0) { pthread_mutex_unlock(&innobase_repl_cond_mutex); return(0); } cmp = strcmp(innobase_repl_file_name, trx->repl_wait_binlog_name); if (cmp > 0 || (cmp == 0 && innobase_repl_pos >= (my_off_t)trx->repl_wait_binlog_pos)) { /* We have already sent the relevant binlog to the slave: no need to wait here */ pthread_mutex_unlock(&innobase_repl_cond_mutex); /* printf("Binlog now sent\n"); */ return(0); } /* Let us update the info about the minimum binlog position of waiting threads in the innobase_repl_... variables */ if (innobase_repl_wait_file_name_inited != 0) { cmp = strcmp(trx->repl_wait_binlog_name, innobase_repl_wait_file_name); if (cmp < 0 || (cmp == 0 && (my_off_t)trx->repl_wait_binlog_pos <= innobase_repl_wait_pos)) { /* This thd has an even lower position, let us update the minimum info */ strcpy(innobase_repl_wait_file_name, trx->repl_wait_binlog_name); innobase_repl_wait_pos = trx->repl_wait_binlog_pos; } } else { strcpy(innobase_repl_wait_file_name, trx->repl_wait_binlog_name); innobase_repl_wait_pos = trx->repl_wait_binlog_pos; innobase_repl_wait_file_name_inited = 1; } set_timespec(abstime, thd->variables.sync_replication_timeout); /* Let us suspend this thread to wait on the condition; when replication has progressed far enough, we will release these waiting threads. The following call pthread_cond_timedwait also atomically unlocks innobase_repl_cond_mutex. */ innobase_repl_n_wait_threads++; /* printf("Waiting for binlog to be sent\n"); */ ret = pthread_cond_timedwait(&innobase_repl_cond, &innobase_repl_cond_mutex, &abstime); innobase_repl_n_wait_threads--; if (ret != 0) { ut_print_timestamp(stderr); sql_print_error("MySQL synchronous replication was " "not able to send the binlog to the " "slave within the timeout %lu. We " "assume that the slave has become " "inaccessible, and switch off " "synchronous replication until the " "communication to the slave works " "again. MySQL synchronous replication " "has sent binlog to the slave up to " "file %s, position %lu. This " "transaction needs it to be sent up " "to file %s, position %lu.", thd->variables.sync_replication_timeout, innobase_repl_file_name, (ulong) innobase_repl_pos, trx->repl_wait_binlog_name, (ulong) trx->repl_wait_binlog_pos); innobase_repl_state = 0; pthread_mutex_unlock(&innobase_repl_cond_mutex); return(0); } goto try_again; } #endif // HAVE_REPLICATION return(0); } Loading
sql/ha_innodb.h +0 −3 Original line number Diff line number Diff line Loading @@ -316,9 +316,6 @@ int innobase_rollback_by_xid( XID *xid); /* in : X/Open XA Transaction Identification */ int innobase_repl_report_sent_binlog(THD *thd, char *log_file_name, my_off_t end_offset); /*********************************************************************** Create a consistent view for a cursor based on current transaction which is created if the corresponding MySQL thread still lacks one. Loading
sql/mysqld.cc +0 −17 Original line number Diff line number Diff line Loading @@ -6160,23 +6160,6 @@ The minimum value for this variable is 4096.", {"sync-frm", OPT_SYNC_FRM, "Sync .frm to disk on create. Enabled by default.", (gptr*) &opt_sync_frm, (gptr*) &opt_sync_frm, 0, GET_BOOL, NO_ARG, 1, 0, 0, 0, 0, 0}, #ifdef HAVE_REPLICATION {"sync-replication", OPT_SYNC_REPLICATION, "Enable synchronous replication.", (gptr*) &global_system_variables.sync_replication, (gptr*) &global_system_variables.sync_replication, 0, GET_ULONG, REQUIRED_ARG, 0, 0, 1, 0, 1, 0}, {"sync-replication-slave-id", OPT_SYNC_REPLICATION_SLAVE_ID, "Synchronous replication is wished for this slave.", (gptr*) &global_system_variables.sync_replication_slave_id, (gptr*) &global_system_variables.sync_replication_slave_id, 0, GET_ULONG, REQUIRED_ARG, 0, 0, ~0L, 0, 1, 0}, {"sync-replication-timeout", OPT_SYNC_REPLICATION_TIMEOUT, "Synchronous replication timeout.", (gptr*) &global_system_variables.sync_replication_timeout, (gptr*) &global_system_variables.sync_replication_timeout, 0, GET_ULONG, REQUIRED_ARG, 10, 0, ~0L, 0, 1, 0}, #endif /* HAVE_REPLICATION */ {"table_cache", OPT_TABLE_OPEN_CACHE, "Deprecated; use --table_open_cache instead.", (gptr*) &table_cache_size, (gptr*) &table_cache_size, 0, GET_ULONG, Loading
sql/set_var.cc +0 −13 Original line number Diff line number Diff line Loading @@ -436,14 +436,6 @@ sys_var_thd_storage_engine sys_storage_engine("storage_engine", &SV::table_type); #ifdef HAVE_REPLICATION sys_var_sync_binlog_period sys_sync_binlog_period("sync_binlog", &sync_binlog_period); sys_var_thd_ulong sys_sync_replication("sync_replication", &SV::sync_replication); sys_var_thd_ulong sys_sync_replication_slave_id( "sync_replication_slave_id", &SV::sync_replication_slave_id); sys_var_thd_ulong sys_sync_replication_timeout( "sync_replication_timeout", &SV::sync_replication_timeout); #endif sys_var_bool_ptr sys_sync_frm("sync_frm", &opt_sync_frm); sys_var_long_ptr sys_table_def_size("table_definition_cache", Loading Loading @@ -966,11 +958,6 @@ SHOW_VAR init_vars[]= { {sys_sync_binlog_period.name,(char*) &sys_sync_binlog_period, SHOW_SYS}, #endif {sys_sync_frm.name, (char*) &sys_sync_frm, SHOW_SYS}, #ifdef HAVE_REPLICATION {sys_sync_replication.name, (char*) &sys_sync_replication, SHOW_SYS}, {sys_sync_replication_slave_id.name, (char*) &sys_sync_replication_slave_id,SHOW_SYS}, {sys_sync_replication_timeout.name, (char*) &sys_sync_replication_timeout,SHOW_SYS}, #endif #ifdef HAVE_TZNAME {"system_time_zone", system_time_zone, SHOW_CHAR}, #endif Loading
sql/sql_class.h +0 −5 Original line number Diff line number Diff line Loading @@ -241,11 +241,6 @@ struct system_variables my_bool new_mode; my_bool query_cache_wlock_invalidate; my_bool engine_condition_pushdown; #ifdef HAVE_REPLICATION ulong sync_replication; ulong sync_replication_slave_id; ulong sync_replication_timeout; #endif /* HAVE_REPLICATION */ my_bool innodb_table_locks; my_bool innodb_support_xa; my_bool ndb_force_send; Loading