我正在尝试kdb+,我发现与程序通信最常见的方法是在端口5001上打开一个套接字,如下所示:
q -p 5001
现在kdb +具有多线程的内置功能,称为peach。根据他们的文档,从版本v3.1桃子将自动:
从v3.1开始,桃子可以使用多个进程而不是线程, 通过启动cmd行选项-s配置为负数 整数,即-s-N,例如-s -4。在启动时,kdb +将尝试 连接到端口20000到20000 + N-1 上的N个进程,并使用 含有> 1元素的桃子将使用这些过程来执行该功能 给了桃子。
我想知道,我也可以手动执行此操作吗?
我目前正在运行32位版本的kdb +(每个进程最多4GB内存),根据this post,您可以使用多处理系统解决4GB限制。
那么多处理究竟意味着什么?我是否需要在不同的端口(如桃子)上启动 N kdb +实例以获取 N x 4GB内存应用程序,或者4GB限制只是对某些内容的限制其他?
那么4GB的限制到底是什么?我是否需要打开多个端口?
This website似乎确认对于多个进程和进程间通信,我需要在不同的地址上打开多个端口。
kdb +的每个实例也被认为是 一个进程?
答案 0 :(得分:1)
正确,kdb +实例本身就是一个完整的进程,自己在命令行设置端口号。
你不能在许多句柄上桃子:
handles:hopen each someList;
{x"do some work"} peach handles
您将获得noupdate
,因此您似乎无法手动执行此操作。在hopen
上有一个握手,所以即使在该端口范围上运行其他进程,kdb也会知道哪些进程是kdb(我想它会在hopen
上捕获错误...但是我&# 39;从未尝试过它)
答案 1 :(得分:0)
变量和表的实际限制是1GB RAM。不是4GB。