NoSQL-Undo is a prototype of a recovery tool that allows database administrators to remove the effect of undesirable actions by undoing operations, leading the database to a consistent state. NoSQL-Undo leverages the logging and snapshot mechanisms of NoSQL databases, and is able to undo operations as long as they are present in the logs. The cu…
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.settings
doc/img
src
.classpath
.gitignore
.project
LICENSE.md
README.md
connections
pom.xml

README.md

NoSQL-Undo

NoSQL-Undo is a recovery approach and tool that allows database administrators to remove the effect of undesirable actions by undoing operations, leading the system to a consistent state. NOSQL UNDO leverages the logging and snapshot mechanisms built-in NoSQL databases, and is able to undo operations as long as they are present in the logs.

System architecture of NoSQL-Undo

Currently NoSQL Undo only supports MongoDB, it is possible to extend it to support other NoSQL databases.

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.

Prerequisites

  • Install Maven before proceeding;
  • Make sure you have MongoDB installed in your system or, as an alternative, Docker.

Before starting NoSQL - Undo make sure you have a MongoDB instance running as MASTER this is required so that Mongo keeps operation logs to allow recovery.

You can run MongoDB locally with the --master option by executing this command:

mongod --master

Or via docker with the following command:

docker run --name mongoundo -p 27017:27017 -d mongo:3.2.1 mongod --master

Installing

Before running NoSQL-Undo execute the following command in the root of project:

mvn compile

Running NoSQL-Undo

To execute NoSQL Undo execute the following command:

mvn exec:java

This video show an example of how to recover a document:

System architecture of NoSQL-Undo

Built With

  • Maven - Dependency Management

Authors

  • David Matos - Development of the tool - GitHub

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Acknowledgments