Track leveldb iterators for memory-infra. |
||||||
Issue descriptionCreate a class, similar to DBTracker, for tracking instances of leveldb::iterator. This will likely involve instrumenting LevelDBIterator and possibly creating a common leveldb::iterator wrapper so that all iterators are reported.
,
Jul 31 2017
,
Aug 7 2017
,
Aug 7 2017
dskiba@ There's no API, and no good way to obtain the amount of memory used by a leveldb::Iterator. I can create a function to calculate an estimated minimum, but to do more would require that we modify leveldb. I highly doubt those changes will be allowed upstream which means we'd need to fork leveldb for this estimate. What are your thoughts on the usefulness of an estimate?
,
Aug 7 2017
I was acting on that postmortem where leveldb iterators were eating all the memory. I think that simply reporting number of iterators should be a good first step. If we ever see that the number is high, we can think of adding more instrumentation. But even reporting that number requires us to wrap iterators, although we can probably avoid keeping actual track of iterators - wrapper iterators would just increase / decrease DB's iterator counter upon construction / destruction.
,
Jan 18 2018
,
May 21 2018
|
||||||
►
Sign in to add a comment |
||||||
Comment 1 by cmumford@chromium.org
, Jul 31 2017