有人对 FastDB(C++ 内存数据库)有任何经验吗?
Posted
技术标签:
【中文标题】有人对 FastDB(C++ 内存数据库)有任何经验吗?【英文标题】:Does anybody have any experience with FastDB (C++ in-memory database)? 【发布时间】:2011-04-18 09:28:34 【问题描述】:FastDB 是一个与 C++ 紧密集成的开源内存数据库(它支持类似 SQL 的查询语言,其中表是类,行是对象)。与大多数 IMDB 一样,它适用于以读取访问模式为主的应用程序。算法和数据结构针对完全在主存储器 (RAM) 中读写数据的系统进行了优化。它应该非常快,即使与其他内存数据库相比也是如此,但我在网上找不到任何基准。
我正在考虑将 FastDB 用于时间序列数据,在一个项目中,1) 亚毫秒级随机访问读取延迟和 2) 每秒数百万行的连续读取吞吐量将非常好。
我找不到很多关于 FastDB 第一手经验的参考资料;这里有人用过吗?您能否指出 FastDB 的任何基准,尤其是那些考虑读取延迟和吞吐量的基准?
【问题讨论】:
只有我一个人,还是这听起来更像是一个广告而不是一个问题?@Jerry Coffin:
并不是说它听起来像广告。我想指出它的主要特性(内存中、无 SQL 和 C++ 集成)。我想这里有几个人看过不同的 IMDB,可能对这个有一些见解。
广告与否,这仍然是一个有效的问题。或者至少如果那里有问题的话。
@Mark Ransom:
有一个“?”在那里,但我已经扩展了这个问题以使其更清晰。
@ConsideringFastDB 我是 fastdb 的新手。当我试图通过几个简单的例子来了解这个数据库的全貌时,我卡在编译时。基本上我不知道是什么g++ 的正确选项。我已将那些指定的文件分别复制到 /usr/lib /usr/bin 和 /usr/include ,但事情仍然没有解决......
【参考方案1】:
最近在 Erlang 论坛上的一篇帖子(从 2009 年开始):http://www.trapexit.org/forum/viewtopic.php?p=49476#49476 有人 (Serge Aleynikov) 推荐 FastDB 用于具有亚毫秒级延迟的交易系统:
如果您不想花太多时间编写 C++,因为您有 已经做好了抽象 mnesia 后端的工作,你为什么不呢 为这个数据库创建一个 Erlang 驱动程序:www.fastdb.org。它基于 在内存映射文件上,用 C++ 实现,比较快 到其他内存数据库(大约 250k 查找/秒,50k 插入/秒),有 时间序列功能,简单的 C-API。我实现了 FastDB 接口 支持多种语言,通常适用于处理 亚毫秒范围内的延迟。它可能对你来说就足够了,除非你 需要保持在低微秒范围内。 我的2c。 塞尔吉
看到人们担心低微秒的延迟是相当令人生畏的;我正在考虑将 FastDB 用于数字信号处理 (DSP),现场音频系统通常将延迟限制在不超过 10 毫秒。当然,如果系统以毫秒为单位做出响应,我们可能会使用长度仅为几微秒的输入脉冲。
没有提及用于 250K 查找/秒、50K 插入/秒的系统。不过,这是一个积极的信号。
【讨论】:
以上是关于有人对 FastDB(C++ 内存数据库)有任何经验吗?的主要内容,如果未能解决你的问题,请参考以下文章