8

FastDB是一个与 C++ 紧密集成的开源内存数据库(它支持一种类似 SQL 的查询语言,其中表是类,行是对象)。与大多数 IMDB 一样,它适用于以读取访问模式为主的应用程序。算法和数据结构针对完全在主存储器 (RAM) 中读写数据的系统进行了优化。它应该非常快,即使与其他内存数据库相比也是如此,但我在网上找不到任何基准。

我正在考虑将 FastDB 用于时间序列数据,在一个项目中,1)亚毫秒级随机访问读取延迟,以及 2)每秒数百万行的连续读取吞吐量将非常好。

我找不到很多关于 FastDB 第一手经验的参考资料;这里有人用过吗?您能否指出 FastDB 的任何基准,尤其是那些考虑读取延迟和吞吐量的基准?

4

1 回答 1

6

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 插入/秒的系统。不过,这是一个积极的信号。

于 2010-09-28T16:27:43.137 回答