c - 你知道支持 COW 事务的 C 字典吗?

标签 c linux dictionary transactions

我正在寻找一个用 C 编写的键 -> 值字典库,它支持理论上无限数量的廉价交易。

我想在内存中有一个字典,有数百个线程开始事务,可能修改字典,结束(完成)事务或可能中止事务。只有 50% 的时间这些线程会实际修改字典。

我见过的大多数字典事务实现总是在事务开始时复制,而不是在写入时复制。给定字典的预期大小(> 1GB),我希望找到只有在交易过程中实际发生更改时才会出现的内容。我也希望得到大多数主要 GNU/Linux 发行版打包的东西。

非常感谢任何建议或链接。

最佳答案

SQLite3是事务性的,可以完全存在in memory .在交易方面,它不像某些人可能喜欢的那样便宜,但也不是那么昂贵。快速的 mlock()/mlockall() 可以防止 DB 被调出,YMMV 和 posix_madvise()。它不是开箱即用的解决方案,但也不太难适应。

BDB是甲骨文目前销售的另一种选择。

SQLite3(几乎)完全符合我的需要。鉴于我获得了 Tumbleweed badge通过问这个问题,我至少能做的就是回答它。

关于c - 你知道支持 COW 事务的 C 字典吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2453079/

相关文章:

无法在Linux上编译C代码

java - 从 Java 中的 Android Activity 写入/proc 文件系统

python - MongoDB 和 Python - 带列表的字典

python - 如何检索字典中键控项的子值?

linux - 在 docker 中使用覆盖层使用多主机网络功能需要 swarm

python - 如何将具有列表值的字典映射到数据框?

c - 如何在CentOS 6中开发netfilter队列?

c - 函数总是返回无意义的值

c - Erlang 源代码指南

c - 将开源程序集成到我自己的 C 语言中