Apache Accumulo is a highly scalable sorted, distributed key-value store based on Google's Bigtable.[2] It is a system built on top of Apache Hadoop, Apache ZooKeeper, and Apache Thrift. Written in Java, Accumulo has cell-level access labels and server-side programming mechanisms. According to DB-Engines ranking, Accumulo is the third most popular NoSQL wide column store behind Apache Cassandra and HBase and the 67th most popular database engine of any type (complete) as of 2018.[3]
Developer(s) | Apache Software Foundation |
---|---|
Stable release | 2.1.3 (August 12, 2024[1]) [±] |
Repository | Accumulo Repository |
Written in | Java |
Operating system | Cross-platform |
License | Apache License 2.0 |
Website | accumulo |
History
editAccumulo was created in 2008 by the US National Security Agency and contributed to the Apache Foundation as an incubator project in September 2011.[4]
On March 21, 2012, Accumulo graduated from incubation at Apache, making it a top-level project.[5]
Controversy
editIn June 2012, the US Senate Armed Services Committee (SASC) released the Draft 2012 Department of Defense (DoD) Authorization Bill, which included references to Apache Accumulo. In the draft bill SASC required DoD to evaluate whether Apache Accumulo could achieve commercial viability before implementing it throughout DoD.[6] Specific criteria were not included in the draft language, but the establishment of commercial entities supporting Apache Accumulo could be considered a success factor.[7]
Main features
editCell-level security
editApache Accumulo extends the Bigtable data model, adding a new element to the key called Column Visibility. This element stores a logical combination of security labels that must be satisfied at query time in order for the key and value to be returned as part of a user request. This allows data of varying security requirements to be stored in the same table, and allows users to see only those keys and values for which they are authorized.[4]
Server-side programming
editIn addition to Cell-Level Security, Apache Accumulo provides a server-side programming mechanism called Iterators that allows users to perform additional processing at the Tablet Server. The range of operations that can be applied is equivalent to those that can be implemented within a MapReduce Combiner function, which produces an aggregate value for several key-value pairs.
User key ordering
editApache Accumulo orders entries in order of user keys, and exposes an iterator over a key range. This allows locality of reference not available from some other distributed stores (including Cassandra and Voldemort that order by hash of the user key).
Papers
edit- 2011 YCSB++: Benchmarking and Performance Debugging Advanced Features in Scalable Table Stores by Carnegie Mellon University and the National Security Agency.
- 2012 Driving Big Data With Big Compute by MIT Lincoln Laboratory.
- 2013 D4M 2.0 Schema:A General Purpose High Performance Schema for the Accumulo Database by MIT Lincoln Laboratory.
- 2013 Spatio-temporal Indexing in Non-relational Distributed Databases by CCRi
See also
editReferences
edit- ^ "Apache Accumulo 2.1.3". Apache Accumulo. The Apache Software Foundation. 2024-08-12. Retrieved 2024-11-17.
- ^ Apache Accumulo. Accumulo.apache.org. Retrieved on 2013-09-18.
- ^ DB-Engines Ranking - popularity ranking of wide column stores. Db-engines.com. Retrieved on 2018-04-10. Archived 2018-04-10.
- ^ a b NSA Submits Open Source, Secure Database To Apache - Government. Informationweek.com (2011-09-06). Retrieved on 2013-09-18.
- ^ Accumulo Incubation Status - Apache Incubator. Incubator.apache.org. Retrieved on 2013-09-18.
- ^ Metz, Cade. (2012-12-19) NSA Mimics Google, Pisses Off Senate | Wired Enterprise. Wired.com. Retrieved on 2013-09-18.
- ^ SASC Accumulo language pro-open source, say proponents Archived 2016-03-20 at the Wayback Machine. FierceGovernmentIT (2012-06-14). Retrieved on 2013-09-18.