You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
LogCache and OperationTracker usually holds references to the same replicate messages.
But tracks them independently. That is causing this memory to be tracked twice.
The text was updated successfully, but these errors were encountered:
Summary:
Currently each Raft operation is registered in log cache and operation tracker.
Operation tracker would release operation right after it is applied.
Log cache would release operation after it is replicated to all nodes or log cache takes too many memory.
With one exception that log cache would not release operation that is referenced by someone else.
So not applied operation is tracked both by operation tracker and by log cache.
Also not applied operations could not be evicted from log cache.
This diff adds and uses mechanism to transfer mem tracking from operation tracker to log cache.
So unapplied operation memory would be tracked by mem tracker of operation tracker only.
After that it will be tracked by log cache mem tracker, while this operation present in log cache.
Also removed restrictions to evict log cache entries that are referenced by someone else.
This diff is also preparation work for fixing #2412.
Test Plan: Jenkins
Reviewers: mikhail, timur
Reviewed By: timur
Subscribers: ybase, bogdan
Differential Revision: https://phabricator.dev.yugabyte.com/D7317
LogCache and OperationTracker usually holds references to the same replicate messages.
But tracks them independently. That is causing this memory to be tracked twice.
The text was updated successfully, but these errors were encountered: