Apache Accumulo vs RocksDB
Apache Accumulo
accumulo.apache.orgRocksDB
rocksdb.orgSide by side
| Figure | Apache Accumulo | RocksDB |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Windows | — | Yes |
| macOS | — | Yes |
| Linux | Yes | Yes |
| iOS | — | Yes |
| API | Yes | Yes |
| Self-hosted | Yes | Yes |
| Plans published | 1 | 1 |
| Spec score · Key-Value Databases | 8.0 (#6) | 8.1 (#5) |
| Security reporting | The project asks that potential security issues be reported privately by email and says it follows the ASF vulnerability handling process. | The security policy asks users to report security issues through Meta's Bug Bounty program instead of public GitHub issues or pull requests. |
Plans
In their own words
Apache Accumulo
Apache Accumulo is a free, open-source sorted, distributed key/value store for storing and retrieving large datasets across a cluster. It uses Apache Hadoop HDFS for data storage and Apache ZooKeeper for consensus. Each key/value pair can carry a security label, so query results can be restricted according to a user’s authorizations. Accumulo Iterators can modify key/value pairs at different stages of data management. Clusters can use one or more HDFS instances, and nodes can be added or removed as stored data changes. The project says its client API follows Long Term Maintenance releases and semantic versioning, and that each release undergoes extensive testing. The software is licensed under Apache License, Version 2.0. The downloads page lists source and binary archives for versions 4.0.0-alpha-1, 3.0.0, and 2.1.6; the project identifies 4.0.0-alpha-1 as alpha and says alpha or beta releases are not production ready. General questions can go to the user mailing list, while the dev list serves contributor discussions. An interactive tour teaches the Java API through exercises and is designed for Accumulo 2.1.x or greater.
RocksDB
RocksDB is an embeddable, persistent key-value store for applications that need fast storage. It stores keys and values as arbitrary byte arrays, with ordering determined by a comparator chosen by the user. Its log-structured merge design allows configuration of tradeoffs among write, read, and space amplification, and the project describes it as optimized for low-latency storage on flash drives and high-speed disks. The C++ library supports opening and closing databases, reads and writes, merging, and compaction filters. Described uses include database storage engines, application data caches, and embedded workloads. Multi-threaded compactions support databases holding multiple terabytes; the project describes an audience of application servers storing up to a few terabytes on local or remote systems. RocksDB also has a Java wrapper, RocksJava, with artifacts published through Maven. It is free and open source under either GPLv2 or Apache 2.0, at the user's choice. Building requires GCC 11 or later or Clang 10 or later for C++20 support; values must be smaller than 4 GB.