Add tests for concurrent INSERT and VACUUM behaviour

pull/1561/head
Burak Yucesoy 2017-07-10 15:46:48 +03:00 committed by Jason Petersen
parent 0f01dc3bb8
commit dd6a456bed
3 changed files with 86 additions and 1 deletions

View File

@ -0,0 +1,36 @@
Parsed test spec with 2 sessions
starting permutation: s1-begin s1-insert s2-vacuum-analyze s1-commit
create_distributed_table
step s1-begin:
BEGIN;
step s1-insert:
INSERT INTO test_insert_vacuum VALUES(1, 1);
step s2-vacuum-analyze:
VACUUM ANALYZE test_insert_vacuum;
step s1-commit:
COMMIT;
starting permutation: s1-begin s1-insert s2-vacuum-full s1-commit
create_distributed_table
step s1-begin:
BEGIN;
step s1-insert:
INSERT INTO test_insert_vacuum VALUES(1, 1);
step s2-vacuum-full:
VACUUM FULL test_insert_vacuum;
<waiting ...>
step s1-commit:
COMMIT;
step s2-vacuum-full: <... completed>

View File

@ -7,4 +7,6 @@ test: isolation_cluster_management
test: isolation_dml_vs_repair isolation_copy_placement_vs_copy_placement
test: isolation_concurrent_dml isolation_data_migration
test: isolation_drop_shards isolation_copy_placement_vs_modification
test: isolation_drop_shards isolation_copy_placement_vs_modification
test: isolation_insert_vs_vacuum

View File

@ -0,0 +1,47 @@
setup
{
SET citus.shard_replication_factor TO 1;
CREATE TABLE test_insert_vacuum(column1 int, column2 int);
SELECT create_distributed_table('test_insert_vacuum', 'column1');
}
teardown
{
DROP TABLE test_insert_vacuum;
}
session "s1"
step "s1-begin"
{
BEGIN;
}
step "s1-insert"
{
INSERT INTO test_insert_vacuum VALUES(1, 1);
}
step "s1-commit"
{
COMMIT;
}
session "s2"
step "s2-vacuum-analyze"
{
VACUUM ANALYZE test_insert_vacuum;
}
step "s2-vacuum-full"
{
VACUUM FULL test_insert_vacuum;
}
# INSERT and VACUUM ANALYZE should not block each other.
permutation "s1-begin" "s1-insert" "s2-vacuum-analyze" "s1-commit"
# INSERT and VACUUM FULL should block each other.
permutation "s1-begin" "s1-insert" "s2-vacuum-full" "s1-commit"