fix: make store-based barrier reusable across updates - #107
Conversation
koriyoshi2041
left a comment
There was a problem hiding this comment.
Verified the repeated-barrier path on the exact head. The generation counter is independent of process-group creation, every rank deterministically advances it once per successful update barrier (including auto_pg=False), and the shared-store regression exercises two consecutive generations. Locally, tests/test_store_barrier.py passes 2/2; focused Ruff check/format and diff hygiene also pass.
|
@koriyoshi2041 hi, is there a plan to merge this PR? |
|
I reviewed this as an external contributor and don't have merge rights in this repository, so I can't give a maintainer merge timeline. The PR is still at the exact head I approved ( |
koriyoshi2041
left a comment
There was a problem hiding this comment.
Re-reviewed the requested key cleanup at exact head c63195f. Rank 0 only deletes generation N after completing N+2; completion of N+2 means every rank has entered that later barrier, so no rank can still depend on N's counter or last_worker key. Cleanup failure remains non-fatal and bounded to a warning.
Locally, the real shared-TCPStore regression passes all 10 generations and verifies generations 1–8 are removed while 9–10 remain (2/2 focused tests). Ruff check and format also pass on both changed files. Approving the updated head.
fix: make the shared-store barrier reusable across updates in #106
Summary
ParameterServer.store_based_barrier();_store_based_barrier()group name for every invocation;