文件名称:nbds:非阻塞哈希表、无锁跳过列表等非阻塞数据结构
文件大小:66KB
文件格式:ZIP
更新时间:2024-06-30 09:04:37
C
nbds 非阻塞哈希表、无锁跳过列表等非阻塞数据结构 无锁事务映射无锁事务键值存储。 事务语义遵循使用多版本并发控制的数据库样式快照隔离。 使用快照隔离更新版本化。 事务在开始后与更改隔离。 他们总是看到一致的结构视图。 相反,事务的更新在提交之前对所有其他事务都是不可见的。 当事务尝试提交其写入时,会检查是否与任何已提交的并发事务发生冲突。 如果系统检测到冲突,则提交事务将回滚。 否则,它的更新对未来的交易可见。 Lock-Free Skiplist 由 Maurice Herlihy、Yossi Lev 和 Nir Shavit 创建的无锁跳过列表数据结构。 参见 Herlihy 和 Shavit 的书“多处理器编程的艺术”和 Kir Fraser 的论文“实用锁定*” I除了普通的 add() 和 remove() 操作之外,已经将数据结构概括为支持更新操作,如 s
【文件预览】:
nbds-master
----license.txt(2KB)
----datatype()
--------nstring.c(737B)
----runtime()
--------hazard.c(5KB)
--------runtime.c(815B)
--------mem.c(12KB)
--------random.c(2KB)
--------lwt.c(4KB)
--------rcu.c(3KB)
--------mem_class_calc.c(6KB)
--------rlocal.h(379B)
--------mem2.c(14KB)
----perf.sh(179B)
----README.md(2KB)
----include()
--------hashtable.h(1KB)
--------nstring.h(409B)
--------murmur.h(3KB)
--------common.h(2KB)
--------rcu.h(236B)
--------tls.h(1KB)
--------map.h(2KB)
--------skiplist.h(1KB)
--------hazard.h(736B)
--------mem.h(297B)
--------txn.h(548B)
--------list.h(1005B)
--------datatype.h(300B)
--------runtime.h(286B)
--------lwt.h(2KB)
----txn()
--------txn.c(15KB)
----makefile(4KB)
----todo(1KB)
----map()
--------skiplist.c(19KB)
--------map.c(2KB)
--------list.c(14KB)
--------unsafe_skiplist.c(9KB)
--------hashtable.c(27KB)
----test()
--------txn_test.c(991B)
--------haz_test.c(3KB)
--------rcu_test.c(3KB)
--------map_test2.c(11KB)
--------map_test1.c(3KB)
--------CuTest.c(7KB)
--------CuTest.h(4KB)
--------CuTest-license.txt(1KB)
--------perf_test.c(5KB)