mirror of https://github.com/citusdata/citus.git
115 lines
2.9 KiB
Ruby
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"
|