utsaslab / RECIPE

RECIPE : high-performance, concurrent indexes for persistent memory (SOSP 2019)
Apache License 2.0
197 stars 46 forks source link

Port RECIPE data structures to libpmem #5

Open vijay03 opened 5 years ago

vijay03 commented 5 years ago

This issue involves porting the RECIPE data structures to work on libpmem. For example, converting P-CLHT to a form that uses the libpmem pointers and allocation routines.

onceltl commented 4 years ago

I found that P-Masstree in the PMDK branch still used volatile linked lists to maintain the DeletionList. Will this cause memory leaks after system crash?

SeKwonLee commented 4 years ago

Hi @onceltl,

Yes, the current implementation of P-Masstree in the PMDK branch still can cause persistent memory leaks after a system crash. RECIPE conversions are specifically restricted to the consistency guarantee of the internal updates of the indexes, so they do not provide a specific solution for persistent memory leaks. However, in my opinion (also described in our publication), I don't think the solution for persistent memory leaks should not be provided by the level of index structures (or should not be index-structure specific). There have been prior studies using post-crash garbage collection to solve persistent memory leaks (Please check the limitation section in README.md in the master branch). We are planning to add a supplementary implementation of post-crash garbage collection to resolve persistent memory leaks when I have time.

Thanks,