citus/src/backend/distributed/planner
Nils Dijk f9520be011
Round robin queries to reference tables with task_assignment_policy set to `round-robin` (#2472)
Description: Support round-robin `task_assignment_policy` for queries to reference tables.

This PR allows users to query multiple placements of shards in a round robin fashion. When `citus.task_assignment_policy` is set to `'round-robin'` the planner will use a round robin scheduling feature when multiple shard placements are available.

The primary use-case is spreading the load of reference table queries to all the nodes in the cluster instead of hammering only the first placement of the reference table. Since reference tables share the same path for selecting the shards with single shard queries that have multiple placements (`citus.shard_replication_factor > 1`) this setting also allows users to spread the query load on these shards.

For modifying queries we do not apply a round-robin strategy. This would be negated by an extra reordering step in the executor for such queries where a `first-replica` strategy is enforced.
2018-11-15 15:11:15 +01:00
..
deparse_shard_query.c ApplyLogRedaction noop func is added 2018-08-17 14:48:54 -07:00
distributed_planner.c Make sure to access PARAM_EXTERN accurately in PG 11 2018-10-25 21:55:03 +03:00
extended_op_node_utils.c Expand count distinct support 2018-07-06 09:44:20 +03:00
insert_select_planner.c Fix user-facing typos 2018-10-09 16:54:03 -07:00
multi_explain.c PG11 compatibility update 2018-04-26 11:29:43 +03:00
multi_join_order.c ApplyLogRedaction noop func is added 2018-08-17 14:48:54 -07:00
multi_logical_optimizer.c Create function_utils for pg function call related utilities 2018-11-07 15:29:38 +03:00
multi_logical_planner.c Prevent excessive number of unnecessary range table traversal 2018-08-22 11:45:00 +03:00
multi_master_planner.c Fix incorrect limit pushdown when distinct clause is not superset of group by (#2035) 2018-03-07 13:24:56 +03:00
multi_physical_planner.c Round robin queries to reference tables with task_assignment_policy set to `round-robin` (#2472) 2018-11-15 15:11:15 +01:00
multi_router_planner.c Round robin queries to reference tables with task_assignment_policy set to `round-robin` (#2472) 2018-11-15 15:11:15 +01:00
postgres_planning_functions.c Add select distinct, and distinct on support 2017-10-13 14:59:48 +03:00
query_colocation_checker.c Support non-co-located joins between subqueries 2018-02-26 13:50:37 +02:00
query_pushdown_planning.c Refactor query pushdown related logic 2018-05-02 15:03:09 +03:00
recursive_planning.c Description: Refactor code that handles DDL commands from one file into a module 2018-11-14 13:36:27 +01:00
relation_restriction_equivalence.c Prevent excessive number of unnecessary range table traversal 2018-08-22 11:45:00 +03:00
shard_pruning.c Add a debug message with distribution column value 2018-06-05 15:09:17 +03:00