This project (source code) strives towards understanding and improving collaboration in cloud storage services.

Background

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 overwritten
by 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 to
avoid 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 has
been 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.

Summary of Our Findings

Our study leads to a number of findings that explain the unexpected and undesired patterns described in Table 1.

architecture

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.

Optimizations

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):

ConfilctReaper for Dropbox Windows PC

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.