【问题标题】:What performance can we expect from kdb+ 32bit我们可以从 kdb+ 32bit 获得什么性能
【发布时间】:2014-04-03 14:18:08
【问题描述】:

Kx announced 他们的free kdb+(32 位)时间序列数据库。

在每秒读取/写入方面,我们通常可以从这个数据库中获得什么性能?

我明白这是一个复杂的问题,因为答案取决于设置、节点数量等。我希望有人能够为我们提供一些数字和用例。

【问题讨论】:

  • 你看这里了吗:kx.com/benchmarks.php
  • 谢谢,我不确定这些基准中的哪些适用于 kdb+ 32bit 的开源版本。
  • @Datageek 免费 =/= 开源
  • @behzad.nouri 当然,感谢您指出这一点。
  • 一个有趣的问题是免费 32 位版本的性能与付费 64 位版本相比如何。

标签: performance kdb


【解决方案1】:

经过更多调查,我在kx.com website 上找到了示例性能基准:

在具有 4 GB RAM 的 AMD Opteron 机器上,我们得到

0.672 million inserts per second (single insert)
6.944 million inserts per second (bulk insert 10)
20.408 million inserts per second (bulk insert 100)
24.39 million inserts per second (bulk insert 1000)
25 million inserts per second (bulk insert 10000)

在配备 0.5 GB RAM 的 AMD Turion64 笔记本电脑上,

0.928 million inserts per second (single insert)
8.065 million inserts per second (bulk insert 10)
16.129 million inserts per second (bulk insert 100)
16.129 million inserts per second (bulk insert 1000)
16.129 million inserts per second (bulk insert 10000)

在我的机器上运行相同的基准测试(32GB RAM,Xeon E5 3.2GHz,SSD):

1.972 million inserts per second (single insert)
30.303 million inserts per second (bulk insert 10)
142.857 million inserts per second (bulk insert 100)
250 million inserts per second (bulk insert 1000)
200 million inserts per second (bulk insert 10000)

【讨论】:

  • 注意这是内存操作的速度。
【解决方案2】:

32 位限制了可寻址内存。因此内存数据库的大小受到限制。常见的做法是将当前日期 (RDB) 保存在内存中。

【讨论】:

  • 因此最多可以将 4GB 数据以 32 位 kdb 加载到内存中。可能更少,因为对这些数据执行操作需要一些内存。
  • @Datageek 事实上,前几天我在 kx 的网站上看到了一条建议,即提供 4 倍于最大预期数据大小的内存。
【解决方案3】:

STAC M3 benchmarks 也很好地涵盖了这一点。除此之外,我预计 32 位和 64 位二进制文​​件之间不会有重大差异。我相信两者的内存分配策略是相同的。

正如 Datageek 在他的帖子中已经表明的那样,kx 的性能是首屈一指的。对于大多数习惯于 OOP+SQL 的开发人员来说,这种语言肯定是新的,但这对于 kx IMO 来说是一个巨大的进步。

【讨论】:

    猜你喜欢
    • 2011-06-03
    • 2017-05-07
    • 1970-01-01
    • 2021-05-16
    • 1970-01-01
    • 1970-01-01
    • 2017-12-27
    • 1970-01-01
    • 2012-10-24
    相关资源
    最近更新 更多