You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Use a read-only MetastoreReadService trait for read routing
Replace the full `MetastoreService` implementation on
`ReadReplicaRoutingMetastore` (which forced ~45 delegating methods, most
of them writes) with a narrow, read-only `MetastoreReadService` trait —
the read-only subset of the metastore RPCs (`index_metadata`,
`list_indexes_metadata`, `list_splits`, `list_metrics_splits`,
`list_sketch_splits`).
- `MetastoreServiceClient` implements `MetastoreReadService`;
`MetastoreReadServiceClient = Arc<dyn MetastoreReadService>`.
- `ReadReplicaRoutingMetastore` now implements only the 5-method trait, so
writes are excluded at the type level rather than delegated.
- The search and DataFusion read paths take `MetastoreReadServiceClient` /
`&dyn MetastoreReadService`; `list_parquet_splits_*` take
`&dyn MetastoreReadService`. `single_node_search` keeps its concrete
`MetastoreServiceClient` parameter and adapts internally.
Addresses review feedback that the wrapper should expose a Go-style
read-only interface instead of reimplementing the whole service.
0 commit comments