def test_keyranges_for_tasks(self): for global_shard_count in (16,32,64): num_tasks = global_shard_count stm = vtrouting.create_parallel_task_keyrange_map(num_tasks, global_shard_count) self.assertEqual(len(stm.keyrange_list), num_tasks) num_tasks = global_shard_count*2 stm = vtrouting.create_parallel_task_keyrange_map(num_tasks, global_shard_count) self.assertEqual(len(stm.keyrange_list), num_tasks) num_tasks = global_shard_count*8 stm = vtrouting.create_parallel_task_keyrange_map(num_tasks, global_shard_count) self.assertEqual(len(stm.keyrange_list), num_tasks)
def test_keyranges_for_tasks(self): for global_shard_count in (16, 32, 64): num_tasks = global_shard_count stm = vtrouting.create_parallel_task_keyrange_map( num_tasks, global_shard_count) self.assertEqual(len(stm.keyrange_list), num_tasks) num_tasks = global_shard_count * 2 stm = vtrouting.create_parallel_task_keyrange_map( num_tasks, global_shard_count) self.assertEqual(len(stm.keyrange_list), num_tasks) num_tasks = global_shard_count * 8 stm = vtrouting.create_parallel_task_keyrange_map( num_tasks, global_shard_count) self.assertEqual(len(stm.keyrange_list), num_tasks)
def test_bind_values_for_unsharded_keyspace(self): stm = vtrouting.create_parallel_task_keyrange_map(1, 1) self.assertEqual(len(stm.keyrange_list), 1) where_clause, bind_vars = vtrouting._create_where_clause_for_keyrange( stm.keyrange_list[0]) self.assertEqual(where_clause, '') self.assertEqual(bind_vars, {})
def test_bind_values_for_str_keyspace(self): stm = vtrouting.create_parallel_task_keyrange_map(16, 16) for _, kr in enumerate(stm.keyrange_list): kr_parts = kr.split('-') where_clause, bind_vars = vtrouting._create_where_clause_for_keyrange( kr, keyspace_col_type=keyrange_constants.KIT_BYTES) if len(bind_vars.keys()) == 1: if kr_parts[0] == '': self.assertNotEqual(where_clause.find('<'), -1) else: self.assertNotEqual(where_clause.find('>='), -1) else: self.assertNotEqual(where_clause.find('>='), -1) self.assertNotEqual(where_clause.find('>='), -1) self.assertNotEqual(where_clause.find('AND'), -1) kid_list = str_shard_kid_map[kr] for keyspace_id in kid_list: if len(bind_vars.keys()) == 1: if kr_parts[0] == '': self.assertLess(keyspace_id.encode('hex'), bind_vars['keyspace_id0']) else: self.assertGreaterEqual(keyspace_id.encode('hex'), bind_vars['keyspace_id0']) else: self.assertGreaterEqual(keyspace_id.encode('hex'), bind_vars['keyspace_id0']) self.assertLess(keyspace_id.encode('hex'), bind_vars['keyspace_id1'])
def test_bind_values_for_str_keyspace(self): stm = vtrouting.create_parallel_task_keyrange_map(16, 16) for _, kr in enumerate(stm.keyrange_list): kr_parts = kr.split("-") where_clause, bind_vars = vtrouting._create_where_clause_for_keyrange( kr, keyspace_col_type=keyrange_constants.KIT_BYTES ) if len(bind_vars.keys()) == 1: if kr_parts[0]: self.assertNotEqual(where_clause.find(">="), -1) else: self.assertNotEqual(where_clause.find("<"), -1) else: self.assertNotEqual(where_clause.find(">="), -1) self.assertNotEqual(where_clause.find(">="), -1) self.assertNotEqual(where_clause.find("AND"), -1) kid_list = str_shard_kid_map[kr] for keyspace_id in kid_list: if len(bind_vars.keys()) == 1: if kr_parts[0]: self.assertGreaterEqual(keyspace_id.encode("hex"), bind_vars["keyspace_id0"]) else: self.assertLess(keyspace_id.encode("hex"), bind_vars["keyspace_id0"]) else: self.assertGreaterEqual(keyspace_id.encode("hex"), bind_vars["keyspace_id0"]) self.assertLess(keyspace_id.encode("hex"), bind_vars["keyspace_id1"])
def test_bind_values_for_int_keyspace(self): stm = vtrouting.create_parallel_task_keyrange_map(16, 16) for kr in stm.keyrange_list: kr_parts = kr.split('-') where_clause, bind_vars = vtrouting._create_where_clause_for_keyrange( kr) if len(bind_vars.keys()) == 1: if kr_parts[0]: self.assertNotEqual(where_clause.find('>='), -1) else: self.assertNotEqual(where_clause.find('<'), -1) else: self.assertNotEqual(where_clause.find('>='), -1) self.assertNotEqual(where_clause.find('AND'), -1) kid_list = int_shard_kid_map[kr] for keyspace_id in kid_list: if len(bind_vars.keys()) == 1: if kr_parts[0]: self.assertGreaterEqual(keyspace_id, bind_vars['keyspace_id0']) else: self.assertLess(keyspace_id, bind_vars['keyspace_id0']) else: self.assertGreaterEqual(keyspace_id, bind_vars['keyspace_id0']) self.assertLess(keyspace_id, bind_vars['keyspace_id1'])
def test_bind_values_for_str_keyspace(self): stm = vtrouting.create_parallel_task_keyrange_map(16, 16) for kr in stm.keyrange_list: kr_parts = kr.split('-') where_clause, bind_vars = vtrouting._create_where_clause_for_keyrange( kr, keyspace_col_type=keyrange_constants.KIT_BYTES) if len(bind_vars.keys()) == 1: if kr_parts[0]: self.assertNotEqual(where_clause.find('>='), -1) else: self.assertNotEqual(where_clause.find('<'), -1) else: self.assertNotEqual(where_clause.find('>='), -1) self.assertNotEqual(where_clause.find('>='), -1) self.assertNotEqual(where_clause.find('AND'), -1) kid_list = str_shard_kid_map[kr] for keyspace_id in kid_list: if len(bind_vars.keys()) == 1: if kr_parts[0]: self.assertGreaterEqual( keyspace_id.encode('hex'), bind_vars['keyspace_id0']) else: self.assertLess( keyspace_id.encode('hex'), bind_vars['keyspace_id0']) else: self.assertGreaterEqual( keyspace_id.encode('hex'), bind_vars['keyspace_id0']) self.assertLess(keyspace_id.encode('hex'), bind_vars['keyspace_id1'])
def test_bind_values_for_int_keyspace(self): stm = vtrouting.create_parallel_task_keyrange_map(16, 16) for _, kr in enumerate(stm.keyrange_list): kr_parts = kr.split('-') where_clause, bind_vars = vtrouting._create_where_clause_for_keyrange(kr) if len(bind_vars.keys()) == 1: if kr_parts[0] == '': self.assertNotEqual(where_clause.find('<'), -1) else: self.assertNotEqual(where_clause.find('>='), -1) else: self.assertNotEqual(where_clause.find('>='), -1) self.assertNotEqual(where_clause.find('>='), -1) self.assertNotEqual(where_clause.find('AND'), -1) kid_list = int_shard_kid_map[kr] for keyspace_id in kid_list: if len(bind_vars.keys()) == 1: if kr_parts[0] == '': self.assertLess(keyspace_id, bind_vars['keyspace_id0']) else: self.assertGreaterEqual(keyspace_id, bind_vars['keyspace_id0']) else: self.assertGreaterEqual(keyspace_id, bind_vars['keyspace_id0']) self.assertLess(keyspace_id, bind_vars['keyspace_id1'])
def test_keyranges_for_tasks(self): for shard_count in (16, 32, 64): for num_tasks in (shard_count, shard_count * 2, shard_count * 4): stm = vtrouting.create_parallel_task_keyrange_map( num_tasks, shard_count) self.assertEqual(len(stm.keyrange_list), num_tasks)
def test_incorrect_tasks(self): global_shard_count = 16 with self.assertRaises(dbexceptions.ProgrammingError): vtrouting.create_parallel_task_keyrange_map(4, global_shard_count)
def test_keyranges_for_tasks(self): for shard_count in (16, 32, 64): for num_tasks in (shard_count, shard_count * 2, shard_count * 4): stm = vtrouting.create_parallel_task_keyrange_map(num_tasks, shard_count) self.assertEqual(len(stm.keyrange_list), num_tasks)