如何在时态工作流中扩展用于匹配服务的数据库



如果我们使用activity id作为数据库匹配服务的分片键,那么按队列名称读取将查询所有的分片表,这是非常昂贵的。我们如何设置匹配服务的数据库?

匹配服务将任务存储在task_queues表中:

CREATE TABLE task_queues
range_hash BIGINT NOT NULL,
task_queue_id BYTEA NOT NULL,
--
range_id BIGINT NOT NULL,
data BYTEA NOT NULL,
data_encoding VARCHAR(16) NOT NULL,
PRIMARY KEY (range_hash, task_queue_id)
);

它的主键是(range_hashtask_queue_id(对。所以您必须通过range_hash或(range_hashtask_queue_id(对进行分片。任何其他的分片策略都是行不通的。共享单个任务队列id没有意义,因为它在设计上的吞吐量非常有限。单个任务队列被分成多个分区,每个分区都有自己的id。

range_hash是给定Namespace、TaskQueueName和TaskQueueType的特定TaskQueue/Task的散列。

CCD_ 7与CCD_。它用于确保只有一个匹配的节点可以在这个特定的任务队列分区上操作。

相关内容

最新更新