You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Project Proposal: Adding trash can for deleted tables

Project Name: Apache Accumulo

Assigned Mentor: Keith Turner

Student: Sreejith Ramakrishnan

Student e-mail: sreejith.code AT gmail DOT com

Project Idea JIRA: https://issues.apache.org/jira/browse/ACCUMULO-1256*

1. Abstract

Apache Accumulo is a highly scalable structured store based on Google’s BigTable. Accumulo is written in Java and operates over the HDFS (Hadoop Distributed File System). It is a richer data model than key-value stores. Yet, it is not a fully relational database. Accumulo provides efficient storage and retrieval of structured data and the support for Accumulo tables to be used as input/output in MapReduce operations.

It features automatic load-balancing and partitioning, data compression and fine-grained security labels. The goal of this proposal to enable a trash can facility in Accumulo. When enabled, the tables which are deleted are treated by the rest of Accumulo as deleted. Yet, it should be possible to restore these tables to its original state and name at a later time. They should not appear in client operations that list tables. When an access is attempted to a trash table, a TableDeletedException should be thrown.

2. Detailed description

2.1 New "TRASH" State

For accommodating trashing in Accumulo, a new state called TRASH [1] should be added to the existing list of states viz, NEW, ONLINE, OFFLINE, DELETING, UNKNOWN. This can be added in 

  • org.apache.accumulo.core.master.state.tables.TableState

2.2 Behaviors of FATE Operations

When trashing is enabled, the behavior of the delete table FATE operation should be different. After obtaining the table lock, delete table should do the following for a table not in TRASH

  • No labels