Multi-site multi-synchronous support for SQLite augmented for Local- First Software
Permanent link
https://hdl.handle.net/10037/29547Date
2023-05-12Type
MastergradsoppgaveMaster thesis
Author
Khan, TabassumAbstract
At the one end of the spectrum, locally installed applications allow users to
work offline and at their convenience but do not support collaboration among
multiple users or devices. At the other end, cloud-based applications offer collaboration and data synchronization but require an uninterrupted internet connection. To address these limitations, Local-First software was introduced to
merge the advantages of both approaches. This allows users to use applications
offline and synchronize data with peers when they are back online. This approach offers an appealing solution for users requiring both offline capabilities
and collaboration [1].
Conflict-free Replicated Data Types (CRDTs) have emerged as a promising
technology for implementing Local-First software since they address the challenge of replica convergence and multi-synchronous data access [1]. Basically,
they are abstract data types with well-defined interfaces that can be replicated
across multiple sites and allow a replica to be modified without coordination
with other replicas [2]. The replicas converge to the same state when they
receive and apply the same set of updates. If CRDTs are integrated with relational databases (RDBs), they can facilitate multi-synchronous data access and
extend RDBs with Local-First characteristics. This integration process is known
as Conflict-free Replicated Relations (CRRs) [3].
SynQLite is an implementation that augments SQLite databases with CRR to
make them Local-First software [4]. It aims to extend existing SQLite-based applications with multi-synchronous access, enabling offline usage and seamless
collaboration across multiple users and devices. However, its existing implementation has a critical limitation in its ability to support multiple sites. It
cannot manage states when multiple replicas or sites are frequently connected
and disconnected, which is a vital requirement for real-world applications and
presents a challenge that must be addressed for SynQLite to be more widely
adopted.
The goal of this Master’s thesis is to extend the existing version of SynQLite
by adding multi-site multi-synchronous support. This was achieved by implementing new features and resolving existing bugs on top of the existing codebase. Our implementation was rigorously evaluated through various tests and
experiments, and the results demonstrate that we successfully achieved our
goal.
Publisher
UiT Norges arktiske universitetUiT The Arctic University of Norway
Metadata
Show full item recordCollections
Copyright 2023 The Author(s)
The following license file are associated with this item: