0

我们有一个具有多个线程的应用程序,它重用一个 KDB 连接。从性能的角度来看,打开多线程 KDB 实例的多个连接以加快进程是否会很好?同样有趣的是,如果我们从多个线程发布到单个连接,是否有任何潜在的负面影响:我们有 java 应用程序并使用exxeleron java 库。

4

1 回答 1

1

除了到 KDB 的单个套接字连接本身并不是很消耗资源这一事实之外,最后我认为您会发现磁盘搜索和内存分配是迄今为止最大的瓶颈,而不是您必须连接多少个数据库。也就是说,既然你问...

让我们继续简单的假设:

  1. KDB 数据库是一个历史数据库。那边的多线程选项是负端口号和-s- 不能同时设置
  2. 您有一个A访问它的进程,我们称之为它

使用负端口号,您将获得多线程输入队列。因此,如果A能够执行多个查询,则可以同时分派它们,并且 KDB+ 不会在每次调用时阻塞。但是A,不知何故需要能够将传入的结果流识别为对特定查询的响应。您可以像查询它(<queryId>;<actualQuery>)并解析第一个元素以进行识别。然而,在这个用例中,听起来你应该有多个A's。

随着-s您获得多线程查询,因此您必须这样编写 q 查询(有时您可以免费获得它,例如跨分区查询)。您将阻止每次通话,因此拥有多个A's 并没有真正的优势。

于 2015-01-29T15:23:38.500 回答