1source include/have_memcached_plugin.inc; 2source include/not_valgrind.inc; 3 4# Test of master and both with slave with memcached access and binlog-format=raw. 5# 6source include/not_windows.inc; 7source include/have_innodb.inc; 8--disable_warnings 9source include/master-slave.inc; 10--enable_warnings 11 12--disable_query_log 13CALL mtr.add_suppression("daemon-memcached-w-batch-size': unsigned"); 14CALL mtr.add_suppression("Could not obtain server's UPN to be used as target service name"); 15CALL mtr.add_suppression("InnoDB: Warning: MySQL is trying to drop"); 16--enable_query_log 17 18--enable_connect_log 19SET @tx_isolation= @@global.tx_isolation; 20SET GLOBAL TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; 21 22# Create the memcached tables 23--disable_query_log 24source include/memcache_config.inc; 25--enable_query_log 26 27INSERT INTO cache_policies VALUES("cache_policy", "innodb_only", 28 "innodb_only", "innodb_only", "innodb_only"); 29 30INSERT INTO config_options VALUES("separator", "|"); 31 32# describe table for memcache 33INSERT INTO containers VALUES ("desc_t1", "test", "t1", 34 "c1", "c2,c21", "c3", "c4", "c5", "PRIMARY"); 35 36USE test; 37 38--disable_warnings 39DROP TABLE IF EXISTS t1; 40--enable_warnings 41CREATE TABLE t1 (c1 VARCHAR(32), 42 c2 VARCHAR(1024), 43 c21 VARCHAR(1024), 44 c3 INT, c4 BIGINT UNSIGNED, c5 INT, primary key(c1)) 45ENGINE = INNODB; 46 47INSERT INTO t1 VALUES ('D', 'Darmstadt', 'City', 0, 0, 0); 48INSERT INTO t1 VALUES ('B', 'Berlin', 'Mitte', 0, 0, 0); 49INSERT INTO t1 VALUES ('C', 'Cottbus', 'West', 0, 0 ,0); 50INSERT INTO t1 VALUES ('H', 'Hamburg', 'Norderstedt', 0, 0, 0); 51 52# Tables must exist before plugin can be started! 53INSTALL PLUGIN daemon_memcached SONAME 'libmemcached.so'; 54 55# The following select is writing all to memcache otherwisw memcache is empty. 56--sorted_result 57SELECT c1,c2,c21 FROM t1; 58 59SELECT SLEEP(2); 60 61perl; 62use DBI; 63use Cache::Memcached; 64my $memd = new Cache::Memcached { 65 'servers' => [ "127.0.0.1:11270" ] 66}; 67print "Here the memcached results with D,B,H,C:\n"; 68$val = $memd->get("D"); 69if ($val) { print "$val\n"; } 70$val = $memd->get("B"); 71if ($val) { print "$val\n"; } 72$val = $memd->get("H"); 73if ($val) { print "$val\n"; } 74$val = $memd->get("C"); 75if ($val) { print "$val\n"; } 76$memd->disconnect_all; 77EOF 78 79--sorted_result 80SELECT c1,c2,c21 FROM t1; 81 82--echo sync_slave_with_master; 83sync_slave_with_master; 84 85connection slave; 86--sorted_result 87SELECT c1,c2,c21 FROM t1; 88 89connection master; 90perl; 91use DBI; 92use Cache::Memcached; 93my $memd = new Cache::Memcached { 94 'servers' => [ "127.0.0.1:11270" ] 95}; 96print "Here the memcached results after set:\n"; 97$val = $memd->set("E","Essen|Ost"); 98$val = $memd->get("E"); 99if ($val) { print "$val\n"; } 100$memd->disconnect_all; 101EOF 102 103--sorted_result 104SELECT c1,c2,c21 FROM t1; 105 106--echo sync_slave_with_master; 107sync_slave_with_master; 108 109connection slave; 110--sorted_result 111SELECT c1,c2,c21 FROM t1; 112 113connection master; 114perl; 115use DBI; 116use Cache::Memcached; 117my $memd = new Cache::Memcached { 118 'servers' => [ "127.0.0.1:11270" ] 119}; 120print "Here the memcached results after add:\n"; 121$val = $memd->add("F","Frankfurt|Sachsenhause"); 122$val = $memd->get("F"); 123if ($val) { print "$val\n"; } 124$memd->disconnect_all; 125EOF 126 127--sorted_result 128SELECT c1,c2,c21 FROM t1; 129 130--echo sync_slave_with_master; 131sync_slave_with_master; 132 133connection slave; 134--sorted_result 135SELECT c1,c2,c21 FROM t1; 136 137connection master; 138perl; 139use DBI; 140use Cache::Memcached; 141my $memd = new Cache::Memcached { 142 'servers' => [ "127.0.0.1:11270" ] 143}; 144print "Here the memcached results after replace:\n"; 145$val = $memd->replace("F","Frankfurt a. M.|Sachsenhausen"); 146$val = $memd->get("F"); 147if ($val) { print "$val\n"; } 148$memd->disconnect_all; 149EOF 150 151--sorted_result 152SELECT c1,c2,c21 FROM t1; 153 154--echo sync_slave_with_master; 155sync_slave_with_master; 156 157connection slave; 158--sorted_result 159SELECT c1,c2,c21 FROM t1; 160 161connection master; 162perl; 163use DBI; 164use Cache::Memcached; 165my $memd = new Cache::Memcached { 166 'servers' => [ "127.0.0.1:11270" ] 167}; 168print "Here the memcached results after delete:\n"; 169$val = $memd->delete("F"); 170$val = $memd->get("F"); 171if ($val) { print "$val\n"; } 172$memd->disconnect_all; 173EOF 174 175--sorted_result 176SELECT c1,c2,c21 FROM t1; 177 178--echo sync_slave_with_master; 179sync_slave_with_master; 180 181connection slave; 182--sorted_result 183SELECT c1,c2,c21 FROM t1; 184 185connection master; 186perl; 187use DBI; 188use Cache::Memcached; 189my $memd = new Cache::Memcached { 190 'servers' => [ "127.0.0.1:11270" ] 191}; 192print "Here the memcached results after add Frankfurt|:\n"; 193$val = $memd->add("F","Frankfurt|"); 194$val = $memd->get("F"); 195if ($val) { print "$val\n"; } 196print "Here the memcached results after add |Airport:\n"; 197$val = $memd->add("F","|"); 198$val = $memd->get("F"); 199if ($val) { print "$val\n"; } 200$memd->disconnect_all; 201EOF 202 203--sorted_result 204SELECT c1,c2,c21 FROM t1; 205 206--echo sync_slave_with_master; 207sync_slave_with_master; 208 209connection slave; 210--sorted_result 211SELECT c1,c2,c21 FROM t1; 212 213connection master; 214perl; 215use DBI; 216use Cache::Memcached; 217my $memd = new Cache::Memcached { 218 'servers' => [ "127.0.0.1:11270" ] 219}; 220print "Here the memcached results after replace Frankfurt a.M.:\n"; 221$val = $memd->replace("F","Frankfurt a. M.|"); 222$val = $memd->get("F"); 223if ($val) { print "$val\n"; } 224print "Here the memcached results after replace Sachsenhausen:\n"; 225$val = $memd->replace("F","|Sachsenhausen"); 226$val = $memd->get("F"); 227if ($val) { print "$val\n"; } 228$memd->disconnect_all; 229EOF 230 231--sorted_result 232SELECT c1,c2,c21 FROM t1; 233 234--echo sync_slave_with_master; 235sync_slave_with_master; 236 237connection slave; 238--sorted_result 239SELECT c1,c2,c21 FROM t1; 240 241connection master; 242DROP TABLE t1; 243 244UNINSTALL PLUGIN daemon_memcached; 245DROP DATABASE innodb_memcache; 246 247SET @@global.tx_isolation= @tx_isolation; 248sync_slave_with_master; 249source include/rpl_end.inc; 250 251