Skip to main content

Crate oxirs_tdb

Crate oxirs_tdb 

Source
Expand description

§OxiRS TDB - Apache Jena TDB/TDB2 Compatible Storage Engine

Version

Status: Production Release (v0.2.2) Stability: Public APIs are stable. Production-ready with comprehensive testing.

High-performance RDF triple store with B+Tree indexes, ACID transactions, and Apache Jena TDB/TDB2 API compatibility.

§Features

  • B+Tree Storage - Efficient range queries and sequential scans
  • Triple Indexes - SPO, POS, OSP for optimal query performance
  • ACID Transactions - Write-Ahead Logging (WAL) with 2PL concurrency control
  • Dictionary Encoding - Compress IRIs and literals to 8-byte NodeIDs
  • Buffer Pool - LRU caching for hot pages
  • 100M+ Triples - Scalable to large datasets

§Quick Start

use oxirs_tdb::TdbStore;
// Create a new TDB store
let mut store = TdbStore::open("/path/to/data")?;

// Insert triples
// store.insert(...)?;

// Query triples
// let results = store.query(...)?;

§Architecture

┌─────────────────────────────────────────┐
│         TdbStore (High-level API)       │
└─────────────────┬───────────────────────┘
                  │
      ┌───────────┴───────────┐
      │                       │
┌─────▼─────┐         ┌──────▼──────┐
│  Indexes  │         │ Dictionary  │
│ SPO/POS/  │         │   Encoding  │
│    OSP    │         │             │
└─────┬─────┘         └──────┬──────┘
      │                      │
      └───────────┬──────────┘
                  │
           ┌──────▼──────┐
           │   B+Tree    │
           └──────┬──────┘
                  │
      ┌───────────┴───────────┐
      │                       │
┌─────▼─────┐         ┌──────▼──────┐
│  Buffer   │         │     WAL     │
│   Pool    │         │  (Logging)  │
└─────┬─────┘         └──────┬──────┘
      │                      │
      └───────────┬──────────┘
                  │
           ┌──────▼──────┐
           │ File Manager│
           │   (mmap)    │
           └─────────────┘

§See Also

Re-exports§

