Elasticsearch更新竞争条件?

时间:2019-07-22 22:57:27

标签: 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 = 'Bar'"
    }
}


REQUEST 2:
POST /users/_doc/1/_update
{
    "script": {
        "source": "ctx._source.num_followers = 0"
    }
}

其中一个请求将首先到达群集。 ES如何处理第二个到达的请求?是否有一些内部队列/时间戳逻辑来确保所有更新顺序修改文档,并且不会丢失任何请求?

此外,我是否可以通过实施某种批处理逻辑来受益,该逻辑可以处理我端的请求排序并向ES发出一个更新调用,或者这是不必要的吗?

0 个答案:

没有答案
相关问题