【发布时间】:2018-01-03 08:05:53
【问题描述】:
我有一个后端存储是 S3 的用例,我们希望通过弹性搜索来支持搜索。一种选择是同时更新 S3 和索引。
我见过的大多数用例都是异步更新索引。同步更新的一个明显缺点是在更新到 S3 成功但索引更新失败时处理失败情况。
如果延迟不是问题,那么反对同步更新的要点是什么?
【问题讨论】:
标签: elasticsearch indexing amazon-s3 amazon-elasticsearch
我有一个后端存储是 S3 的用例,我们希望通过弹性搜索来支持搜索。一种选择是同时更新 S3 和索引。
我见过的大多数用例都是异步更新索引。同步更新的一个明显缺点是在更新到 S3 成功但索引更新失败时处理失败情况。
如果延迟不是问题,那么反对同步更新的要点是什么?
【问题讨论】:
标签: elasticsearch indexing amazon-s3 amazon-elasticsearch
如果您先索引然后存储,并且存储失败,那么您需要删除已索引的文档(否则,有人将能够在搜索中找到它,并且可能会误以为它存在,而实际上它不存在)。如果存储故障相对罕见,那么它可能会付出代价,但您需要找出它。
另一方面,如果您存储和索引的对象是并行处理的,那么您实际上会得到相同的效果:当一个对象被存储时,另一个正在被索引,而仍然确保除非存储对象,否则无法搜索对象。这样,您就不需要回滚对索引执行的任何操作。
【讨论】: