kdb + 32位,4GB限制的后果是什么?

时间:2015-01-15 15:45:58

标签: database-connection port 32bit-64bit kdb

我正在尝试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 +的每个实例也被认为是 一个进程

2 个答案:

答案 0 :(得分:1)

正确,kdb +实例本身就是一个完整的进程,自己在命令行设置端口号。

你不能在许多句柄上桃子:

handles:hopen each someList;
{x"do some work"} peach handles

您将获得noupdate,因此您似乎无法手动执行此操作。在hopen上有一个握手,所以即使在该端口范围上运行其他进程,kdb也会知道哪些进程是kdb(我想它会在hopen上捕获错误...但是我&# 39;从未尝试过它)

答案 1 :(得分:0)

变量和表的实际限制是1GB RAM。不是4GB。