CKDTree (1)

Concurrent KDTree with Snapshots, implemented in Java. This article is about some details in implementation.

RDCSS

RDCSS是Harris提出的一种实现double compare single swap方法,使用了single word compare and swap来实现。

Notes of Non-Blocking Snapshots Concurrent Tries

Hash trie的并发会存在操作丢失的情况,类似Non-blocking Binary Search Trees里的情况,这里引入了中间结点来解决。同时文章还提出了一种snapshot的方法,这种方法对于tree很有用。

Notes of Non-blocking Binary Search Trees

使用了mark标记结点的方式,解决了single word cas无法同时操作multi-word的问题,同时使用外部树减少了操作影响到的结点的数目,还有就是Excellent tutorial about helping mechanism!

RCU

RCU is a synchronization mechanism, which is widely used in the Linux kernel.

Harris' Non-Blocking Linked-Lists

Harris的这篇论文提出了一种新的non-blocking linked-list,不同于Valois使用auxiliary node,Harris在操作的时候进行了mark,解决了插入丢失的问题。论文中有详细的伪代码,清晰的描述了实现的细节。但要注意的是,实际实现必然涉及到内存回收,没有自动内存回收机制的语言会有点麻烦。