想象一下,我每秒都会向一个禁用TTL的ElasticSearch添加一次文档。
每个文档的TTL均为2h
。
一小时后,我在索引上启用TTL。
我继续添加文档,直到第二个小时开始。
在我看来,应该发生的事件链是:
- - - - - - - - -
| | | |
| | | |_4hr: All documents dead
| | |_2hr: Stop adding documents, first documents should die
| |_1hr: Enable TTL on index
|_0hr: Begin adding documents
这对应于principle of least astonishment,但实际上会发生什么? TTL documentation没有解释如果索引的TTL延迟打开,或者反复打开和关闭会发生什么。
当然,非常感谢使用对可靠文档的引用的答案。