Synchronisation solutions,
NDS2 Cryptobox
Kamil Guryn, BIAMAN, www.pb.edu.pl Maciej Brzeźniak, PSNC, www.psnc.pl & NDS2 project partners:
Synchronisation solutions, NDS2 Cryptobox Kamil Guryn, BIAMAN, - - PowerPoint PPT Presentation
Synchronisation solutions, NDS2 Cryptobox Kamil Guryn, BIAMAN, www.pb.edu.pl Maciej Brzeniak, PSNC, www.psnc.pl & NDS2 project partners: Presentation agenda Background Features of good synchronisation mechanisms Discussion of
Kamil Guryn, BIAMAN, www.pb.edu.pl Maciej Brzeźniak, PSNC, www.psnc.pl & NDS2 project partners:
○
file identifiers support not present everywhere
○
async events reporting mechanism: inotify or FSwatcher
which can break anchor-based logic;
○
unresolved items may lead to sync endless loop
○
○
■
rename within same dir detected
■
move outside dir = delete + create
○
○
changes badly interpreted by sync client on machine B
○
this may result in unnecessary download of the data instead of name change / move propagation
○
event logged rename folder\a.txt -> folder\b.txt rename move folder\a.txt -> folder2\a.txt delete folder\a.txt & create folder2\a.txt copy a.txt to local sync folder create (there is no event about relasing file lock - close a file) Client side: copy a.txt to folderA\folderB\folderC Sever-side: rename folderA to folderX copy a.txt to folderA\folderB\folderC is not valid anymore, should be propagated in correct order (plus concurrency resistance…) Example scenario where event logging fails to provide consistent state
○
Lets users verify consistency of the data
○
Enables detecting failures and intended tweaks
○
SHA-512 considered to be safe beyond 2012 (SHA-1 only to 2012)
○
Fast implementations possible using regular CPUs
Feature NDS Cryptobox
BOX.com Dropbox Spider Oak Power Folder Client & server-side move detection YES NO YES
YES
YES NO Real-time change detection YES NO
(client side only)
YES YES YES YES Files under user control YES YES NO NO NO YES Client-side encryption YES NO NO NO YES NO Concurrency resistant on detection and propagation YES NO
(may lead to chaos)
YES
(but goes through temp)
YES ??? YES Sync files of any size YES YES
(in multiple parts, then merge)
NO YES YES YES Synchronisation of any folder YES YES NO NO YES YES NO file-locking policy YES
(drobbox way)
NO NO
(sync goes through temp)
YES ??? NO Preview mode YES NO NO NO NO NO Live-sync NO NO NO YES NO NO
* Comparison made to our best knowledge. Based on documentation analysis and tests. If you notice any inconsistency, please contact us.
○
○
○
○
○
○
○
■ e.g. multiple folder rename while uploading leads to chaos on local computer ■ concurrent changes occur on one replica during detection and propagation ○
■ inefficient enumeration makes sync too expensive for storage backend ■ fast & lightweight metadata enumeration needed
○
○
More information: NDS2 paper submitted to TNC2013
○ “find on 169 546 elements” takes: ■ 46.476s with required inode lookup over NFS
■ Tested on Bluearc Mercury 100 NAS Filer
■ DB “Select * on 169546 elements”
○ No overload in NDS2 system even for many concurrent clients enumerating files (we are curious how others can scale…)
○ e.g. propfind with infinite on WebDAV may cause high overload
○ request/response XML/HTTP overhead may lead to bad performance on-the-wire, timeouts, etc.
○
■
■ proprietary protocols: SpiderOak, PowerFolder, (Drop)box
○
○
○
○
○
SyncSharp is originaly developed for syncing local folders
○
FileID support
○
Concurrency, errors and interrupts resistance
○
○
Client-side encryption
○
Virtual IO, SFTP client
○
Autosync feature, real-time change detection
○
And many more…
Many sessions/connection to many SFTP servers On-demand synchronisation Preview mode Auto sync Support for multiple synchronisation tasks (local folders vs servers) System tray integration Folders to be sync’d can be dragged here
This is a regular server that does not support versioning, link share, share & collaborate, geo-replication etc.
and fast and lightweight enumeration
for fast change detection
e.g. clients with FAT32 file system
prevents them for scaling to really large data volumes
controlled server are safe (what about hackers…?)