Commit 7275dcef authored by sasha@mysql.sashanet.com's avatar sasha@mysql.sashanet.com
Browse files

misc replication bugfixes including some needed modifications in IO_CACHE

likely() and unlikely() branch prediction compiler hint macros
clean-up of comments
parent 40fcae6d
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -51,6 +51,22 @@
#endif
#endif /* _WIN32... */

/* The macros below are borrowed from include/linux/compiler.h in the
   Linux kernel. Use them to indicate the likelyhood of the truthfulness
   of a condition. This serves two purposes - newer versions of gcc will be
   able to optimize for branch predication, which could yield siginficant
   performance gains in frequently executed sections of the code, and the
   other reason to use them is for documentation
*/

#if __GNUC__ == 2 && __GNUC_MINOR__ < 96
#define __builtin_expect(x, expected_value) (x)
#endif

#define likely(x)	__builtin_expect((x),1)
#define unlikely(x)	__builtin_expect((x),0)


/* Fix problem with S_ISLNK() on Linux */
#if defined(HAVE_LINUXTHREADS)
#undef  _GNU_SOURCE
+3 −2
Original line number Diff line number Diff line
@@ -436,8 +436,9 @@ typedef int (*qsort2_cmp)(const void *, const void *, const void *);

#define my_b_tell(info) ((info)->pos_in_file + \
			 (uint) (*(info)->current_pos - (info)->request_pos))
#define my_b_append_tell(info) ((info)->end_of_file + \
			 (uint) ((info)->write_pos - (info)->write_buffer))

/* tell write offset in the SEQ_APPEND cache */
my_off_t my_b_append_tell(IO_CACHE* info);

#define my_b_bytes_in_cache(info) (uint) (*(info)->current_end - \
					  *(info)->current_pos)
