2

可以在 cassandra.yaml 中指定读取请求超时:

# How long the coordinator should wait for read operations to complete
read_request_timeout_in_ms: 10000

我需要对此超时进行一些澄清。

根据客户端请求文档,读取请求可以有两种类型:外部请求或后台修复请求。

Q1:这种超时是否适用于两种类型的请求,每种情况会发生什么情况?

现在,只关注外部读取。同样,在上面链接的文档中,它说在读取过程中,会启动一个后台进程以保持一致性。

Q2:对于外部读取请求,超时是否包括后台进程所用的时间?

我问这些问题是因为我想对每个读取请求施加超时,但我不希望它影响与读取相关的任何其他后台进程。

4

1 回答 1

3

Q1:我相信后台读取修复将使用 read_request_timeout_in_ms 进行操作。

Q2:对于来自客户端的外部请求,后台修复所花费的时间通常在“后台”,不计入超时值。[1] “read_request_timeout_in_ms” 计时在协调器收到请求时开始。对于小于 ALL 的一致性,如果在超时值之前从所需数量的副本收到响应,则将响应返回给客户端。对于一致性级别 ALL,在后台读取修复完成之前不会返回响应 [2]。

[1] http://www.datastax.com/documentation/cassandra/1.2/webhelp/?pagename=docs&version=1.2&file=#cassandra/architecture/../dml/dml_config_consistency_c.html [2] http://wiki .apache.org/cassandra/ReadRepair

于 2013-10-11T22:39:21.480 回答