Call TriggerGlobalGC when the plasma store is full#7337
Call TriggerGlobalGC when the plasma store is full#7337edoakes merged 11 commits intoray-project:masterfrom
Conversation
|
Dependent on #7328. |
|
Can one of the admins verify this patch? |
| << MemoryUsageString() << "\nWaiting " << delay | ||
| << "ms for space to free up..."; | ||
| if (on_store_full_) { | ||
| on_store_full_(); |
There was a problem hiding this comment.
Should we call this once or multiple times? I guess it's possible you might need a series of gc calls, though I'm not sure about the scenario.
There was a problem hiding this comment.
Let's call it multiple times for now to cover all scenarios. This is throttled anyways to once per heartbeat interval across the cluster.
ericl
left a comment
There was a problem hiding this comment.
Can we add an end to end Python test for this, similar to the one in the ref count tests?
|
Oh nevermind, I see it now. |
|
Here's another test you can add that introduces cyclic refs in both the worker and driver: Couple other suggestions:
|
|
Test FAILed. |
|
Test PASSed. |
|
Test FAILed. |
|
Test FAILed. |
Why are these changes needed?
If the plasma store is full, it may be due to cyclic references to
ObjectIDs in python somewhere on the cluster. This change causes workers to trigger a global GC in an attempt to garbage collect such references and free up space before giving up when the plasma store is full.Checks
scripts/format.shto lint the changes in this PR.