4paradigm / 4paradigm/OpenMLDB

disktable and memtable behave inconsistently with max_traverse_cnt

Đang mở
#1,249 2 bình luận 0 reaction 1 người được giao Được @Leowner nhận Xem trên GitHub
bug storage-engine
Ngôn ngữ chính
C++
Star
1.7k
Fork
331
Merge trung bình
12 ngày 12 giờ
Pull request đã merge (30 ngày)
1

Mô tả

When traversing a table, we use `max_traverse_cnt` to control. If `iterator->GetCount() >= max_traverse_cnt`, the traverse will be stopped. This decision is mainly in tablet_impl.cc but can be done early in disk_table.cc and mem_table.cc. For now, we add more `if (iterator->GetCount() >= max_traverse_cnt)` in disktable, which makes the `max_traverse_cnt` flag works in disktable but not in memtable. In consequence, some tests in table_test related to `max_traverse_cnt` have different results for memtable and disktable

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Look at tablet_impl.cc, disk_table.cc, and mem_table.cc for the traversal logic and the check on iterator->GetCount() >= max_traverse_cnt. The inconsistency is that disk_table has this check but mem_table does not. Run the table_test tests related to max_traverse_cnt to see the differing results. The fix is to ensure the same early stop logic is applied in both table implementations.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
cpp
Lĩnh vực
databases
Loại issue
Lỗi
Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Đặc tả rõ ràng
Mức phù hợp với người mới
45/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.