+1 −0
Original line number Diff line number Diff line
@@ -832,6 +832,7 @@ start_slave()
  slave_args="--no-defaults $master_info \
  	    --exit-info=256 \
          --log-bin=$MYSQL_TEST_DIR/var/log/$slave_ident-bin \
          --relay-log=$MYSQL_TEST_DIR/var/log/$slave_ident-relay-bin \
          --log-slave-updates \
          --log=$slave_log \
          --basedir=$MY_BASEDIR \
+4 −4
Original line number Diff line number Diff line
@@ -8,21 +8,21 @@ File Position Binlog_do_db Binlog_ignore_db
master-bin.001	79		
show slave status;
Master_Host	Master_User	Master_Port	Connect_retry	Master_Log_File	Read_Master_Log_Pos	Relay_Log_File	Relay_Log_Pos	Relay_Master_Log_File	Slave_IO_Running	Slave_SQL_Running	Replicate_do_db	Replicate_ignore_db	Last_errno	Last_error	Skip_counter	Exec_master_log_pos
127.0.0.1	root	MASTER_PORT	1	master-bin.001	79	mysql-relay-bin.002	120	master-bin.001	Yes	Yes			0		0	79
127.0.0.1	root	MASTER_PORT	1	master-bin.001	79	slave-relay-bin.002	120	master-bin.001	Yes	Yes			0		0	79
change master to master_log_pos=73;
slave stop;
change master to master_log_pos=73;
show slave status;
Master_Host	Master_User	Master_Port	Connect_retry	Master_Log_File	Read_Master_Log_Pos	Relay_Log_File	Relay_Log_Pos	Relay_Master_Log_File	Slave_IO_Running	Slave_SQL_Running	Replicate_do_db	Replicate_ignore_db	Last_errno	Last_error	Skip_counter	Exec_master_log_pos
127.0.0.1	root	MASTER_PORT	1	master-bin.001	73	mysql-relay-bin.001	4	master-bin.001	No	No			0		0	73
127.0.0.1	root	MASTER_PORT	1	master-bin.001	73	slave-relay-bin.001	4	master-bin.001	No	No			0		0	73
slave start;
show slave status;
Master_Host	Master_User	Master_Port	Connect_retry	Master_Log_File	Read_Master_Log_Pos	Relay_Log_File	Relay_Log_Pos	Relay_Master_Log_File	Slave_IO_Running	Slave_SQL_Running	Replicate_do_db	Replicate_ignore_db	Last_errno	Last_error	Skip_counter	Exec_master_log_pos
127.0.0.1	root	MASTER_PORT	1	master-bin.001	73	mysql-relay-bin.001	4	master-bin.001	Yes	Yes			0		0	73
127.0.0.1	root	MASTER_PORT	1	master-bin.001	73	slave-relay-bin.001	4	master-bin.001	Yes	Yes			0		0	73
change master to master_log_pos=173;
show slave status;
Master_Host	Master_User	Master_Port	Connect_retry	Master_Log_File	Read_Master_Log_Pos	Relay_Log_File	Relay_Log_Pos	Relay_Master_Log_File	Slave_IO_Running	Slave_SQL_Running	Replicate_do_db	Replicate_ignore_db	Last_errno	Last_error	Skip_counter	Exec_master_log_pos
127.0.0.1	root	MASTER_PORT	1	master-bin.001	173	mysql-relay-bin.001	4	master-bin.001	Yes	Yes			0		0	173
127.0.0.1	root	MASTER_PORT	1	master-bin.001	173	slave-relay-bin.001	4	master-bin.001	Yes	Yes			0		0	173
show master status;
File	Position	Binlog_do_db	Binlog_ignore_db
master-bin.001	79		
+3 −3
Original line number Diff line number Diff line
@@ -9,16 +9,16 @@ Master_Host Master_User Master_Port Connect_retry Master_Log_File Read_Master_Lo
change master to master_host='127.0.0.1';
show slave status;
Master_Host	Master_User	Master_Port	Connect_retry	Master_Log_File	Read_Master_Log_Pos	Relay_Log_File	Relay_Log_Pos	Relay_Master_Log_File	Slave_IO_Running	Slave_SQL_Running	Replicate_do_db	Replicate_ignore_db	Last_errno	Last_error	Skip_counter	Exec_master_log_pos
127.0.0.1	test	MASTER_PORT	60		4	mysql-relay-bin.001	4		No	No			0		0	0
127.0.0.1	test	MASTER_PORT	60		4	slave-relay-bin.001	4		No	No			0		0	0
change master to master_host='127.0.0.1',master_user='root',
master_password='',master_port=MASTER_PORT;
show slave status;
Master_Host	Master_User	Master_Port	Connect_retry	Master_Log_File	Read_Master_Log_Pos	Relay_Log_File	Relay_Log_Pos	Relay_Master_Log_File	Slave_IO_Running	Slave_SQL_Running	Replicate_do_db	Replicate_ignore_db	Last_errno	Last_error	Skip_counter	Exec_master_log_pos
127.0.0.1	root	MASTER_PORT	60		4	mysql-relay-bin.001	4		No	No			0		0	0
127.0.0.1	root	MASTER_PORT	60		4	slave-relay-bin.001	4		No	No			0		0	0
slave start;
show slave status;
Master_Host	Master_User	Master_Port	Connect_retry	Master_Log_File	Read_Master_Log_Pos	Relay_Log_File	Relay_Log_Pos	Relay_Master_Log_File	Slave_IO_Running	Slave_SQL_Running	Replicate_do_db	Replicate_ignore_db	Last_errno	Last_error	Skip_counter	Exec_master_log_pos
127.0.0.1	root	MASTER_PORT	60	master-bin.001	79	mysql-relay-bin.001	120	master-bin.001	Yes	Yes			0		0	79
127.0.0.1	root	MASTER_PORT	60	master-bin.001	79	slave-relay-bin.001	120	master-bin.001	Yes	Yes			0		0	79
drop table if exists t1;
create table t1 (n int);
insert into t1 values (10),(45),(90);
Loading