README.md - Grip

bash command to run trials

seq 500 | xargs -I lel bash -c 'TIMEFORMAT="%3R";time python MongoRocksTest.py' >> MongoRocksData.txt

MongoRocks Reference

Manually run compaction.

db.adminCommand({setParameter:1, rocksdbCompact: 1})

Starting an Arango Container

  1. docker pull arangodb
  2. docker run -e ARANGO_ROOT_PASSWORD=somepassword -p 8529:8529 -d arangodb:latest
  3. sudo docker run --name arango -e ARANGO_ROOT_PASSWORD=somepassword --rm -v ArangoSST:/var/lib/arangodb3/engine-rocksdb -p 8529:8529 -d arangodb:latest
  4. Access to arangosh terminal : sudo docker exec -it {containername} sh #Arango Storage

Starting an Cassandra Container

  1. docker run -d -p 9042:9042 --name cassandra cassandra:latest
  2. Access cassandra terminal sudo docker exec -it {containername} sh
  3. CREATE KEYSPACE test WITH REPLICATION = {'class' : 'NetworkTopologyStrategy','datacenter1':};
  4. if needed create a table

ANOVA Testing

A successful grouping will split groups such that

  • each group has a low variance (meaning the group is relatively homogeneous)
  • the mean of each group is distinct (if two groups have the same mean, then it isn't reasonable to conclude that the groups are, in fact, separate in any meaningful way).

Assumptions

  • Independence of observations – this is an assumption of the model that simplifies the statistical analysis.
  • Normality – the distributions of the residuals are normal.
  • Equality (or "homogeneity") of variances, called homoscedasticity — the variance of data in groups should be the same.

Pull repos and start gathering data

Cassandra

  1. git pull username@139.162.81.115:/srv/databasePerformanceTesting.git
  2. cd into /srv/databasePerformanceTesting/CassandraTrials2
  3. python CassLocalTrials.py | cut -c 2- >> Outputfilename

Arango

  1. git pull username@139.162.81.115:/srv/databasePerformanceTesting.git
  2. cd into /srv/databasePerformanceTesting/ArangoTrials/ArangAPI
  3. python CassLocalTrials.py | cut -c 2- >> Outputfilename #Arango Storage max-total-wal-size=1024000 write-buffer-size=2048000 max-write-buffer-number=2 total-write-buffer-size=81920000 dynamic-level-bytes=false block-cache-size=2560000 enforce-block-cache-size-limit=true cache.size=10485760 server.statistics=false javascript.v8-contexts=2 javascript.v8-max-heap=512 foxx.queues=false

Python Libs

pip install cassandra-driver pip install ArangoClient pip install pymongo

Dockerfile Reference

Use an official Python runtime as a parent image

FROM python:2.7-slim

Set the working directory to /app

WORKDIR /app

Copy the current directory contents into the container at /app

COPY . /app

Install any needed packages specified in requirements.txt

RUN pip install --trusted-host pypi.python.org -r requirements.txt

Make port 80 available to the world outside this container

EXPOSE 80

Define environment variable

ENV NAME World

Run app.py when the container launches

CMD ["python", "app.py"]

MongoTiger

docker run -p 27017:27017 --name -v mongo.conf:/etc mongoTigerTest -d mongo

Mongorocks

sudo docker run -d -p 27017:27017 --name mongoRockTest -e AUTH=no -e DATABASE=mongorocks -v mongoRocks.conf:/etc mongotest #Storage cacheSizeGB: 1 compression: snappy maxWriteMBPerSec: 1024 crashSafeCounters: false counters: true singleDeleteIndex: false

User config

mongod --auth

mongo

use admin

db.createUser({user: "tester", pwd: "somepassword",roles: [ { role: "readWrite", db: "test" } ] })

db.auth("tester", "somepassword")

db.grantRolesToUser("tester", [ { role: "readWrite", db: "test" } ])

use test

db.createCollection("test")

Time Expirements

seq 500 | xargs -I lel bash -c 'TIMEFORMAT="%3R";time python

Rocks Based DBs SST File Location

ArangoDB

/var/lib/arangodb3/engine-rocksdb

MongoRocks

/data/db/db