What Is Nessie?
Nessie is a distributed, high-throughput, low-latency key-value store. Nessie
quickly and easily enables high-performance distributed storage. Its in-memory
data retention, as well as its peer-to-peer inspired design, make it perfect
for cloud and cluster computing workloads.
What Differentiates Nessie from Other Key-Value Stores?
Programmers are inundated with options for key-value stores, so what makes
Nessie special? Several properties help Nessie stand out from the pack:
Nessie is RDMA-enabled: Unlike most key-value stores, Nessie
is designed on top of Remote Direct Memory Access (RDMA), instead of
traditional TCP or UDP technologies. RDMA allows Nessie to complete operations
within the span of several microseconds. A non-RDMA-enabled key-value store
typically completes an operation within a few hundred microseconds at best,
with the overhead of TCP or UDP communication dominating the cost of the
Nessie is client-driven: Nessie also uses RDMA to implement a
purely client-driven protocol. There are no polling server processes required
for Nessie to achieve low-latency. This means that CPU resources are only
consumed by the system when absolutely necessary, making Nessie resilient to
CPU interference from other processes, and CPU / energy conserving during
periods of non-peak system load.
Nessie is distributed: Nessie is designed with a peer-to-peer
architecture in mind, allowing each node in the system to perform both storage
and computation, ensuring a very high degree of scalability.
Nessie is flexible and locality-aware: Nessie is able to
migrate key-value pair ownership between nodes at runtime. This means that
Nessie requires no pre-partitioning of the key-value space, simplifying
configuration and preventing poor performance that can arise from
misconfiguration. Additionally, Nessie is able to use its online data migration
abilities to better exploit data locality - By appropriately moving data
between nodes according to a workload plan or access patterns, Nessie can
reduce the amount of network usage required to satisfy a request, reducing
resource contention and boosting performance.
To learn more about the types of workloads that Nessie is suitable for, as well
as implementation details, please see the about page.
For an even more in-depth examination of Nessie, the
links to Nessie-related documents.
Questions and Comments
To ask a question about Nessie or provide feedback to the authors, please see
the contact page.