mirror of https://github.com/citusdata/citus.git
The progress monitor wouldn't actually update the size of the shard on
the target node when using "block_writes" as the `shard_transfer_mode`.
The reason for this is that the CREATE TABLE part of the shard creation
would only be committed once all data was moved as well. This caused
our size calculation to always return 0, since the table did not exist
yet in the session that the progress monitor used.
This is fixed by first committing creation of the table, and only then
starting the actual data copy.
The test output changes slightly. Apparently splitting this up in two
transactions instead of one, increases the table size after the copy by
about 40kB. The additional size used doesn't increase when with the
amount of data in the table is larger (it stays ~40kB per shard). So
this small change in test output is not considered an actual problem.
(cherry picked from commit
|
||
---|---|---|
.. | ||
citus_create_restore_point.c | ||
citus_tools.c | ||
create_shards.c | ||
delete_protocol.c | ||
modify_multiple_shards.c | ||
node_protocol.c | ||
partitioning.c | ||
repair_shards.c | ||
shard_cleaner.c | ||
shard_rebalancer.c | ||
split_shards.c | ||
stage_protocol.c | ||
worker_node_manager.c |