-
Notifications
You must be signed in to change notification settings - Fork 24.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make use of chunked REST response infrastructure in more APIs #89838
Comments
Pinging @elastic/es-distributed (Team:Distributed) |
Turning this into a chunked response since it can become very large. relates elastic#89838
These can be huge, make them chunked to be nice to the coordinating node. relates elastic#89838
Turning this into a chunked response since it can become very large. relates #89838
These can be huge, make them chunked to be nice to the coordinating node. relates #89838
These responses can become huge, lets chunk them by index. relates elastic#89838
This response can reach a few MiB in size in an overwhelmed cluster, let's use chunking so as not to make things worse than they already are. Relates elastic#89838
This response can reach a few MiB in size in an overwhelmed cluster, let's use chunking so as not to make things worse than they already are. Relates #89838
This response can reach many MiB in size in a large and busy cluster, let's use chunking here. Relates elastic#89838
This response can reach many MiB in size in a large and busy cluster, let's use chunking here. Relates #89838
I took a look at adding chunking to the cluster state API and it is not a small task. Yet I think it's important, we still have clients that monitor things by requesting the whole routing table sometimes and they're not going away any time soon. I don't think we can just add chunking to the routing table part, making everything else a single chunk, since you pointed out elsewhere that this moves all the serialization work back onto the transport threads. So we have to do it properly. I think we can do it in stages tho, starting at the bottom and using
|
Still combines the chunks together at the upper level, but this is a step towards full chunking support for `GET _cluster/state`. Relates elastic#89838
Various places that implement response chunking involving some kind of nested structure (e.g. a list of lists) need to call something like `flatMap`, and today this means they must must convert between iterators and streams to make use of `Stream#flatMap`. This is noisy and awkward, so with this commit we introduce a way to `flatMap` directly on iterators. Relates elastic#89838
Various places that implement response chunking involving some kind of nested structure (e.g. a list of lists) need to call something like `flatMap`, and today this means they must must convert between iterators and streams to make use of `Stream#flatMap`. This is noisy and awkward, so with this commit we introduce a way to `flatMap` directly on iterators. Relates #89838
The CCR info and stats APIs can send fairly sizeable responses that scale as `O(#shards)`. This commit makes them chunked. Relates elastic#89838
Most chunking implementations have a corresponding test regarding the number of chunks emitted, and they're all pretty much copies of each other. Extracting a test utility to capture this pattern is long overdue. Relates elastic#89838
The CCR info and stats APIs can send fairly sizeable responses that scale as `O(#shards)`. This commit makes them chunked. Relates #89838
Most chunking implementations have a corresponding test regarding the number of chunks emitted, and they're all pretty much copies of each other. Extracting a test utility to capture this pattern is long overdue. Relates #89838
I think that's everything but the various search APIs, for which I think we should ask for help from the search team. Should we open a separate issue for the search team about that, and then close this one? |
Pinging @elastic/es-search (Team:Search) |
Heya, I added the Search label so that this is on our radar, given that the only remaining task is ours. |
We now have a Search meta issue (#95661), so I am removing the search area label from this one. |
This commit adds xcontent chunking to SearchResponse and MultiSearchResponse by making SearchHits implement ChunkedToXContent. Relates to #89838
Now that #88311 has landed and we have the infrastructure for serializing chunked REST responses, we should make use of it to fix the massive memory usage of APIs that are known to return large responses:
POST _cluster/reroute
(includes the cluster state) (Chunked encoding for cluster reroute API #92615)IndicesShardStoresAction
#94507)The text was updated successfully, but these errors were encountered: