📚 Distributed database using BerkeleyDB.
Java Shell
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.
META-INF
src/main/java/org/mcgill/ecse420/f2016
.gitignore
4210-rc068-010-oracle-berkeley-db.pdf
ECSE420_Project.pdf
README.md
clean.sh
compile.sh
je-3.3.75.jar
json-1.5-20090211.jar
killrmis.sh
pom.xml
runClient.sh
runServer.sh
runWorker.sh

README.md

BerkeleyDDB

Using BerkeleyDB to make a distributed database. Project report is ECSE420_Project.pdf.

Running Instructions

Make sure you have access to /tmp/ directory of your machine.

To compile and run the software:

  1. Run compile.sh script. (Do it on each host if using multiple hosts)
  2. Go to the directory /tmp/berkeleydb/
  3. On the master host, run runServer.sh script.
  4. On each worker host, run runWorker.sh <Database_Name> <IP_of_Master>.
  • It is normal to see an exception about the already used port for rmi registry if more than one workers or the master is running on the same machine. However if the exception does not allow the program to start, please run killrmis.sh script and try the step 4 again.If this doesn't work either, run ps aux | grep rmiregistry and kill -9 the process.
  1. On each client, run runClient.sh <IP_of_Master>.
  2. Have fun!
  3. To turn off the system, please use Ctrl + c on each host running one of the runXX.sh scripts. For killing rmi registries, please run killrmis.sh script.

Done:

  • MVP
  • Table support
  • Client side caching
  • Consistent hashing to balance load across Workers
  • Server pushed client-side look ups similar to Google BigTable and EdgeBase

In progress:

  • Transactions
  • Replication