pub trait ManifestRegistryService:
Send
+ Sync
+ 'static {
type WriteChunksStream: Stream<Item = Result<WriteChunksResponse, Status>> + Send + 'static;
type ScanPartitionTableStream: Stream<Item = Result<ScanPartitionTableResponse, Status>> + Send + 'static;
type SearchDatasetStream: Stream<Item = Result<SearchDatasetResponse, Status>> + Send + 'static;
type QueryDatasetStream: Stream<Item = Result<QueryDatasetResponse, Status>> + Send + 'static;
type GetChunksStream: Stream<Item = Result<GetChunksResponse, Status>> + Send + 'static;
type FetchChunkManifestStream: Stream<Item = Result<FetchChunkManifestResponse, Status>> + Send + 'static;
type FetchPartitionManifestStream: Stream<Item = Result<FetchPartitionManifestResponse, Status>> + Send + 'static;
Show 14 methods
// Required methods
fn register_with_dataset<'life0, 'async_trait>(
&'life0 self,
request: Request<RegisterWithDatasetRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<RegisterWithDatasetResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn register_with_dataset_blocking<'life0, 'async_trait>(
&'life0 self,
request: Request<RegisterWithDatasetBlockingRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<RegisterWithDatasetBlockingResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn write_chunks<'life0, 'async_trait>(
&'life0 self,
request: Request<Streaming<WriteChunksRequest>>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::WriteChunksStream>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn get_partition_table_schema<'life0, 'async_trait>(
&'life0 self,
request: Request<GetPartitionTableSchemaRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<GetPartitionTableSchemaResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn scan_partition_table<'life0, 'async_trait>(
&'life0 self,
request: Request<ScanPartitionTableRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::ScanPartitionTableStream>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn get_dataset_schema<'life0, 'async_trait>(
&'life0 self,
request: Request<GetDatasetSchemaRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<GetDatasetSchemaResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn create_index<'life0, 'async_trait>(
&'life0 self,
request: Request<CreateIndexRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<CreateIndexResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn re_index<'life0, 'async_trait>(
&'life0 self,
request: Request<ReIndexRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<ReIndexResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn search_dataset<'life0, 'async_trait>(
&'life0 self,
request: Request<SearchDatasetRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::SearchDatasetStream>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn query_dataset<'life0, 'async_trait>(
&'life0 self,
request: Request<QueryDatasetRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::QueryDatasetStream>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn get_chunks<'life0, 'async_trait>(
&'life0 self,
request: Request<GetChunksRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::GetChunksStream>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn fetch_chunk_manifest<'life0, 'async_trait>(
&'life0 self,
request: Request<FetchChunkManifestRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::FetchChunkManifestStream>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn create_partition_manifests<'life0, 'async_trait>(
&'life0 self,
request: Request<CreatePartitionManifestsRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<CreatePartitionManifestsResponse>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn fetch_partition_manifest<'life0, 'async_trait>(
&'life0 self,
request: Request<FetchPartitionManifestRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::FetchPartitionManifestStream>, Status>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
}
Expand description
Generated trait containing gRPC methods that should be implemented for use with ManifestRegistryServiceServer.
Required Associated Types§
Sourcetype WriteChunksStream: Stream<Item = Result<WriteChunksResponse, Status>> + Send + 'static
type WriteChunksStream: Stream<Item = Result<WriteChunksResponse, Status>> + Send + 'static
Server streaming response type for the WriteChunks method.
Sourcetype ScanPartitionTableStream: Stream<Item = Result<ScanPartitionTableResponse, Status>> + Send + 'static
type ScanPartitionTableStream: Stream<Item = Result<ScanPartitionTableResponse, Status>> + Send + 'static
Server streaming response type for the ScanPartitionTable method.
Sourcetype SearchDatasetStream: Stream<Item = Result<SearchDatasetResponse, Status>> + Send + 'static
type SearchDatasetStream: Stream<Item = Result<SearchDatasetResponse, Status>> + Send + 'static
Server streaming response type for the SearchDataset method.
Sourcetype QueryDatasetStream: Stream<Item = Result<QueryDatasetResponse, Status>> + Send + 'static
type QueryDatasetStream: Stream<Item = Result<QueryDatasetResponse, Status>> + Send + 'static
Server streaming response type for the QueryDataset method.
Sourcetype GetChunksStream: Stream<Item = Result<GetChunksResponse, Status>> + Send + 'static
type GetChunksStream: Stream<Item = Result<GetChunksResponse, Status>> + Send + 'static
Server streaming response type for the GetChunks method.
Sourcetype FetchChunkManifestStream: Stream<Item = Result<FetchChunkManifestResponse, Status>> + Send + 'static
type FetchChunkManifestStream: Stream<Item = Result<FetchChunkManifestResponse, Status>> + Send + 'static
Server streaming response type for the FetchChunkManifest method.
Sourcetype FetchPartitionManifestStream: Stream<Item = Result<FetchPartitionManifestResponse, Status>> + Send + 'static
type FetchPartitionManifestStream: Stream<Item = Result<FetchPartitionManifestResponse, Status>> + Send + 'static
Server streaming response type for the FetchPartitionManifest method.
Required Methods§
Sourcefn register_with_dataset<'life0, 'async_trait>(
&'life0 self,
request: Request<RegisterWithDatasetRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<RegisterWithDatasetResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn register_with_dataset<'life0, 'async_trait>(
&'life0 self,
request: Request<RegisterWithDatasetRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<RegisterWithDatasetResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Register new partitions with the Dataset (asynchronously)
Sourcefn register_with_dataset_blocking<'life0, 'async_trait>(
&'life0 self,
request: Request<RegisterWithDatasetBlockingRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<RegisterWithDatasetBlockingResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn register_with_dataset_blocking<'life0, 'async_trait>(
&'life0 self,
request: Request<RegisterWithDatasetBlockingRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<RegisterWithDatasetBlockingResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Register new partitions with the Dataset (blocking)
Sourcefn write_chunks<'life0, 'async_trait>(
&'life0 self,
request: Request<Streaming<WriteChunksRequest>>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::WriteChunksStream>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn write_chunks<'life0, 'async_trait>(
&'life0 self,
request: Request<Streaming<WriteChunksRequest>>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::WriteChunksStream>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Unimplemented.
Sourcefn get_partition_table_schema<'life0, 'async_trait>(
&'life0 self,
request: Request<GetPartitionTableSchemaRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<GetPartitionTableSchemaResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_partition_table_schema<'life0, 'async_trait>(
&'life0 self,
request: Request<GetPartitionTableSchemaRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<GetPartitionTableSchemaResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Returns the schema of the partition table (i.e. the dataset manifest) itself, not the underlying dataset.
- To inspect the data of the partition table, use
ScanPartitionTable
. - To retrieve the schema of the underlying dataset, use
GetDatasetSchema
instead.
Sourcefn scan_partition_table<'life0, 'async_trait>(
&'life0 self,
request: Request<ScanPartitionTableRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::ScanPartitionTableStream>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn scan_partition_table<'life0, 'async_trait>(
&'life0 self,
request: Request<ScanPartitionTableRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::ScanPartitionTableStream>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Inspect the contents of the partition table (i.e. the dataset manifest).
The returned data will follow the schema specified by GetPartitionTableSchema
.
Sourcefn get_dataset_schema<'life0, 'async_trait>(
&'life0 self,
request: Request<GetDatasetSchemaRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<GetDatasetSchemaResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_dataset_schema<'life0, 'async_trait>(
&'life0 self,
request: Request<GetDatasetSchemaRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<GetDatasetSchemaResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Returns the schema of the dataset.
This is the union of all the schemas from all the underlying partitions. It will contain all the indexes, entities and components present in the dataset.
Sourcefn create_index<'life0, 'async_trait>(
&'life0 self,
request: Request<CreateIndexRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<CreateIndexResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn create_index<'life0, 'async_trait>(
&'life0 self,
request: Request<CreateIndexRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<CreateIndexResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Creates a custom index for a specific column (vector search, full-text search, etc).
Index can be created for all or specific partitions. Creating an index will create a new index-specific chunk manifest for the Dataset. Chunk manifest contains information about individual chunk rows for all chunks containing relevant index data.
Sourcefn re_index<'life0, 'async_trait>(
&'life0 self,
request: Request<ReIndexRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<ReIndexResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn re_index<'life0, 'async_trait>(
&'life0 self,
request: Request<ReIndexRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<ReIndexResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Recreate an index with the same configuration but (potentially) new data.
Sourcefn search_dataset<'life0, 'async_trait>(
&'life0 self,
request: Request<SearchDatasetRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::SearchDatasetStream>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn search_dataset<'life0, 'async_trait>(
&'life0 self,
request: Request<SearchDatasetRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::SearchDatasetStream>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Search a previously created index.
Do a full text, vector or scalar search. Currently only an Indexed search is supported, user must first
call CreateIndex
for the relevant column.
The response is a RecordBatch with 4 columns:
- ‘partition_id’: which partition the data is from
- ‘timepoint’: represents the points in time where index query matches. What time points are matched depends on the type of index that is queried. For example: for vector search it might be timepoints where top-K matches are found within each partition in the indexed entry. For inverted index it might be timepoints where the query string is found in the indexed column
- instance column: if index column contains a batch of values (for example a list of embeddings), then each instance of the batch is a separate row in the resulting RecordBatch
- instance_id: this is a simple element index in the batch array. For example if indexed column is a list of embeddings [a,b,c] (where each embedding is of same length) then ‘instance_id’ of embedding ‘a’ is 0, ‘instance_id’ of ‘b’ is 1, etc.
TODO(zehiko) add support for “brute force” search.
Sourcefn query_dataset<'life0, 'async_trait>(
&'life0 self,
request: Request<QueryDatasetRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::QueryDatasetStream>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn query_dataset<'life0, 'async_trait>(
&'life0 self,
request: Request<QueryDatasetRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::QueryDatasetStream>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Perform Rerun-native queries on a dataset, returning the matching chunk IDs.
These Rerun-native queries include:
- Filtering by specific partition and chunk IDs.
- Latest-at, range and dataframe queries.
- Arbitrary Lance filters.
To fetch the actual chunks themselves, see GetChunks
.
Passing chunk IDs to this method effectively acts as a IF_EXIST filter.
Sourcefn get_chunks<'life0, 'async_trait>(
&'life0 self,
request: Request<GetChunksRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::GetChunksStream>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_chunks<'life0, 'async_trait>(
&'life0 self,
request: Request<GetChunksRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::GetChunksStream>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Perform Rerun-native queries on a dataset, returning the underlying chunks.
These Rerun-native queries include:
- Filtering by specific partition and chunk IDs.
- Latest-at, range and dataframe queries.
- Arbitrary Lance filters.
To fetch only the actual chunk IDs rather than the chunks themselves, see QueryDataset
.
Sourcefn fetch_chunk_manifest<'life0, 'async_trait>(
&'life0 self,
request: Request<FetchChunkManifestRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::FetchChunkManifestStream>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn fetch_chunk_manifest<'life0, 'async_trait>(
&'life0 self,
request: Request<FetchChunkManifestRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::FetchChunkManifestStream>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Retrieves the chunk manifest for a specific index.
Sourcefn create_partition_manifests<'life0, 'async_trait>(
&'life0 self,
request: Request<CreatePartitionManifestsRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<CreatePartitionManifestsResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn create_partition_manifests<'life0, 'async_trait>(
&'life0 self,
request: Request<CreatePartitionManifestsRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<CreatePartitionManifestsResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Create manifests for all partitions in the Dataset. Partition manifest contains information about the chunks in the partitions.
This is normally automatically done as part of the registration process.
Sourcefn fetch_partition_manifest<'life0, 'async_trait>(
&'life0 self,
request: Request<FetchPartitionManifestRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::FetchPartitionManifestStream>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn fetch_partition_manifest<'life0, 'async_trait>(
&'life0 self,
request: Request<FetchPartitionManifestRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::FetchPartitionManifestStream>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Fetch the internal state of a Partition Manifest.