taocipian
taocipian
case1 ``` 某个Ready的tablet, t0时刻:开始split,状态 Ready -> OnSplit t1时刻:不久ts挂掉,状态不变 t2时刻:master处理之前split的回调,发现是SplitNotSupport,状态 OnSplit -> Ready 此后这个tablet就处于“悬空”状态了。。 ``` case2 (2016.05.30) ``` t0时刻:master发送某个tablet的unload命令后,还未收到回复,就发生了一次重启 t1时刻:ts收到unload请求后开始执行,一时半会儿没有unload掉 t2时刻:master重启时query,发现该tablet在ts上 t3时刻:ts完成unload 此后这个tablet就处于“悬空”状态了。。 ``` 可能还有更多类似问题,有待深究。
有用户使用批量读接口一次性读取N多条,导致response解析失败,sdk里只能拿到rpc response parse失败,然后不断重试直到超时。
teracli拿到的busy状态是tabletnode定期收集的,取决于Level0的文件数; sdk写操作拿到的busy有2个原因:一是Level0的文件数到达阈值;二是buffer满了。 这2点不一致:在buffer满时sdk得到busy,而teracli却看不到busy.
1. 读取预分表文件时,Delimiter是空白符,rowkey里有空格就悲剧了;不支持二进制,这个暂时没啥好思路解决(用protobuf?); 2. 建表完成后几千上万个tablet很快被merge成1个.(临时解决方案:禁用merge)
1. 支持只打印数据本身(去除表头等装饰性内容),以便脚本的处理(例如awk) 2. 支持动态效果,最好支持彩色
日志里突然出现一个线程tid 12345,但好像不知道**当初是哪个线程把tid 12345丢进来的**,不便于追查日志。