mirror of https://github.com/citusdata/citus.git
With this commit, we're introducing a new infrastructure to throttle connections to the worker nodes. This infrastructure is useful for multi-shard queries, router queries are have not been affected by this. The goal is to prevent establishing more than citus.max_shared_pool_size number of connections per worker node in total, across sessions. To do that, we've introduced a new connection flag OPTIONAL_CONNECTION. The idea is that some connections are optional such as the second (and further connections) for the adaptive executor. A single connection is enough to finish the distributed execution, the others are useful to execute the query faster. Thus, they can be consider as optional connections. When an optional connection is not allowed to the adaptive executor, it simply skips it and continues the execution with the already established connections. However, it'll keep retrying to establish optional connections, in case some slots are open again. |
||
---|---|---|
.. | ||
README.md | ||
isolation_add_node_vs_reference_table_operations.spec | ||
isolation_add_remove_node.spec | ||
isolation_alter_role_propagation.spec | ||
isolation_append_copy_vs_all.spec | ||
isolation_cancellation.spec | ||
isolation_citus_dist_activity.spec | ||
isolation_cluster_management.spec | ||
isolation_concurrent_dml.spec | ||
isolation_copy_placement_vs_copy_placement.spec | ||
isolation_copy_placement_vs_modification.spec | ||
isolation_copy_vs_all_on_mx.spec | ||
isolation_create_distributed_table.spec | ||
isolation_create_restore_point.spec | ||
isolation_create_table_vs_add_remove_node.spec | ||
isolation_data_migration.spec | ||
isolation_ddl_vs_all.spec | ||
isolation_delete_vs_all.spec | ||
isolation_dis2ref_foreign_keys_on_mx.spec | ||
isolation_distributed_deadlock_detection.spec | ||
isolation_distributed_transaction_id.spec | ||
isolation_dml_vs_repair.spec | ||
isolation_drop_alter_index_select_for_update_on_mx.spec | ||
isolation_drop_shards.spec | ||
isolation_drop_vs_all.spec | ||
isolation_dump_global_wait_edges.spec | ||
isolation_dump_local_wait_edges.spec | ||
isolation_ensure_dependency_activate_node.spec | ||
isolation_extension_commands.spec | ||
isolation_get_all_active_transactions.spec | ||
isolation_get_distributed_wait_queries_mx.spec | ||
isolation_hash_copy_vs_all.spec | ||
isolation_insert_select_conflict.spec | ||
isolation_insert_select_repartition.spec | ||
isolation_insert_select_vs_all.spec | ||
isolation_insert_select_vs_all_on_mx.spec | ||
isolation_insert_vs_all.spec | ||
isolation_insert_vs_all_on_mx.spec | ||
isolation_insert_vs_vacuum.spec | ||
isolation_master_append_table.spec | ||
isolation_master_apply_delete.spec | ||
isolation_master_update_node.spec | ||
isolation_modify_with_subquery_vs_dml.spec | ||
isolation_multi_shard_modify_vs_all.spec | ||
isolation_multiuser_locking.spec | ||
isolation_mx_common.include.spec | ||
isolation_partitioned_copy_vs_all.spec | ||
isolation_progress_monitoring.spec | ||
isolation_range_copy_vs_all.spec | ||
isolation_ref2ref_foreign_keys.spec | ||
isolation_ref2ref_foreign_keys_on_mx.spec | ||
isolation_ref_select_for_update_vs_all_on_mx.spec | ||
isolation_ref_update_delete_upsert_vs_all_on_mx.spec | ||
isolation_reference_copy_vs_all.spec | ||
isolation_reference_on_mx.spec | ||
isolation_replace_wait_function.spec | ||
isolation_replicate_reference_tables_to_coordinator.spec | ||
isolation_select_for_update.spec | ||
isolation_select_vs_all.spec | ||
isolation_select_vs_all_on_mx.spec | ||
isolation_shouldhaveshards.spec | ||
isolation_transaction_recovery.spec | ||
isolation_truncate_vs_all.spec | ||
isolation_truncate_vs_all_on_mx.spec | ||
isolation_update_delete_upsert_vs_all_on_mx.spec | ||
isolation_update_node.spec | ||
isolation_update_node_lock_writes.spec | ||
isolation_update_vs_all.spec | ||
isolation_upsert_vs_all.spec | ||
isolation_validate_vs_insert.spec | ||
shared_connection_waits.spec |
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.