009d8b7401 
								
							
								 
							
						 
						
							
							
								
								Some cleanup  
							
							
							
						 
						
							2019-08-12 15:38:52 -07:00  
				
					
						
							
							
								 
						
							
							
								03ef456c50 
								
									
								
							
								 
							
						 
						
							
							
								
								Merge pull request  #2871  from citusdata/pg12-test-prep  
							
							... 
							
							
							
							Update tests in preparation for pg12 
							
						 
						
							2019-08-09 15:32:19 +00:00  
				
					
						
							
							
								 
						
							
							
								5459c01956 
								
							
								 
							
						 
						
							
							
								
								multi_partitioning_utils: version_above_ten  
							
							
							
						 
						
							2019-08-09 15:25:59 +00:00  
				
					
						
							
							
								 
						
							
							
								e0f19fb58c 
								
							
								 
							
						 
						
							
							
								
								multi_partitioning_1.out  
							
							
							
						 
						
							2019-08-09 15:25:59 +00:00  
				
					
						
							
							
								 
						
							
							
								5e835e7565 
								
							
								 
							
						 
						
							
							
								
								Fix multi_repair_shards. There's already a group/shardid entry, pg11 gives us back the inserted one, pg12 gives us the preexisting one  
							
							
							
						 
						
							2019-08-09 15:25:59 +00:00  
				
					
						
							
							
								 
						
							
							
								66ce2d2d2d 
								
							
								 
							
						 
						
							
							
								
								Materialize c1 to keep subplan ids in sync  
							
							
							
						 
						
							2019-08-09 15:25:59 +00:00  
				
					
						
							
							
								 
						
							
							
								9065ef429c 
								
							
								 
							
						 
						
							
							
								
								foreign_key_to_reference_table: terse to avoid differing order of drop cascade details  
							
							
							
						 
						
							2019-08-09 15:25:59 +00:00  
				
					
						
							
							
								 
						
							
							
								0d9e5bde9c 
								
							
								 
							
						 
						
							
							
								
								window_functions: 'ORDER BY time' when using lag(time) & coordinator_plan  
							
							
							
						 
						
							2019-08-09 15:25:59 +00:00  
				
					
						
							
							
								 
						
							
							
								7992077fd9 
								
							
								 
							
						 
						
							
							
								
								multi_modifying_xacts: don't differ in output if reference table select tries broken worker first  
							
							
							
						 
						
							2019-08-09 15:25:59 +00:00  
				
					
						
							
							
								 
						
							
							
								546b71ac18 
								
							
								 
							
						 
						
							
							
								
								multi_router_planner: be terse for ctes with false wheres  
							
							
							
						 
						
							2019-08-09 15:25:59 +00:00  
				
					
						
							
							
								 
						
							
							
								a523a5b773 
								
							
								 
							
						 
						
							
							
								
								multi_null_minmax_value_pruning: no versioning & coordinator_plan  
							
							
							
						 
						
							2019-08-09 15:25:59 +00:00  
				
					
						
							
							
								 
						
							
							
								871dabdc63 
								
							
								 
							
						 
						
							
							
								
								Force CTE materialization in pg12  
							
							
							
						 
						
							2019-08-09 15:25:59 +00:00  
				
					
						
							
							
								 
						
							
							
								667c67891e 
								
							
								 
							
						 
						
							
							
								
								intermediate_results: COSTS OFF  
							
							
							
						 
						
							2019-08-09 15:25:59 +00:00  
				
					
						
							
							
								 
						
							
							
								b2ea806d8a 
								
							
								 
							
						 
						
							
							
								
								extra_float_digits=0  
							
							
							
						 
						
							2019-08-09 15:25:59 +00:00  
				
					
						
							
							
								 
						
							
							
								705d1bf0e0 
								
							
								 
							
						 
						
							
							
								
								Use PG_JOB_CACHE_DIR  
							
							
							
						 
						
							2019-08-09 15:25:59 +00:00  
				
					
						
							
							
								 
						
							
							
								ef33282de4 
								
									
								
							
								 
							
						 
						
							
							
								
								Update Changelog for v8.3.2  
							
							
							
						 
						
							2019-08-09 12:32:38 +03:00  
				
					
						
							
							
								 
						
							
							
								e21578f3af 
								
									
								
							
								 
							
						 
						
							
							
								
								Merge pull request  #2866  from citusdata/fix_83_regression  
							
							... 
							
							
							
							Do not record relation accessess unnecessarily 
							
						 
						
							2019-08-08 18:47:58 +02:00  
				
					
						
							
							
								 
						
							
							
								060ac11476 
								
							
								 
							
						 
						
							
							
								
								Do not record relation accessess unnecessarily  
							
							... 
							
							
							
							Before this commit, we've recorded the relation accesses in 3 different
