This repository contains an implementation of different algorithms for reconfigurable atomic storage. We implemented our SmartMerge algorithm, Rambo, DynaStore and SpSnStore, which uses the Speculating Snapshot algorithm.
The implementation utilizes our quorum-rpcs framework gorums.
Branch master
contains an updated version of the SmartMerge and Rambo algorithm, that use the new version of Gorums.
The original code, including all 4 algorithms can still be found in the original
branch.
Clone the repository into your GOPATH.
mkdir $GOPATH/src/github.com/relab
cd $GOPATH/src/github.com/relab
git clone [email protected]:relab/smartMerge.git
To get all dependencies use
cd $GOPATH/src/github.com/relab/smartMerge
go get ./...
To start a server running the SmartMerge algorithm use:
go run server/server.go -alg=sm -port 10011
go run server/server.go -alg=sm -port 10012
go run server/server.go -alg=sm -port 10013
go run server/server.go -alg=sm -port 10014
Use go run server/server.go -help
to display possible options, e.g. different algorithms.
To start an interactive client use
cd $GOPATH/src/github.com/relab/smartMerge/client
go build
./client -conf addrList -alg=sm -initsize=3 //Starts a client with initial configuration containing 3 servers.
See client and for a descriptions of the different options for clients.
Use ./client -help
to deplay all possible arguments/options.