Apache Accumulo
| Company type | Open-source software |
|---|---|
| Industry | Software, Database management |
| Founded | 2008 |
| Founder | United States National Security Agency |
| Headquarters | United States |
| Products | Distributed key-value store, NoSQL database |
| Parent | Apache Software Foundation |
| Website | accumulo |
Apache Accumulo represents a highly scalable, distributed key-value storage system that is sorted and modeled after Google's Bigtable. It is built on top of Apache Hadoop, Apache ZooKeeper, and Apache Thrift. Created using Java, Accumulo incorporates cell-level security labels alongside server-side programming functionalities. As per the DB-Engines ranking, it holds the position of the third most widely used NoSQL wide column store, following Apache Cassandra and HBase, and was ranked 67th among all database engines globally in 2018.
History
The inception of Accumulo dates back to 2008 when it was developed by the US National Security Agency. It was later submitted to the Apache Foundation as an incubator project in September 2011.
On March 21, 2012, Accumulo successfully transitioned from incubation status to become a fully-fledged top-level project within Apache.
Controversy
In June 2012, the US Senate Armed Services Committee incorporated Apache Accumulo into the Draft 2012 Department of Defense Authorization Bill. This legislation mandated that the DoD evaluate the technology’s commercial feasibility prior to wider adoption. Although exact evaluation standards were not specified, the presence of commercial support providers was regarded as an important indicator of success.
Cell-level security
Enhancing the core Bigtable data model, Apache Accumulo introduces a critical feature known as Column Visibility. This mechanism stores logical expressions of security labels required during query execution, allowing data with multiple security classifications to coexist within a single table while restricting access strictly to authorized users based on their permissions.
Server-side programming
In addition to cell-level security, Accumulo supports server-side computation through Iterators, which execute processing tasks directly on the Tablet Server. These functions are analogous to MapReduce Combiner operations, enabling aggregation across numerous key-value entries.
User key ordering
Entries in Accumulo are sorted according to user-defined keys, and iterators can traverse specific key ranges, facilitating locality of reference. This approach differs from distributed storage systems like Cassandra and Voldemort that organize data based on hashed keys.
Papers
- 2011 YCSB++: Benchmarking and Performance Debugging Advanced Features in Scalable Table Stores – Carnegie Mellon University and NSA.
- 2012 Driving Big Data With Big Compute – MIT Lincoln Laboratory.
- 2013 D4M 2.0 Schema: A General Purpose High Performance Schema for Accumulo – MIT Lincoln Laboratory.
- 2013 Spatio-temporal Indexing in Non-relational Distributed Databases – CCRi