places
    - FindPlacementListConnection         -- applies all executor in tx block
    - StartPlacementExecutionOnSession()  -- adaptive executor only
    - StartPlacementListConnection()      -- router/real-time only
This is different than Citus 8.2, and could lead to query execution times
increase considerably on multi-shard commands in transaction block
that are on partitioned tables.
Benchmarks:
```
1+8 c5.4xlarge cluster
Empty distributed partitioned table with 365 partitions: https://gist.github.com/onderkalaci/1edace4ed6bd6f061c8a15594865bb51#file-partitions_365-sql 
./pgbench -f /tmp/multi_shard.sql -c10 -j10 -P 1 -T 120 postgres://citus:w3r6KLJpv3mxe9E-NIUeJw@c.fy5fkjcv45vcepaogqcaskmmkee.db.citusdata.com:5432/citus?sslmode=require
cat  /tmp/multi_shard.sql
BEGIN;
	DELETE FROM collections_list;
	DELETE FROM collections_list;
	DELETE FROM collections_list;
COMMIT;
cat  /tmp/single_shard.sql
BEGIN;
	DELETE FROM collections_list WHERE key = :aid;
	DELETE FROM collections_list WHERE key = :aid;
	DELETE FROM collections_list WHERE key = :aid;
COMMIT;
cat  /tmp/mix.sql
BEGIN;
	DELETE FROM collections_list WHERE key = :aid;
	DELETE FROM collections_list WHERE key = :aid;
	DELETE FROM collections_list WHERE key = :aid;
	DELETE FROM collections_list;
	DELETE FROM collections_list;
	DELETE FROM collections_list;
COMMIT;
```
The table shows `latency average` of pgbench runs explained above, so we have a pretty solid improvement even over 8.2.2.
| Test  | Citus 8.2.2  |  Citus 8.3.1   | Citus 8.3.2 (this branch)  | Citus 8.3.1 (FKEYs disabled via GUC)  |
| ------------- | ------------- | ------------- |------------- | ------------- |
|multi_shard |  2370.083 ms  |3605.040 ms |1324.094 ms |1247.255 ms  |
| single_shard  | 85.338 ms  |120.934 ms  |73.216 ms  | 78.765 ms |
| mix  | 2434.459 ms | 3727.080 ms  |1306.456 ms  | 1280.326 ms | 
							
						 
						
							2019-08-08 18:42:08 +02:00  
				
					
						
							
							
								 
						
							
							
								35ee896f3d 
								
							
								 
							
						 
						
							
							
								
								Get rid of an unnecessary parameter  
							
							... 
							
							
							
							targetPoolSize parameter for ExecuteUtilityTaskListWithoutResults
becomes obsolete, just remove it. 
							
						 
						
							2019-08-07 19:35:56 +02:00  
				
					
						
							
							
								 
						
							
							
								b2e01d0745 
								
							
								 
							
						 
						
							
							
								
								Refactor switching to sequential mode  
							
							... 
							
							
							
							We don't need to wait until the execution. As soon as we realize
