Before running the Simba Cloud you must have operational deployments of Apache Cassandra and OpenStack Swift.
You must set certain configuration options in the following files:
./common/src/resources/client.properties
./gateway/src/resources/gateway.properties
./simbastore/src/resources/simbastore.properties
In client.properties, set:
gateways: Comma-separated list of gateway nodes.consistency: Consistency level used by test client (Default:CAUSAL). optional.
In gateway.properties, set:
simbastores: Comma-separated list of store nodes.backend.server.thread.count: Number of Gateway backend server threads. Set equal to number of store nodes.
In simbastore.properties, set:
simbastores: Comma-separated list of store nodes.cassandra.keyspace: Keyspace name for Simba metadata. Must also create it in Cassandra (Default:simbastore).cassandra.seed: Set Cassandra seed node host or IP.swift.container: Container name for Simba objects. Must also create it in Swift (Default:simbastore).swift.identity: Swift account name.swift.password: Pass key for Swift account.swift.proxy.url: Swift proxy URL.
Prepare your Cassandra deployment by creating the following keyspace and tables.
CREATE KEYSPACE simbastore WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1};
CREATE TABLE simbastore.metadata (key text PRIMARY KEY, consistency text);
CREATE TABLE simbastore.subscriptions (key uuid PRIMARY KEY, subscriptions list<blob>);
This assumes you have set cassandra.keyspace=simbastore inside simbastore.properties. Otherwise, replace the keyspace name to match the name you have chosen.
Prepare your Swift deployment by creating the container with the name you have set for swift.container inside simbastore.properties.
Using the Swift command-line tool, the command is:
swift -A ${swift.proxy.url} -U ${swift.identity} -K ${swift.password} post ${swift.container}
To compile, run:
./compile.sh
JARs with dependencies will be built in folders ./{common,gateway,simbastore}/target/.
NOTE: Must start Store(s) before Gateway(s).
java -jar simbaserver-simbastore-0.0.1-SNAPSHOT-jar-with-dependencies.jar -p simbastore.properties
java -jar simbaserver-gateway-0.0.1-SNAPSHOT-jar-with-dependencies.jar -p gateway.properties
java -cp simbaserver-common-0.0.1-SNAPSHOT-jar-with-dependencies.jar com.necla.simba.testclient.Client <workload file> <output folder> <prefix>
Want to deploy Simba on PRObE? Find out more here!
Can be found in ./scripts/