将 `max_hint_window_in_ms` 增加到几天是个坏主意吗?
Is increasing `max_hint_window_in_ms` to days a bad idea?
我正在考虑将 max_hint_window_in_ms
提高到大约 72 小时。有人看到这方面的问题吗?从本质上讲,它可以让我们在周末有更长的节点停机时间,而无需进行全面修复。
这取决于版本。 C* 3.0 or DSE 5.0 when the hinted handoff storage was refactored its actually a very good idea to increase it. Before then (given your 2.1 tag assuming this is you) theres a lot of issues with accumulating too many hints highlighted in this blog post之后。除非使用 3.0 之后的版本,否则我不建议增加太多。
突出显示 3.0 之前的一些问题:
- 提示存储在 C* table 中,就像一个已知反模式的队列一样,建立许多墓碑和 slow/expensive 读取
- 提示是按节点分区的,所以如果一个节点长时间宕机,分区会变得非常大。这在最新的 C*/DSE 中得到了更好的处理,但特别是在 2.1 中,这会显着影响压缩和 gcs。
- 压缩被定期调用并且是必需的,但是如果没有任何东西被删除,这意味着在节点关闭时一遍又一遍地重写突变(浪费)
- 个别突变需要通过 memtables 和完整的写入路径 vs 只是附加到磁盘
我正在考虑将 max_hint_window_in_ms
提高到大约 72 小时。有人看到这方面的问题吗?从本质上讲,它可以让我们在周末有更长的节点停机时间,而无需进行全面修复。
这取决于版本。 C* 3.0 or DSE 5.0 when the hinted handoff storage was refactored its actually a very good idea to increase it. Before then (given your 2.1 tag assuming this is you) theres a lot of issues with accumulating too many hints highlighted in this blog post之后。除非使用 3.0 之后的版本,否则我不建议增加太多。
突出显示 3.0 之前的一些问题:
- 提示存储在 C* table 中,就像一个已知反模式的队列一样,建立许多墓碑和 slow/expensive 读取
- 提示是按节点分区的,所以如果一个节点长时间宕机,分区会变得非常大。这在最新的 C*/DSE 中得到了更好的处理,但特别是在 2.1 中,这会显着影响压缩和 gcs。
- 压缩被定期调用并且是必需的,但是如果没有任何东西被删除,这意味着在节点关闭时一遍又一遍地重写突变(浪费)
- 个别突变需要通过 memtables 和完整的写入路径 vs 只是附加到磁盘