2010-09-28 54 views
7

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

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

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

+3

这仅仅是我,还是这听起来更像广告而不是问题? – 2010-09-28 15:56:04

+0

'@Jerry Coffin:'不代表它听起来像广告。我想指出它的主要特性(内存中,没有SQL和C++集成)。我想到这里有几个人研究了不同的IMDB,并可能对此有所了解。 – 2010-09-28 16:03:27

+0

是否广告,这仍然是一个有效的问题。或者至少会在某个地方出现问题。 – 2010-09-28 16:03:59

回答

5

最近的文章对一个Erlang论坛(2009年):http://www.trapexit.org/forum/viewtopic.php?p=49476#49476有某人(塞尔阿列尼科夫)推荐用于FASTDB交易系统与亚毫秒延迟:

如果你不想花太多时间编码C++,因为你有
已经完成了对mnesia后端进行抽象的很好的工作,为什么你不用
为这个数据库创建一个Erlang驱动:www.fastdb.org。它是基于
上存储器映射文件,在C++实现的,相对快速的比较
到其他内存数据库(约250K查找/秒,50K插入/ s)的,具有
时间序列的能力,简单的C-API 。我用几种语言实现了FastDB接口
,并且通常对于处理亚毫秒范围内的
延迟的系统来说,这是非常好的。除非您需要保持在微秒级的低限,否则
可能就足够了。

我的2c。

塞尔

这是非常吓人看到有人担心在低微秒延迟;我正在考虑将FastDB用于数字信号处理(DSP),现场音频系统通常将延迟时间限制在不超过10毫秒。当然,如果一个系统以毫秒为单位响应,我们可能会使用长度只有几微秒的输入脉冲。

没有提及用于250K查找/秒,50K插入/秒的系统。不过,这是一个积极的迹象。

相关问题