-
Notifications
You must be signed in to change notification settings - Fork 1.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
[Streaming Indexing] Introduce bulk HTTP API streaming flavour #9070
Comments
There is new experimental API introduced in
The new API is using LD-JSON and at the moment, picks a single chunk from the stream (bulk operation), forwards it to the node of the cluster and returns the result of the operation as a chunk in the response, for example the request with three chunks:
would receive a response with three chunks as well (1:1):
This is simple communication model but very inefficient. The goal of this issue is to formalize API in such a way that it could be used as efficiently as possible, aiming to overtake existing |
Option
|
@reta My inclination here is that since this is a new API that is specifically targeting high-throughput use cases then we should explore option 2. I think there is quite a lot of overhead with parsing JSON and a binary protocol could improve upon that. For simple use cases where ease of use is paramount, the existing request-response style newline delimited JSON API will remain. I also think we could make adoption of a new binary API easier for the end user by keeping the same public API (as much as possible) of the various language clients like opensearch-java by continuing to use the current types exposed by those APIs even if it means an extra conversion on the client side to say a protobuf object type in the process of doing the binary serialization. Tagging @amberzsy here as she is working on some protobuf experiments with the client API on the search side. We could potentially make the protobuf implementation for the client API much easier by generating the protobuf schemas from the opensearch-api specification, as that should the source-of-truth for OpenSearch client API. |
@reta I'm really curious if the protobuf |
No, I haven't tried this schema yet in practice (only made sure it is processable by |
To have change delivered incrementally, focusing this issue on HTTP/NDJSON API flavour (Option |
Is your feature request related to a problem? Please describe.
The
bulk
HTTP API does not support streaming (neither HTTP/2 nor chunked transfer)Describe the solution you'd like
Introduce bulk HTTP API streaming flavor based on new experimental transport (#9067)
Describe alternatives you've considered
N/A
Additional context
See please #9067
opensearch-project/opensearch-api-specification#537
opensearch-project/documentation-website#8111
The text was updated successfully, but these errors were encountered: