elasticsearch Elasticsearch更新竞态条件?
我有一个ES索引,其中包含以下格式的文档:
elasticsearch Elasticsearch更新竞态条件?,
elasticsearch,
elasticsearch,我有一个ES索引,其中包含以下格式的文档: REQUEST: GET /users/_doc/1 RESPONSE: { "name": "Foo", "num_followers": 123456, "num_photos": 123456 } 假设我有两个过程几乎同时更新同一文档: REQUEST 1: POST /users/_doc/1/_update { "script": { "source": "ctx._source.name
REQUEST:
GET /users/_doc/1
RESPONSE:
{
"name": "Foo",
"num_followers": 123456,
"num_photos": 123456
}
假设我有两个过程几乎同时更新同一文档:
REQUEST 1:
POST /users/_doc/1/_update
{
"script": {
"source": "ctx._source.name = 'Bar'"
}
}
REQUEST 2:
POST /users/_doc/1/_update
{
"script": {
"source": "ctx._source.num_followers = 0"
}
}
其中一个请求将首先命中集群。ES如何处理第二个到达的请求?是否存在一些内部队列/时间戳逻辑,以确保所有更新都按顺序修改文档,并且不会丢失任何请求
此外,实现某种批处理逻辑来处理我端的请求排序,并向ES发出一个更新调用,这对我有好处吗?还是没有必要?关于elasticsearch不太确定,例如solr有内置的锁机制,请参阅此链接:假设锁机制是Lucene库的一个功能(这对于solr和elasticsearch都很常见),我怀疑elasticsearch可能与solr有很多共同之处。不确定elasticsearch,例如solr有内置的锁机制,请参阅此链接:假设锁机制是Lucene库的一个功能(这对于solr和elasticsearch都很常见),我怀疑elasticsearch可能与solr有很多共同之处