MetaSync
File Synchronization Across Multiple Untrusted Storage Services
Seungyeop Han, Haichen Shen, Taesoo Kim*, Arvind Krishnamurthy, Thomas Anderson, and David Wetherall
University of Washington *Georgia Institute of Technology
1
MetaSync File Synchronization Across Multiple Untrusted Storage - - PowerPoint PPT Presentation
MetaSync File Synchronization Across Multiple Untrusted Storage Services Seungyeop Han, Haichen Shen, Taesoo Kim*, Arvind Krishnamurthy, Thomas Anderson, and David Wetherall University of Washington *Georgia Institute of Technology 1 File
University of Washington *Georgia Institute of Technology
1
2
3
4
5
6
Higher availability, greater capacity, higher performance Stronger confidentiality & integrity
7
8
9
10
11
12
Dir1
Dir2
Large.bin
blob blob blob small1 small2
13
Dir1
Dir2
Large.bin
blob blob blob small1 small2
blob
Large.bin
14
v0 ab1…
Prev Head Prev Head
master
15
Previously synchronized point Current root hash
v0 ab1…
Prev Head Prev
v1 c10…
master
16
Head
v0 ab1…
Prev Head Prev
v1 c10…
master
17
Head
v0 ab1…
Prev Head Prev
v1 c10…
master
18
Head
v0 ab1…
Prev Prev Head
v1 c10… v2 7b3…
master
19
Head v2 f13…
v0 ab1…
Prev Prev Head
v1 c10… v2 7b3…
master
20
Head v2 f13…
v0 ab1…
Prev Prev Head
v1 c10… v2 7b3…
master
21
Head v3 a31…
22
23
24
S2 S1 S3
25
P1 P2 propose(3)
S2 S1 S3
26
P1 P2 propose(2)
S2 S1 S3
27
P1 P2 fetch(S1) fetch(S2) fetch(S3)
S2 S1 S3
28
P1 P2 accept(3, v1) fetch
29
Disk 1 Disk 2 Disk 3 P1 P2 P3 Propose
30
Disk 1 Disk 2 Disk 3 P1 P2 P3 Fetch
Proposer Acceptor computation
Propose Accept
Proposer Acceptor disk blocks
Propose Check
…
Proposer Acceptor append-only
Propose Check
Gafni & Lamport ’02 Requires acceptor API O(clients x acceptors) O(acceptors) O(acceptors)
31
require # msgs
32
33
Capacity
map[0] = [A1, C2, D1, B1, B2, C1] = [A, C] map[1] = [B2, B1, C1, C2, A1, D1] = [B, C] … map[19] = [C2, B1, D1, A1, B2, C1] = [C, B]
H = 20 R = 2
34
map[0] = [A1, C2, D1, B1, B2, C1] = [A, C] map[1] = [B2, B1, C1, C2, A1, D1] = [B, C] … map[19] = [C2, B1, D1, A1, B2, C1] = [C, B]
H = 20 R = 2
map[0] = [A1, D1, B1, B2] = [A, D] map[1] = [B2, B1, A1, D1] = [B, A] … map[19] = [B1, D1, A1, B2] = [B,D]
H = 20
35
36
37
38
Dropbox Google MetaSync Linux Kernel 920 directories 15k files, 166MB 2h 45m > 3hrs 12m 18s Pictures 50 files, 193MB 415s 143s 112s
39
(S = 4, R = 2)
40
5 10 15 20 25 30 35 1 2 3 4 5 Latency (s) # of Proposers Google Dropbox OneDrive Box Baidu
41
5 10 15 20 25 30 35 1 2 3 4 5 Latency (s) # of Proposers Google Dropbox OneDrive Box Baidu All
42