java - 从多个线程发布到 KDB

标签 java multithreading kdb q-lang

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

最佳答案

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

让我们进行简单的假设:

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

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

-s你会得到多线程查询,所以你必须这样编写查询(有时你可以免费获得它,比如跨分区查询)。您将阻止每个调用,因此拥有多个 A 并没有真正的优势的。

关于java - 从多个线程发布到 KDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28207145/

相关文章:

C++ 多线程原子加载/存储

ubuntu - 在 Ubuntu 中使用 32 位 kdb+ 运行 pyq 时出现 "No such file or directory"错误

algorithm - 'exec' 和 'select' 之间的区别;质因数分解算法

java - Eclipse 运行配置的默认值

JAVA:如何检查网站文档是否包含某个单词?

java - 如何读取 Android Assets 中的文件

kdb - 使用 Q 仅更新键控 KDB+ 表中的匹配记录

java - 将 Maven 输出发送到 Eclipse 中的文件

java - 在Android Studio中运行ExecutorService时出现类异常错误

java - 这应该是同步方法吗?