A clean room implementation of a distributed storage middleware for education and research. It's primary objective is to implement a bare-metal Distributed storage middleware for educational and learning purpose. The primary objective of this project will be to develop a middleware which is simple not production quality and used for understanding a distributed storage system. To achieve this the design should be very much flexible and have a pluggable architecture for various algorithms which can be implemented and used with this system.
The application has a pluggable architecture where the following functionalities/algorithms can be configured:
- Server (BIO/NIO):
com.dds.interfaces.server.*
- Persistent store mechanism (plug in BDB, MongoDB, MySQL etc):
com.dds.interfaces.storage.*
- Routing mechanism (Consistent hashing/vBuckets):
com.dds.interfaces.routing.*
- Hashing function:
com.dds.interfaces.hashing.*
- Serialization format (Client side and node-to-node communication):
com.dds.interfaces.serialization.*
Q: What does Vyuudha
mean?
A: Vyuudha in sanskrit means Distributed
. Prounounced "vy-uudh".
- All listed in pom.xml.
- Java version: 1.6.0_22
For dependecies which are not found in maven, then do this:
- Download the jar file from the web.
- mvn install:
install-file -Dfile=location/jar_name.jar -DgroupId=group_id_here -DartifactId=artifact_id_here -Dversion=version_number_here -Dpackaging=jar
- The jar file will be installed in your local maven repo.
- Install Maven plugin (M2Eclispe) for Eclipse
- Import the project as a Maven project: http://stackoverflow.com/questions/2061094/importing-maven-project-into-eclipse
- Import all the dependencies listed in pom.xml to your local Maven repo.
- config/ should hold all the configuration meta-data for the respective node.
- store/ should hold the BDB flat files
It is free software, licensed under the terms of the GNU General Public License.