有人有 FastDB (C++ 内存数据库)的经验吗?

发布于 2024-09-25 10:01:35 字数 404 浏览 4 评论 0原文

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

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

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

FastDB is an open-source, in-memory database that's tightly integrated with C++ (it supports a SQL-like query language where tables are classes and rows are objects). Like most IMDBs, it's meant for applications dominated by read access patterns. The algorithms and data structures are optimized for systems that read and write data entirely in main memory (RAM). It's supposed to be very fast, even compared to other in-memory databases, but I can't find any benchmarks online.

I'm considering using FastDB for time-series data, in a project where 1) sub-millisecond random-access read latencies, and 2) millions of rows per second sequential read throughput would be very good to have.

I can't find many references to first-hand experience with FastDB; has anyone here used it? Can you point to any benchmarks of FastDB, especially those that consider read latency and throughput?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

感情洁癖 2024-10-02 10:01:35

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。

Serge

看到人们担心低微秒的延迟是相当令人恐惧的;我正在考虑将 FastDB 用于数字信号处理 (DSP),其中现场音频系统通常将延迟限制为不超过 10 毫秒左右。当然,如果系统以毫秒为单位响应,我们可能会使用长度仅为几微秒的输入脉冲。

没有提及每秒 25 万次查找和 5 万次插入使用什么系统。尽管如此,这仍然是一个积极的信号。

A recent post on an Erlang forum (from 2009): http://www.trapexit.org/forum/viewtopic.php?p=49476#49476 has someone (Serge Aleynikov) recommending FastDB for trading systems with sub-millisecond latencies:

If you don't want to spend too much time coding C++, since you have
already done good work of abstracting mnesia backend, why don't you
create an Erlang driver for this database: www.fastdb.org. It's based
on memory mapped files, implemented in C++, is relatively fast compared
to other in-memory databases (about 250k lookups/s, 50k inserts/s), has
time-series capabilities, simple C-API. I implemented FastDB interface
in several languages, and generally it's good for systems that deal with
latencies in sub-milliseconds range. It may suffice for you unless you
need to stay in the low microseconds realm.

My 2c.

Serge

It's pretty intimidating to see people worrying about latencies in the low microseconds; I'm considering FastDB for digital signal processing (DSP), where live audio systems generally limit latency to no more than about 10 milliseconds. Of course, if a system responds in milliseconds, we might use input pulses of only a few microseconds in length.

There's no mention of what system was used for the 250K lookups/s, 50K inserts/s. Still, it's a positive sign.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文