> >-----Original Message----- > >[Wang, Yipeng] I was thinking about another corner case and wondering > >if the version counter needs to be done on key deletion as well. > >For example, a reader reads out the index and falsely matches a > >signature, before it reads out the data and the key, the key-data pair > >got deleted, removed, and recycled by another writer thread. This > >writer partially overwrote the key (because key store is too large to be > atomic). > >Now, the reader begins to compare the key, and accidentally matches the > >key (because the key is partially written and accidentally matches), > >will The reader read the wrong data out (which should have been a lookup > miss)? > > > [Wang, Yipeng] As a second thought after reading your slides, I think the > scenario I described above should be handled by the upper level application > using RCU-like mechanisms to recycle key-data only after the grace period. > So I think it is OK. Please ignore my last comment. > > But if convenient, please add more comment in the API doc and in user > guide as well just in case users might not understand the restriction. > Agree, it needs careful documentation. I plan to change the documentation after the patch is completed.
> Thanks > Yipeng