Advancing OpenSearch With gRPC and Protobuf at Uber: A High-Performance...
summary
Uber adds a parallel gRPC + Protobuf transport to OpenSearch 3.2 that runs on separate ports and requires an enablement setting, with generated proto libraries published to Maven/PyPI. The pipeline auto-converts the OpenSearch OpenAPI spec to protos via OpenAPI Generator plus pre/post processing to preserve field numbers and handle underscore fields (proto generation). Benchmarks: Bulk shows 15–40% latency/throughput gains; M3 indexer sees P50 ~20% and P99 ~10% reduction; Spark batch jobs shrink 20–30% (one job drops from ~3h to <2h); kNN high-dim queries (e.g. 1536) cut P50–P99 latency ~50–70%. Switching response encoding to gRPC Smile yields an extra 30–47% speedup and reduces index size ~30–35%.
AI-written summary · about
chapters (10)
- 0:00gRPC and Protobuf intro
- 3:52Uber’s search and OpenSearch
- 5:15gRPC transport in OpenSearch
- 8:05Protobuf from OpenSearch API
- 13:24HTTP vs gRPC differences
- 15:31gRPC performance impact
- 24:24Benchmarking learnings
- 31:52gRPC with Smile
- 34:42Current roadmap
- 36:30Q&A
related talks
31mUber’s Innovations in OpenSearch for a Cloud Native, Serverles...
46mIntroduction to gRPC
18mHigh Performance Service Meshes with gRPC Proxyless
24mHow We Built Protosockets to Go Beyond HTTP and gRPC
37mgRPC Intro
42mClosing Remarks
35mThinking Beyond the REST API: gRPC for Android
35mWhy OCP networking performances on VMs are suboptimal and how to improve them by 5x
