Closed YangZhou1997 closed 3 years ago
Hi Yang,
Thanks for your interest. Marking happens here. Compacting is part of the cold data write-back procedure which invokes the swap-out method on all marked objects; if it finds out that the object is hot, it will copy the object into a new location (i.e., compacting) rather than writing back the data to the remote.
Thanks, Zain
Hi Zain,
Thanks for the quick reply! So it sounds that log allocator compaction is mixed with GC evacuation.
I also notice that in the log selection phase,
The evacuator picks logs in FIFO order from the global non-temporal used list, and then picks from the global temporal used list if necessary, to prioritize non-temporal objects. Does it mean the log allocation compaction also has such prioritization?
Best, Yang
Yes, since it compacts selected logs.
Cool. My puzzle resolved. Thanks!
Hi,
Very nice code! Just wondering where you implement the log allocator mark-compact scheme, probably running in another thread somehow. But I could find the exact code location. Is it also in
void FarMemManager::gc_cache()
, where you do mark-evacuate for cold entries?Here is the text quoted from the paper: near the end of sec5.2
Best, Yang