我们有一个具有多个线程的应用程序,它重用了一个KDB连接。从性能的角度来看,打开多线程KDB实例的多个连接来加快进程是不是很好?同样有趣的是,如果我们从多个线程发布到单个连接,会有任何潜在的负面影响:我们有java应用程序并使用exxeleron java库。
发布于 2015-01-29 23:23:39
除了到KDB的单套接字连接本身不是很耗费资源这一事实之外,我认为最终您会发现磁盘寻道和内存分配是目前为止最大的瓶颈,而不是您有多少到数据库的连接。也就是说,既然你问了..。
让我们继续简单的假设:
-s
,它们不能设置为只有一个进程,让我们称其为A
,该进程访问使用负端口号,您将获得多线程输入队列。因此,如果A
能够执行多个查询,则可以同时分派这些查询,并且KDB+不会阻塞每个调用。但是,A
需要能够以某种方式将传入的结果流标识为对特定查询的响应。我想您可以像查询(<queryId>;<actualQuery>)
一样查询它,并解析第一个元素以进行标识。然而,在这个用例中,听起来您应该有多个A
。
使用-s
,您可以获得多线程查询,因此您必须编写这样的Q查询(有时,您可以免费获得它,比如跨分区查询)。您将阻塞每个调用,因此拥有多个A
并没有真正的优势。
https://stackoverflow.com/questions/28207145
复制相似问题