Open cocalele opened 1 year ago
Global FreeList + Global Trimlist + private blockmap/redolog
一次block的分配,需要至少5次IO操作:
1) ATS 拿锁 ===> 一次IO;
2)读取free list ====> N 次 IO
3) 分配到block,持久化Free List ====> N 次 IO;
4)Redolog ===> 一次IO;
5)ATS释放锁 =====> 一次IO;
Free List被持久化,但是LMT(Redolog)没有被持久化,可能导致再次加载时,block的丢失。
1)S2 open volume;
2)S2 加载 volume在SSD上的Block Map + Redolog的回放 ==》可能会导致open volume的时间的增加;
3)更新volume的ATS,保证当前这个volume的归属于S2;
最终选择方案 : Global LMT + Private copy Global LMT由owner控制,所有的LMT操作都发往owner节点执行。但是volume所在(被打开使用)的工作节点会保留一份和这个volume相关的内存拷贝。 当需要修改LMT(分配,删除 object)的时候,工作节点将修改操作发往owner节点,并在自己的私有副本中进行同样的修改。
Global
Private