Om Saran
Om Saran

Reputation: 35

Bulk API order of execution Elasticsearch

If I have requests 1,2,3 in the bulk API of elasticsearch, am I guaranteed that it is executed sequentially, i.e 1 first then 2 and then 3?

Upvotes: 2

Views: 1072

Answers (2)

Xin Liang
Xin Liang

Reputation: 21

After reading the source code, we've found that, for operations upon the same doc id, the order can be assured. Because Elasticsearch server will first sort the bulk request and group them by Shard. Then distributed requests will be sending to those shards. Once a shard receives a Shard bulk request, it will execute the requests one by one.

Upvotes: 0

emanek
emanek

Reputation: 421

This article says that

Each subrequest is executed independently, so the failure of one subrequest won’t affect the success of the others.

This implies that you should not count on the order of the requests, because some of them might not finish successfully at all.

However, the response contains the status for each subrequest in the same order as they were submitted.

Also note that the index is refreshed only 1/sec (by default), so i would expect that individual subrequests would not see the changes of other operations from the same batch.

Upvotes: 5

Related Questions