// 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 SST file. message InvertedIndexMetas { // A map of tag names to their respective metadata corresponding to an individual // inverted index within the SST file. map 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; // Defines the number of rows per group for bitmap indexing. It determines how rows // are batched for indexing, with each batch corresponding to a segment in the bitmap. // The groups are usually of uniform size, with the exception of the final group which // may contain fewer rows if the total row count is not a multiple of 'row_count_in_group'. // Segmenting allows indexed values in the tag column to be quickly located within // their respective groups during a query, reducing the search space and improving // retrieval efficiency. uint64 row_count_in_group = 2; // The byte offset of the Finite State Transducer (FST) within the SST file. uint64 fst_offset = 3; // The size in bytes of the FST data. uint64 fst_size = 4; // The byte offset where the null bitmap for this tag starts. uint64 null_bitmap_offset = 5; // The size in bytes of the null bitmap. uint64 null_bitmap_size = 6; // Statistical information about the tag's inverted index. InvertedIndexStats stats = 7; } // 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; }