-
主键模型 schema change 后 tablet state 未持久化,重启后导致不触发 Compaction, 从而 Too many versions
通过 show tablet 后, curl meta 信息,发现 tablet 一直是NOT_READY状态
"tablet_state": "PB_NOTREADY",
2.5后可以通过下面这个SQL,查看哪些 Tablet 有问题
select be_id, state, count(*) from information_schema.be_tablets group by be_id, state;
73474502 NOTREADY 130
- Github Issue:
- Github Fix PR:
- Jira
- 问题版本:
- 2.3.0 ~ 2.3.11
- 2.4.0 ~ 2.4.4
- 2.5.0 ~ 2.5.4
- 修复版本:
- 临时规避方法:
- 方法1: 用 meta_tool.sh 删除有问题的 tablet
- 方法2: 升级后,用 admin 脚本处理
admin execute on 10004 '
for (info in StorageEngine.get_tablet_infos(xxx, yyy)) {
if (info.state == 0) {
var t = StorageEngine.get_tablet(info.tablet_id)
if (t != null) {
t.set_tablet_state_as_int(0)
t.save_meta()
System.print("fix table %(info.table_id) tablet %(info.tablet_id)")
}
}
}
';
xxx: tablet_id
yyy: partition_id