Well shoot. It turns out that some critical pieces of this design were
based on a flawed assumption about the datalog; namely that all changes
for a particular bucket would map to the same datalog shard. I now see
that writes to different shards of a bucket are mapped to different
shards in RGWDataChangesLog::choose_oid().
We use cls_locks on these datalog shards so that several gateways can
sync the shards independently. But this isn't compatible with several
elements of this resharding design that require bucket-wide coordination:
* changing bucket full sync from per-bucket-shard to per-bucket
* moving bucket sync status from per-bucket-shard to per-bucket
* waiting for incremental sync of each bucket shard to complete before
advancing to the next log generation
On 2/25/20 2:53 PM, Casey Bodley wrote:
I opened a pull request https://github.com/ceph/ceph/pull/33539 with a
design doc for dynamic resharding in multisite. Please review and give
feedback, either here or in PR comments!
_______________________________________________
Dev mailing list -- dev@xxxxxxx
To unsubscribe send an email to dev-leave@xxxxxxx