taocipian
taocipian
需要先大致研究下multiprocessing的原理&用法; 在看下怎么升级使得python sdk对multiprocessing用户更友好。 目前的实现容易让multiprocessing用户踩坑。
tablet第一次load时NewDB()会先生成manifest,再生成current。 情况1. 生成manifest以后立刻就crash了,没来得及生成current. 此时重新load一次。 情况2. 正常生成manifest和current,然而current立刻就丢了,此时发生了一次迁移,重新load一次。 这2种情况貌似不太容易区分? 我的想法: NewDB()先生成manifest,再生成current这个过程,在一个临时目录里进行,完成以后move成lg0/lg1这类目录。因为current后续都是move生成的,预期应该是都在的,不在就是丢失。
reject the ts which in the blacklist
Should record all dependences version into binary or debug-log. e.g. Nexus sdk, sofa-pbrpc......
example: https://github.com/BaiduPS/tera/blob/master/src/master/master_impl.cc#L1945 if a TS load a tablet success and down, master receives the response and run the callback function but doesn't find ts is down because of message delay,...
- [x] 集群级(仅涉及master,表格管理,需要变更meta信息) - [ ] 表格级(读、写操作) - [ ] master写schema到分布式协调服务上 - [ ] ts watch并获知其更新 - [ ] master写user信息到分布式协调服务上 - [ ] ts 接入user manager - [ ] 根据表格schema和请求者身份决定授权...
目前对meta表的操作散落在代码的很多地方; 而且用特殊符号来区分meta条目的类型一是不利于可读性,二是不便于扩展。
某一次commit把原子计数器改坏了: RowReader读时`SetMaxVersions()`设置多个版本,会读出原子计数器的多个内部版本。预期原子计数器只返回当前值。 例如:时间从t0 -> t2 ``` t0:Add 3 t1:Put 5 t2:Add 8 ``` 预期:不论怎么设置,读出 13 现在:SetMaxVersions(2),读出13和3