From 0596062f96553ff54cf66d9d906000502cd4fb17 Mon Sep 17 00:00:00 2001 From: Onder Kalaci Date: Mon, 16 May 2022 11:30:30 +0200 Subject: [PATCH] Serialize reference table modifications with node changes & restore point With Citus MX enabled, when a reference table is modified, it does some operations on the first worker node(e.g., acquire locks). If node metadata is locked (via add node or create restore point), the changes to the reference tables should be blocked. --- ...add_node_vs_reference_table_operations.out | 552 +++++++++--------- .../isolation_create_restore_point.out | 243 ++++---- 2 files changed, 403 insertions(+), 392 deletions(-) diff --git a/src/test/regress/expected/isolation_add_node_vs_reference_table_operations.out b/src/test/regress/expected/isolation_add_node_vs_reference_table_operations.out index 8e99fc100..26fb85aae 100644 --- a/src/test/regress/expected/isolation_add_node_vs_reference_table_operations.out +++ b/src/test/regress/expected/isolation_add_node_vs_reference_table_operations.out @@ -7,16 +7,16 @@ create_distributed_table (1 row) step s1-do-not-replicate-on-activate: - SET citus.replicate_reference_tables_on_activate TO off; + SET citus.replicate_reference_tables_on_activate TO off; step s2-load-metadata-cache: - COPY test_reference_table FROM PROGRAM 'echo 1 && echo 2 && echo 3 && echo 4 && echo 5'; + COPY test_reference_table FROM PROGRAM 'echo 1 && echo 2 && echo 3 && echo 4 && echo 5'; step s1-begin: BEGIN; step s1-add-second-worker: - SELECT 1 FROM master_add_node('localhost', 57638); + SELECT 1 FROM master_add_node('localhost', 57638); ?column? --------------------------------------------------------------------- @@ -24,18 +24,19 @@ step s1-add-second-worker: (1 row) step s2-copy-to-reference-table: - COPY test_reference_table FROM PROGRAM 'echo 1 && echo 2 && echo 3 && echo 4 && echo 5'; - -step s1-commit: + COPY test_reference_table FROM PROGRAM 'echo 1 && echo 2 && echo 3 && echo 4 && echo 5'; + +step s1-commit: COMMIT; +step s2-copy-to-reference-table: <... completed> step s2-print-content: - SELECT - nodeport, success, result - FROM - run_command_on_placements('test_reference_table', 'select count(*) from %s') - ORDER BY - nodeport; + SELECT + nodeport, success, result + FROM + run_command_on_placements('test_reference_table', 'select count(*) from %s') + ORDER BY + nodeport; nodeport|success|result --------------------------------------------------------------------- @@ -56,35 +57,36 @@ create_distributed_table (1 row) step s1-do-not-replicate-on-activate: - SET citus.replicate_reference_tables_on_activate TO off; + SET citus.replicate_reference_tables_on_activate TO off; step s2-load-metadata-cache: - COPY test_reference_table FROM PROGRAM 'echo 1 && echo 2 && echo 3 && echo 4 && echo 5'; + COPY test_reference_table FROM PROGRAM 'echo 1 && echo 2 && echo 3 && echo 4 && echo 5'; step s2-begin: - BEGIN; + BEGIN; step s2-copy-to-reference-table: - COPY test_reference_table FROM PROGRAM 'echo 1 && echo 2 && echo 3 && echo 4 && echo 5'; + COPY test_reference_table FROM PROGRAM 'echo 1 && echo 2 && echo 3 && echo 4 && echo 5'; step s1-add-second-worker: - SELECT 1 FROM master_add_node('localhost', 57638); + SELECT 1 FROM master_add_node('localhost', 57638); + +step s2-commit: + COMMIT; +step s1-add-second-worker: <... completed> ?column? --------------------------------------------------------------------- 1 (1 row) -step s2-commit: - COMMIT; - step s2-print-content: - SELECT - nodeport, success, result - FROM - run_command_on_placements('test_reference_table', 'select count(*) from %s') - ORDER BY - nodeport; + SELECT + nodeport, success, result + FROM + run_command_on_placements('test_reference_table', 'select count(*) from %s') + ORDER BY + nodeport; nodeport|success|result --------------------------------------------------------------------- @@ -105,16 +107,16 @@ create_distributed_table (1 row) step s1-do-not-replicate-on-activate: - SET citus.replicate_reference_tables_on_activate TO off; + SET citus.replicate_reference_tables_on_activate TO off; step s2-load-metadata-cache: - COPY test_reference_table FROM PROGRAM 'echo 1 && echo 2 && echo 3 && echo 4 && echo 5'; + COPY test_reference_table FROM PROGRAM 'echo 1 && echo 2 && echo 3 && echo 4 && echo 5'; step s1-begin: BEGIN; step s1-add-second-worker: - SELECT 1 FROM master_add_node('localhost', 57638); + SELECT 1 FROM master_add_node('localhost', 57638); ?column? --------------------------------------------------------------------- @@ -122,18 +124,19 @@ step s1-add-second-worker: (1 row) step s2-insert-to-reference-table: - INSERT INTO test_reference_table VALUES (6); - -step s1-commit: + INSERT INTO test_reference_table VALUES (6); + +step s1-commit: COMMIT; +step s2-insert-to-reference-table: <... completed> step s2-print-content: - SELECT - nodeport, success, result - FROM - run_command_on_placements('test_reference_table', 'select count(*) from %s') - ORDER BY - nodeport; + SELECT + nodeport, success, result + FROM + run_command_on_placements('test_reference_table', 'select count(*) from %s') + ORDER BY + nodeport; nodeport|success|result --------------------------------------------------------------------- @@ -154,35 +157,36 @@ create_distributed_table (1 row) step s1-do-not-replicate-on-activate: - SET citus.replicate_reference_tables_on_activate TO off; + SET citus.replicate_reference_tables_on_activate TO off; step s2-load-metadata-cache: - COPY test_reference_table FROM PROGRAM 'echo 1 && echo 2 && echo 3 && echo 4 && echo 5'; + COPY test_reference_table FROM PROGRAM 'echo 1 && echo 2 && echo 3 && echo 4 && echo 5'; step s2-begin: - BEGIN; + BEGIN; step s2-insert-to-reference-table: - INSERT INTO test_reference_table VALUES (6); + INSERT INTO test_reference_table VALUES (6); step s1-add-second-worker: - SELECT 1 FROM master_add_node('localhost', 57638); + SELECT 1 FROM master_add_node('localhost', 57638); + +step s2-commit: + COMMIT; +step s1-add-second-worker: <... completed> ?column? --------------------------------------------------------------------- 1 (1 row) -step s2-commit: - COMMIT; - step s2-print-content: - SELECT - nodeport, success, result - FROM - run_command_on_placements('test_reference_table', 'select count(*) from %s') - ORDER BY - nodeport; + SELECT + nodeport, success, result + FROM + run_command_on_placements('test_reference_table', 'select count(*) from %s') + ORDER BY + nodeport; nodeport|success|result --------------------------------------------------------------------- @@ -203,16 +207,16 @@ create_distributed_table (1 row) step s1-do-not-replicate-on-activate: - SET citus.replicate_reference_tables_on_activate TO off; + SET citus.replicate_reference_tables_on_activate TO off; step s2-load-metadata-cache: - COPY test_reference_table FROM PROGRAM 'echo 1 && echo 2 && echo 3 && echo 4 && echo 5'; + COPY test_reference_table FROM PROGRAM 'echo 1 && echo 2 && echo 3 && echo 4 && echo 5'; step s1-begin: BEGIN; step s1-add-second-worker: - SELECT 1 FROM master_add_node('localhost', 57638); + SELECT 1 FROM master_add_node('localhost', 57638); ?column? --------------------------------------------------------------------- @@ -220,19 +224,19 @@ step s1-add-second-worker: (1 row) step s2-ddl-on-reference-table: - CREATE INDEX reference_index ON test_reference_table(test_id); + CREATE INDEX reference_index ON test_reference_table(test_id); step s1-commit: COMMIT; step s2-ddl-on-reference-table: <... completed> step s2-print-index-count: - SELECT - nodeport, success, result - FROM - run_command_on_placements('test_reference_table', 'select count(*) from pg_indexes WHERE tablename = ''%s''') - ORDER BY - nodeport; + SELECT + nodeport, success, result + FROM + run_command_on_placements('test_reference_table', 'select count(*) from pg_indexes WHERE tablename = ''%s''') + ORDER BY + nodeport; nodeport|success|result --------------------------------------------------------------------- @@ -253,22 +257,22 @@ create_distributed_table (1 row) step s1-do-not-replicate-on-activate: - SET citus.replicate_reference_tables_on_activate TO off; + SET citus.replicate_reference_tables_on_activate TO off; step s2-load-metadata-cache: - COPY test_reference_table FROM PROGRAM 'echo 1 && echo 2 && echo 3 && echo 4 && echo 5'; + COPY test_reference_table FROM PROGRAM 'echo 1 && echo 2 && echo 3 && echo 4 && echo 5'; step s2-begin: - BEGIN; + BEGIN; step s2-ddl-on-reference-table: - CREATE INDEX reference_index ON test_reference_table(test_id); + CREATE INDEX reference_index ON test_reference_table(test_id); step s1-add-second-worker: - SELECT 1 FROM master_add_node('localhost', 57638); + SELECT 1 FROM master_add_node('localhost', 57638); step s2-commit: - COMMIT; + COMMIT; step s1-add-second-worker: <... completed> ?column? @@ -277,12 +281,12 @@ step s1-add-second-worker: <... completed> (1 row) step s2-print-index-count: - SELECT - nodeport, success, result - FROM - run_command_on_placements('test_reference_table', 'select count(*) from pg_indexes WHERE tablename = ''%s''') - ORDER BY - nodeport; + SELECT + nodeport, success, result + FROM + run_command_on_placements('test_reference_table', 'select count(*) from pg_indexes WHERE tablename = ''%s''') + ORDER BY + nodeport; nodeport|success|result --------------------------------------------------------------------- @@ -303,16 +307,16 @@ create_distributed_table (1 row) step s1-do-not-replicate-on-activate: - SET citus.replicate_reference_tables_on_activate TO off; + SET citus.replicate_reference_tables_on_activate TO off; step s2-load-metadata-cache: - COPY test_reference_table FROM PROGRAM 'echo 1 && echo 2 && echo 3 && echo 4 && echo 5'; + COPY test_reference_table FROM PROGRAM 'echo 1 && echo 2 && echo 3 && echo 4 && echo 5'; step s1-begin: BEGIN; step s1-add-second-worker: - SELECT 1 FROM master_add_node('localhost', 57638); + SELECT 1 FROM master_add_node('localhost', 57638); ?column? --------------------------------------------------------------------- @@ -320,7 +324,7 @@ step s1-add-second-worker: (1 row) step s2-create-reference-table-2: - SELECT create_reference_table('test_reference_table_2'); + SELECT create_reference_table('test_reference_table_2'); step s1-commit: COMMIT; @@ -332,12 +336,12 @@ create_reference_table (1 row) step s2-print-content-2: - SELECT - nodeport, success, result - FROM - run_command_on_placements('test_reference_table_2', 'select count(*) from %s') - ORDER BY - nodeport; + SELECT + nodeport, success, result + FROM + run_command_on_placements('test_reference_table_2', 'select count(*) from %s') + ORDER BY + nodeport; nodeport|success|result --------------------------------------------------------------------- @@ -359,16 +363,16 @@ create_distributed_table (1 row) step s1-do-not-replicate-on-activate: - SET citus.replicate_reference_tables_on_activate TO off; + SET citus.replicate_reference_tables_on_activate TO off; step s2-load-metadata-cache: - COPY test_reference_table FROM PROGRAM 'echo 1 && echo 2 && echo 3 && echo 4 && echo 5'; + COPY test_reference_table FROM PROGRAM 'echo 1 && echo 2 && echo 3 && echo 4 && echo 5'; step s2-begin: - BEGIN; + BEGIN; step s2-create-reference-table-2: - SELECT create_reference_table('test_reference_table_2'); + SELECT create_reference_table('test_reference_table_2'); create_reference_table --------------------------------------------------------------------- @@ -376,10 +380,10 @@ create_reference_table (1 row) step s1-add-second-worker: - SELECT 1 FROM master_add_node('localhost', 57638); + SELECT 1 FROM master_add_node('localhost', 57638); step s2-commit: - COMMIT; + COMMIT; step s1-add-second-worker: <... completed> ?column? @@ -388,12 +392,12 @@ step s1-add-second-worker: <... completed> (1 row) step s2-print-content-2: - SELECT - nodeport, success, result - FROM - run_command_on_placements('test_reference_table_2', 'select count(*) from %s') - ORDER BY - nodeport; + SELECT + nodeport, success, result + FROM + run_command_on_placements('test_reference_table_2', 'select count(*) from %s') + ORDER BY + nodeport; nodeport|success|result --------------------------------------------------------------------- @@ -414,13 +418,13 @@ create_distributed_table (1 row) step s1-do-not-replicate-on-activate: - SET citus.replicate_reference_tables_on_activate TO off; + SET citus.replicate_reference_tables_on_activate TO off; step s1-begin: BEGIN; step s1-add-second-worker: - SELECT 1 FROM master_add_node('localhost', 57638); + SELECT 1 FROM master_add_node('localhost', 57638); ?column? --------------------------------------------------------------------- @@ -428,18 +432,19 @@ step s1-add-second-worker: (1 row) step s2-copy-to-reference-table: - COPY test_reference_table FROM PROGRAM 'echo 1 && echo 2 && echo 3 && echo 4 && echo 5'; - -step s1-commit: + COPY test_reference_table FROM PROGRAM 'echo 1 && echo 2 && echo 3 && echo 4 && echo 5'; + +step s1-commit: COMMIT; +step s2-copy-to-reference-table: <... completed> step s2-print-content: - SELECT - nodeport, success, result - FROM - run_command_on_placements('test_reference_table', 'select count(*) from %s') - ORDER BY - nodeport; + SELECT + nodeport, success, result + FROM + run_command_on_placements('test_reference_table', 'select count(*) from %s') + ORDER BY + nodeport; nodeport|success|result --------------------------------------------------------------------- @@ -460,32 +465,33 @@ create_distributed_table (1 row) step s1-do-not-replicate-on-activate: - SET citus.replicate_reference_tables_on_activate TO off; + SET citus.replicate_reference_tables_on_activate TO off; step s2-begin: - BEGIN; + BEGIN; step s2-copy-to-reference-table: - COPY test_reference_table FROM PROGRAM 'echo 1 && echo 2 && echo 3 && echo 4 && echo 5'; + COPY test_reference_table FROM PROGRAM 'echo 1 && echo 2 && echo 3 && echo 4 && echo 5'; step s1-add-second-worker: - SELECT 1 FROM master_add_node('localhost', 57638); + SELECT 1 FROM master_add_node('localhost', 57638); + +step s2-commit: + COMMIT; +step s1-add-second-worker: <... completed> ?column? --------------------------------------------------------------------- 1 (1 row) -step s2-commit: - COMMIT; - step s2-print-content: - SELECT - nodeport, success, result - FROM - run_command_on_placements('test_reference_table', 'select count(*) from %s') - ORDER BY - nodeport; + SELECT + nodeport, success, result + FROM + run_command_on_placements('test_reference_table', 'select count(*) from %s') + ORDER BY + nodeport; nodeport|success|result --------------------------------------------------------------------- @@ -506,13 +512,13 @@ create_distributed_table (1 row) step s1-do-not-replicate-on-activate: - SET citus.replicate_reference_tables_on_activate TO off; + SET citus.replicate_reference_tables_on_activate TO off; step s1-begin: BEGIN; step s1-add-second-worker: - SELECT 1 FROM master_add_node('localhost', 57638); + SELECT 1 FROM master_add_node('localhost', 57638); ?column? --------------------------------------------------------------------- @@ -520,18 +526,19 @@ step s1-add-second-worker: (1 row) step s2-insert-to-reference-table: - INSERT INTO test_reference_table VALUES (6); - -step s1-commit: + INSERT INTO test_reference_table VALUES (6); + +step s1-commit: COMMIT; +step s2-insert-to-reference-table: <... completed> step s2-print-content: - SELECT - nodeport, success, result - FROM - run_command_on_placements('test_reference_table', 'select count(*) from %s') - ORDER BY - nodeport; + SELECT + nodeport, success, result + FROM + run_command_on_placements('test_reference_table', 'select count(*) from %s') + ORDER BY + nodeport; nodeport|success|result --------------------------------------------------------------------- @@ -552,32 +559,33 @@ create_distributed_table (1 row) step s1-do-not-replicate-on-activate: - SET citus.replicate_reference_tables_on_activate TO off; + SET citus.replicate_reference_tables_on_activate TO off; step s2-begin: - BEGIN; + BEGIN; step s2-insert-to-reference-table: - INSERT INTO test_reference_table VALUES (6); + INSERT INTO test_reference_table VALUES (6); step s1-add-second-worker: - SELECT 1 FROM master_add_node('localhost', 57638); + SELECT 1 FROM master_add_node('localhost', 57638); + +step s2-commit: + COMMIT; +step s1-add-second-worker: <... completed> ?column? --------------------------------------------------------------------- 1 (1 row) -step s2-commit: - COMMIT; - step s2-print-content: - SELECT - nodeport, success, result - FROM - run_command_on_placements('test_reference_table', 'select count(*) from %s') - ORDER BY - nodeport; + SELECT + nodeport, success, result + FROM + run_command_on_placements('test_reference_table', 'select count(*) from %s') + ORDER BY + nodeport; nodeport|success|result --------------------------------------------------------------------- @@ -598,13 +606,13 @@ create_distributed_table (1 row) step s1-do-not-replicate-on-activate: - SET citus.replicate_reference_tables_on_activate TO off; + SET citus.replicate_reference_tables_on_activate TO off; step s1-begin: BEGIN; step s1-add-second-worker: - SELECT 1 FROM master_add_node('localhost', 57638); + SELECT 1 FROM master_add_node('localhost', 57638); ?column? --------------------------------------------------------------------- @@ -612,19 +620,19 @@ step s1-add-second-worker: (1 row) step s2-ddl-on-reference-table: - CREATE INDEX reference_index ON test_reference_table(test_id); + CREATE INDEX reference_index ON test_reference_table(test_id); step s1-commit: COMMIT; step s2-ddl-on-reference-table: <... completed> step s2-print-index-count: - SELECT - nodeport, success, result - FROM - run_command_on_placements('test_reference_table', 'select count(*) from pg_indexes WHERE tablename = ''%s''') - ORDER BY - nodeport; + SELECT + nodeport, success, result + FROM + run_command_on_placements('test_reference_table', 'select count(*) from pg_indexes WHERE tablename = ''%s''') + ORDER BY + nodeport; nodeport|success|result --------------------------------------------------------------------- @@ -645,19 +653,19 @@ create_distributed_table (1 row) step s1-do-not-replicate-on-activate: - SET citus.replicate_reference_tables_on_activate TO off; + SET citus.replicate_reference_tables_on_activate TO off; step s2-begin: - BEGIN; + BEGIN; step s2-ddl-on-reference-table: - CREATE INDEX reference_index ON test_reference_table(test_id); + CREATE INDEX reference_index ON test_reference_table(test_id); step s1-add-second-worker: - SELECT 1 FROM master_add_node('localhost', 57638); + SELECT 1 FROM master_add_node('localhost', 57638); step s2-commit: - COMMIT; + COMMIT; step s1-add-second-worker: <... completed> ?column? @@ -666,12 +674,12 @@ step s1-add-second-worker: <... completed> (1 row) step s2-print-index-count: - SELECT - nodeport, success, result - FROM - run_command_on_placements('test_reference_table', 'select count(*) from pg_indexes WHERE tablename = ''%s''') - ORDER BY - nodeport; + SELECT + nodeport, success, result + FROM + run_command_on_placements('test_reference_table', 'select count(*) from pg_indexes WHERE tablename = ''%s''') + ORDER BY + nodeport; nodeport|success|result --------------------------------------------------------------------- @@ -692,13 +700,13 @@ create_distributed_table (1 row) step s1-do-not-replicate-on-activate: - SET citus.replicate_reference_tables_on_activate TO off; + SET citus.replicate_reference_tables_on_activate TO off; step s1-begin: BEGIN; step s1-add-second-worker: - SELECT 1 FROM master_add_node('localhost', 57638); + SELECT 1 FROM master_add_node('localhost', 57638); ?column? --------------------------------------------------------------------- @@ -706,7 +714,7 @@ step s1-add-second-worker: (1 row) step s2-create-reference-table-2: - SELECT create_reference_table('test_reference_table_2'); + SELECT create_reference_table('test_reference_table_2'); step s1-commit: COMMIT; @@ -718,12 +726,12 @@ create_reference_table (1 row) step s2-print-content-2: - SELECT - nodeport, success, result - FROM - run_command_on_placements('test_reference_table_2', 'select count(*) from %s') - ORDER BY - nodeport; + SELECT + nodeport, success, result + FROM + run_command_on_placements('test_reference_table_2', 'select count(*) from %s') + ORDER BY + nodeport; nodeport|success|result --------------------------------------------------------------------- @@ -745,13 +753,13 @@ create_distributed_table (1 row) step s1-do-not-replicate-on-activate: - SET citus.replicate_reference_tables_on_activate TO off; + SET citus.replicate_reference_tables_on_activate TO off; step s2-begin: - BEGIN; + BEGIN; step s2-create-reference-table-2: - SELECT create_reference_table('test_reference_table_2'); + SELECT create_reference_table('test_reference_table_2'); create_reference_table --------------------------------------------------------------------- @@ -759,10 +767,10 @@ create_reference_table (1 row) step s1-add-second-worker: - SELECT 1 FROM master_add_node('localhost', 57638); + SELECT 1 FROM master_add_node('localhost', 57638); step s2-commit: - COMMIT; + COMMIT; step s1-add-second-worker: <... completed> ?column? @@ -771,12 +779,12 @@ step s1-add-second-worker: <... completed> (1 row) step s2-print-content-2: - SELECT - nodeport, success, result - FROM - run_command_on_placements('test_reference_table_2', 'select count(*) from %s') - ORDER BY - nodeport; + SELECT + nodeport, success, result + FROM + run_command_on_placements('test_reference_table_2', 'select count(*) from %s') + ORDER BY + nodeport; nodeport|success|result --------------------------------------------------------------------- @@ -797,13 +805,13 @@ create_distributed_table (1 row) step s1-replicate-on-activate: - SET citus.replicate_reference_tables_on_activate TO on; + SET citus.replicate_reference_tables_on_activate TO on; step s1-begin: BEGIN; step s1-add-second-worker: - SELECT 1 FROM master_add_node('localhost', 57638); + SELECT 1 FROM master_add_node('localhost', 57638); ?column? --------------------------------------------------------------------- @@ -811,19 +819,19 @@ step s1-add-second-worker: (1 row) step s2-copy-to-reference-table: - COPY test_reference_table FROM PROGRAM 'echo 1 && echo 2 && echo 3 && echo 4 && echo 5'; + COPY test_reference_table FROM PROGRAM 'echo 1 && echo 2 && echo 3 && echo 4 && echo 5'; step s1-commit: COMMIT; step s2-copy-to-reference-table: <... completed> step s2-print-content: - SELECT - nodeport, success, result - FROM - run_command_on_placements('test_reference_table', 'select count(*) from %s') - ORDER BY - nodeport; + SELECT + nodeport, success, result + FROM + run_command_on_placements('test_reference_table', 'select count(*) from %s') + ORDER BY + nodeport; nodeport|success|result --------------------------------------------------------------------- @@ -845,19 +853,19 @@ create_distributed_table (1 row) step s1-replicate-on-activate: - SET citus.replicate_reference_tables_on_activate TO on; + SET citus.replicate_reference_tables_on_activate TO on; step s2-begin: - BEGIN; + BEGIN; step s2-copy-to-reference-table: - COPY test_reference_table FROM PROGRAM 'echo 1 && echo 2 && echo 3 && echo 4 && echo 5'; + COPY test_reference_table FROM PROGRAM 'echo 1 && echo 2 && echo 3 && echo 4 && echo 5'; step s1-add-second-worker: - SELECT 1 FROM master_add_node('localhost', 57638); + SELECT 1 FROM master_add_node('localhost', 57638); step s2-commit: - COMMIT; + COMMIT; step s1-add-second-worker: <... completed> ?column? @@ -866,12 +874,12 @@ step s1-add-second-worker: <... completed> (1 row) step s2-print-content: - SELECT - nodeport, success, result - FROM - run_command_on_placements('test_reference_table', 'select count(*) from %s') - ORDER BY - nodeport; + SELECT + nodeport, success, result + FROM + run_command_on_placements('test_reference_table', 'select count(*) from %s') + ORDER BY + nodeport; nodeport|success|result --------------------------------------------------------------------- @@ -893,13 +901,13 @@ create_distributed_table (1 row) step s1-replicate-on-activate: - SET citus.replicate_reference_tables_on_activate TO on; + SET citus.replicate_reference_tables_on_activate TO on; step s1-begin: BEGIN; step s1-add-second-worker: - SELECT 1 FROM master_add_node('localhost', 57638); + SELECT 1 FROM master_add_node('localhost', 57638); ?column? --------------------------------------------------------------------- @@ -907,19 +915,19 @@ step s1-add-second-worker: (1 row) step s2-insert-to-reference-table: - INSERT INTO test_reference_table VALUES (6); + INSERT INTO test_reference_table VALUES (6); step s1-commit: COMMIT; step s2-insert-to-reference-table: <... completed> step s2-print-content: - SELECT - nodeport, success, result - FROM - run_command_on_placements('test_reference_table', 'select count(*) from %s') - ORDER BY - nodeport; + SELECT + nodeport, success, result + FROM + run_command_on_placements('test_reference_table', 'select count(*) from %s') + ORDER BY + nodeport; nodeport|success|result --------------------------------------------------------------------- @@ -941,19 +949,19 @@ create_distributed_table (1 row) step s1-replicate-on-activate: - SET citus.replicate_reference_tables_on_activate TO on; + SET citus.replicate_reference_tables_on_activate TO on; step s2-begin: - BEGIN; + BEGIN; step s2-insert-to-reference-table: - INSERT INTO test_reference_table VALUES (6); + INSERT INTO test_reference_table VALUES (6); step s1-add-second-worker: - SELECT 1 FROM master_add_node('localhost', 57638); + SELECT 1 FROM master_add_node('localhost', 57638); step s2-commit: - COMMIT; + COMMIT; step s1-add-second-worker: <... completed> ?column? @@ -962,12 +970,12 @@ step s1-add-second-worker: <... completed> (1 row) step s2-print-content: - SELECT - nodeport, success, result - FROM - run_command_on_placements('test_reference_table', 'select count(*) from %s') - ORDER BY - nodeport; + SELECT + nodeport, success, result + FROM + run_command_on_placements('test_reference_table', 'select count(*) from %s') + ORDER BY + nodeport; nodeport|success|result --------------------------------------------------------------------- @@ -989,13 +997,13 @@ create_distributed_table (1 row) step s1-replicate-on-activate: - SET citus.replicate_reference_tables_on_activate TO on; + SET citus.replicate_reference_tables_on_activate TO on; step s1-begin: BEGIN; step s1-add-second-worker: - SELECT 1 FROM master_add_node('localhost', 57638); + SELECT 1 FROM master_add_node('localhost', 57638); ?column? --------------------------------------------------------------------- @@ -1003,19 +1011,19 @@ step s1-add-second-worker: (1 row) step s2-ddl-on-reference-table: - CREATE INDEX reference_index ON test_reference_table(test_id); + CREATE INDEX reference_index ON test_reference_table(test_id); step s1-commit: COMMIT; step s2-ddl-on-reference-table: <... completed> step s2-print-index-count: - SELECT - nodeport, success, result - FROM - run_command_on_placements('test_reference_table', 'select count(*) from pg_indexes WHERE tablename = ''%s''') - ORDER BY - nodeport; + SELECT + nodeport, success, result + FROM + run_command_on_placements('test_reference_table', 'select count(*) from pg_indexes WHERE tablename = ''%s''') + ORDER BY + nodeport; nodeport|success|result --------------------------------------------------------------------- @@ -1037,19 +1045,19 @@ create_distributed_table (1 row) step s1-replicate-on-activate: - SET citus.replicate_reference_tables_on_activate TO on; + SET citus.replicate_reference_tables_on_activate TO on; step s2-begin: - BEGIN; + BEGIN; step s2-ddl-on-reference-table: - CREATE INDEX reference_index ON test_reference_table(test_id); + CREATE INDEX reference_index ON test_reference_table(test_id); step s1-add-second-worker: - SELECT 1 FROM master_add_node('localhost', 57638); + SELECT 1 FROM master_add_node('localhost', 57638); step s2-commit: - COMMIT; + COMMIT; step s1-add-second-worker: <... completed> ?column? @@ -1058,12 +1066,12 @@ step s1-add-second-worker: <... completed> (1 row) step s2-print-index-count: - SELECT - nodeport, success, result - FROM - run_command_on_placements('test_reference_table', 'select count(*) from pg_indexes WHERE tablename = ''%s''') - ORDER BY - nodeport; + SELECT + nodeport, success, result + FROM + run_command_on_placements('test_reference_table', 'select count(*) from pg_indexes WHERE tablename = ''%s''') + ORDER BY + nodeport; nodeport|success|result --------------------------------------------------------------------- @@ -1085,13 +1093,13 @@ create_distributed_table (1 row) step s1-replicate-on-activate: - SET citus.replicate_reference_tables_on_activate TO on; + SET citus.replicate_reference_tables_on_activate TO on; step s1-begin: BEGIN; step s1-add-second-worker: - SELECT 1 FROM master_add_node('localhost', 57638); + SELECT 1 FROM master_add_node('localhost', 57638); ?column? --------------------------------------------------------------------- @@ -1099,7 +1107,7 @@ step s1-add-second-worker: (1 row) step s2-create-reference-table-2: - SELECT create_reference_table('test_reference_table_2'); + SELECT create_reference_table('test_reference_table_2'); step s1-commit: COMMIT; @@ -1111,12 +1119,12 @@ create_reference_table (1 row) step s2-print-content-2: - SELECT - nodeport, success, result - FROM - run_command_on_placements('test_reference_table_2', 'select count(*) from %s') - ORDER BY - nodeport; + SELECT + nodeport, success, result + FROM + run_command_on_placements('test_reference_table_2', 'select count(*) from %s') + ORDER BY + nodeport; nodeport|success|result --------------------------------------------------------------------- @@ -1138,13 +1146,13 @@ create_distributed_table (1 row) step s1-replicate-on-activate: - SET citus.replicate_reference_tables_on_activate TO on; + SET citus.replicate_reference_tables_on_activate TO on; step s2-begin: - BEGIN; + BEGIN; step s2-create-reference-table-2: - SELECT create_reference_table('test_reference_table_2'); + SELECT create_reference_table('test_reference_table_2'); create_reference_table --------------------------------------------------------------------- @@ -1152,10 +1160,10 @@ create_reference_table (1 row) step s1-add-second-worker: - SELECT 1 FROM master_add_node('localhost', 57638); + SELECT 1 FROM master_add_node('localhost', 57638); step s2-commit: - COMMIT; + COMMIT; step s1-add-second-worker: <... completed> ?column? @@ -1164,12 +1172,12 @@ step s1-add-second-worker: <... completed> (1 row) step s2-print-content-2: - SELECT - nodeport, success, result - FROM - run_command_on_placements('test_reference_table_2', 'select count(*) from %s') - ORDER BY - nodeport; + SELECT + nodeport, success, result + FROM + run_command_on_placements('test_reference_table_2', 'select count(*) from %s') + ORDER BY + nodeport; nodeport|success|result --------------------------------------------------------------------- @@ -1191,10 +1199,10 @@ create_distributed_table (1 row) step s1-do-not-replicate-on-activate: - SET citus.replicate_reference_tables_on_activate TO off; + SET citus.replicate_reference_tables_on_activate TO off; step s1-add-second-worker: - SELECT 1 FROM master_add_node('localhost', 57638); + SELECT 1 FROM master_add_node('localhost', 57638); ?column? --------------------------------------------------------------------- @@ -1202,18 +1210,18 @@ step s1-add-second-worker: (1 row) step s2-begin: - BEGIN; + BEGIN; step s1-begin: BEGIN; step s1-drop-reference-table: - DROP TABLE test_reference_table; + DROP TABLE test_reference_table; step s2-replicate-reference-tables: - SET client_min_messages TO DEBUG2; - SELECT replicate_reference_tables(); - RESET client_min_messages; + SET client_min_messages TO DEBUG2; + SELECT replicate_reference_tables(); + RESET client_min_messages; step s1-commit: COMMIT; @@ -1225,7 +1233,7 @@ replicate_reference_tables (1 row) step s2-commit: - COMMIT; + COMMIT; master_remove_node --------------------------------------------------------------------- diff --git a/src/test/regress/expected/isolation_create_restore_point.out b/src/test/regress/expected/isolation_create_restore_point.out index 28e8e212b..bf71fa5ed 100644 --- a/src/test/regress/expected/isolation_create_restore_point.out +++ b/src/test/regress/expected/isolation_create_restore_point.out @@ -7,12 +7,12 @@ create_reference_table (1 row) step s1-begin: - BEGIN; - SET citus.multi_shard_commit_protocol TO '2pc'; + BEGIN; + SET citus.multi_shard_commit_protocol TO '2pc'; step s1-create-distributed: - CREATE TABLE test_create_distributed_table (test_id integer NOT NULL, data text); - SELECT create_distributed_table('test_create_distributed_table', 'test_id'); + CREATE TABLE test_create_distributed_table (test_id integer NOT NULL, data text); + SELECT create_distributed_table('test_create_distributed_table', 'test_id'); create_distributed_table --------------------------------------------------------------------- @@ -20,10 +20,10 @@ create_distributed_table (1 row) step s2-create-restore: - SELECT 1 FROM citus_create_restore_point('citus-test'); + SELECT 1 FROM citus_create_restore_point('citus-test'); step s1-commit: - COMMIT; + COMMIT; step s2-create-restore: <... completed> ?column? @@ -39,14 +39,14 @@ create_reference_table (1 row) step s1-begin: - BEGIN; - SET citus.multi_shard_commit_protocol TO '2pc'; + BEGIN; + SET citus.multi_shard_commit_protocol TO '2pc'; step s1-insert: - INSERT INTO restore_table VALUES (1,'hello'); + INSERT INTO restore_table VALUES (1,'hello'); step s2-create-restore: - SELECT 1 FROM citus_create_restore_point('citus-test'); + SELECT 1 FROM citus_create_restore_point('citus-test'); ?column? --------------------------------------------------------------------- @@ -54,7 +54,7 @@ step s2-create-restore: (1 row) step s1-commit: - COMMIT; + COMMIT; starting permutation: s1-begin s1-modify-multiple s2-create-restore s1-commit @@ -64,14 +64,14 @@ create_reference_table (1 row) step s1-begin: - BEGIN; - SET citus.multi_shard_commit_protocol TO '2pc'; + BEGIN; + SET citus.multi_shard_commit_protocol TO '2pc'; step s1-modify-multiple: - UPDATE restore_table SET data = 'world'; + UPDATE restore_table SET data = 'world'; step s2-create-restore: - SELECT 1 FROM citus_create_restore_point('citus-test'); + SELECT 1 FROM citus_create_restore_point('citus-test'); ?column? --------------------------------------------------------------------- @@ -79,7 +79,7 @@ step s2-create-restore: (1 row) step s1-commit: - COMMIT; + COMMIT; starting permutation: s1-begin s1-ddl s2-create-restore s1-commit @@ -89,17 +89,17 @@ create_reference_table (1 row) step s1-begin: - BEGIN; - SET citus.multi_shard_commit_protocol TO '2pc'; + BEGIN; + SET citus.multi_shard_commit_protocol TO '2pc'; step s1-ddl: - ALTER TABLE restore_table ADD COLUMN x int; + ALTER TABLE restore_table ADD COLUMN x int; step s2-create-restore: - SELECT 1 FROM citus_create_restore_point('citus-test'); + SELECT 1 FROM citus_create_restore_point('citus-test'); step s1-commit: - COMMIT; + COMMIT; step s2-create-restore: <... completed> ?column? @@ -115,14 +115,14 @@ create_reference_table (1 row) step s1-begin: - BEGIN; - SET citus.multi_shard_commit_protocol TO '2pc'; + BEGIN; + SET citus.multi_shard_commit_protocol TO '2pc'; step s1-copy: - COPY restore_table FROM PROGRAM 'echo 1,hello' WITH CSV; + COPY restore_table FROM PROGRAM 'echo 1,hello' WITH CSV; step s2-create-restore: - SELECT 1 FROM citus_create_restore_point('citus-test'); + SELECT 1 FROM citus_create_restore_point('citus-test'); ?column? --------------------------------------------------------------------- @@ -130,7 +130,7 @@ step s2-create-restore: (1 row) step s1-commit: - COMMIT; + COMMIT; starting permutation: s1-begin s1-recover s2-create-restore s1-commit @@ -140,11 +140,11 @@ create_reference_table (1 row) step s1-begin: - BEGIN; - SET citus.multi_shard_commit_protocol TO '2pc'; + BEGIN; + SET citus.multi_shard_commit_protocol TO '2pc'; step s1-recover: - SELECT recover_prepared_transactions(); + SELECT recover_prepared_transactions(); recover_prepared_transactions --------------------------------------------------------------------- @@ -152,10 +152,10 @@ recover_prepared_transactions (1 row) step s2-create-restore: - SELECT 1 FROM citus_create_restore_point('citus-test'); + SELECT 1 FROM citus_create_restore_point('citus-test'); step s1-commit: - COMMIT; + COMMIT; step s2-create-restore: <... completed> ?column? @@ -171,17 +171,17 @@ create_reference_table (1 row) step s1-begin: - BEGIN; - SET citus.multi_shard_commit_protocol TO '2pc'; + BEGIN; + SET citus.multi_shard_commit_protocol TO '2pc'; step s1-drop: - DROP TABLE restore_table; + DROP TABLE restore_table; step s2-create-restore: - SELECT 1 FROM citus_create_restore_point('citus-test'); + SELECT 1 FROM citus_create_restore_point('citus-test'); step s1-commit: - COMMIT; + COMMIT; step s2-create-restore: <... completed> ?column? @@ -197,11 +197,11 @@ create_reference_table (1 row) step s1-begin: - BEGIN; - SET citus.multi_shard_commit_protocol TO '2pc'; + BEGIN; + SET citus.multi_shard_commit_protocol TO '2pc'; step s1-add-node: - SELECT 1 FROM master_add_inactive_node('localhost', 9999); + SELECT 1 FROM master_add_inactive_node('localhost', 9999); ?column? --------------------------------------------------------------------- @@ -209,10 +209,10 @@ step s1-add-node: (1 row) step s2-create-restore: - SELECT 1 FROM citus_create_restore_point('citus-test'); + SELECT 1 FROM citus_create_restore_point('citus-test'); step s1-commit: - COMMIT; + COMMIT; step s2-create-restore: <... completed> ?column? @@ -228,11 +228,11 @@ create_reference_table (1 row) step s1-begin: - BEGIN; - SET citus.multi_shard_commit_protocol TO '2pc'; + BEGIN; + SET citus.multi_shard_commit_protocol TO '2pc'; step s1-remove-node: - SELECT master_remove_node('localhost', 9999); + SELECT master_remove_node('localhost', 9999); master_remove_node --------------------------------------------------------------------- @@ -240,10 +240,10 @@ master_remove_node (1 row) step s2-create-restore: - SELECT 1 FROM citus_create_restore_point('citus-test'); + SELECT 1 FROM citus_create_restore_point('citus-test'); step s1-commit: - COMMIT; + COMMIT; step s2-create-restore: <... completed> ?column? @@ -259,11 +259,11 @@ create_reference_table (1 row) step s1-begin: - BEGIN; - SET citus.multi_shard_commit_protocol TO '2pc'; + BEGIN; + SET citus.multi_shard_commit_protocol TO '2pc'; step s1-create-restore: - SELECT 1 FROM citus_create_restore_point('citus-test-2'); + SELECT 1 FROM citus_create_restore_point('citus-test-2'); ?column? --------------------------------------------------------------------- @@ -271,10 +271,10 @@ step s1-create-restore: (1 row) step s2-create-restore: - SELECT 1 FROM citus_create_restore_point('citus-test'); + SELECT 1 FROM citus_create_restore_point('citus-test'); step s1-commit: - COMMIT; + COMMIT; step s2-create-restore: <... completed> ?column? @@ -290,10 +290,10 @@ create_reference_table (1 row) step s2-begin: - BEGIN; + BEGIN; step s2-create-restore: - SELECT 1 FROM citus_create_restore_point('citus-test'); + SELECT 1 FROM citus_create_restore_point('citus-test'); ?column? --------------------------------------------------------------------- @@ -301,10 +301,10 @@ step s2-create-restore: (1 row) step s1-modify-multiple: - UPDATE restore_table SET data = 'world'; + UPDATE restore_table SET data = 'world'; step s2-commit: - COMMIT; + COMMIT; step s1-modify-multiple: <... completed> @@ -315,10 +315,10 @@ create_reference_table (1 row) step s2-begin: - BEGIN; + BEGIN; step s2-create-restore: - SELECT 1 FROM citus_create_restore_point('citus-test'); + SELECT 1 FROM citus_create_restore_point('citus-test'); ?column? --------------------------------------------------------------------- @@ -326,10 +326,10 @@ step s2-create-restore: (1 row) step s1-ddl: - ALTER TABLE restore_table ADD COLUMN x int; + ALTER TABLE restore_table ADD COLUMN x int; step s2-commit: - COMMIT; + COMMIT; step s1-ddl: <... completed> @@ -340,10 +340,10 @@ create_reference_table (1 row) step s2-begin: - BEGIN; + BEGIN; step s2-create-restore: - SELECT 1 FROM citus_create_restore_point('citus-test'); + SELECT 1 FROM citus_create_restore_point('citus-test'); ?column? --------------------------------------------------------------------- @@ -351,14 +351,14 @@ step s2-create-restore: (1 row) step s1-multi-statement: - SET citus.multi_shard_commit_protocol TO '2pc'; - BEGIN; - INSERT INTO restore_table VALUES (1,'hello'); - INSERT INTO restore_table VALUES (2,'hello'); - COMMIT; + SET citus.multi_shard_commit_protocol TO '2pc'; + BEGIN; + INSERT INTO restore_table VALUES (1,'hello'); + INSERT INTO restore_table VALUES (2,'hello'); + COMMIT; step s2-commit: - COMMIT; + COMMIT; step s1-multi-statement: <... completed> @@ -369,12 +369,12 @@ create_reference_table (1 row) step s1-begin: - BEGIN; - SET citus.multi_shard_commit_protocol TO '2pc'; + BEGIN; + SET citus.multi_shard_commit_protocol TO '2pc'; step s1-create-reference: - CREATE TABLE test_create_reference_table (test_id integer NOT NULL, data text); - SELECT create_reference_table('test_create_reference_table'); + CREATE TABLE test_create_reference_table (test_id integer NOT NULL, data text); + SELECT create_reference_table('test_create_reference_table'); create_reference_table --------------------------------------------------------------------- @@ -382,10 +382,10 @@ create_reference_table (1 row) step s2-create-restore: - SELECT 1 FROM citus_create_restore_point('citus-test'); + SELECT 1 FROM citus_create_restore_point('citus-test'); step s1-commit: - COMMIT; + COMMIT; step s2-create-restore: <... completed> ?column? @@ -401,23 +401,24 @@ create_reference_table (1 row) step s1-begin: - BEGIN; - SET citus.multi_shard_commit_protocol TO '2pc'; + BEGIN; + SET citus.multi_shard_commit_protocol TO '2pc'; step s1-insert-ref: - INSERT INTO restore_ref_table VALUES (1,'hello'); + INSERT INTO restore_ref_table VALUES (1,'hello'); step s2-create-restore: - SELECT 1 FROM citus_create_restore_point('citus-test'); + SELECT 1 FROM citus_create_restore_point('citus-test'); + +step s1-commit: + COMMIT; +step s2-create-restore: <... completed> ?column? --------------------------------------------------------------------- 1 (1 row) -step s1-commit: - COMMIT; - starting permutation: s1-begin s1-modify-multiple-ref s2-create-restore s1-commit create_reference_table @@ -426,23 +427,24 @@ create_reference_table (1 row) step s1-begin: - BEGIN; - SET citus.multi_shard_commit_protocol TO '2pc'; + BEGIN; + SET citus.multi_shard_commit_protocol TO '2pc'; step s1-modify-multiple-ref: - UPDATE restore_ref_table SET data = 'world'; + UPDATE restore_ref_table SET data = 'world'; step s2-create-restore: - SELECT 1 FROM citus_create_restore_point('citus-test'); + SELECT 1 FROM citus_create_restore_point('citus-test'); + +step s1-commit: + COMMIT; +step s2-create-restore: <... completed> ?column? --------------------------------------------------------------------- 1 (1 row) -step s1-commit: - COMMIT; - starting permutation: s1-begin s1-ddl-ref s2-create-restore s1-commit create_reference_table @@ -451,17 +453,17 @@ create_reference_table (1 row) step s1-begin: - BEGIN; - SET citus.multi_shard_commit_protocol TO '2pc'; + BEGIN; + SET citus.multi_shard_commit_protocol TO '2pc'; step s1-ddl-ref: - ALTER TABLE restore_ref_table ADD COLUMN x int; + ALTER TABLE restore_ref_table ADD COLUMN x int; step s2-create-restore: - SELECT 1 FROM citus_create_restore_point('citus-test'); + SELECT 1 FROM citus_create_restore_point('citus-test'); step s1-commit: - COMMIT; + COMMIT; step s2-create-restore: <... completed> ?column? @@ -477,23 +479,24 @@ create_reference_table (1 row) step s1-begin: - BEGIN; - SET citus.multi_shard_commit_protocol TO '2pc'; + BEGIN; + SET citus.multi_shard_commit_protocol TO '2pc'; step s1-copy-ref: - COPY restore_ref_table FROM PROGRAM 'echo 1,hello' WITH CSV; + COPY restore_ref_table FROM PROGRAM 'echo 1,hello' WITH CSV; step s2-create-restore: - SELECT 1 FROM citus_create_restore_point('citus-test'); + SELECT 1 FROM citus_create_restore_point('citus-test'); + +step s1-commit: + COMMIT; +step s2-create-restore: <... completed> ?column? --------------------------------------------------------------------- 1 (1 row) -step s1-commit: - COMMIT; - starting permutation: s1-begin s1-drop-ref s2-create-restore s1-commit create_reference_table @@ -502,17 +505,17 @@ create_reference_table (1 row) step s1-begin: - BEGIN; - SET citus.multi_shard_commit_protocol TO '2pc'; + BEGIN; + SET citus.multi_shard_commit_protocol TO '2pc'; step s1-drop-ref: - DROP TABLE restore_ref_table; + DROP TABLE restore_ref_table; step s2-create-restore: - SELECT 1 FROM citus_create_restore_point('citus-test'); + SELECT 1 FROM citus_create_restore_point('citus-test'); step s1-commit: - COMMIT; + COMMIT; step s2-create-restore: <... completed> ?column? @@ -528,10 +531,10 @@ create_reference_table (1 row) step s2-begin: - BEGIN; + BEGIN; step s2-create-restore: - SELECT 1 FROM citus_create_restore_point('citus-test'); + SELECT 1 FROM citus_create_restore_point('citus-test'); ?column? --------------------------------------------------------------------- @@ -539,10 +542,10 @@ step s2-create-restore: (1 row) step s1-modify-multiple-ref: - UPDATE restore_ref_table SET data = 'world'; + UPDATE restore_ref_table SET data = 'world'; step s2-commit: - COMMIT; + COMMIT; step s1-modify-multiple-ref: <... completed> @@ -553,10 +556,10 @@ create_reference_table (1 row) step s2-begin: - BEGIN; + BEGIN; step s2-create-restore: - SELECT 1 FROM citus_create_restore_point('citus-test'); + SELECT 1 FROM citus_create_restore_point('citus-test'); ?column? --------------------------------------------------------------------- @@ -564,10 +567,10 @@ step s2-create-restore: (1 row) step s1-ddl-ref: - ALTER TABLE restore_ref_table ADD COLUMN x int; + ALTER TABLE restore_ref_table ADD COLUMN x int; step s2-commit: - COMMIT; + COMMIT; step s1-ddl-ref: <... completed> @@ -578,10 +581,10 @@ create_reference_table (1 row) step s2-begin: - BEGIN; + BEGIN; step s2-create-restore: - SELECT 1 FROM citus_create_restore_point('citus-test'); + SELECT 1 FROM citus_create_restore_point('citus-test'); ?column? --------------------------------------------------------------------- @@ -589,13 +592,13 @@ step s2-create-restore: (1 row) step s1-multi-statement-ref: - SET citus.multi_shard_commit_protocol TO '2pc'; - BEGIN; - INSERT INTO restore_ref_table VALUES (1,'hello'); - INSERT INTO restore_ref_table VALUES (2,'hello'); - COMMIT; + SET citus.multi_shard_commit_protocol TO '2pc'; + BEGIN; + INSERT INTO restore_ref_table VALUES (1,'hello'); + INSERT INTO restore_ref_table VALUES (2,'hello'); + COMMIT; step s2-commit: - COMMIT; + COMMIT; step s1-multi-statement-ref: <... completed>