22. Anatomy of a VDisk write
V
Write data with length L to VDisk V,offset O
V
V
V
23. Anatomy of a VDisk write - Where should we write the data?
V
V
data L V, O
Disk d1 Disk d2
data
d1,d2
24. Metadata update - Make a note of disk selection!
V
V
data L V, O
Disk d1
<V, O, L> → <d1, d2>
Disk d2
<V, O, L> → <d1, d2>
25. Anatomy of a VDisk write
V
V
data L V, O
Disk d1
<V, O, L> → <d1, d2>
Disk d2
<V, O, L> → <d1, d2>
data
d2
data d1 data d2
26. Anatomy of a VDisk write - Final acknowledgement!
V
V
Disk d1
data
<V, O, L> → <d1, d2> Disk d2
data
<V, O, L> → <d1, d2>
data
d1 d2
27. New write picks different disks!
( All writes with RF >= 2)
V
V
data’ L’ V, O’
Disk d1
data
<V,O,L> → <d1,d2>
<V,O’,L’> → <d3,d4> Disk d2
data
Disk d4
data’
Disk d3
data’
<V,O,L> → <d1,d2>
<V,O’,L’> → <d3,d4>
<V,O,L> → <d1,d2>
<V,O’,L’> → <d3,d4>
d3 d4
28. Anatomy of a VDisk Read
V
Disk d2
data
Disk d4
data’
<V,O,L> → <d1,d2>
<V,O’,L’> → <d3,d4>
<V,O,L> → <d1,d2>
<V,O’,L’> → <d3,d4>
V O, L
● V
● V
29. Find out where was the data written?
V
V
Disk d2
data
Disk d4
data’
<V,O,L> → <d1,d2>
<V,O’,L’> → <d3,d4>
<V,O,L> → <d1,d2>
<V,O’,L’> → <d3,d4>
V O, L
<V, O, L>
30. Now read the data!
V
V
Disk d2
data
Disk d4
data’
<V,O,L> → <d1,d2>
<V,O’,L’> → <d3,d4>
<V,O,L> → <d1,d2>
<V,O’,L’> → <d3,d4>
data
data d2
34. Cluster Healing - クラスタ内の全ノードが冗長性回復処理に参加
Disk d2
data
Disk d4
data’
<V,O,L> → <d1,d2>
<V,O’,L’> → <d3,d4>
<V,O,L> → <d1,d2>
<V,O’,L’> → <d3,d4>
Curator Curator
d1,d3
d1,d3
d1,d3
35. Cluster Healing – 全ノードがレプリカを出し合う
Disk d2
data
Disk d4
data’
<V,O,L> → <d1,d2>
<V,O’,L’> → <d3,d4>
<V,O,L> → <d1,d2>
<V,O’,L’> → <d3,d4>
Curator Curator
Replicate data for
<V,O,L> from d2
d1,d3 d1,d3
Replicate data’ for
<V,O’,L’> from d4
36. Cluster Healing – 特定のディスクがボトルネックにならない設計
Disk d2
data
Disk d6
data
<V,O,L> → <d1,d2>
<V,O’,L’> → <d3,d4>
<V,O,L> → <d1,d2>
<V,O’,L’> → <d3,d4>
Replicate data for
<V,O,L> from d2 to d6
Replicate data’ for
<V,O’,L’> from d4 to d5
Disk d5
data’
Disk d4
data’
37. Cluster Healing – メタデータの更新
Disk d2
data
Disk d6
data
<V,O,L> → <d2,d6>
<V,O’,L’> → <d4,d5>
<V,O,L> → <d2,d6>
<V,O’,L’> → <d4,d5>
Update metadata, location for
<V,O,L> → <d2,d6>
Disk d5
data’
Disk d4
data’
Update metadata, location for
<V,O’,L’> → <d4,d5>