Apache Jena TDB

active

by Apache Software Foundation · since 2008 · also known as Jena TDB2, Apache Jena Fuseki, TDB2

Apache Jena's native RDF store, embeddable in Java or served over SPARQL with Fuseki.

rdf / triple storedatabase engineopen source (permissive)mature

Overview

TDB2 is the persistent triple store inside Apache Jena, the Java framework most semantic-web tooling is built on. It stores RDF in B+tree indexes on local disk with serializable transactions and can be used embedded in a JVM application or exposed as a SPARQL 1.1 endpoint through Fuseki. Jena adds rule-based inference, SHACL/ShEx validation, a GeoSPARQL module and Lucene-backed text search. It is free, standards-focused and dependable for single-machine datasets up to a few billion triples, but it does not cluster and bulk loading very large dumps takes patience.

Strengths & trade-offs

Strengths

  • +Reference-quality SPARQL 1.1 implementation from the core Java semantic-web toolkit
  • +Runs embedded in a JVM process or as a standalone Fuseki server
  • +Serializable transactions with single-writer, multi-reader concurrency
  • +Free, Apache-licensed and maintained by an active ASF community

Trade-offs

  • −No clustering or replication; HA must be built around it
  • −Single-writer model limits concurrent update throughput
  • −Query performance trails specialized engines (QLever, Virtuoso) on very large datasets

Great for

  • +Embedded RDF storage in Java applications
  • +SPARQL endpoints for research datasets
  • +Ontology and vocabulary management
  • +Testing and prototyping semantic-web apps

Think twice for

  • −Multi-billion-triple public endpoints with heavy traffic
  • −High-availability production clusters
  • −Property-graph workloads

Capabilities

Native or official first-party support · 5 of 25 tracked

✓Transactions
✓Full-text search
✓Geospatial
✓In-memory
✓Durable persistence
–Joins
–Secondary indexes
–Vector search
–JSON
–Change data capture
–Triggers
–Stored procedures
–Materialized views
–TTL / expiry
–Pub/Sub
–Columnar storage
–Compression
–Encryption at rest
–Role-based access
–Time travel
–Branching
–Online schema changes
–Streaming ingest
–Offline sync
–Runs in WebAssembly

Scale & consistency

Comfortable data size
Medium · ≤ 10 TB
Horizontal scaling
None
Multi-region
No
Transactions
Full ACID
Consistency
Strong
Schema
Schemaless
Architecture
Single node, Embedded, Client server
Query languages
SPARQL

Single machine; billions of triples are feasible with the parallel bulk loader and fast disks.

Deployment

Self-hosted Vendor-managed cloud Serverless Embedded Edge Kubernetes operator

Ecosystem

apis & protocolsJena Java API, SPARQL protocol (Fuseki), Graph Store Protocol
client languagesJava

Alternatives to Apache Jena TDB

Compare all→
OxigraphRDF / Triple Store15.1

Small, fast SPARQL database in Rust that embeds in Rust, Python and JavaScript or runs as a server.

apache-jena-tdb vs oxigraph →
Graphwise GraphDB (Ontotext)RDF / Triple Store15.6

Standards-compliant RDF triplestore with reasoning, connectors and MCP support for GraphRAG.

apache-jena-tdb vs ontotext-graphdb →
OpenLink VirtuosoRDF / Triple Store19.5

Hybrid SQL/RDF engine that runs many of the largest public SPARQL endpoints.

apache-jena-tdb vs virtuoso →
QLeverRDF / Triple Store17.9

Fast open-source SPARQL engine that serves all of Wikidata or OpenStreetMap from one machine.

apache-jena-tdb vs qlever →
BlazegraphRDF / Triple Store10.2

Abandoned Java RDF/SPARQL store, still known as the engine behind Wikidata Query Service.

apache-jena-tdb vs blazegraph →
StardogRDF / Triple Store12.7

Enterprise knowledge-graph platform: RDF store, reasoning and virtual graphs over your sources.

apache-jena-tdb vs stardog →

Apache Jena TDB FAQ

What is Apache Jena TDB?

Apache Jena TDB is a RDF / triple store database by Apache Software Foundation, first released in 2008. TDB2 is the persistent triple store inside Apache Jena, the Java framework most semantic-web tooling is built on. It stores RDF in B+tree indexes on local disk with serializable transactions and can be used embedded in a JVM application or exposed as a SPARQL 1.1 endpoint through Fuseki. Jena adds rule-based inference, SHACL/ShEx validation, a GeoSPARQL module and Lucene-backed text search. It is free, standards-focused and dependable for single-machine datasets up to a few billion triples, but it does not cluster and bulk loading very large dumps takes patience.

Is Apache Jena TDB open source?

Yes. Apache Jena TDB is open source. License: Apache License 2.0.

Does Apache Jena TDB support ACID transactions?

Yes. Apache Jena TDB supports full ACID transactions, with strong consistency.

Does Apache Jena TDB scale horizontally?

Apache Jena TDB does not scale horizontally; it runs on a single node, so you scale it up rather than out. It is comfortable at medium scale (≤ 10 TB).

How can I run Apache Jena TDB?

You can self-host it and embed it in your application.

What is Apache Jena TDB best for?

Apache Jena TDB is a strong fit for embedded RDF storage in Java applications; SPARQL endpoints for research datasets; and ontology and vocabulary management. Think twice for multi-billion-triple public endpoints with heavy traffic.

What are the best alternatives to Apache Jena TDB?

Common alternatives to Apache Jena TDB include Oxigraph, Graphwise GraphDB (Ontotext), OpenLink Virtuoso, QLever and Blazegraph. The right choice depends on your workload, scale and hosting; WhichDB's smart match ranks them against your requirements.

How popular is Apache Jena TDB?

Apache Jena TDB ranks #175 of 844 databases on the WhichDB Score (18.9/100), and #2 among RDF / triple store databases. The score combines public adoption signals such as package downloads, GitHub activity, job posts and developer discussion.