Hello all. I'm wondering if someone can give me some further information about the following Breaking Change:
As of 5.0.0 the get API will issue a refresh if the requested document has been changed since the last refresh but the change hasn’t been refreshed yet. This will also make all other changes visible immediately. This can have an impact on performance if the same document is updated very frequently using a read modify update pattern since it might create many small segments. This behavior can be disabled by passing realtime=false to the get request.
My questions are:
- Wasn't the real-time get API a given? Meaning a cheap operation? Why did it change? Reliability?
- How different is this approach from previous es versions when getting documents?
- What has refreshing an index have to do with segment creation?
- How frequent should an update on a document be to encounter this issue?
- Does it happen on a per document basis or frequently updating documents from the same shard will result in this undesired behavior?
- Can refreshing timings between shards potentially return stale results, even when using write_consistency: all?
My concern is that my use case makes frequent updates to nearly all documents in my cluster. Never encountered an issue with get requests up until 2.4.1 so I want to make sure I'm covered before moving forward with 5.0.
Those questions are just what I could get from the top of my head, so if any of you have any other questions or insights I'm happy to hear about them.