that we need sequential execution, we should do it. 
							
						 
						
							2019-08-07 19:35:56 +02:00  
				
					
						
							
							
								 
						
							
							
								263faffb27 
								
									
								
							
								 
							
						 
						
							
							
								
								Update CONTRIBUTING.md ( #2865 )  
							
							... 
							
							
							
							* Update dependency versions
* Add libcurl and autoconf to required dependencies
* Add Clang/LLVM instructions for CentOS/RHEL setup 
							
						 
						
							2019-08-06 17:52:44 +03:00  
				
					
						
							
							
								 
						
							
							
								f9efb21f1b 
								
									
								
							
								 
							
						 
						
							
							
								
								Merge pull request  #2863  from citusdata/fix_typo  
							
							... 
							
							
							
							Fix a typo in foreign_key_restriction_enforcement 
							
						 
						
							2019-08-02 16:13:43 -07:00  
				
					
						
							
							
								 
						
							
							
								b1ab805ce2 
								
							
								 
							
						 
						
							
							
								
								Fix a typo in foreign_key_restriction_enforcement  
							
							
							
						 
						
							2019-08-02 16:06:52 -07:00  
				
					
						
							
							
								 
						
							
							
								a1a7d95c0a 
								
									
								
							
								 
							
						 
						
							
							
								
								Merge pull request  #2861  from citusdata/less_polymorphic_plan_router_query  
							
							... 
							
							
							
							PlanRouterQuery: don't store list of list of shard intervals in relationShardList 
							
						 
						
							2019-08-02 09:16:09 -07:00  
				
					
						
							
							
								 
						
							
							
								b77c52f95b 
								
							
								 
							
						 
						
							
							
								
								PlanRouterQuery: don't store list of list of shard intervals in relationShardList  
							
							
							
						 
						
							2019-08-02 14:08:57 +00:00  
				
					
						
							
							
								 
						
							
							
								9b4ba2f5b2 
								
									
								
							
								 
							
						 
						
							
							
								
								Merge pull request  #2858  from citusdata/multi_modifications_bug  
							
							... 
							
							
							
							Use 2PC in adaptive executor when dealing with replication factors above 1 
							
						 
						
							2019-08-02 00:20:22 +00:00  
				
					
						
							
							
								 
						
							
							
								fdc0ef6392 
								
							
								 
							
						 
						
							
							
								
								Adaptive executor: use 2PC when replication_factor > 1  
							
							
							
						 
						
							2019-08-01 23:55:12 +00:00  
				
					
						
							
							
								 
						
							
							
								19bcb1b4f7 
								
							
								 
							
						 
						
							
							
								
								multi_modifications: extend to demonstrate issue in adaptive executor  
							
							
							
						 
						
							2019-08-01 23:55:04 +00:00  
				
					
						
							
							
								 
						
							
							
								b81d5947e4 
								
									
								
							
								 
							
						 
						
							
							
								
								Merge pull request  #2859  from citusdata/no_null_percent_s  
							
							... 
							
							
							
							Avoid segfault in logging queries 
							
						 
						
							2019-08-01 09:36:52 -07:00  
				
					
						
							
							
								 
						
							
							
								064bd66a20 
								
							
								 
							
						 
						
							
							
								
								Avoid segfault in logging queries  
							
							
							
						 
						
							2019-07-31 15:28:46 +00:00  
				
					
						
							
							
								 
						
							
							
								e88cb8335f 
								
									
								
							
								 
							
						 
						
							
							
								
								Update Changelog for v8.3.1  
							
							
							
						 
						
							2019-07-29 13:10:28 +03:00  
				
					
						
							
							
								 
						
							
							
								dc67fa36c6 
								
									
								
							
								 
							
						 
						
							
							
								
								Merge pull request  #2854  from citusdata/compare_shard_intervals_id_tie_breaker  
							
							... 
							
							
							
							CompareShardIntervals: if intervals are equal, compare id 
							
						 
						
							2019-07-26 16:27:35 +00:00  
				
					
						
							
							
								 
						
							
							
								3982b4635f 
								
							
								 
							
						 
						
							
							
								
								CompareShardIntervals: if intervals are equal, compare id. Works around sort being unstable  
							
							
							
						 
						
							2019-07-26 16:13:36 +00:00  
				
					
						
							
							
								 
						
							
							
								6f1a8dfdbe 
								
									
								
							
								 
							
						 
						
							
							
								
								Merge pull request  #2852  from citusdata/update_tests_colocation_utils_copy  
							
							... 
							
							
							
							Update two tests, useful fallout from pg12 branch 
							
						 
						
							2019-07-25 17:36:16 +00:00  
				
					
						
							
							
								 
						
							
							
								c471d9680c 
								
									
								
							
								 
							
						 
						
							
							
								
								Merge pull request  #2848  from citusdata/adaptive_executor_tuning  
							
							... 
							
							
							
							Adaptive executor performance improvements 
							
						 
						
							2019-07-25 16:52:36 +02:00  
				
					
						
							
							
								 
						
							
							
								0e233c63a3 
								
							
								 
							
						 
						
							
							
								
								multi_colocation_utils: sort by nodeport, not placementid  
							
							... 
							
							
							
							multi_copy: replace smgr with aclitem, smgr is removed in pg12 
							
						 
						
							2019-07-25 14:33:43 +00:00  
				
					
						
							
							
								 
						
							
							
								cd2905ec23 
								
									
								
							
								 
							
						 
						
							
							
								
								Merge pull request  #2845  from citusdata/squash_migrations_56  
							
							... 
							
							
							
							Squash migrations for versions 5/6, don't use WITH OIDS 
							
						 
						
							2019-07-24 11:10:15 -07:00  
				
					
						
							
							
								 
						
							
							
								50144b75d0 
								
							
								 
							
						 
						
							
							
								
								Add check-empty to testing Makefile  
							
							... 
							
							
							
							Don't create functions multiple times
Move ALTER TABLEs to their declaration
Remove DROP FUNCTIONS IF EXISTS, OR REPLACE 
							
						 
						
							2019-07-24 11:03:54 -07:00  
				
					
						
							
							
								 
						
							
							
								acbaa38a62 
								
							
								 
							
						 
						
							
							
								
								Squash migrations for versions 5/6, don't use WITH OIDS  
							
							
							
						 
						
							2019-07-24 11:03:29 -07:00  
				
					
						
							
							
								 
						
							
							
								3e6f3e4f3b 
								
									
								
							
								 
							
						 
						
							
							
								
								Merge pull request  #2849  from citusdata/sort-list-is-not-in-place  
							
							... 
							
							
							
							Update workerNodeList after sorting 
							
						 
						
							2019-07-23 21:04:22 +00:00  
				
					
						
							
							
								 
						
							
							
								8127297999 
								
							
								 
							
						 
						
							
							
								
								update workerNodeList after sorting  
							
							
							
						 
						
							2019-07-23 20:57:07 +00:00  
				
					
						
							
							
								 
						
							
							
								6c5866cc4d 
								
									
								
							
								 
							
						 
						
							
							
								
								Merge pull request  #2850  from citusdata/fix_a_couple_shardid_tests  
							
							... 
							
							
							
							Fix multi_prune_shard_list 
							
						 
						
							2019-07-23 20:19:55 +00:00  
				
					
						
							
							
								 
						
							
							
								6598c68993 
								
							
								 
							
						 
						
							
							
								
								Fix multi_prune_shard_list & don't set next_shard_id unnecessarily in multi_null_minmax_value_pruning  
							
							
							
						 
						
							2019-07-23 19:44:18 +00:00  
				
					
						
							
							
								 
						
							
							
								e2bc09838e 
								
							
								 
							
						 
						
							
							
								
								Use ereport instead of elog in adaptive executor  
							
							
							
						 
						
							2019-07-23 20:40:32 +02:00  
				
					
						
							
							
								 
						
							
							
								bd111366b0 
								
							
								 
							
						 
						
							
							
								
								Skip CheckConnectionTimeout when checkForPoolTimeout is false  
							
							
							
						 
						
							2019-07-23 20:40:32 +02:00  
				
					
						
							
							
								 
						
							
							
								a3811b1e55 
								
							
								 
							
						 
						
							
							
								
								Avoid FindWorkerNode calls in adaptive executor  
							
							
							
						 
						
							2019-07-23 20:40:32 +02:00  
				
					
						
							
							
								 
						
							
							
								4444d92dbc 
								
							
								 
							
						 
						
							
							
								
								Set initial pool size to cached connection count  
							
							
							
						 
						
							2019-07-23 20:40:32 +02:00  
				
					
						
							
							
								 
						
							
							
								4c0c33365e 
								
							
								 
							
						 
						
							
							
								
								Avoid creating a redundant event set at the start  
							
							
							
						 
						
							2019-07-23 20:40:32 +02:00  
				
					
						
							
							
								 
						
							
							
								32e7a80960 
								
							
								 
							
						 
						
							
							
								
								Avoid unnecessary calls to PQconsumeInput  
							
							
							
						 
						
							2019-07-23 20:40:32 +02:00  
				
					
						
							
							
								 
						
							
							
								71ad5c095b 
								
							
								 
							
						 
						
							
							
								
								Use ModifyWaitEvent when only wait flags changed  
							
							
							
						 
						
							2019-07-23 20:40:32 +02:00