Crate oxirs_tdb

Crate oxirs_tdb 

Source
Expand description

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

Version

Status: Production Release (v0.1.0) 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 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 loader::BulkLoadStats;
pub use loader::BulkLoader;
pub use loader::BulkLoaderConfig;
pub use loader::BulkLoaderFactory;
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;

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
btree
B+Tree implementation for key-value storage
bulk_operations
Bulk operations module for high-throughput RDF processing
cloud_storage
Cloud storage integration for TDB backups and data storage
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
index
Triple and quad index structures (SPO, POS, OSP, GSPO, GPOS, GOSP)
loader
Data loading utilities for OxiRS TDB
materialized_views
Materialized Views for Query Acceleration
observability
Observability module for comprehensive monitoring and metrics
online_backup
Online Backup Without Downtime
performance
Performance optimization module using SciRS2-Core
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
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
transaction
Transaction support for TDB storage engine
wal_archive
Write-Ahead Log Archiving for Point-in-Time Recovery
wal_shipping
Continuous WAL Shipping for Disaster Recovery

Constants§

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