diff options
Diffstat (limited to 'storage/rocksdb/mysql-test/rocksdb_stress/include/rocksdb_stress.inc')
-rw-r--r-- | storage/rocksdb/mysql-test/rocksdb_stress/include/rocksdb_stress.inc | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/storage/rocksdb/mysql-test/rocksdb_stress/include/rocksdb_stress.inc b/storage/rocksdb/mysql-test/rocksdb_stress/include/rocksdb_stress.inc new file mode 100644 index 00000000..3838987b --- /dev/null +++ b/storage/rocksdb/mysql-test/rocksdb_stress/include/rocksdb_stress.inc @@ -0,0 +1,57 @@ +# Run the load generator to populate the table and generate concurrent +# updates. After the load generator is complete, verify the tables on the +# master and the slave are consistent + +--sync_slave_with_master + +--connection master +--let $master_host = 127.0.0.1 +let $MYSQL_BASEDIR = `SELECT @@BASEDIR`; + +let $exec = + python + $MYSQL_BASEDIR/storage/rocksdb/mysql-test/rocksdb_stress/t/load_generator.py \ + -L $MYSQL_TMP_DIR/load_generator.log -H $master_host -t $table \ + -P $MASTER_MYPORT -n $num_records -m $max_records \ + -l $num_loaders -c $num_checkers -r $num_requests \ + -E $MYSQLTEST_VARDIR/tmp/mysqld.1.expect \ + -D $reap_delay; + +exec $exec; + +enable_reconnect; +source include/wait_until_connected_again.inc; + +--let $master_checksum = query_get_value(CHECKSUM TABLE $table, Checksum, 1) + +# if sync_slave_with_master had a configurable timeout this would not be needed +let $slave_sync_timeout = 7200; +--source include/wait_for_slave_to_sync_with_master.inc + +--connection slave +--let $slave_checksum = query_get_value(CHECKSUM TABLE $table, Checksum, 1) + +let $not_same = `SELECT $master_checksum-$slave_checksum`; +if ($not_same) +{ + --die "The checksums of table $table for the master and slave do not match!" +} + +# Cleanup +--connection master +--let $cleanup = DROP TABLE $table +eval $cleanup; + +# if sync_slave_with_master had a configurable timeout this would not be needed +let $slave_sync_timeout = 7200; +--source include/wait_for_slave_to_sync_with_master.inc + +--connection slave +--source include/stop_slave.inc +# For stress tests sometimes the replication thread can not connect to master +# temporarily. This is either because the master crashed and it is recovering +# or the master is too busy and could not service the slave's requests. +# mtr's internal check requires that there be no errors in slave status. +# restarting replication clears the errors. +--source include/start_slave.inc +--source include/stop_slave.inc |