tera
tera copied to clipboard
configurable sharding
- 读取预分表文件时,Delimiter是空白符,rowkey里有空格就悲剧了;不支持二进制,这个暂时没啥好思路解决(用protobuf?);
- 建表完成后几千上万个tablet很快被merge成1个.(临时解决方案:禁用merge)
- 增加文本的二进制检查,增加二进制预分表功能支持?
- 预分表是在建表的时候,可以同步检查merge size
1 当前的处理是建表的检查,一旦有这样的key会报错,提示用户哪行有错,去处理,建表失败 提出这个问题的背景是什么呢? 如何支持友好的二进制转义可以好好想想。。
背景就是有个用户rowkey里面好几个空格,几千个tablet。迁移数据时建个新表(预分)然后灌数据。
我的临时方案:
- 修改teracli源码,以 \n 作为 delimiter ,不过不通用,只解决他们的问题。
- 建表时指定mergesize=0来禁止merge
二进制的,之前想过把tablet之间的分界用pb存到文件里,用的时候再load到内存中。。好像是可以的,没想到更简单的办法。
pb比较麻烦,LengthPrefixedSlice或者EscapeString都行 EscapeString的好处是人工可以编辑,而且完全兼容之前的格式 另外可以加个dump接口,从旧集群直接导出分界文件