
K. Sonbol, Ö. Özkasap, I. Al-Oqily et al. / Journal of Parallel and Distributed Computing 144 (2020) 28–40 29
Table 1
Summary of existing edge-enabled storage solutions.
Project Use case Data content Consistency Fault-tolerance
FogStore [14] Situation-awareness, applications Contextual data Context-based Yes
Vision-Edge [25] Computer vision Feature vectors, key-frames Data-type-based No
FBase [15] Data-intensive fog applications Application data Eventual
Yes
Configuration data Strong
EC+ [33] MMOG Game events Event-type-based No
Workers-KV [9] Web services Web pages Eventual Yes
Fog05 [11] IaaS Server states Eventual No
OpenStack-Edge [20] IaaS Server states Eventual Yes
Dqlite [7] Embedded devices Sensor data Strong Yes
EdgeKV General-purpose Key–Value pairs Strong Yes
in one location. Therefore, they may communicate over a Wide-
Area Network (WAN) and some even use a wireless protocol,
e.g., WiFi or 4G/5G, to communicate together or with clients.
Consequently, designing an edge-enabled storage system is not
trivial and directly using existing cloud-optimized systems in the
edge may not be possible. Instead, either a middleware layer can
be introduced to make the existing software edge-aware or novel
designs can be developed that are specific to the edge or that are
generic enough to work with both cloud and edge.
A few existing works try to build an edge-capable storage
system but they are either domain-specific [21,25], provide only
weak forms of consistency [11], or require a high level of do-
main knowledge and customization to work efficiently [14]. In
this paper, we propose EdgeKV, a decentralized, general-purpose,
scalable, and reliable storage system for the edge. EdgeKV offers
low-latency access, strong consistency notions, high availability,
and minimal customization requirement. Specifically, we make
the following contributions:
• Propose EdgeKV, a novel storage system architecture for the
edge, explain its modules and their interactions, and the
algorithms used.
• Provide fault-tolerance and reliability through replication in
the edge with strong consistency guarantees. Support load-
balancing with a highly-scalable overlay that has minimal
overhead.
• Support two levels of data locality with different latency
guarantees based on application requirements. The separa-
tion of local and global data allows deploying EdgeKV in
different use cases.
• Develop a prototype [28] allowing for heterogeneity in the
system with a hierarchical design and interface abstrac-
tions. Perform comprehensive experimental analysis on dis-
tributed testbed and comparisons with the centralized cloud
storage.
• Present the performance analysis results of EdgeKV, show-
ing its superior performance to the centralized cloud solu-
tion, especially with local data, and evaluate the scalability
of the system with the number of clients and requests. In
addition, we provide a discussion about the energy effi-
ciency aspect of the system. Moreover, we discuss possible
optimizations for scalability, future research directions for
EdgeKV, and useful insights for edge-enabled application
designers.
The rest of the paper is organized as follows. We discuss the
related work in Section 2. Section 3 introduces the design and
system architecture. Section 4 discusses motivating use cases for
EdgeKV. In Section 5, we discuss implementation details and in
Section 6 we present evaluation results. Finally, we conclude
in Section 8 with a summary of the contributions and future
directions.
2. Related work
There exists a variety of work on distributed storage for the
cloud. This ranges from relational databases such as MySQL and
PostgreSQL to NoSQL databases such as Cassandra and Mon-
goDB and includes key–value stores such as TiKV. However, less
work exists for utilizing the edge/fog resources. Nonetheless, we
discuss the relevant existing works next, also summarized in
Table 1.
FogStore [14] is designed for situation-awareness applications
that use data annotated with context information such as loca-
tion or timestamps. FogStore presents a geo-replicated key–value
storage providing differential consistency guarantees based on
the context. While this allows for usage in different scenarios, it
requires the system user to have expert knowledge of the domain
to define a mapping between data and client contexts and the
required consistency level for different queries. Similarly, Vision-
Edge [25] is an application-specific key–value storage solution
for machine vision applications such as smart surveillance cam-
eras. There are two types of data in such applications: latency-
critical feature vectors and key-frames stored for bookkeeping
purposes. FBase [15] is a replication service for data-intensive fog
applications. It provides programmers with a declarative way to
choose replication paths and data flows across geo-distributed
sites, based on user-provided configuration data. FBase guaran-
tees only eventual consistency for the application data and strong
consistency for configuration data. Some works do not handle
fault-tolerance such as Vision-Edge and Edge-Cloud+ (EC+) [33],
while others provide fault-tolerance but with weak forms of
consistency such as Fog05 and Workers-KV [9]. EC+ is an ar-
chitecture augmented by edge computing for Massively Mul-
tiplayer Online Games with Virtual Reality (VR-MMOG). EC+
utilizes the edge for latency-sensitive local view change updates
and leaves global game state updates, with less strict latency
requirements, to the central cloud. CloudFlare’s Workers-KV [9]
utilizes CloudFlare’s global edge network to build low-latency
globally-available key–value storage. Workers-KV only provides
eventual consistency and is mainly useful for building faster and
customized web applications
We note that each work has a specific use case or class of
use cases for which they are designed. For example, Fog05 [11]
and [20] are Infrastructure-as-a-Service (IaaS) frameworks that
are used for managing both cloud and edge resources. Eclipse
fog05 [11] is a virtualization solution for cloud, edge, and fog
resources suitable for heterogeneous systems. It can integrate any
key–value store and provide a location-transparent and unified
view to it from anywhere in the network through a unified
interface, but provides only eventual consistency. OpenStack-
Edge modifies the OpenStack IaaS framework to enable managing
edge resources. It achieves this by replacing its centralized SQL
database with a distributed Redis cluster. Dqlite [7] provides a
distributed, highly available, and lightweight SQLite implementa-
tion suitable for embedded devices. While Dqlite provides strong
评论