National Technical University of Athens
Design & Implementation of a Portable File Synchronisation Mechanism for a Cloud Storage Environment
Supervisor
- Prof. Nektarios Koziris
Assistant Supervisor
- Dr. Vangelis Koukis
Design & Implementation of a Portable File Synchronisation - - PowerPoint PPT Presentation
National Technical University of Athens Design & Implementation of a Portable File Synchronisation Mechanism for a Cloud Storage Environment Supervisor Prof. Nektarios Koziris Assistant Supervisor Dr. Vangelis Koukis Candidate Vasilis
2 of 21 A Portable File Synchronisation Mechanism for a Cloud Storage Environment . . . . . .
3 of 21 A Portable File Synchronisation Mechanism for a Cloud Storage Environment . . . . . .
4 of 21 A Portable File Synchronisation Mechanism for a Cloud Storage Environment . . . . . .
4 of 21 A Portable File Synchronisation Mechanism for a Cloud Storage Environment . . . . . .
5 of 21 A Portable File Synchronisation Mechanism for a Cloud Storage Environment . . . . . .
Object Storage Service Compute Service
User B Custom image File Files Upload
Image File
User A
Clone
Snapshot Snapshot File
VMs Connect Store Register
5 of 21 A Portable File Synchronisation Mechanism for a Cloud Storage Environment . . . . . .
Snapshot t0 Snapshot t1 Snapshot t2
5 of 21 A Portable File Synchronisation Mechanism for a Cloud Storage Environment . . . . . .
6 of 21 A Portable File Synchronisation Mechanism for a Cloud Storage Environment . . . . . .
7 of 21 A Portable File Synchronisation Mechanism for a Cloud Storage Environment . . . . . .
(a) File change detection between two points in time
(b) Syncing actions based on file states
7 of 21 A Portable File Synchronisation Mechanism for a Cloud Storage Environment . . . . . .
7 of 21 A Portable File Synchronisation Mechanism for a Cloud Storage Environment . . . . . .
phash exists in StateDB? Local modtime == StateDB modtime? inode exists in StateDB? No local change File exists
StateDB ETag == Remote Etag? Local modified Local modified Conflict Renamed File exists
Conflict New local file yes no yes no yes no yes no yes no yes no 8 of 21 A Portable File Synchronisation Mechanism for a Cloud Storage Environment . . . . . .
File exists on local/remote? Local exists, Remote exists Local doesn't exist, Remote exists Local doesn't exist, Remote doesn't exist Local exists, Remote doesn't exist No change Deleted inode exists in StateDB? Renamed / Deleted Remote ETag == StateDB Etag? Deleted Remote modified Local modtime == StateDB modtime? Deleted Local modified yes no yes no yes no 8 of 21 A Portable File Synchronisation Mechanism for a Cloud Storage Environment . . . . . .
8 of 21 A Portable File Synchronisation Mechanism for a Cloud Storage Environment . . . . . .
9 of 21 A Portable File Synchronisation Mechanism for a Cloud Storage Environment . . . . . .
10 of 21 A Portable File Synchronisation Mechanism for a Cloud Storage Environment . . . . . .
10 of 21 A Portable File Synchronisation Mechanism for a Cloud Storage Environment . . . . . .
+ get_object_fstat(str path) + get_all_objects_fstat() + download_object(str path, file fd) + upload_object(str rel_path, str sync_dir) + update_object(str rel_path, str sync_dir, str etag) + delete_object(str path) + rename_object(str old_path, str new_path) CloudClient + init(str auth_URL, str auth_token, str ca_certs_path)
pithos: PithosClient PithosClient
10 of 21 A Portable File Synchronisation Mechanism for a Cloud Storage Environment . . . . . .
11 of 21 A Portable File Synchronisation Mechanism for a Cloud Storage Environment . . . . . .
12 of 21 A Portable File Synchronisation Mechanism for a Cloud Storage Environment . . . . . .
File Size 150 B 150 KB 1.5 MB Sequential upload time (s) 92.55 153.32 636.48 4 threads upload time (s) 33.82 68.12 569.43 speedup (%) 63.46 55.57 10.54
12 of 21 A Portable File Synchronisation Mechanism for a Cloud Storage Environment . . . . . .
13 of 21 A Portable File Synchronisation Mechanism for a Cloud Storage Environment . . . . . .
13 of 21 A Portable File Synchronisation Mechanism for a Cloud Storage Environment . . . . . .
13 of 21 A Portable File Synchronisation Mechanism for a Cloud Storage Environment . . . . . .
14 of 21 A Portable File Synchronisation Mechanism for a Cloud Storage Environment . . . . . .
(local) block_directory local_client remote_server get_hash_list(path) hash_list find_missing_blocks(hash_list) missing_blocks download_blocks(missing_blocks) blocks reconstruct_file_from_blocks()
14 of 21 A Portable File Synchronisation Mechanism for a Cloud Storage Environment . . . . . .
# of modified blocks 1 2 3 4 5 6 7 8 9 10 time (s) 0.37 2.59 4.49 6.44 8.98 10.12 12.23 13.60 15.65 17.59 19.61 speedup (%) 98.1 86.8 77.1 67.2 54.2 48.4 37.7 30.7 20.2 10.3 N/A
14 of 21 A Portable File Synchronisation Mechanism for a Cloud Storage Environment . . . . . .
14 of 21 A Portable File Synchronisation Mechanism for a Cloud Storage Environment . . . . . .
15 of 21 A Portable File Synchronisation Mechanism for a Cloud Storage Environment . . . . . .
n
i=1
15 of 21 A Portable File Synchronisation Mechanism for a Cloud Storage Environment . . . . . .
16 of 21 A Portable File Synchronisation Mechanism for a Cloud Storage Environment . . . . . .
17 of 21 A Portable File Synchronisation Mechanism for a Cloud Storage Environment . . . . . .
17 of 21 A Portable File Synchronisation Mechanism for a Cloud Storage Environment . . . . . .
17 of 21 A Portable File Synchronisation Mechanism for a Cloud Storage Environment . . . . . .
17 of 21 A Portable File Synchronisation Mechanism for a Cloud Storage Environment . . . . . .
18 of 21 A Portable File Synchronisation Mechanism for a Cloud Storage Environment . . . . . .
19 of 21 A Portable File Synchronisation Mechanism for a Cloud Storage Environment . . . . . .
20 of 21 A Portable File Synchronisation Mechanism for a Cloud Storage Environment . . . . . .
21 of 21 A Portable File Synchronisation Mechanism for a Cloud Storage Environment . . . . . .