pub use backup_encryption::BackupEncryption;
pub use backup_encryption::EncryptedData;
pub use backup_encryption::EncryptionConfig;
pub use bulk_operations::BulkStats;
pub use bulk_operations::BulkTripleProcessor;
pub use bulk_operations::ParallelPipelineBuilder;
pub use bulk_operations::StreamingTripleIterator;
pub use compression::DeltaStoreConfig;
pub use compression::DeltaStoreStats;
pub use compression::EncodedDeltaLog;
pub use compression::TripleDelta;
pub use compression::TripleDeltaStore;
pub use connection_pool::ConnectionPool;
pub use connection_pool::ConnectionPoolConfig;
pub use connection_pool::ConnectionPoolStatsSnapshot;
pub use database_ops::CompactionStats;
pub use database_ops::DatabaseMetadata;
pub use database_ops::DatabaseOps;
pub use database_ops::DatabaseStatus;
pub use database_ops::RepairReport;
pub use error::Result;
pub use error::TdbError;
pub use index::BTreeTripleIndex;
pub use index::EncodedTriple;
pub use index::TripleIndexSet;
pub use index::TripleOrdering;
pub use loader::BulkLoadStats;
pub use loader::BulkLoader;
pub use loader::BulkLoaderConfig;
pub use loader::BulkLoaderFactory;
pub use loader::NodeDictionary;
pub use loader::ParallelBulkLoadConfig;
pub use loader::ParallelBulkLoadStats;
pub use loader::ParallelBulkLoader;
pub use loader::RawTriple;
pub use loader::RdfNode;
pub use loader::TripleSource;
pub use loader::VecTripleSource;
pub use materialized_views::MaterializedView;
pub use materialized_views::MaterializedViewConfig;
pub use materialized_views::MaterializedViewManager;
pub use materialized_views::MaterializedViewManagerStats;
pub use materialized_views::RefreshStrategy;
pub use materialized_views::ViewInfo;
pub use observability::HealthCheck;
pub use observability::HealthCheckResult;
pub use observability::HealthCheckResults;
pub use observability::HealthStatus;
pub use observability::MetricSnapshot;
pub use observability::ObservabilityConfig;
pub use observability::ObservabilityManager;
pub use observability::TraceSpan;
pub use observability::TraceSpanId;
pub use online_backup::OnlineBackupManager;
pub use online_backup::OnlineBackupStats;
pub use online_backup::Snapshot;
pub use online_backup::SnapshotConfig;
pub use online_backup::SnapshotId;
pub use online_backup::SnapshotStatus;
pub use query_resource_quota::QueryQuotaStats;
pub use query_resource_quota::QueryResourceQuotaConfig;
pub use query_resource_quota::QueryResourceQuotaManager;
pub use query_resource_quota::QueryResourceTracker;
pub use query_resource_quota::QueryResourceUsage;
pub use store::CompressionAlgorithm;
pub use store::ReplicationMode;
pub use store::StoreParams;
pub use store::StoreParamsBuilder;
pub use store::StorePresets;
pub use store::TdbConfig;
pub use store::TdbStats;
pub use store::TdbStore;
pub use wal_archive::WalArchiveConfig;
pub use wal_archive::WalArchiveMetadata;
pub use wal_archive::WalArchiver;
pub use wal_archive::WalArchiverStatsSnapshot;
pub use wal_shipping::ShippingConfig;
pub use wal_shipping::ShippingDestination;
pub use wal_shipping::ShippingRecord;
pub use wal_shipping::ShippingStats;
pub use wal_shipping::ShippingStatus;
pub use wal_shipping::WalShipper;
pub use temporal::ChangeEntry;
pub use temporal::ChangeLog;
pub use temporal::ChangeLogStats;
pub use temporal::ChangeOperation;
pub use temporal::TemporalDiff;
pub use temporal::TemporalSnapshot;
pub use temporal::TemporalVersionStore;
pub use temporal::TimeTravelQuery;
pub use temporal::TimeTravelQueryBuilder;
pub use temporal::TripleKey;
pub use temporal::TriplePattern;
pub use temporal::VersionedTriple;
pub use mvcc::deadlock::DeadlockDetector;
pub use mvcc::deadlock::DeadlockScanResult;
pub use mvcc::IsolationLevel;
pub use mvcc::MvccError;
pub use mvcc::MvccManager;
pub use mvcc::MvccStats;
pub use mvcc::TransactionContext;
pub use mvcc::TransactionState;
pub use mvcc::TxId;
pub use mvcc::VersionedEntry;
pub use mvcc::VersionedKey;
pub use mvcc::TX_ID_COMMITTED;
pub use tenant::TenantAuditEvent;
pub use tenant::TenantAuditLog;
pub use tenant::TenantConfig;
pub use tenant::TenantError;
pub use tenant::TenantHandle;
pub use tenant::TenantId;
pub use tenant::TenantIsolationLayer;
pub use tenant::TenantRegistry;
pub use tenant::TenantResult;
pub use tenant::TenantStats;
pub use tenant::TenantStore;
pub use tdb2::NodeTable;
pub use tdb2::RdfTerm;
pub use tdb2::Tdb2Database;
pub use tdb2::Tdb2Format;
pub use tdb2::TripleIndex;
pub use backup_engine::BackupCompression;
pub use backup_engine::BackupDelta;
pub use backup_engine::BackupEngine;
pub use backup_engine::BackupFormat;
pub use backup_engine::BackupManifest;
pub use backup_engine::IncrementalBackup;
pub use sla::SlaComplianceReport;
pub use sla::SlaMonitor;
pub use sla::SlaViolation;
pub use sla::StorageSla;
pub use sla::ViolationType;
pub use formats::CsvRdfMapper;
pub use formats::JsonLdImporter;
pub use formats::NQuadsExporter;
pub use formats::NQuadsImporter;
pub use formats::RdfColumnType;
pub use wal_compaction::BaseSnapshot;
pub use wal_compaction::CompactionConfig;
pub use wal_compaction::CompactionStats as WalCompactionStats;
pub use wal_compaction::PitrConfig;
pub use wal_compaction::PitrEngine;
pub use wal_compaction::RecoveryPlan;
pub use wal_compaction::WalCompactor;
pub use wal_compaction::WalRecord;
pub use wal_compaction::WalRecordType;
pub use wal_compaction::WalSegment;

Modules§

