差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン 最新のリビジョン 両方とも次のリビジョン | ||
blog:2014:2014-11-09 [2014-11-11 11:14] Decomo |
blog:2014:2014-11-09 [2015-01-06 11:51] 127.0.0.1 外部編集 |
||
---|---|---|---|
行 9: | 行 9: | ||
ギャングブロックは、DMUのような1つの大きなブロックを模倣した、小さなブロックの集合体です。 | ギャングブロックは、DMUのような1つの大きなブロックを模倣した、小さなブロックの集合体です。 | ||
- | プールが殆ど満杯だったり深刻な断片化が原因で、< | + | プールが殆ど満杯だったり深刻な断片化が原因で、'' |
- | ギャングブロックは、1つのギャングヘッダ(< | + | ギャングブロックは、1つのギャングヘッダ('' |
ギャングヘッダは丁度インダイレクトブロックのようなもので、ブロックポインタの配列です。 | ギャングヘッダは丁度インダイレクトブロックのようなもので、ブロックポインタの配列です。 | ||
ギャングヘッダは1セクタしか消費しません。それ故に、断片化にかかわらず確保可能です。 | ギャングヘッダは1セクタしか消費しません。それ故に、断片化にかかわらず確保可能です。 | ||
行 17: | 行 17: | ||
ギャングブロックは、SHA256チェックサムの一意性を保証するための検証値にbpのvdev, | ギャングブロックは、SHA256チェックサムの一意性を保証するための検証値にbpのvdev, | ||
- | 重要なのは、そのギャングブロックのbpの< | + | 重要なのは、そのギャングブロックのbpの'' |
これは、データブロックシグネチャ(重複排除に必要)の物理的な格納状態に依存しない事を保証します。 | これは、データブロックシグネチャ(重複排除に必要)の物理的な格納状態に依存しない事を保証します。 | ||
行 24: | 行 24: | ||
ギャングツリーの根はギャングリーダーと呼ばれます。 | ギャングツリーの根はギャングリーダーと呼ばれます。 | ||
- | ギャングブロックへのあらゆる操作(読み込み、書き込み、解放、要求)遂行のため、< | + | ギャングブロックへのあらゆる操作(読み込み、書き込み、解放、要求)遂行のため、'' |
これは、全てのギャングヘッダとその全てのギャングブロックを構成するためのbpを含む、コア内ツリー(in-core tree)を生成します。 | これは、全てのギャングヘッダとその全てのギャングブロックを構成するためのbpを含む、コア内ツリー(in-core tree)を生成します。 | ||
- | 今しがた組み立てられたギャングツリーで、< | + | 今しがた組み立てられたギャングツリーで、'' |
- | ギャングブロックの解放のために、< | + | ギャングブロックの解放のために、'' |
- | < | + | '' |
- | < | + | '' |
- | < | + | '' |
two-phase assemble/ | two-phase assemble/ | ||
行 37: | 行 37: | ||
いったんギャングツリーが組み立てられれば、解放と確保はメモリに対する操作となり、失敗する事はありません。 | いったんギャングツリーが組み立てられれば、解放と確保はメモリに対する操作となり、失敗する事はありません。 | ||
- | ギャング書き込み失敗イベントでは、全ての確保済み領域を直ちに解放(すなわち空き領域マップの後ろに追加)するために、< | + | ギャング書き込み失敗イベントでは、全ての確保済み領域を直ちに解放(すなわち空き領域マップの後ろに追加)するために、'' |
- | これは、あてにならないデバイス(flaky device)が原因のサスペンド・レジュームが繰り返されている間に、< | + | これは、あてにならないデバイス(flaky device)が原因のサスペンド・レジュームが繰り返されている間に、'' |
ギャングの再書き込みはsync-to-convergenceの間にだけ発生します。 | ギャングの再書き込みはsync-to-convergenceの間にだけ発生します。 | ||
ギャングツリーを組み立てられなかった場合、そのブロックが変更される事はありません。従って、その解放は安全に保留する事が出来ます。(知っての通りブロックはまだ無傷です。) | ギャングツリーを組み立てられなかった場合、そのブロックが変更される事はありません。従って、その解放は安全に保留する事が出来ます。(知っての通りブロックはまだ無傷です。) | ||
- | ギャングツリーを組み立てる事が出来た場合、たとえ再書き込みのうちの幾つかが失敗しても、< | + | ギャングツリーを組み立てる事が出来た場合、たとえ再書き込みのうちの幾つかが失敗しても、'' |
全てのケースにおいて、ギャングツリーは部分的失敗からの完全な復旧に対応します。 | 全てのケースにおいて、ギャングツリーは部分的失敗からの完全な復旧に対応します。 | ||