Replication - Remove final references to binlog and statement-base replication

Registered by Jay Pipes

jpipes@serialcoder:~/repos/drizzle/remove-binlog$ ack-grep binlog
client/drizzletest.cc
3192: when ndb binlog is on, this call will wait until last updated epoch
3193: (locally in the drizzled) has been received into the binlog

plugin/innobase/srv/srv0srv.c
154:UNIV_INTERN ibool srv_locks_unsafe_for_binlog = FALSE;

plugin/innobase/log/log0recv.c
3081: trx_sys_print_mysql_binlog_offset();

plugin/innobase/trx/trx0sys.c
75:/** Master binlog file name */
77:/** Master binlog file position. We have successfully got the updates
84:and if it has done a crash recovery, we store the binlog file name and position
664:Updates the offset information about the end of the MySQL binlog entry
666:replication slave updates the latest master binlog position up to which
670:trx_sys_update_mysql_binlog_offset(
725:Stores the MySQL binlog offset info in the trx system header if
729:trx_sys_print_mysql_binlog_offset(void)
766: "InnoDB: Last MySQL binlog file position %lu %lu,"
800: " master binlog file\n"
1306:Prints to stderr the MySQL binlog info in the system header if the
1310:trx_sys_print_mysql_binlog_offset_from_page(
1325: "ibbackup: Last MySQL binlog file position %lu %lu,"

plugin/innobase/trx/trx0roll.c
244: ib_int64_t* mysql_binlog_cache_pos) /*!< out: the MySQL binlog cache
248: binlog entries of the queries
281: *mysql_binlog_cache_pos = savep->mysql_binlog_cache_pos;
309: ib_int64_t binlog_cache_pos) /*!< in: MySQL binlog cache
348: savep->mysql_binlog_cache_pos = binlog_cache_pos;

plugin/innobase/trx/trx0trx.c
776: /* Update the latest MySQL binlog name and offset info
777: in trx sys header if MySQL binlogging is on or the database
782: trx_sys_update_mysql_binlog_offset(

plugin/innobase/handler/ha_innodb.h
204:/** Get the file name of the MySQL binlog.
205: * @return the name of the binlog file
209:/** Get the current position of the MySQL binlog.
210: * @return byte offset from the beginning of the binlog

plugin/innobase/handler/ha_innodb.cc
147:/** to force correct commit order in binlog */
916: cached binlog for this transaction */
972: cached binlog for this transaction */
1944: srv_locks_unsafe_for_binlog = (ibool) TRUE;
2112: /* We need current binlog position for ibbackup to work.
2132: /* Store transaction point for binlog
2271: ib_int64_t mysql_binlog_cache_pos;
2286: &mysql_binlog_cache_pos);
3605:binlogging. We need to eliminate the non-determinism that will arise in
3606:INSERT ... SELECT type of statements, since MySQL binlog only stores the
4245:query, if the option innodb_locks_unsafe_for_binlog is set. */
4260: if (!srv_locks_unsafe_for_binlog
4295: requested by the MySQL and either innodb_locks_unsafe_for_binlog
4300: && (srv_locks_unsafe_for_binlog
7453: binlog) requires the use of a locking read, or
7468: if ((srv_locks_unsafe_for_binlog
7476: /* If we either have innobase_locks_unsafe_for_binlog
8024: /* For ibbackup to work the order of transactions in binlog
8027: thread1> prepare; write to binlog; ...
8029: thread2> prepare; write to binlog; commit

plugin/innobase/lock/lock0lock.c
307: * statement-level MySQL binlog.
2375: /* If srv_locks_unsafe_for_binlog is TRUE or session is using
2383: && !((srv_locks_unsafe_for_binlog

plugin/innobase/row/row0sel.c
848: /* If innodb_locks_unsafe_for_binlog option is used
857: if (srv_locks_unsafe_for_binlog
1455: /* If innodb_locks_unsafe_for_binlog option is used
1469: if (srv_locks_unsafe_for_binlog
1514: /* If innodb_locks_unsafe_for_binlog option is used
1527: if (srv_locks_unsafe_for_binlog
3379: /* Reset the new record lock info if srv_locks_unsafe_for_binlog
3672: && !(srv_locks_unsafe_for_binlog
3768: && !(srv_locks_unsafe_for_binlog
3774: /* If innodb_locks_unsafe_for_binlog option is used
3901: && !(srv_locks_unsafe_for_binlog
3907: record only if innodb_locks_unsafe_for_binlog
3937: && !(srv_locks_unsafe_for_binlog
3943: record only if innodb_locks_unsafe_for_binlog
3978: /* If innodb_locks_unsafe_for_binlog option is used
3986: || srv_locks_unsafe_for_binlog
4025: if (srv_locks_unsafe_for_binlog
4156: if ((srv_locks_unsafe_for_binlog
4223: if ((srv_locks_unsafe_for_binlog
4236: if ((srv_locks_unsafe_for_binlog
4445: if ((srv_locks_unsafe_for_binlog

plugin/innobase/row/row0mysql.c
1428:This can only be used when srv_locks_unsafe_for_binlog is TRUE or
1458: (!srv_locks_unsafe_for_binlog
1463: "InnoDB: innodb_locks_unsafe_for_binlog is FALSE and\n"

plugin/innobase/include/row0mysql.h
274:This can only be used when srv_locks_unsafe_for_binlog is TRUE or
668: If innodb_locks_unsafe_for_binlog
691: srv_locks_unsafe_for_binlog is

plugin/innobase/include/sync0sync.h
462:/*------------------------------------- MySQL binlog mutex */

plugin/innobase/include/trx0roll.h
229: ib_int64_t* mysql_binlog_cache_pos);/*!< out: the MySQL binlog cache
233: binlog entries of the queries
247: ib_int64_t binlog_cache_pos); /*!< in: MySQL binlog cache
327: ib_int64_t mysql_binlog_cache_pos;
328: /*!< the MySQL binlog cache position
330: defined if the MySQL binlogging is not

plugin/innobase/include/srv0srv.h
125:extern ibool srv_locks_unsafe_for_binlog;

plugin/innobase/include/trx0sys.h
47:/** Master binlog file name */
49:/** Master binlog file position. We have successfully got the updates
56:and if it has done a crash recovery, we store the binlog file name and position
288:Updates the offset information about the end of the MySQL binlog entry
290:replication slave updates the latest master binlog position up to which
294:trx_sys_update_mysql_binlog_offset(
302:Prints to stderr the MySQL binlog offset info in the trx system header if
306:trx_sys_print_mysql_binlog_offset(void);
382:Prints to stderr the MySQL binlog info in the system header if the
386:trx_sys_print_mysql_binlog_offset_from_page(
466:/** Maximum length of MySQL binlog file name, in bytes.
480:/** The offset of the MySQL binlog offset info in the trx system header */
485: MySQL binlog info */

plugin/innobase/include/trx0trx.h
548: /* if MySQL binlog is used, this field
550: name; this is NULL if binlog is not
552: ib_int64_t mysql_log_offset;/* if MySQL binlog is used, this field
553: contains the end offset of the binlog

plugin/myisam/my_handler_errors.cc
83: add_error_message(HA_ERR_RBR_LOGGING_FAILED, N_("Row-based binlogging of row failed"));

drizzled/base.h
351:#define HA_ERR_RBR_LOGGING_FAILED 161 /* Row-based binlogging of row failed */

drizzled/item/create.h
54: <li><code>session->lex->binlog_row_based_if_mixed</code></li>

drizzled/sql_load.cc
382: must be effective for binlogging
396: /* ok to client sent only after binlog write and engine commit */

drizzled/session.cc
860: /* Forget those values, for next binlogger: */
861: auto_inc_intervals_in_cur_stmt_for_binlog.empty();
1741: auto_inc_intervals_in_cur_stmt_for_binlog.empty();
1969: binlog_query()) or when preparing a pending event.

drizzled/session.h
589: auto_inc_intervals_in_cur_stmt_for_binlog is augmented with the
590: reserved interval (if statement-based binlogging).
594: - when stmt goes to binlog,
595: auto_inc_intervals_in_cur_stmt_for_binlog is binlogged if
601: storage in the statement-based binlog.
608: in the binlog is still needed; the list's minimum will contain 3.
610: Discrete_intervals_list auto_inc_intervals_in_cur_stmt_for_binlog;
832: exclusive right to see its values be written to binlog (the write
834: their values be written to binlog.
837: the master's binlog wins the exclusive right to read them (so the losers
838: won't read their values from binlog but instead generate on their own).
840: auto_inc_intervals_in_cur_stmt_for_binlog.
845: auto_inc_intervals_in_cur_stmt_for_binlog list, which is logically wrong,
852: that in binlog we'll store the interval of t1 and the interval of t2 (when
857: from what it was on master (which is likely). In 5.1, in mixed binlogging
858: mode, row-based binlogging is used for such cases where two
872: (mysqlbinlog). We'll soon add a variant which can take many intervals in

drizzled/sql_delete.cc
124: - We should not be binlogging this statement row-based, and
262: failed DELETE, and also wrote it to the binlog. For MyISAM
304: /* See similar binlogging code in sql_update.cc, for comments */

drizzled/statement/flush.cc
35: * binlog or not.
43: * Presumably, RESET and binlog writing doesn't require synchronization

drizzled/statement/alter_table.cc
914: to binlog atomic we have to put them into the same critical section

drizzled/statement/drop_table.cc
98: /* DDL and binlog write order protected by LOCK_open */

drizzled/statement/flush.h
67: * query to the binlog (e.g. FLUSH SLAVE); this is a
69: * it thinks we really should not write to the binlog.

drizzled/error.cc
413: add(ER_TRANS_CACHE_FULL, N_("Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage; increase this drizzled variable and try again"));
588: add(ER_UNKNOWN_TARGET_BINLOG, N_("Target log not found in binlog index"));
590: add(ER_BINLOG_PURGE_PROHIBITED, N_("Server configuration does not permit binlog purge"));
733: add(ER_NO_BINLOG_ERROR, N_("It is not allowed to shut off binlog on this command"));
776: add(ER_NDB_CANT_SWITCH_BINLOG_FORMAT, N_("The NDB cluster engine does not support changing the binlog format on the fly yet"));

drizzled/plugin/xa_resource_manager.cc
195: "recovery information (last binlog or %s file) was "

drizzled/function/get_user_var.cc
78: get_var_with_binlog.

drizzled/cursor.cc
399: session->auto_inc_intervals_in_cur_stmt_for_binlog if statement-based
400: binlogging; the last reserved interval is remembered in
417: present in session->auto_inc_intervals_in_cur_stmt_for_binlog it is added to
489: session->auto_inc_intervals_in_cur_stmt_for_binlog.nb_elements();
1339: Check if the conditions for row-based binlogging is correct for the table.

drizzled/sql_table.cc
102: Write the binlog if open, routine used in multiple places in this
2146: call to plugin::StorageEngine::createTable() and binlogging atomic

drizzled/sql_insert.cc
1327: We must invalidate the table in the query cache before binlog writing
1382: the binlog (and the error code will make the slave stop).

drizzled/definitions.h
294: Note: the following includes binlog and closing 0.
295: so: innodb + bdb + ndb + binlog + myisam + myisammrg + archive +

drizzled/common.h
37: options list are written into binlog. These options can NOT change their
60:#define OPTION_AUTO_IS_NULL (UINT64_C(1) << 14) // THD, user, binlog
71:#define OPTION_NO_FOREIGN_KEY_CHECKS (UINT64_C(1) << 26) // THD, user, binlog
74:#define OPTION_RELAXED_UNIQUE_CHECKS (UINT64_C(1) << 27) // THD, user, binlog
83: (Time zone name is char(64) in db). mysqlbinlog needs it.

drizzled/sql_update.cc
502: binlogging.
507: // simulated killing after the loop must be ineffective for binlogging
527: Sometimes we want to binlog even if we updated no rows, in case user used

drizzled/set_var.cc
1210: replicable (i.e. we tell the binlog code to store the session
1212: (binlog code stores session value only).

tests/test-run.pl
2797: # Chech that diff is binlog format only

tests/lib/mtr_cases.pl
439: # Replication test needs an adjustment of binlog format
444: # Get binlog-format used by this test from master_opt
446: my $test_binlog_format;
448: $test_binlog_format= $test_binlog_format ||
449: mtr_match_prefix($opt, "--binlog-format=");
451: # print $tinfo->{name}." uses ".$test_binlog_format."\n";
454: # If a special binlog format was selected with
455: # --mysqld=--binlog-format=x, skip all test with different
456: # binlog-format
458: if (defined $::used_binlog_format and
459: $test_binlog_format and
460: $::used_binlog_format ne $test_binlog_format)
463: $tinfo->{'comment'}= "Requires --binlog-format='$test_binlog_format'";
468: # Check that testcase supports the designated binlog-format
470: if ($test_binlog_format and defined $tinfo->{'sup_binlog_formats'} )
473: grep { $_ eq $test_binlog_format } @{$tinfo->{'sup_binlog_formats'}};
478: "Doesn't support --binlog-format='$test_binlog_format'";
484: # Use dynamic switching of binlog-format if mtr started
485: # w/o --mysqld=--binlog-format=xxx and combinations.
488: !defined $::used_binlog_format)
490: $test_binlog_format= $tinfo->{'sup_binlog_formats'}->[0];
493: # Save binlog format for dynamic switching
494: $tinfo->{binlog_format}= $test_binlog_format;
823: ["include/have_binlog_format_row.inc", "sup_binlog_formats", ["row"]],
824: ["include/have_log_bin.inc", "need_binlog", 1],
825: ["include/have_binlog_format_statement.inc",
826: "sup_binlog_formats", ["statement"]],
827: ["include/have_binlog_format_mixed.inc", "sup_binlog_formats", ["mixed"]],
828: ["include/have_binlog_format_mixed_or_row.inc",
829: "sup_binlog_formats", ["mixed","row"]],
830: ["include/have_binlog_format_mixed_or_statement.inc",
831: "sup_binlog_formats", ["mixed","statement"]],
832: ["include/have_binlog_format_row_or_statement.inc",
833: "sup_binlog_formats", ["row","statement"]],

tests/lib/mtr_report.pl
432: $testname eq 'binlog.binlog_killed_simulate' or
433: $testname eq 'binlog.binlog_killed') and

Blueprint information

Status:
Complete
Approver:
Jay Pipes
Priority:
Medium
Drafter:
Jay Pipes
Direction:
Approved
Assignee:
David Shrewsbury
Definition:
Obsolete
Series goal:
None
Implementation:
Not started
Milestone target:
None
Completed by
David Shrewsbury

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.