Thanks to visit codestin.com
Credit goes to github.com

Skip to content

BLinkTree 正确性的疑问 #10

@wine99

Description

@wine99

请问插入的时候,为什么不会发生这样的情况:

树的各个节点均已满,一个线程P企图插入,它下降到了某个叶节点,此时另外几个线程也开始插入,它们下降了不同的叶节点然后插入结束,导致旧root分裂,新root生成,并且导致旧root所在那一层再次满了,这时线程P向上回溯,回溯到旧root后依然要进行分裂,可是线程P并不知道旧root的parent(也就是新root)是谁。

您的代码中,下面这行代码

assert(blink_node_is_root(left));

似乎表明这样的情况并不会发生,如果您还记得这篇paper的话,可以解答一下吗?谢谢!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions