All Projects → uber → uber-graph-benchmark

uber / uber-graph-benchmark

Licence: Apache-2.0 license
A framework to benchmark different graph databases, based on generated data from customizable schema, distribution, and size.

Programming Languages

java
68154 projects - #9 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to uber-graph-benchmark

Cayley
An open-source graph database
Stars: ✭ 14,020 (+55980%)
Mutual labels:  graph-database
UBUNTU20-CIS
Ansible role for Ubuntu 2004 CIS Baseline
Stars: ✭ 136 (+444%)
Mutual labels:  benchmark-framework
NoSQLDataEngineering
NoSQL Data Engineering
Stars: ✭ 25 (+0%)
Mutual labels:  graph-database
Gremlin Javascript
JavaScript tools for graph processing in Node.js and the browser inspired by the Apache TinkerPop API
Stars: ✭ 209 (+736%)
Mutual labels:  graph-database
Grakn
TypeDB: a strongly-typed database
Stars: ✭ 2,947 (+11688%)
Mutual labels:  graph-database
mizo
Super-fast Spark RDD for Titan Graph Database on HBase
Stars: ✭ 24 (-4%)
Mutual labels:  graph-database
Movies Python Bolt
Neo4j Movies Example application with Flask backend using the neo4j-python-driver
Stars: ✭ 197 (+688%)
Mutual labels:  graph-database
database-journal
Databases: Concepts, commands, codes, interview questions and more...
Stars: ✭ 50 (+100%)
Mutual labels:  graph-database
Oxigraph
SPARQL graph database
Stars: ✭ 252 (+908%)
Mutual labels:  graph-database
wrench
WRENCH: Weak supeRvision bENCHmark
Stars: ✭ 185 (+640%)
Mutual labels:  benchmark-framework
Helicalinsight
Helical Insight software is world’s first Open Source Business Intelligence framework which helps you to make sense out of your data and make well informed decisions.
Stars: ✭ 214 (+756%)
Mutual labels:  graph-database
Deepgraph
Analyze Data with Pandas-based Networks. Documentation:
Stars: ✭ 232 (+828%)
Mutual labels:  graph-database
spicedb
Open Source, Google Zanzibar-inspired fine-grained permissions database
Stars: ✭ 3,358 (+13332%)
Mutual labels:  graph-database
Degdb
degdb: distributed economic graph database
Stars: ✭ 207 (+728%)
Mutual labels:  graph-database
RHEL8-STIG
Ansible role for Red Hat 8 STIG Baseline
Stars: ✭ 73 (+192%)
Mutual labels:  benchmark-framework
Bolt sips
Neo4j driver for Elixir
Stars: ✭ 204 (+716%)
Mutual labels:  graph-database
nebula-docker-compose
Docker compose for Nebula Graph
Stars: ✭ 84 (+236%)
Mutual labels:  graph-database
janusgraph-docker
Yet another JanusGraph, Cassandra/Scylla and Elasticsearch in Docker Compose setup
Stars: ✭ 54 (+116%)
Mutual labels:  graph-database
neo4j-faker
Use faker cypher functions to generate demo and test data with cypher
Stars: ✭ 30 (+20%)
Mutual labels:  graph-database
incubator-age-viewer
Graph database optimized for fast analysis and real-time data processing. It is provided as an extension to PostgreSQL.
Stars: ✭ 123 (+392%)
Mutual labels:  graph-database

Uber Graph Benchmark (UGB)

Slides: Uber Graph Benchmark Framwork

Getting Started

  1. Check out the repo

  2. Set up a database to benchmark. There is a README file under each binding directory. List out all modules by

    ./gradlew projects
  3. Run benchmark on db

# generates and writes to redis db, then reads with subgraph queries
./gradlew execute -PmainArgs="-db com.uber.ugb.db.redis.RedisDB -w -g benchdata/graphs/trips -b benchdata/workloads/workloada -r"

# generates and writes to redis db, then reads with subgraph queries
./gradlew execute -PmainArgs="-db com.uber.ugb.db.cassandra.CassandraDB -w -g benchdata/graphs/trips -b benchdata/workloads/workloada -r"

# this generate vertices and edges and write to noop, used for measuring data gen performance
./gradlew execute -PmainArgs="-db com.uber.ugb.db.NoopDB -g benchdata/graphs/trips -b benchdata/workloads/workloada -w"

# this generate vertices and edges and write as csv to System.out or a file
./gradlew execute -PmainArgs="-db com.uber.ugb.db.CsvOutputDB -g benchdata/graphs/trips -b benchdata/workloads/workloada -w"

Customization

Set environment variables in

benchdata/workloads/env.properties

To add a new DB implementation, consider inherit from

  • com.uber.ugb.db.KeyValueDB

    This stores the adjacency list in one blob.

  • com.uber.ugb.db.PrefixKeyValueDB

    This stores the adjacency list with the same prefix. The edge writes could be faster than KeyValueDB.

  • com.uber.ugb.db.GremlinDB

    This processes gremlin queries directly.

Build

  • create jar
./gradlew jar
  • build fat jar for spark
./gradlew build

Run on Spark

Here is one example on how to run spark

#!/usr/bin/env bash

cd ugsb

YARN_CONF_DIR=/etc/hadoop/conf /home/spark-2.1.0/bin/spark-submit \
--class "com.uber.ugb.Benchmark" \
--master yarn \
--deploy-mode client \
--driver-memory 6G \
--executor-memory 6G \
--executor-cores 2 \
--driver-cores 2 \
--num-executors 10 \
--conf spark.yarn.executor.memoryOverhead=2048 \
--driver-class-path '/etc/hive/conf' \
build/libs/ugb-all-0.0.15.jar \
"-db com.uber.ugb.db.cassandra.CassandraDB -w -g benchdata/graphs/trips -b benchdata/workloads/workloada -r -s"

echo $?

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].