Mongo Wave

Posted by wave_admin
Printer-friendly versionPrinter-friendly version

 Anthony Watkins has been working hard on tackling one of the big problems facing the FedOne Wave Server, the lack of persistance.

He's come up with a patchset which brings persistence to FedOne so I thought I'd give it a burl and see what happens.

Below is a quick set of instructions (for Linux installs) on how to install the patchset and what changes you will need to make:

Step 1: Follow the instructions in the Fedone Book to download and build the source. Once you've got to the point where you can federate, go to the root of the FedOne codebase (most likely called wave-protocol) and download the raw patch and apply it using the following command:

$: patch -p1 < issue44001_1.diff

Step 2: Providing the above works out okay you will need to grab a copy of MongoDB and the MongoDB java driver. I won't go into how to setup MongoDB here, but the documentation at www.mongodb.org/ should see you through. However we will need to manually download the MongoDB java driver, from the root of the FedOne code base run the following commands:

$: mkdir -P thirdparty/runtime/mongodb

$: cd thirdparty/runtime/mongodb; wget http://github.com/downloads/mongodb/mongo-java-driver/mongo-1.3.jar

Step 3: Now that you have applied the patch and downloaded the mongodb driver you will need to build FedOne. I'd recommend the following:

$: ant clean; ant

Step 4: Before starting the server you will need to add a new variable to the run-config.sh and run-server.sh files.

For run-config.sh add the following:

WAVESERVER_ENABLE_PERSISTENCE=true

and for the run-server.sh file add:

--waveserver_enable_persistence=$WAVESERVER_ENABLE_PERSISTENCE

You should now have a working, persisting FedOne server.

A couple of notes:

  1. I've done a couple of tests and while the MongoFedOne successfully persists wave information across restarts, I keep hitting hash versioning issues with waves that have my wavesandbox.com account as a participant.
  2. The initial start of the server after following the above instructions will take a while as the index is built in your MongoDB setup.

Well I hope that helps.