外部版本控制(external 或 external_gte)

Paw*_*aga 5 elasticsearch

我目前正在开发一个项目,该项目具有使用 Elasticsearch 实现的“投影”存储。我有一些关于外部版本控制的问题。

首先,一般来说,在文档中说

external_gte 版本类型适用于特殊用例,应谨慎使用。如果使用不当,会导致数据丢失 Blockquote 为什么会这样呢?你能提供更多细节吗?

在我的主存储案例中,假设我保留了一组实体,并且每个实体都有一个版本号。现在可以执行两种操作:

用户对单个实体进行更改,这将在内部导致实体版本增加。然后系统调度一个操作,该操作将根据实体数据创建一个文档,然后在 Elasticsearch 中建立索引。

支持团队的某个人希望使用批量请求基于主存储中保存的数据重新创建/刷新投影存储。在这种情况下,实体的版本可能不会改变。

所以,我想在第一种情况下使用 external/external_gt,在第二种情况下使用 external_gte。另一种选择是在两种情况下都使用 external_gte 版本类型,但我想知道不使用它的原因是什么?

小智 0

我认为文档作者的意思是,如果版本控制在外部系统中协调得不好,将会导致数据丢失。即,在初始数据加载后意外使用更高版本建立索引。只要您拥有控制索引的所有系统 - 我没有看到任何问题,