citus/src/test/regress/spec
Onder Kalaci 549edcabb6 Allow disabling node(s) when multiple failures happen
As of master branch, Citus does all the modifications to replicated tables
(e.g., reference tables and distributed tables with replication factor > 1),
via 2PC and avoids any shardstate=3. As a side-effect of those changes,
handling node failures for replicated tables change.

With this PR, when one (or multiple) node failures happen, the users would
see query errors on modifications. If the problem is intermitant, that's OK,
once the node failure(s) recover by themselves, the modification queries would
succeed. If the node failure(s) are permenant, the users should call
`SELECT citus_disable_node(...)` to disable the node. As soon as the node is
disabled, modification would start to succeed. However, now the old node gets
behind. It means that, when the node is up again, the placements should be
re-created on the node. First, use `SELECT citus_activate_node()`. Then, use
`SELECT replicate_table_shards(...)` to replicate the missing placements on
the re-activated node.
2021-12-01 10:19:48 +01:00
..
README.md Refactor isolation tests (#3062) 2019-12-10 16:12:54 +01:00
columnar_index_concurrency.spec Introduce CI checks for hash comments in specs 2021-11-26 14:52:51 +03:00
columnar_temp_tables.spec Feature: alter database owner (#4986) 2021-05-20 13:27:44 +02:00
columnar_vacuum_vs_insert.spec Columnar: rename files and tests. (#4751) 2021-03-01 08:34:24 -08:00
columnar_write_concurrency.spec Split columnar stripe reservation into two phases (#5188) 2021-09-02 11:49:14 +03:00
columnar_write_concurrency_index.spec Introduce CI checks for hash comments in specs 2021-11-26 14:52:51 +03:00
isolation_add_node_vs_reference_table_operations.spec Remove unused steps in isolation tests 2020-08-04 15:18:27 +03:00
isolation_add_remove_node.spec Allow disabling node(s) when multiple failures happen 2021-12-01 10:19:48 +01:00
isolation_blocking_move_multi_shard_commands.spec Enable citus.defer_drop_after_shard_move by default (#4961) 2021-05-21 10:48:32 +03:00
isolation_blocking_move_multi_shard_commands_on_mx.spec Remove all occurences of replication_model GUC 2021-05-21 16:14:59 +03:00
isolation_blocking_move_single_shard_commands.spec Enable citus.defer_drop_after_shard_move by default (#4961) 2021-05-21 10:48:32 +03:00
isolation_blocking_move_single_shard_commands_on_mx.spec Remove all occurences of replication_model GUC 2021-05-21 16:14:59 +03:00
isolation_cancellation.spec Normalize Output:.. since it changes with pg13 2020-08-04 15:38:13 +03:00
isolation_citus_dist_activity.spec Rename master to distributed for worker stat activity 2021-02-04 12:20:06 +03:00
isolation_cluster_management.spec Refactor isolation tests (#3062) 2019-12-10 16:12:54 +01:00
isolation_concurrent_dml.spec Enable replication factor > 1 in metadata syncing (#5392) 2021-11-15 15:10:18 +03:00
isolation_copy_placement_vs_copy_placement.spec Refactor isolation tests (#3062) 2019-12-10 16:12:54 +01:00
isolation_copy_placement_vs_modification.spec Remove all occurences of replication_model GUC 2021-05-21 16:14:59 +03:00
isolation_copy_vs_all_on_mx.spec Remove unused steps in isolation tests 2020-08-04 15:18:27 +03:00
isolation_create_citus_local_table.spec Rename udf in regression tests (as per prev commit) 2021-01-27 15:52:37 +03:00
isolation_create_distributed_table.spec Refactor isolation tests (#3062) 2019-12-10 16:12:54 +01:00
isolation_create_restore_point.spec Refactor isolation tests (#3062) 2019-12-10 16:12:54 +01:00
isolation_create_table_vs_add_remove_node.spec Generalize the error checks while removing node 2021-11-26 14:25:29 +01:00
isolation_data_migration.spec Refactor isolation tests (#3062) 2019-12-10 16:12:54 +01:00
isolation_ddl_vs_all.spec Turns mx on in isolations tests 2021-11-04 17:12:30 +03:00
isolation_delete_vs_all.spec Turns mx on in isolations tests 2021-11-04 17:12:30 +03:00
isolation_dis2ref_foreign_keys_on_mx.spec Remove unused steps in isolation tests 2020-08-04 15:18:27 +03:00
isolation_distributed_deadlock_detection.spec Remove unused steps in isolation tests 2020-08-04 15:18:27 +03:00
isolation_distributed_transaction_id.spec Remove unused steps in isolation tests 2020-08-04 15:18:27 +03:00
isolation_dml_vs_repair.spec Remove the word 'master' from Citus UDFs (#4472) 2021-01-13 12:10:43 +03:00
isolation_drop_alter_index_select_for_update_on_mx.spec Refactor isolation tests (#3062) 2019-12-10 16:12:54 +01:00
isolation_drop_shards.spec Remove master_apply_delete_command 2021-10-18 22:29:37 +02:00
isolation_drop_vs_all.spec Remove unused steps in isolation tests 2020-08-04 15:18:27 +03:00
isolation_dump_global_wait_edges.spec Allow disabling node(s) when multiple failures happen 2021-12-01 10:19:48 +01:00
isolation_dump_local_wait_edges.spec Refactor isolation tests (#3062) 2019-12-10 16:12:54 +01:00
isolation_ensure_dependency_activate_node.spec Allow disabling node(s) when multiple failures happen 2021-12-01 10:19:48 +01:00
isolation_extension_commands.spec Bind seg version to 1.3 in isolation_textension_commands 2021-09-03 15:41:28 +03:00
isolation_fix_partition_shard_index_names.spec Run fix_partition_shard_index_names after each wrong naming command 2021-11-08 10:43:34 +01:00
isolation_get_all_active_transactions.spec Refactor isolation tests (#3062) 2019-12-10 16:12:54 +01:00
isolation_get_distributed_wait_queries_mx.spec Remove unused steps in isolation tests 2020-08-04 15:18:27 +03:00
isolation_hash_copy_vs_all.spec Enable replication factor > 1 in metadata syncing (#5392) 2021-11-15 15:10:18 +03:00
isolation_insert_select_conflict.spec Enable replication factor > 1 in metadata syncing (#5392) 2021-11-15 15:10:18 +03:00
isolation_insert_select_repartition.spec Isolation tests for INSERT/SELECT repartition 2020-01-16 23:24:52 -08:00
isolation_insert_select_vs_all.spec Turns mx on in isolations tests 2021-11-04 17:12:30 +03:00
isolation_insert_select_vs_all_on_mx.spec Remove unused steps in isolation tests 2020-08-04 15:18:27 +03:00
isolation_insert_vs_all.spec Turns mx on in isolations tests 2021-11-04 17:12:30 +03:00
isolation_insert_vs_all_on_mx.spec Bump pg12 and pg13 images to pg12.8 and pg13.8 (#5208) 2021-08-25 16:04:57 +03:00
isolation_insert_vs_vacuum.spec Refactor isolation tests (#3062) 2019-12-10 16:12:54 +01:00
isolation_master_update_node.spec Remove unused steps in isolation tests 2020-08-04 15:18:27 +03:00
isolation_metadata_sync_deadlock.spec Make isolation_metadata_sync_deadlock more resilient 2021-02-06 01:05:24 -08:00
isolation_modify_with_subquery_vs_dml.spec Enable replication factor > 1 in metadata syncing (#5392) 2021-11-15 15:10:18 +03:00
isolation_multi_shard_modify_vs_all.spec Remove unused steps in isolation tests 2020-08-04 15:18:27 +03:00
isolation_multiuser_locking.spec Remove unused steps in isolation tests 2020-08-04 15:18:27 +03:00
isolation_mx_common.include.spec Remove all occurences of replication_model GUC 2021-05-21 16:14:59 +03:00
isolation_partitioned_copy_vs_all.spec Remove the word 'master' from Citus UDFs (#4472) 2021-01-13 12:10:43 +03:00
isolation_progress_monitoring.spec Refactor isolation tests (#3062) 2019-12-10 16:12:54 +01:00
isolation_range_copy_vs_all.spec Remove copy into new append shard logic 2021-11-07 21:01:40 +01:00
isolation_rebalancer_deferred_drop.spec Cleanup orphaned shards before moving when necessary 2021-06-04 11:23:07 +02:00
isolation_ref2ref_foreign_keys.spec Refactor isolation tests (#3062) 2019-12-10 16:12:54 +01:00
isolation_ref2ref_foreign_keys_on_mx.spec Remove unused steps in isolation tests 2020-08-04 15:18:27 +03:00
isolation_ref_select_for_update_vs_all_on_mx.spec Refactor isolation tests (#3062) 2019-12-10 16:12:54 +01:00
isolation_ref_update_delete_upsert_vs_all_on_mx.spec Bump pg12 and pg13 images to pg12.8 and pg13.8 (#5208) 2021-08-25 16:04:57 +03:00
isolation_reference_copy_vs_all.spec Remove unused steps in isolation tests 2020-08-04 15:18:27 +03:00
isolation_reference_on_mx.spec Remove unused steps in isolation tests 2020-08-04 15:18:27 +03:00
isolation_replace_wait_function.spec Refactor isolation tests (#3062) 2019-12-10 16:12:54 +01:00
isolation_replicate_reference_tables_to_coordinator.spec Rename master to distributed for worker stat activity 2021-02-04 12:20:06 +03:00
isolation_replicated_dist_on_mx.spec Enable replication factor > 1 in metadata syncing (#5392) 2021-11-15 15:10:18 +03:00
isolation_select_for_update.spec Allow routing modifying CTEs 2020-06-11 15:14:06 +00:00
isolation_select_vs_all.spec Remove copy into new append shard logic 2021-11-07 21:01:40 +01:00
isolation_select_vs_all_on_mx.spec Remove unused steps in isolation tests 2020-08-04 15:18:27 +03:00
isolation_shard_rebalancer.spec Fetch shard size on the fly for the rebalance monitor 2021-05-20 16:38:17 +02:00
isolation_shard_rebalancer_progress.spec Fetch shard size on the fly for the rebalance monitor 2021-05-20 16:38:17 +02:00
isolation_shouldhaveshards.spec Refactor isolation tests (#3062) 2019-12-10 16:12:54 +01:00
isolation_transaction_recovery.spec Refactor isolation tests (#3062) 2019-12-10 16:12:54 +01:00
isolation_truncate_vs_all.spec Remove copy into new append shard logic 2021-11-07 21:01:40 +01:00
isolation_truncate_vs_all_on_mx.spec Refactor isolation tests (#3062) 2019-12-10 16:12:54 +01:00
isolation_turn_mx_off.spec Turn MX on by default 2021-10-08 18:17:21 +03:00
isolation_turn_mx_on.spec Turns mx on in isolations tests 2021-11-04 17:12:30 +03:00
isolation_undistribute_table.spec Enable replication factor > 1 in metadata syncing (#5392) 2021-11-15 15:10:18 +03:00
isolation_update_delete_upsert_vs_all_on_mx.spec Remove unused steps in isolation tests 2020-08-04 15:18:27 +03:00
isolation_update_node.spec Allow disabling node(s) when multiple failures happen 2021-12-01 10:19:48 +01:00
isolation_update_node_lock_writes.spec Remove unused steps in isolation tests 2020-08-04 15:18:27 +03:00
isolation_update_vs_all.spec Turns mx on in isolations tests 2021-11-04 17:12:30 +03:00
isolation_upsert_vs_all.spec Turns mx on in isolations tests 2021-11-04 17:12:30 +03:00
isolation_validate_vs_insert.spec Remove unused steps in isolation tests 2020-08-04 15:18:27 +03:00
shared_connection_waits.spec Fetch shard size on the fly for the rebalance monitor 2021-05-20 16:38:17 +02:00

README.md

In this folder, all tests which in the format of '*_add.spec' organized according to specific format.

You should use // in mx files not //. We preprocess mx files with cpp to include isolation_mx_common.include.spec.

For isolation tests, we selected 'n' representative operations and we aimed to perform all possible pairs of 'n' operations together. So first test just runs first of these 'n' operation with remaining 'n - 1' operation. Similary, second test just runs second operation with remaining 'n - 2' operation. With this logic, we eventually run every selected operation with every other selected operation.