【问题标题】:KDB share table in memory内存中的 KDB 共享表
【发布时间】:2016-10-05 22:10:03
【问题描述】:

有没有办法让两个 KDB 进程引用一个只读表加载到主内存中?他们应该能够相互独立地阅读它。要求是从磁盘加载一次数据。我想出了一个尴尬的解决方案,即启动一个 Q(生产者)来加载表,其余的 Q 进程(消费者)在本地连接并将表拉到套接字上。简而言之,我正在尝试多处理我的选择查询。谢谢

【问题讨论】:

  • 可以用负端口启动进程吗?这就是你要找的code.kx.com/wiki/Cookbook/MultithreadedInputMode
  • Chromozorz - 谢谢。我要检查一下。我想到了使用共享内存数据在同一服务器(节点)上启动的单个 KDB 进程,即。表 t。
  • 太好了,如果您正在寻找它,请告诉我。否则我会发布答案。干杯
  • 除了@Chromozorz 的评论,请参阅code.kx.com/wiki/Reference/Cmdlineb 以阻止写访问(即使表只读)

标签: kdb


【解决方案1】:

是的。

KDB 在get 上映射,因此只需让一个核心构建您的表和save 它(可选splayed),然后告诉其他表获取它:

`:table set build_table ([] ...);
other_cores @\: ({table:get x};`:table);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-08
    • 1970-01-01
    • 1970-01-01
    • 2021-11-26
    • 2011-12-04
    • 2015-12-05
    • 1970-01-01
    相关资源
    最近更新 更多