// 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 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 metas = 1; // The total count of rows within the inverted index blob. // This is used to determine the number of segments within the bitmap. uint64 total_row_count = 2; // 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 = 3; } // 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 type of bitmap used for indexing. BitmapType bitmap_type = 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; } // BitmapType defines the type of bitmap used for indexing. enum BitmapType { BitVec = 0; Roaring = 1; }