tera
tera copied to clipboard
区分current丢失和current本就没有生成
tablet第一次load时NewDB()会先生成manifest,再生成current。
情况1. 生成manifest以后立刻就crash了,没来得及生成current. 此时重新load一次。
情况2. 正常生成manifest和current,然而current立刻就丢了,此时发生了一次迁移,重新load一次。
这2种情况貌似不太容易区分?
我的想法: NewDB()先生成manifest,再生成current这个过程,在一个临时目录里进行,完成以后move成lg0/lg1这类目录。因为current后续都是move生成的,预期应该是都在的,不在就是丢失。
如果是move之后lg0目录丢失呢