From c160325d0788bb3155d7b29c008d8b8e0cdfd979 Mon Sep 17 00:00:00 2001 From: Hanefi Onaldi Date: Fri, 21 May 2021 08:53:52 +0300 Subject: [PATCH] Use streaming replication when repl factor = 1 --- .../distributed/sql/citus--10.0-3--10.1-1.sql | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/backend/distributed/sql/citus--10.0-3--10.1-1.sql b/src/backend/distributed/sql/citus--10.0-3--10.1-1.sql index 5c7d6b07c..d787a8fdb 100644 --- a/src/backend/distributed/sql/citus--10.0-3--10.1-1.sql +++ b/src/backend/distributed/sql/citus--10.0-3--10.1-1.sql @@ -24,3 +24,22 @@ ALTER TABLE pg_catalog.pg_dist_rebalance_strategy ADD COLUMN improvement_thresho UPDATE pg_catalog.pg_dist_rebalance_strategy SET improvement_threshold = 0.5 WHERE name = 'by_disk_size'; #include "udfs/get_rebalance_progress/10.1-1.sql" + +-- use streaming replication when replication factor = 1 +WITH replicated_shards AS ( + SELECT shardid + FROM pg_dist_placement + WHERE shardstate = 1 OR shardstate = 3 + GROUP BY shardid + HAVING count(*) <> 1 ), +replicated_relations AS ( + SELECT DISTINCT logicalrelid + FROM pg_dist_shard + JOIN replicated_shards + USING (shardid) +) +UPDATE pg_dist_partition +SET repmodel = 's' +WHERE repmodel = 'c' + AND partmethod = 'h' + AND logicalrelid NOT IN (SELECT * FROM replicated_relations);