keep-balance should deduplicate trash requests
In order to make correct rendezvous decisions, when a volume is mounted at multiple keepstore servers, keep-balance internally pictures a replica on each mount.
This has the unintended consequence that each trash list entry is sent to all servers that mount the relevant volume, instead of just one.
In most cases this is harmless: one of the servers will win the race to trash the block, and the rest will do nothing because the block is already trashed.
However, when using the S3 driver, the trash strategy has a race detection/recovery feature that is triggered when multiple keepstore processes try to trash a block at the same time, and the result is that the block is not trashed.
To fix this, keep-balance should send each trash list item to only one (randomly selected) server that mounts the relevant volume, not all of them.
Updated by Tom Clegg 9 days ago
- Status changed from New to In Progress
- Subject changed from keep-balance should deduplicate pull/trash requests to keep-balance should deduplicate trash requests
20242-dup-trash-lists @ 9f4f850c2818cbf5eea45e30d27b13c20bd2be0c -- developer-run-tests: #3563
retry wb1 developer-run-tests-apps-workbench-integration: #3837
retry wb1 developer-run-tests-apps-workbench-integration: #3839
Updated by Lucas Di Pentima 5 days ago
This LGTM, thanks!
Updated by Tom Clegg 5 days ago
- Status changed from In Progress to Resolved
Applied in changeset arvados|d9bab7e493575da3dd4265bff72d3d6b08c63fdb.