【问题标题】:Why does KDB Ticker Plant need a log file?为什么 KDB Ticker Plant 需要日志文件?
【发布时间】:2015-01-16 15:46:44
【问题描述】:

KDB Ticker Plant 进程有一个日志文件,可以将数据保存一秒钟。为什么它首先需要一个日志文件?它的目的是什么?

【问题讨论】:

  • 顺便说一句,tickerplant 默认将数据保留 1 秒。您可以将计时器设置为 1,即 1ms 或其他任何值。从您的问题来看,听起来您是在说日志文件将数据保留 1 秒 - 是自动收报机将其保留一定时间。日志文件中包含一整天的数据。
  • 好的,但是为什么 TP 将数据也保留在 ib 运行时一秒钟?它可能只是在收到并清除它后才 piblish。
  • 因为对于数据非常密集的数据激增会导致持续的高 CPU 使用率,这将导致其他问题。

标签: kdb q-lang


【解决方案1】:

只是恢复数据,主要是为了防止RDB进程崩溃,保证系统稳定性。您可以将其假定为后备存储或永久存储。

首先让我们了解一下tickerplant架构:

Tickerplant 从源(馈送处理程序)获取数据,将其记录在文件中并将数据转发给订阅者(实时服务)。

案例:实时进程 (RDB) 宕机:

实时服务(RDB)是一种订阅tickerplant并将数据存储在内存中的服务。假设您的股票代码工厂正在从某个交易所获取实时股票数据并将其发布到实时服务。它被实时服务以表格(或任何其他格式)的形式存储在内存中。

现在,在 1 小时后,RDB 进程由于某种原因停机,在这种情况下,它将丢失所有内存中的数据。然后它将需要某种方法来恢复该数据。 它会要求tickerplant再次提供该数据。

现在,tickerplant 将从日志文件中读取所需的数据并将其传递给 RDB。这样可以确保系统稳定性。

【讨论】:

  • 澄清一下:TP 确实从日志文件中读取所有数据并将其发送到 RDB。 TP 只将日志位置和当前日志计数发送给 RDB,然后 RDB 重新运行日志中的数据以加快速度。
  • @Rahul 的回答涵盖了它。只是一个附录,通过一点点调整,您实际上可以绕过日志记录(如果这是一个问题......)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-12
  • 1970-01-01
  • 2014-01-22
  • 1970-01-01
相关资源
最近更新 更多