Skip to content

Conversation

@sushantmane
Copy link
Contributor

Summary

  • Add 11 new RPC methods to VeniceReadService proto: singleGet, multiGet, multiGetStreaming, compute, computeStreaming, isServerHealthy, getCompressionDictionary, handleAdminRequest, getMetadata, getCurrentVersionInfo, getIngestionContext
  • Add corresponding request/response message types: SingleGetRequest/Response, MultiGetRequest, MultiKeyResponse, MultiKeyStreamingResponse, ComputeRequest, HealthCheckRequest/Response, CompressionDictionaryRequest/Response, AdminRequest/Response, MetadataRequest/Response, CurrentVersionInfoRequest/Response, IngestionContextRequest/Response
  • Add shared helper messages: MultiKeyRequestKey, RpcRequestHeader
  • Existing get/batchGet/countByValue RPCs remain unchanged for backward compatibility

This is PR 2 of the gRPC read service rewrite series. Proto-only changes — no behavioral changes.

Test plan

  • ./gradlew :internal:venice-common:build — proto compiles, all tests pass
  • ./gradlew :services:venice-server:build — server builds with new generated stubs
  • ./gradlew :clients:venice-client:build — client builds, no regressions

Add new RPCs to VeniceReadService proto: singleGet, multiGet,
multiGetStreaming, compute, computeStreaming, isServerHealthy,
getCompressionDictionary, handleAdminRequest, getMetadata,
getCurrentVersionInfo, getIngestionContext.

Add corresponding request/response messages with proper field types.
Existing get/batchGet/countByValue RPCs remain unchanged for backward
compatibility. No behavioral changes - proto-only additions.
Copilot AI review requested due to automatic review settings February 8, 2026 04:52
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds the next set of gRPC read-service RPCs and message definitions to VeniceReadService.proto as part of the read service rewrite, while keeping existing RPCs for backward compatibility.

Changes:

  • Added 11 new RPC methods to VeniceReadService (including streaming variants).
  • Introduced request/response messages for single-get, multi-get, compute, health, metadata, admin, and ingestion context operations.
  • Added shared helper messages for multi-key requests and RPC headers.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

- Change MultiKeyRequestKey.keyIndex from uint32 to int32 for consistency
  with MultiKeyStreamingResponse.keyIndex (sint32) and Java's signed int
- Add comments explaining keyCount purpose (buffer pre-allocation)
- Make all errorMessage fields consistently optional across responses
- Define proto enum matching Java ServerAdminAction with UNSPECIFIED = 0
- Values offset by 1 from Java enum to accommodate proto3 default
- Update AdminRequest to use enum instead of string
Copilot AI review requested due to automatic review settings February 10, 2026 01:33
@sushantmane sushantmane changed the title [common] Add new gRPC RPC definitions and messages for read service [protocol] Add new gRPC RPC definitions and messages for read service Feb 10, 2026
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated 3 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

sushantmane and others added 2 commits February 9, 2026 17:41
Following the pattern from controller gRPC (PR linkedin#1454), errors should be
sent via gRPC's native error handling (responseObserver.onError with
StatusRuntimeException and google.rpc.Status) rather than embedded in
response messages.

Removed errorMessage from: SingleGetResponse, MultiKeyResponse,
MultiKeyStreamingResponse, CompressionDictionaryResponse, AdminResponse,
CurrentVersionInfoResponse, MetadataResponse, IngestionContextResponse.

Kept errorMessage in existing VeniceServerResponse and CountByValueResponse
for backward compatibility with implemented RPCs.
Copilot AI review requested due to automatic review settings February 10, 2026 01:57
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated 2 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

… add

interceptor TODO

- Rename `rcu` to `responseRCU` in SingleGetResponse, MultiKeyResponse, and
  MultiKeyStreamingResponse for consistency with VeniceServerResponse
- Fix ServerAdminAction enum comment to accurately document the +1 offset
  mapping between proto values and Java ServerAdminAction.getValue()
- Add TODO noting gRPC interceptors must be updated to handle new request
  types before enabling the new RPCs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant