def test_invalidation_failure(self): start = self.replica_vars()['InternalErrors'].get('Invalidation', 0) self.perform_insert(10) utils.mysql_write_query( master_tablet.tablet_uid, 'vt_test_keyspace', "update vt_insert_test set msg = 'foo' where id = 1") self._wait_for_replica() time.sleep(1.0) end1 = self.replica_vars()['InternalErrors'].get('Invalidation', 0) self.assertEqual(start + 1, end1) utils.mysql_query(master_tablet.tablet_uid, 'vt_test_keyspace', "truncate table vt_insert_test") self._wait_for_replica() time.sleep(1.0) end2 = self.replica_vars()['InternalErrors'].get('Invalidation', 0) self.assertEqual(end1 + 1, end2)
def test_invalidation_failure(self): start = self.replica_vars()['InternalErrors'].get('Invalidation', 0) self.perform_insert(10) utils.mysql_write_query(master_tablet.tablet_uid, 'vt_test_keyspace', "update vt_insert_test set msg = 'foo' where id = 1") self._wait_for_replica() time.sleep(1.0) end1 = self.replica_vars()['InternalErrors'].get('Invalidation', 0) self.assertEqual(start+1, end1) utils.mysql_query(master_tablet.tablet_uid, 'vt_test_keyspace', "truncate table vt_insert_test") self._wait_for_replica() time.sleep(1.0) end2 = self.replica_vars()['InternalErrors'].get('Invalidation', 0) self.assertEqual(end1+1, end2)
def test_outofband_statements(self): start = self.replica_vars()['InternalErrors'].get('Invalidation', 0) self._exec_vt_txn( ["insert into vt_insert_test (id, msg) values (1000000, 'start')"]) self._wait_for_replica() time.sleep(1.0) # Test update statement result = self._exec_replica_query( "select * from vt_insert_test where id = 1000000") self.assertEqual(result, [(1000000, 'start')]) utils.mysql_write_query( master_tablet.tablet_uid, 'vt_test_keyspace', "update vt_insert_test set msg = 'foo' where id = 1000000") self._wait_for_replica() time.sleep(1.0) result = self._exec_replica_query( "select * from vt_insert_test where id = 1000000") self.assertEqual(result, [(1000000, 'foo')]) end1 = self.replica_vars()['InternalErrors'].get('Invalidation', 0) self.assertEqual(start, end1) # Test delete statement utils.mysql_write_query( master_tablet.tablet_uid, 'vt_test_keyspace', "delete from vt_insert_test where id = 1000000") self._wait_for_replica() time.sleep(1.0) result = self._exec_replica_query( "select * from vt_insert_test where id = 1000000") self.assertEqual(result, []) end2 = self.replica_vars()['InternalErrors'].get('Invalidation', 0) self.assertEqual(end1, end2) # Test insert statement utils.mysql_write_query( master_tablet.tablet_uid, 'vt_test_keyspace', "insert into vt_insert_test (id, msg) values(1000000, 'bar')") self._wait_for_replica() time.sleep(1.0) result = self._exec_replica_query( "select * from vt_insert_test where id = 1000000") self.assertEqual(result, [(1000000, 'bar')]) end3 = self.replica_vars()['InternalErrors'].get('Invalidation', 0) self.assertEqual(end2, end3) # Test unrecognized statement utils.mysql_query(master_tablet.tablet_uid, 'vt_test_keyspace', "truncate table vt_insert_test") self._wait_for_replica() time.sleep(1.0) end4 = self.replica_vars()['InternalErrors'].get('Invalidation', 0) self.assertEqual(end4, end3 + 1)
def test_outofband_statements(self): start = self.replica_vars()['InternalErrors'].get('Invalidation', 0) # Test update statement self._exec_vt_txn( "insert into vt_insert_test (id, msg) values (1000000, 'start')") self._wait_for_replica() self._wait_for_value([[1000000, 'start']]) utils.mysql_write_query( master_tablet.tablet_uid, 'vt_test_keyspace', "update vt_insert_test set msg = 'foo' where id = 1000000") self._wait_for_replica() self._wait_for_value([[1000000, 'foo']]) end1 = self.replica_vars()['InternalErrors'].get('Invalidation', 0) self.assertEqual(start, end1) # Test delete statement utils.mysql_write_query(master_tablet.tablet_uid, 'vt_test_keyspace', 'delete from vt_insert_test where id = 1000000') self._wait_for_replica() self._wait_for_value([]) end2 = self.replica_vars()['InternalErrors'].get('Invalidation', 0) self.assertEqual(end1, end2) # Test insert statement utils.mysql_write_query( master_tablet.tablet_uid, 'vt_test_keyspace', "insert into vt_insert_test (id, msg) values(1000000, 'bar')") self._wait_for_replica() self._wait_for_value([[1000000, 'bar']]) end3 = self.replica_vars()['InternalErrors'].get('Invalidation', 0) self.assertEqual(end2, end3) # Test unrecognized statement utils.mysql_query(master_tablet.tablet_uid, 'vt_test_keyspace', 'truncate table vt_insert_test') self._wait_for_replica() timeout = 10 while True: end4 = self.replica_vars()['InternalErrors'].get('Invalidation', 0) if end4 == end3+1: break timeout = utils.wait_step('invalidation errors, got %d expecting %d' % (end4, end3+1), timeout, sleep_time=0.1) self.assertEqual(end4, end3+1)
def test_outofband_statements(self): start = self.replica_vars()['InternalErrors'].get('Invalidation', 0) # Test update statement self._exec_vt_txn( "insert into vt_insert_test (id, msg) values (1000000, 'start')") self._wait_for_replica() self._wait_for_value([['1000000', 'start']]) utils.mysql_write_query( master_tablet.tablet_uid, 'vt_test_keyspace', "update vt_insert_test set msg = 'foo' where id = 1000000") self._wait_for_replica() self._wait_for_value([['1000000', 'foo']]) end1 = self.replica_vars()['InternalErrors'].get('Invalidation', 0) self.assertEqual(start, end1) # Test delete statement utils.mysql_write_query(master_tablet.tablet_uid, 'vt_test_keyspace', 'delete from vt_insert_test where id = 1000000') self._wait_for_replica() self._wait_for_value([]) end2 = self.replica_vars()['InternalErrors'].get('Invalidation', 0) self.assertEqual(end1, end2) # Test insert statement utils.mysql_write_query( master_tablet.tablet_uid, 'vt_test_keyspace', "insert into vt_insert_test (id, msg) values(1000000, 'bar')") self._wait_for_replica() self._wait_for_value([['1000000', 'bar']]) end3 = self.replica_vars()['InternalErrors'].get('Invalidation', 0) self.assertEqual(end2, end3) # Test unrecognized statement utils.mysql_query(master_tablet.tablet_uid, 'vt_test_keyspace', 'truncate table vt_insert_test') self._wait_for_replica() timeout = 10 while True: end4 = self.replica_vars()['InternalErrors'].get('Invalidation', 0) if end4 == end3+1: break timeout = utils.wait_step('invalidation errors, got %d expecting %d' % (end4, end3+1), timeout, sleep_time=0.1) self.assertEqual(end4, end3+1)
def test_outofband_statements(self): start = self.replica_vars()['InternalErrors'].get('Invalidation', 0) self._exec_vt_txn(["insert into vt_insert_test (id, msg) values (1000000, 'start')"]) self._wait_for_replica() time.sleep(1.0) # Test update statement result = self._exec_replica_query('select * from vt_insert_test where id = 1000000') self.assertEqual(result, [(1000000, 'start')]) utils.mysql_write_query(master_tablet.tablet_uid, 'vt_test_keyspace', "update vt_insert_test set msg = 'foo' where id = 1000000") self._wait_for_replica() time.sleep(1.0) result = self._exec_replica_query('select * from vt_insert_test where id = 1000000') self.assertEqual(result, [(1000000, 'foo')]) end1 = self.replica_vars()['InternalErrors'].get('Invalidation', 0) self.assertEqual(start, end1) # Test delete statement utils.mysql_write_query(master_tablet.tablet_uid, 'vt_test_keyspace', 'delete from vt_insert_test where id = 1000000') self._wait_for_replica() time.sleep(1.0) result = self._exec_replica_query('select * from vt_insert_test where id = 1000000') self.assertEqual(result, []) end2 = self.replica_vars()['InternalErrors'].get('Invalidation', 0) self.assertEqual(end1, end2) # Test insert statement utils.mysql_write_query(master_tablet.tablet_uid, 'vt_test_keyspace', "insert into vt_insert_test (id, msg) values(1000000, 'bar')") self._wait_for_replica() time.sleep(1.0) result = self._exec_replica_query('select * from vt_insert_test where id = 1000000') self.assertEqual(result, [(1000000, 'bar')]) end3 = self.replica_vars()['InternalErrors'].get('Invalidation', 0) self.assertEqual(end2, end3) # Test unrecognized statement utils.mysql_query(master_tablet.tablet_uid, 'vt_test_keyspace', 'truncate table vt_insert_test') self._wait_for_replica() time.sleep(1.0) end4 = self.replica_vars()['InternalErrors'].get('Invalidation', 0) self.assertEqual(end4, end3+1)