BwTree icon indicating copy to clipboard operation
BwTree copied to clipboard

Delete() is neither wait-free nor excetion-safe

Open wangziqi2013 opened this issue 9 years ago • 0 comments

Because of the InnerAbortNode machanism, if a thread is killed between posting and removing InnerAbortNode on the parent, then the key space below it is totally blocked from writing (but read is not affected)

One possible solution would be changing the SMO protocol to first deleting the separator on the parent first, and then posting remove and merge separately. The modified version of the protocol has the problem of succeeding InnerDeleteNode but failing CAS for RemoveNode. In that case we even cannot rollback because some other thread might have already posted on the parent node or the parent node might have already been merged into its left sibling.

wangziqi2013 avatar Jul 27 '16 15:07 wangziqi2013