4paradigm / 4paradigm/OpenMLDB
disktable and memtable behave inconsistently with max_traverse_cnt
- 主要语言
- C++
- 星标
- 1.7k
- 派生
- 331
- 平均合并
- 12 天 12 小时
- 30 天内合并 PR
- 1
描述
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
贡献指南
调研方向
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.
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- cpp
- 领域
- databases
- Issue 类型
- 缺陷
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 活跃度
- 停滞
- 描述清晰度
- 描述清楚
- 新手友好度
- 45/100