mirror of https://github.com/citusdata/citus.git
With this commit, fix_partition_shard_index_names() works significantly faster. For example, 32 shards, 365 partitions, 5 indexes drop from ~120 seconds to ~44 seconds 32 shards, 1095 partitions, 5 indexes drop from ~600 seconds to ~265 seconds `queryStringList` can be really long, because it may contain #partitions * #indexes entries. Before this change, we were actually going through the executor where each command in the query string triggers 1 round trip per entry in queryStringList. The aim of this commit is to avoid the round-trips by creating a single query string. I first simply tried sending `q1;q2;..;qn` . However, the executor is designed to handle `q1;q2;..;qn` type of query executions via the infrastructure mentioned above (e.g., by tracking the query indexes in the list and doing 1 statement per round trip). One another option could have been to change the executor such that only track the query index when `queryStringList` is provided not with queryString including multiple `;`s . That is (a) more work (b) could cause weird edge cases with failure handling (c) felt like coding a special case in to the executor |
||
---|---|---|
.. | ||
11.0-1.sql | ||
latest.sql |