Skip to content
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

[Feature Request] Optimizations - gRPC plugin #16924

Open
finnegancarroll opened this issue Dec 31, 2024 · 0 comments
Open

[Feature Request] Optimizations - gRPC plugin #16924

finnegancarroll opened this issue Dec 31, 2024 · 0 comments
Labels
enhancement Enhancement or improvement to existing feature or request Plugins untriaged

Comments

@finnegancarroll
Copy link
Contributor

Is your feature request related to a problem? Please describe

Please describe the end goal of this project

Tracking some optimizations which are specific (or may be more easily applied) to a gRPC server alternative of the OpenSearch API.

Features

  • Pass through optimization
    Initial search and index services deserialize protobuf messages into POJO before handing off to internal client to execute a request on the transport layer. We can potentially optimize this process by passing the client protobuf objects necessary to execute the request directly to the client and further propagating these objects across the transport layer. Delegating deserialization work to the shard level.

  • Streaming endpoint alternatives
    Protobuf + gRPC enables the simple transformation of regular indexing/search services into streaming alternatives by separating per-request metadata from bulk response body. Maybe most applicable applied to bulk indexing requests and search responses.

message StreamingSearchResponse {
  oneof response {
    // First message will contain metadata
    SearchMetadata metadata = 1;
    // Subsequent messages will contain individual hits
    SearchHitChunk hit = 2;
  }
}

// Streaming search service definition
service StreamingSearchService {
  // Stream search results as they become available
  rpc StreamingSearch(SearchRequest) returns (stream StreamingSearchResponse) {}
}

Describe the solution you'd like

Experimental benchmarking of potential gRPC optimizations.

Related component

Plugins

Describe alternatives you've considered

No benchmarking.

Additional context

Supporting References

Experimental grpc-transport pr - #16534

Ecosystem meta issue

@finnegancarroll finnegancarroll added enhancement Enhancement or improvement to existing feature or request untriaged labels Dec 31, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Enhancement or improvement to existing feature or request Plugins untriaged
Projects
Status: Todo
Development

No branches or pull requests

1 participant