2016-10-05 16 views
3

2つのKDBプロセスを参照する1つの読み取り専用テーブルをメインメモリにロードする方法はありますか?彼らはそれを互いに独立して読むことができるはずです。要件は、ディスクからデータを一度ロードすることです。私はテーブルをロードするために1つのQ(プロデューサ)を起動し、残りのQプロセス(コンシューマ)をローカルに接続してソケット上にテーブルを引っ張るという厄介な解決策を思いつきました。要約すると、私は選択したクエリを複数処理しようとしています。おかげでメモリ内のKDB共有テーブル

+2

あなたが負のポートでプロセスを開始することができます?これはあなたが探しているものですか?http://code.kx.com/wiki/Cookbook/MultithreadedInputMode – Chromozorz

+0

Chromozorz - ありがとう。私はこれをチェックするつもりです。共有メモリのデータを使って、同じサーバ(ノード)上で起動された個々のKDBプロセスを考えました。タブレット。 – Vortex

+0

偉大な、それがあなたが探しているものなら教えてください。さもなければ私は答えを掲示するでしょう。 Cheers – Chromozorz

答えて

1

はい。

getのKDBのmmapsは、そう単純に(必要に応じてsplayed)1つのコアがsaveそれをあなたのテーブルを構築し、持っているし、それを得るために他のテーブルに教える:

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