-
Andrei Elkin authored
The final conceptual patch addresses the 1st item for the last commit todo. That includes a. extending rpl_checksum to demonstrate slave execution stability in face of binary and relay-log rotations in the context of master and slave having arbitrary (possibly different) server's checksum algorithms. b. prior the test to pass some piece of code was clean up to simplify logics of need_checksum() and propagation of the relay-log checksum Alg from one master-slave session to the other. c. binlog_checksum is converted from bool to enum forcing changes in external and internal interfaces as well as the master-slave binlog-checksum handshake. This patch leaves the reliable FD issue out to be addresses in a separate piece of work. That will implement an idea described on WL#2540 which is about `we need to distinguish between a checksummed-and-corrupted FD and not checksummed'. TODO: 1. extend the test base to verify all cover cases of OM -> NS and NM -> OS 2. merge with bug#49741 Fine details of changes per file: mysql-test/extra/rpl_tests/rpl_log.test gave out to wait for bug#49741 merge to edit myself mysql-test/include/have_binlog_checksum_off.inc a new guard to require by tests which mess with simulation incompatible checksum ways. mysql-test/suite/rpl/t/rpl_checksum.test to demonstrate slave execution stability in face of binary and relay-log rotations in the context of master and slave having arbitrary (possibly different) server's checksum algorithms. sql/log.cc Addressing, binlog-checksum bool-to-enum-conversion, RL-checksum placeholder logics simplification, Log_event::need_checksum() correcting and relaxing. sql/log.h Commenting on the definition of relay_log_checksum_alg as the placeholder of Relay-LoG checksum alg value. sql/log_event.cc Addressing, binlog-checksum bool-to-enum-conversion, RL-checksum placeholder logics simplification, Log_event::need_checksum() correcting and relaxing. sql/rpl_mi.h sql/rpl_mi.cc RL-checksum placeholder logics simplification. The last seen value of FD_m.A (master's FD checksum alg) is stored in relay_log's member right upon receiving the event. That makes unnecessary ealier ramped up last_master_checksum_alg. sql/mysqld.c sql/mysql_priv.h sql/log_event.h Addressing, binlog-checksum bool-to-enum-conversion. sql/set_var.h Addressing binlog-checksum bool-to-enum-conversion. *Notice* change (private->protected for `value' member) in a base class which is similar to one done ago to sys_var_set. sql/slave.cc Addressing binlog-checksum bool-to-enum-conversion incl master-slave handshake, equality of FD_q.A with RL.checksum_alg. sql/sql_repl.cc Addressing binlog-checksum bool-to-enum-conversion via redifing the binlog-checksum sys_var class.
Andrei Elkin authoredThe final conceptual patch addresses the 1st item for the last commit todo. That includes a. extending rpl_checksum to demonstrate slave execution stability in face of binary and relay-log rotations in the context of master and slave having arbitrary (possibly different) server's checksum algorithms. b. prior the test to pass some piece of code was clean up to simplify logics of need_checksum() and propagation of the relay-log checksum Alg from one master-slave session to the other. c. binlog_checksum is converted from bool to enum forcing changes in external and internal interfaces as well as the master-slave binlog-checksum handshake. This patch leaves the reliable FD issue out to be addresses in a separate piece of work. That will implement an idea described on WL#2540 which is about `we need to distinguish between a checksummed-and-corrupted FD and not checksummed'. TODO: 1. extend the test base to verify all cover cases of OM -> NS and NM -> OS 2. merge with bug#49741 Fine details of changes per file: mysql-test/extra/rpl_tests/rpl_log.test gave out to wait for bug#49741 merge to edit myself mysql-test/include/have_binlog_checksum_off.inc a new guard to require by tests which mess with simulation incompatible checksum ways. mysql-test/suite/rpl/t/rpl_checksum.test to demonstrate slave execution stability in face of binary and relay-log rotations in the context of master and slave having arbitrary (possibly different) server's checksum algorithms. sql/log.cc Addressing, binlog-checksum bool-to-enum-conversion, RL-checksum placeholder logics simplification, Log_event::need_checksum() correcting and relaxing. sql/log.h Commenting on the definition of relay_log_checksum_alg as the placeholder of Relay-LoG checksum alg value. sql/log_event.cc Addressing, binlog-checksum bool-to-enum-conversion, RL-checksum placeholder logics simplification, Log_event::need_checksum() correcting and relaxing. sql/rpl_mi.h sql/rpl_mi.cc RL-checksum placeholder logics simplification. The last seen value of FD_m.A (master's FD checksum alg) is stored in relay_log's member right upon receiving the event. That makes unnecessary ealier ramped up last_master_checksum_alg. sql/mysqld.c sql/mysql_priv.h sql/log_event.h Addressing, binlog-checksum bool-to-enum-conversion. sql/set_var.h Addressing binlog-checksum bool-to-enum-conversion. *Notice* change (private->protected for `value' member) in a base class which is similar to one done ago to sys_var_set. sql/slave.cc Addressing binlog-checksum bool-to-enum-conversion incl master-slave handshake, equality of FD_q.A with RL.checksum_alg. sql/sql_repl.cc Addressing binlog-checksum bool-to-enum-conversion via redifing the binlog-checksum sys_var class.
Loading