adaptive_execution
Adaptive Query Execution
advanced_diagnostics
Advanced diagnostic tools for TDB store monitoring and analysis
backup
Backup and Restore Utilities for OxiRS TDB
backup_encryption
Backup Encryption for Data at Rest
backup_engine
BackupEngine and IncrementalBackup for OxiRS TDB
bloom_filter
Space-efficient Bloom filter for triple existence checks.
bloom_index
Bloom filter index for fast triple existence checks: FNV double-hashing, capacity-tuned bit array, TripleBloomIndex wrapper (v1.1.0 round 16) Bloom filter index for fast RDF triple membership tests (v1.1.0 round 16).
btree
B+Tree implementation for key-value storage
btree_index
B-tree based index for triple pattern matching.
bulk_operations
Bulk operations module for high-throughput RDF processing
checkpoint_manager
Database checkpoint management for crash recovery and WAL truncation (v1.9.0). Database checkpoint management for TDB storage.
cloud_storage
Cloud storage integration for TDB backups and data storage
compaction_scheduler
Background compaction task scheduler (v1.7.0). Background compaction task scheduler for OxiRS TDB.
compression
Advanced Compression Module for TDB Storage
connection_pool
Connection pooling for multi-client RDF database access
connection_pool_optimizer
Advanced connection pool optimization features
consensus
Consensus Algorithms for Distributed Coordination
database_ops
Database operations and management utilities
diagnostics
Advanced diagnostic tools for TDB store
dictionary
Dictionary encoding for IRIs and Literals
distributed
Distributed Coordination and Replication
error
Error types for OxiRS TDB storage engine
formats
Dataset import/export format converters for OxiRS TDB.
index
Triple and quad index structures (SPO, POS, OSP, GSPO, GPOS, GOSP)
index_rebuilder
B-tree index rebuild from raw triple data: SPO/POS/OSP/GSPO/GPOS/GOSP orders, sorted IndexEntry generation, rebuild statistics, and sortedness verification (v1.1.0 round 14) B-tree index rebuild from raw triple data (v1.1.0 round 14).
index_statistics
Triple store cardinality estimator for query optimization.
journal
Write-ahead journal for crash recovery
loader
Data loading utilities for OxiRS TDB
lsm_compaction
LSM-tree Compaction Strategy
materialized_views
Materialized Views for Query Acceleration
mvcc
MVCC (Multi-Version Concurrency Control) Transaction Manager for OxiRS TDB
observability
Observability module for comprehensive monitoring and metrics
online_backup
Online Backup Without Downtime
performance
Performance optimization module using SciRS2-Core
prefix_table
Compressed Prefix Table for IRI storage in triple indexes.
production
Production Hardening Features for OxiRS TDB
query_cache
Query result caching for improved performance
query_hints
Query hint support for optimization
query_join_optimizer
Join Order Optimization for SPARQL Query Planning
query_monitor
Query monitoring for timeout enforcement and slow query logging
query_optimizer
Advanced query optimizer for TDB storage
query_resource_quota
Query Resource Quota Management
query_timeout
Query Timeout Enforcement
rdf_star
RDF-star support for quoted triples
recovery
Crash recovery and corruption detection
sla
Advanced SLA monitoring and enforcement for OxiRS TDB storage layer.
slow_query_log
Slow Query Logging and Analysis
statistics
Statistics collection for cost-based query optimization
storage
Low-level storage layer
store
High-level TDB store API
tdb2
TDB2-Compatible Data Format
temporal
Temporal RDF – Version Control and Time-Travel Queries
tenant
Multi-Tenant Isolation for OxiRS TDB
text_search
Full-text search index for RDF literal values using Tantivy.
transaction
Transaction support for TDB storage engine
triple_buffer
Write buffer for batching triple insertions (v1.6.0).
triple_cache
Triple pattern cache: memoize repeated pattern lookups using LRU eviction (v1.1.0 round 15) Triple pattern cache: memoize repeated triple pattern lookups using LRU eviction.
vacuum
Database vacuuming and compaction: dead-space detection, fragmentation analysis, online vacuum (v2.0.0). Database vacuuming and compaction for TDB storage.
wal_archive
Write-Ahead Log Archiving for Point-in-Time Recovery
wal_compaction
WAL Compaction and Point-in-Time Recovery
wal_shipping
Continuous WAL Shipping for Disaster Recovery
write_batch
Atomic batch write operations with WAL integration (v1.8.0). Atomic batch write operations for TDB store.

Constants§

DEFAULT_BUFFER_POOL_SIZE
Default buffer pool size (1000 pages = 4MB)
DEFAULT_PAGE_SIZE
Default page size (4KB)
VERSION
TDB storage engine version