在k8s集群上部署了三个实例的es集群,创建一个索引,然后不断往这个索引作批量操作(包括创建、修改和删除文档),操作一段时间后,查询其中一个文档假设id是12345,这时候文档是查询不到的(这个文档经历了创建、修改和删除操作),然后在虚拟机上执行脚本,让k8s处于内存不足的状态,这时候es集群的pod自动不断重启中,此时es集群不可用。一段时间后,恢复k8s集群,然后es集群也自动恢复了,这个时候再去查询id为12345的文档,又能查到。请问这个重启过程中,es做了什么事情导致被删除的文档又能查到?
4 个回复
Charele - Cisco4321
赞同来自:
也不知道你这是什么神操作(让它内存不足,不断重启,,,)
不管如何,一个正常集群,你插入一条数据,
只要不删除它,你用GET是肯定有结果的。(SEARCH不一定)
实在不行,你可以先搞一个节点的集群看下。
贴出你的集群状态,是不是正常。
Charele - Cisco4321
赞同来自:
删除的数据还能再活过来。
1 你的这个索引有什么特别设置吗?
2 你能重现这个吗?你在执行那个神奇脚本之前,先执行下_flush看看呢,
另外,你的ES版本应该是ES7之前的版本吧,
locatelli
赞同来自:
- 确定是一个文档吗?timestamp都一致?
- 有没有可能是新创建的文档?
- 这个现象可以稳定重现?
另外,如果你的业务需要大量update/delete操作,ES不见得适合
Judge
赞同来自: