This project (source code) strives towards understanding and improving collaboration in cloud storage services.
Recently, cloud storage services provide the users with advanced functions of collaborative file editing -- a shared file is simultaneously edited by multiple collaborators. For transparency and user-friendliness, today’s cloud storage services do not ask users to use version control systems; instead, they implement their own heuristics for dealing with conflicts. The transparency, however, is also a weakness, as some existing practices may lead to unexpected and undesired experiences, such as wired conflicts (listed in Table 1). In this project, we attempt to investigate the underlying reasons for these anomalies and propose practical solutions.
|
Pattern 1: Losing updates
Alice is editing a file. Suddenly, her file is overwrittenby a new version from her collaborator, Bob. Once this happens, Alice loses her edits on the older version. |
All studied services |
|
Pattern 2: Conflicts despite coordination
Alice coordinates her edits with Bob through emails toavoid conflicts by enforcing a sequential order. Every edit is saved instantly. Even so, conflicts still occur. |
All studied services |
|
Pattern 3: Excessively long sync duration
Alice edits a shared file and confirms that the edit hasbeen synced to the cloud. However, Bob does not receive the updates for an excessively long duration. |
Dropbox, OneDrive, SugarSync Seafile, Box |
|
Pattern 4: Blocking collaborators by opening files
Alice simply opens a shared Microsoft Office file with-out making any edits. This mysteriously disables Bob's editing the file. |
Seafile (only for Microsoft Office files) |
Table 1: Common patterns of unexpected and undesired collaborative experiences.
Our study leads to a number of findings that explain the unexpected and undesired patterns described in Table 1.
Figure 1: The workflow and system components for supporting collaborative file editing in cloud storage services. The solid boxes denote the common components among all the studied services, whereas the dotted boxes denote components in specific services.
Driven by the findings, we propose two optimizations which are fully compatible with the workflow and system architecture of existing cloud storage services (cf. Figure 1):
Integrated aforementioned optimizations, we build ConflictReaper to assist existing cloud storage services in a fully transparent and automatic manner. ConflictReaper is agnostic to the cloud-side implementation and is generically applicable to existing cloud storage services. We implement the Windows version of ConflictReaper for Dropbox. The real-world experiment shows that it prevents 91% conflicts with acceptable network/computation overhead.