Baike.dev
All toolsOnline toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
A

anna

> 编程语言
Open source

A low-latency, cloud-native KVS

707 stars0 likes0 views
WebsiteGitHub

About

A low-latency, cloud-native KVS

Anna

Anna is a low-latency, autoscaling key-value store developed in the RISE Lab at UC Berkeley.

Design

The core design goal for Anna is to avoid expensive locking and lock-free atomic instructions, which have recently been shown to be extremely inefficient. Anna instead employs a wait-free, shared-nothing architecture, where each thread in the system is given a private memory buffer and is allowed to process requests unencumbered by coordination. To resolve potentially conflicting updates, Anna encapsulates all user data in lattice data structures, which have associative, commutative, and idempotent merge functions. As a result, for workloads that can tolerate slightly stale data, Anna provides best-in-class performance. A more detailed description of the system design and the coordination-free consistency mechanisms, as well as an evaluation and comparison against other state-of-the-art systems can be found in our ICDE 2018 paper.

Anna also is designed to be a cloud-native, autoscaling system. When deployed in a cluster, Anna comes with a monitoring subsystem that tracks workload volume, and responds with three key policy decisions: (1) horizontal elasticity to add or remove resources from the cluster; (2) selective replication of hot keys; and (3) data movement across two storage tiers (memory- and disk-based) for cost efficiency. This enables Anna to maintain its extremely low latencies while also being orders of magnitude more cost efficient than systems like AWS DynamoDB. A more detailed description of the cloud-native design of the system can be found in our VLDB 2019 paper.

Using Anna

To run the Anna KVS locally, you need to first need to install its dependencies, which you can do with the install-dependencies*.sh scripts in the hydro-project/common repo, which is a submodule of this repository. You can build the project, which scripts/build.sh, and you can use scripts/start-anna-local.sh and scripts/stop-anna-local.sh scripts to start and stop the KVS respectively. This repository has an interactive CLI (source, executable compiles to build/cli/anna-cli) as well as a Python client (source). The common repository has an importable C++ client that can embed into other applications.

More detailed instructions on building and running can be found in the docs directory. This repository only explains how to run Anna on a single machine. For instructions on how to run Anna in cluster mode, please see the hydro-project/cluster repository.

License

The Hydro Project is licensed under the Apache v2 License.

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

C++

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言