A Gremlin-based implementation of the LDBC Social Network Benchmark (SNB) Interactive v1 workload for TinkerPop-compatible graph databases.
Created and maintained by the YouTrackDB team at JetBrains.
- 29 Gremlin traversals implementing all LDBC SNB Interactive queries (14 complex reads, 7 short reads, 8 updates)
- Pluggable architecture for TinkerPop-compatible databases
- LDBC Driver integration for validation and benchmarking
Status: Public Preview - gathering feedback on Gremlin query patterns and approach.
- Java 21+
- Maven 3.8+
- TinkerPop 3.8.0 compatible database
common/ # Database-agnostic Gremlin queries and schema
runner/ # LDBC driver integration
ytdb/ # YouTrackDB reference implementation
./mvnw clean package./scripts/fetch-test-data.shDownloads SF 0.1 dataset (initial snapshot, substitution parameters, update streams) in CSV format.
See docs/dataset-overview.md for details on dataset types and sources.
Load the initial snapshot into your database. This is vendor-specific.
Reference: ytdb/src/main/java/com/youtrackdb/ldbc/ytdb/loader/
Dataset location: test-data/runtime/social-network/sf0.1/
Set your database vendor in runner/ldbc-driver.properties:
tinkerpop.vendor=ytdbDefault configuration:
- Validation mode
- SF 0.1
- 200 validation queries
- Single thread
See docs/configuration-and-running.md for configuration details.
./scripts/ldbc-driver.shResults written to runner/results/.
Note: Reload data after each run (updates modify the dataset).
To add support for your TinkerPop-compatible database:
- Create a vendor module (e.g.,
yourdb/) - Implement
GraphProviderinterface - Create a Guice module binding your implementation
- Register vendor in
TinkerPopDb.java - Add vendor properties in
yourdb/ldbc-driver.properties
Optionally override default queries for vendor-specific optimizations.
Complete guide: docs/adding-a-vendor.md
Reference implementation: ytdb/ module
- Dataset Overview - Data types, sources, and structure
- Adding a Vendor - Step-by-step database integration
- Configuration and Running - Configuration parameters and execution modes
Feedback welcome on:
- Query implementations and optimizations
- API design for database plugins
- Documentation gaps
Apache License 2.0 - see LICENSE
- LDBC Council for the SNB benchmark specification
- Apache TinkerPop for the graph computing framework