citus/src/test/regress/spec/isolation_shard_rebalancer....

115 lines
2.9 KiB
Ruby

setup
{
SELECT 1 FROM master_add_node('localhost', 57637);
SELECT 1 FROM master_add_node('localhost', 57638);
CREATE TABLE colocated1 (test_id integer NOT NULL, data text);
SELECT create_distributed_table('colocated1', 'test_id', 'hash', 'none');
CREATE TABLE colocated2 (test_id integer NOT NULL, data text);
SELECT create_distributed_table('colocated2', 'test_id', 'hash', 'colocated1');
CREATE TABLE non_colocated (test_id integer NOT NULL, data text);
SELECT create_distributed_table('non_colocated', 'test_id', 'hash', 'none');
}
teardown
{
DROP TABLE non_colocated;
DROP TABLE colocated2;
DROP TABLE colocated1;
SELECT master_set_node_property('localhost', 57638, 'shouldhaveshards', true);
}
session "s1"
step "s1-rebalance-c1"
{
BEGIN;
select rebalance_table_shards('colocated1');
}
step "s1-replicate-c1"
{
BEGIN;
select replicate_table_shards('colocated1');
}
step "s1-rebalance-nc"
{
BEGIN;
select rebalance_table_shards('non_colocated');
}
step "s1-replicate-nc"
{
BEGIN;
select replicate_table_shards('non_colocated');
}
step "s1-commit"
{
COMMIT;
}
session "s2"
step "s2-rebalance-c2"
{
select rebalance_table_shards('colocated2');
}
step "s2-replicate-c2"
{
select replicate_table_shards('colocated2');
}
step "s2-rebalance-nc"
{
select rebalance_table_shards('non_colocated');
}
step "s2-replicate-nc"
{
select replicate_table_shards('non_colocated');
}
step "s2-rebalance-all"
{
select rebalance_table_shards();
}
step "s2-drain"
{
select master_drain_node('localhost', 57638);
}
// disallowed because it's the same table
permutation "s1-rebalance-nc" "s2-rebalance-nc" "s1-commit"
permutation "s1-rebalance-nc" "s2-replicate-nc" "s1-commit"
permutation "s1-replicate-nc" "s2-rebalance-nc" "s1-commit"
permutation "s1-replicate-nc" "s2-replicate-nc" "s1-commit"
// disallowed because it's the same colocation group
permutation "s1-rebalance-c1" "s2-rebalance-c2" "s1-commit"
permutation "s1-rebalance-c1" "s2-replicate-c2" "s1-commit"
permutation "s1-replicate-c1" "s2-rebalance-c2" "s1-commit"
permutation "s1-replicate-c1" "s2-replicate-c2" "s1-commit"
// allowed because it's a different colocation group
permutation "s1-rebalance-c1" "s2-rebalance-nc" "s1-commit"
permutation "s1-rebalance-c1" "s2-replicate-nc" "s1-commit"
permutation "s1-replicate-c1" "s2-rebalance-nc" "s1-commit"
permutation "s1-replicate-c1" "s2-replicate-nc" "s1-commit"
// disallowed because we because colocated1 is part of all
permutation "s1-rebalance-c1" "s2-rebalance-all" "s1-commit"
permutation "s1-replicate-c1" "s2-rebalance-all" "s1-commit"
permutation "s1-rebalance-nc" "s2-rebalance-all" "s1-commit"
permutation "s1-replicate-nc" "s2-rebalance-all" "s1-commit"
// disallowed because we because draining is rebalancing
permutation "s1-rebalance-c1" "s2-drain" "s1-commit"
permutation "s1-replicate-c1" "s2-drain" "s1-commit"
permutation "s1-rebalance-nc" "s2-drain" "s1-commit"
permutation "s1-replicate-nc" "s2-drain" "s1-commit"