2b3ae45740
* feat: add base offset to `InvertedIndexMeta` Signed-off-by: Zhenchi <zhongzc_arch@outlook.com> * chore: rename fields to reduce confused Signed-off-by: Zhenchi <zhongzc_arch@outlook.com> * fix: make Signed-off-by: Zhenchi <zhongzc_arch@outlook.com> * Update proto/greptime/v1/index/inverted_index.proto Co-authored-by: Ruihang Xia <waynestxia@gmail.com> --------- Signed-off-by: Zhenchi <zhongzc_arch@outlook.com> Co-authored-by: Ruihang Xia <waynestxia@gmail.com>
80 lines
2.9 KiB
Protocol Buffer
80 lines
2.9 KiB
Protocol Buffer
// Copyright 2023 Greptime Team
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
syntax = "proto3";
|
|
|
|
package greptime.v1.index;
|
|
|
|
option java_package = "io.greptime.v1.index";
|
|
option java_outer_classname = "Index";
|
|
option go_package = "github.com/GreptimeTeam/greptime-proto/go/greptime/v1/index";
|
|
|
|
// InvertedIndexMetas defines the metadata for an inverted index
|
|
// within an inverted index blob.
|
|
message InvertedIndexMetas {
|
|
// A map of tag names to their respective metadata corresponding to an individual
|
|
// inverted index within the inverted index blob.
|
|
map<string, InvertedIndexMeta> metas = 1;
|
|
}
|
|
|
|
// InvertedIndexMeta contains the metadata for a specific tag's inverted index.
|
|
message InvertedIndexMeta {
|
|
// Name of the tag associated with the inverted index.
|
|
string name = 1;
|
|
|
|
// The base byte offset for this tag's inverted index data within the blob.
|
|
// Other offsets in this message are relative to this base offset.
|
|
uint64 base_offset = 2;
|
|
|
|
// The total size in bytes of this tag's inverted index data, including bitmaps,
|
|
// FST data.
|
|
uint64 inverted_index_size = 3;
|
|
|
|
// The byte offset of the Finite State Transducer (FST) data relative to the `base_offset`.
|
|
uint32 relative_fst_offset = 4;
|
|
|
|
// The size in bytes of the FST data.
|
|
uint32 fst_size = 5;
|
|
|
|
// The byte offset relative to the `base_offset` where the null bitmap for this tag
|
|
// starts.
|
|
uint32 relative_null_bitmap_offset = 6;
|
|
|
|
// The size in bytes of the null bitmap.
|
|
uint32 null_bitmap_size = 7;
|
|
|
|
// Statistical information about the tag's inverted index.
|
|
InvertedIndexStats stats = 8;
|
|
|
|
// The number of rows per group for bitmap indexing which determines how rows are
|
|
// batched for indexing. Each batch corresponds to a segment in the bitmap and allows
|
|
// for efficient retrieval during queries by reducing the search space.
|
|
uint64 segment_row_count = 9;
|
|
}
|
|
|
|
// InvertedIndexStats provides statistical data on a tag's inverted index.
|
|
message InvertedIndexStats {
|
|
// The count of null entries within the tag's column.
|
|
uint64 null_count = 1;
|
|
|
|
// The number of distinct values within the tag's column.
|
|
uint64 distinct_count = 2;
|
|
|
|
// The minimum value found within the tag's column, encoded as bytes.
|
|
bytes min_value = 3;
|
|
|
|
// The maximum value found within the tag's column, encoded as bytes.
|
|
bytes max_value = 4;
|
|
}
|