如何有效地从Java发布到KDB Ticker Plant

时间:2015-01-25 11:00:18

标签: java kdb ticker q-lang exxeleron-q

我们有市场数据处理程序,可以向KDB Ticker Plant发布报价。为此,我们使用exxeleron q java libary。不幸的是,延迟非常高:当我们尝试插入一批记录时,数百毫秒。您可以建议一些KDB + Java绑定的延迟提示,因为我们需要快速发布。

2 个答案:

答案 0 :(得分:5)

此消息中没有足够的信息来提供完全合格的响应,但是使用Java + KDB完成相同的操作后,它实际上归结为消除了可能性。这是常识,真的,没什么超级技术。

  • 确保您以异步方式插入
  • 验证它是导致延迟的exxeleron q java。我不认为那里有100%的毫安。
  • 验证您的tickerplant所在的CPU未过载。考虑重新加入,核心绑定等
  • 分析您的网络延迟。此外,如果您使用的是Linux,可以尝试一些tcp调整,例如: TCP_QUICKACK
  • 当您使用Java时,要更好地了解垃圾收集。它具有高度可配置性,但不能直接控制。
  • 如果您发现tickerplant是延迟的来源,您可以将其重新编码为不写入磁盘 - 或者获得更快的本地磁盘。

还有很多建议,但问题有点过于含糊不清。

修改 早在2007年,使用旧的(ish)服务器和非常旧版本的KDB +,我们使用vanilla c.java管理每秒90k行的插入速率。这是经过以上几点之后的几轮。我相信你现在可以实现更多目标,这是找到瓶颈所在并逐一修复的问题。

答案 1 :(得分:0)

确保发布到票务工厂的数据是批量的,例如等待一点点批量插入几行数据,但是一旦有新记录出现就不要逐行插入