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
During an index backfill, if bulk.AddSSTable tries to add an SST spanning many ranges (and the range descriptor cache isn't populated with the ranges overlapping with that span), it will fail and recursively call itself with smaller SSTables that are split on the first range boundary discovered. When this happens, we can run out of memory, since we don't free the SST byte arrays that are allocated until the end.
These are from heap profiles for a node that crashed when I rolled back a CANCEL JOB (causing the backfiller to generate SSTs that span many nonempty ranges):
The text was updated successfully, but these errors were encountered:
36765: bulk: change AddSSTTable to not be recursive r=vivekmenezes a=vivekmenezes
AddSSTTable was recursive to deal with range splits.
Unfortunately the recursive call would create new SSTs
without freeing the older ones creating a memory buildup
that was quadratic. We've seen memory buildup on the order
of GBs due to this recursion.
fixes#36769fixes#36381
Release note: None
Co-authored-by: Vivek Menezes <[email protected]>
During an index backfill, if
bulk.AddSSTable
tries to add an SST spanning many ranges (and the range descriptor cache isn't populated with the ranges overlapping with that span), it will fail and recursively call itself with smaller SSTables that are split on the first range boundary discovered. When this happens, we can run out of memory, since we don't free the SST byte arrays that are allocated until the end.These are from heap profiles for a node that crashed when I rolled back a CANCEL JOB (causing the backfiller to generate SSTs that span many nonempty ranges):
The text was updated successfully, but these errors were encountered: