Skip to content
This repository has been archived by the owner on Jun 12, 2020. It is now read-only.

Testing Read Free Replication

RIch Prohaska edited this page Jan 22, 2015 · 3 revisions

Basic MySQL tests

Tables

  • table t(a) no pk;
  • table t(a, pk(a));
  • table t(a, b, pk(b));
  • table t(a, b, pk(a), unique(b));

Global config

  • Read only slave ON/OFF
  • Client on master unique_checks ON/OFF
  • binlog_row_images FULL/!FULL

Write rows

  • tokudb_rpl_unique_checks ON/OFF
  • Primary key
  • Unique secondary key

Delete rows

  • tokudb_rpl_lookup_rows ON/OFF

Update rows

  • tokudb_rpl_unique_checks ON/OFF
  • Primary key
  • Unique secondary key
  • tokudb_rpl_lookup_rows ON/OFF

Performance tests

  • Master sysbench in memory (huge TokuDB cache table).
  • Slave sysbench out of memory (tiny TokuDB cache table).

Correctness tests

Sysbench + Percona Toolkit pt-table-checksum

  • Start a server (binlog off), load 16 sysbench tables w/ 50mm rows per table
  • Restart the server with binlogging on
  • Shutdown the server (master)
  • Copy the server's data folder to a different machine (slave)
  • Change the slave config so it won't conflict with the master
  • Start the slave and attach to the master
  • Start the sysbench workload on the master
  • enable and disable the RFR variables to benchmark/test performance
  • watch throughput and IO
  • Stop the sysbench workload
  • Verify that the master and slave are the same using Percona Toolkit
  • pt-table-checksum
Clone this wiki locally