rod*_*gob 7 c++ large-data-volumes protocol-buffers key-value-store
我需要编写一个C++应用程序来读取和写入大量数据(超过可用的RAM),但总是按顺序方式.
为了使数据保持未来的证明和易于记录的方式,我使用Protocol Buffer.然而,协议缓冲区不处理大量数据.
我以前的解决方案包括为每个数据单元创建一个文件(并将它们全部存储在一个目录中),但这似乎不是特别可扩展.
这次我想尝试使用嵌入式数据库.为了具有类似的功能,我只需要存储key-> values关联(因此sqlite似乎有点矫枉过正).值将是Protocol Buffer的二进制序列化输出.
我希望数据库能够管理"内存中的内容,移动到磁盘上的内容"问题,"如何有效地在磁盘上存储大量数据"问题,理想情况下,优化我的顺序读取模式(通过阅读事前的下一个条目).
寻找替代品我对缺乏替代品感到惊讶.我不想将数据库保留在一个单独的进程中,因为我不需要这种分离(这排除了redis).
我发现的唯一选择是Berkeley DB,但它有一个令人不快的低级别C api.然后,我找到的最佳选择是在Berkeley DB之上的stldb4.API似乎非常好,符合我的需求.
不过我很担心.stldb4似乎很奇怪(它依赖于libferris的东西),非维护的解决方案(一年前的最后一个版本),对于我会遇到的问题很常见.
你们中有谁对如何管理这个问题有更好的建议吗?
谢谢你的回答.
| 归档时间: |
|
| 查看次数: |
2166 次 |
| 最近记录: |