【发布时间】:2020-03-01 09:26:11
【问题描述】:
我在服务器(端口 5001)中有一个表 `t。
t:([] sym:`GOOG`AMZN; px:100 2000)
我们有两个客户端同时向表 t 插入数据。
Client 1:
h:hopen 5001
do[10; h"`t upsert ({x}rand `GOOG`AMZN;{x}rand 10)"]
Client 2:
h:hopen 5001
do[10; h"`t upsert ({x}rand `GOOG`AMZN;{x}100+rand 10)"]
根据上述情况,我有两个问题:
1. 当多个线程/进程同时更新表时,upsert线程是否安全?
2. 如果表 t 以列 sym 为键,线程行为是否相同?
【问题讨论】:
-
我会警惕两个或更多客户将插入键控表。例如,如果他们都更新了 GOOG,那么最后处理的客户端查询将是 t 中显示的值。
标签: kdb