Skip to content

Latest commit

 

History

History
78 lines (57 loc) · 2.47 KB

README.md

File metadata and controls

78 lines (57 loc) · 2.47 KB

LDBC ACID tests

TPCTC'20 paper (preprint PDF)

See the chapter on "ACID tests" in the LDBC SNB specification

Systems

  • Neo4j
  • Memgraph
  • Dgraph
  • JanusGraph (various backends)
  • PostgreSQL (various isolation levels)

Getting started

Neo4j

Version 3.5.x:

docker run -p 7474:7474 -p 7687:7687 --env=NEO4J_AUTH=none neo4j:3.5.20

Version 4.1.x:

docker run -p 7474:7474 -p 7687:7687 --env=NEO4J_AUTH=none neo4j:4.1.1

Memgraph

Bind it to 17687 to avoid a collision with Neo4j.

wget https://download.memgraph.com/memgraph/v1.1.0/docker/memgraph-1.1.0-community-docker.tar.gz
docker load -i memgraph-1.1.0-community-docker.tar.gz
docker run -p 17687:7687 memgraph

If you need to change the configuration, use

docker run -p 17687:7687 -v mg_lib:/var/lib/memgraph -v mg_log:/var/log/memgraph -v mg_etc:/etc/memgraph memgraph

Experimenting: the Neo4j Cypher shell works with Memgraph.

$ bin/cypher-shell 
Connected to Neo4j 3.0.0 at bolt://localhost:7687.
Type :help for a list of available commands or :exit to exit the shell.
Note that Cypher queries must end with a semicolon.
sudo snap install node --classic --channel=12

Dgraph

docker run --rm -it -p 8080:8080 -p 9080:9080 -p 8000:8000 -v ~/dgraph:/dgraph dgraph/standalone:v20.07.0

Postgres

We're currently using an embedded version.

TigerGraph

docker run --rm -idt --name acid-tg -p 9000:9000 -p 14022:22 -p 14240:14240 -v `pwd`/tigergraph:/tigergraph:z docker.tigergraph.com/tigergraph:latest
docker exec --user tigergraph -it acid-tg bash -c "export PATH=/home/tigergraph/tigergraph/app/cmd:\$PATH; gadmin start all; gsql /tigergraph/setup.gsql"
# to log into the container
# docker exec --user tigergraph -it acid-tg bash
# Stop the docker after the test
docker stop acid-tg 

Note the license in the container is a trial license supporting at most 100GB data. This license sufficient for ACID tests.

TigerGraph has two modes of running query: non-distributed and distributed. The ABORT function currently does not work in the non-distributed mode but work for distributed. Atomicity and G1aW are implemented in the distributed query and all other queries are implemented using non-distributed query. All the tests can pass.