From 3947005b8002bb8d31b1b211d7468c7e943aaa8d Mon Sep 17 00:00:00 2001 From: Luennng Date: Wed, 22 May 2024 16:13:17 +0800 Subject: [PATCH] [fix](inverted index)Change index_id from int32 to int64 to avoid overflow --- be/src/index-tools/index_tool.cpp | 4 ++-- be/src/olap/rowset/rowset_writer_context.h | 1 + be/src/olap/rowset/segment_v2/inverted_index_desc.cpp | 4 ++-- be/src/olap/rowset/segment_v2/inverted_index_desc.h | 4 ++-- be/src/olap/rowset/segment_v2/inverted_index_reader.h | 2 +- 5 files changed, 8 insertions(+), 7 deletions(-) diff --git a/be/src/index-tools/index_tool.cpp b/be/src/index-tools/index_tool.cpp index 5c6559f9b7689b..e621e25adbceba 100644 --- a/be/src/index-tools/index_tool.cpp +++ b/be/src/index-tools/index_tool.cpp @@ -76,7 +76,7 @@ DEFINE_string(pred_type, "", "inverted index term query predicate, eq/lt/gt/le/g DEFINE_bool(print_row_id, false, "print row id when query terms"); DEFINE_bool(print_doc_id, false, "print doc id when check terms stats"); // only for debug index compaction -DEFINE_int32(idx_id, -1, "inverted index id"); +DEFINE_int64(idx_id, -1, "inverted index id"); DEFINE_string(src_idx_dirs_file, "", "source segment index files"); DEFINE_string(dest_idx_dirs_file, "", "destination segment index files"); DEFINE_string(dest_seg_num_rows_file, "", "destination segment number of rows"); @@ -406,7 +406,7 @@ int main(int argc, char** argv) { return true; }; - int32_t index_id = FLAGS_idx_id; + int64_t index_id = FLAGS_idx_id; std::string tablet_path = FLAGS_tablet_path; std::string src_index_dirs_string; std::string dest_index_dirs_string; diff --git a/be/src/olap/rowset/rowset_writer_context.h b/be/src/olap/rowset/rowset_writer_context.h index 366af8cba4e900..37a3b4dafc5fd5 100644 --- a/be/src/olap/rowset/rowset_writer_context.h +++ b/be/src/olap/rowset/rowset_writer_context.h @@ -79,6 +79,7 @@ struct RowsetWriterContext { int64_t newest_write_timestamp = -1; bool enable_unique_key_merge_on_write = false; + // store column_unique_id to skip write inverted index std::set skip_inverted_index; DataWriteType write_type = DataWriteType::TYPE_DEFAULT; BaseTabletSPtr tablet = nullptr; diff --git a/be/src/olap/rowset/segment_v2/inverted_index_desc.cpp b/be/src/olap/rowset/segment_v2/inverted_index_desc.cpp index 1544d18ed7b921..1761f8f39d0b45 100644 --- a/be/src/olap/rowset/segment_v2/inverted_index_desc.cpp +++ b/be/src/olap/rowset/segment_v2/inverted_index_desc.cpp @@ -28,14 +28,14 @@ const std::string InvertedIndexDescriptor::index_suffix = ".idx"; const std::string InvertedIndexDescriptor::index_name_separator = "_"; std::string InvertedIndexDescriptor::get_temporary_index_path( - const std::string& segment_path, uint32_t uuid, const std::string& index_suffix_path) { + const std::string& segment_path, uint64_t uuid, const std::string& index_suffix_path) { std::string suffix = index_suffix_path.empty() ? "" : "@" + index_suffix_path; return StripSuffixString(segment_path, segment_suffix) + index_name_separator + std::to_string(uuid) + suffix; } std::string InvertedIndexDescriptor::get_index_file_name(const std::string& segment_path, - uint32_t uuid, + uint64_t uuid, const std::string& index_suffix_path) { std::string suffix = index_suffix_path.empty() ? "" : "@" + index_suffix_path; return StripSuffixString(segment_path, segment_suffix) + index_name_separator + diff --git a/be/src/olap/rowset/segment_v2/inverted_index_desc.h b/be/src/olap/rowset/segment_v2/inverted_index_desc.h index 5d86e7ddd36262..0f9d591be6c3fe 100644 --- a/be/src/olap/rowset/segment_v2/inverted_index_desc.h +++ b/be/src/olap/rowset/segment_v2/inverted_index_desc.h @@ -31,9 +31,9 @@ class InvertedIndexDescriptor { static const std::string segment_suffix; static const std::string index_suffix; static const std::string index_name_separator; - static std::string get_temporary_index_path(const std::string& segment_path, uint32_t uuid, + static std::string get_temporary_index_path(const std::string& segment_path, uint64_t uuid, const std::string& index_suffix_path); - static std::string get_index_file_name(const std::string& path, uint32_t uuid, + static std::string get_index_file_name(const std::string& path, uint64_t uuid, const std::string& index_suffix_path); static std::string get_index_file_name(const std::string& path); static const std::string get_temporary_null_bitmap_file_name() { return "null_bitmap"; } diff --git a/be/src/olap/rowset/segment_v2/inverted_index_reader.h b/be/src/olap/rowset/segment_v2/inverted_index_reader.h index 8ea430cd1dae63..9d603a85d12414 100644 --- a/be/src/olap/rowset/segment_v2/inverted_index_reader.h +++ b/be/src/olap/rowset/segment_v2/inverted_index_reader.h @@ -99,7 +99,7 @@ class InvertedIndexReader : public std::enable_shared_from_this& get_index_properties() const { return _index_meta.properties();