kdb中的并行处理

kdb中的并行处理,kdb,Kdb,当我们使用-s时,主线程将一些工作委托给从线程 我在使用3个从线程的会话上运行以下代码:q-S3 select from t where date within 2019.01.18 2019.01.20 试图了解q如何在内部使用线程进行上述查询。 kdb是否在内部使用每个子线程获取日期数据,然后主线程在最后合并数据? 比如: main thread looking for slave threads and assigning work slave 1: t1: select fr

当我们使用-s时,主线程将一些工作委托给从线程

我在使用3个从线程的会话上运行以下代码:q-S3

select from t where date within 2019.01.18 2019.01.20
试图了解q如何在内部使用线程进行上述查询。
kdb是否在内部使用每个子线程获取日期数据,然后主线程在最后合并数据?
比如:

main thread looking for slave threads and assigning work
    slave 1:  t1: select from t where date within 2019.01.18
    slave 2:  t2: select from t where date within 2019.01.19
    slave 3:  t3: select from t where date within 2019.01.20
    main thread: t1,t2,t3

每个从线程做什么工作,主线程做什么工作?

如果表是分段的,并且使用多个线程,那么分区将被并行处理。更多详情: 和

使用从属线程调用map and reduce框架,每个线程在其中执行分配的任务 并返回其结果的副本,供主线程聚合

在您的特定情况下,如果查询的表是分区的,那么查询将有效地并行化。 因为它会拉入所有列,所以查询将是I/O绑定的,这意味着您不会看到太多/任何加速。

试试这个 {从t中选择,其中日期=x}日期(其中日期在2019.01.18 2019.01.20内)

应该快一点