tablet元数据异常

版本说明:18.4

问题背景:查询某天数据时,多次查询结果不一致

自查过程:
1、SHOW PROC ‘/statistic’;

2、SHOW PROC ‘/statistic/14474’;

3、随机上图结果中tabletid
show tablet 3164124

并执行结果中的DetailCmd

三副本的rowcount、state、isbad均正常

疑点:按照后面的结果,该tabletid不应该出现在第2步的结果中

补充1:由于tablet量大,排查出几个tablet三副本不一致的情况,按照如下命令修复
admin set replica status properties(“tablet_id” = “4250688”,“backend_id” = “10005”,“status” = “bad”)

修复后,再次执行SHOW PROC ‘/statistic’; ,不一致tablet总数已经下降

补充2:在第3点中描述的情况,对修复tablet产生了干扰,目前已经通过脚本的方式批量获取损坏的tablets情况,重跑数据

使用的更新模型?insert into select导入的数据?

是的,而且今天出现了更新模型unique key失效的情况,也是和数据不一致有关系,清空数据后,重跑就好了

这个问题新版本解决了。当前版本建议增加一下order by,使用insert into select * from tbl order by col1方式

原因是?order by col1 后面的排序字段是所有的key列嘛

tablet副本不一致统计信息也是有问题的,这个有办法解决嘛

有的副本数据写入乱序导致,order by随便一个列就行

这个是算法问题,2.2版本修复了

随便一个列 :joy:,从key列还是value 列还是都可以里面选嘛?感觉怪怪的

好像是引起这个原因是写入时同一批次数据unique key对应的数据不同有多条,同时也是一个bug,所以建议是给一个order by指定顺序,因为我这边大量使用unique model,使用的好好的,今天发现了一个业务逻辑错误,导致了一次insert into时,unique key对应了2条数据

嗯嗯,是的,同一批数据里面有相同unique key的情况下,有可能会乱序,可能会有问题。加一个order by是为了保证同一批次写入的时候有序。

嗯嗯,明白,tablet元数据两处结果不一致,这个怎么解决一下啊