The Storage module benchmarks Rumi's ODS (Object Data Store) performance, measuring object operations in a transactional context.
The ODS provides:
This benchmark measures the overhead of object operations within the Rumi engine.
Class: com.neeve.perf.ods.ESMember
Benchmarks object store operations using Event Sourcing HA policy.
Operations Benchmarked
The benchmark measures:
Command-Line Parameters
General Parameters
Short
Long
Default
Description
Number of commits to perform
Commit rate (-1 = unlimited)
Number of messages per commit
Don't write latencies to file
Persistence Parameters
Short
Long
Default
Description
Log open mode (rw, rws, rwd)
Preallocated log length (GB)
Zero out preallocated length
Write buffer size (bytes)
Queue depth for detached writes
Disruptor publisher claim strategy
Disruptor writer wait strategy
Disruptor writer thread affinity
Running Benchmarks
Basic Store Operations Test
With Persistence Enabled
Number of commits to perform:
Number of messages/operations per commit:
Enable detached persistence:
More efficient for high-throughput scenarios.
Interpreting Results
Typical Results (Linux x86-64)
Operation
Hot Cache
Cold Cache
Hot Cache Performance:
Sub-microsecond operations
Excellent for high-frequency access
Memory Efficiency:
Compact object representation
Efficient index structures
Transactional Overhead:
Minimal overhead within transactions
Batch operations for efficiency
Comparison with AEP Module
The AEP Module includes store operations:
Storage Module: Measures pure object operation overhead
AEP Module: Store operations within message processing
AEP Impact: Store operations add < 1µs to end-to-end latency
Store operations are a tiny fraction of end-to-end latency
Use Indexes Wisely:
Index frequently-queried fields
Avoid over-indexing (impacts updates)
Choose appropriate index types
Batch Operations:
Group related updates in single transaction
Reduces transaction overhead
Memory Management:
Size heap appropriately for object count
Use off-heap storage for very large datasets
For Large Datasets
Object Store Features
Automatic index maintenance:
ACID semantics:
Atomicity: All or nothing
Consistency: Constraints enforced
Isolation: Serializable transactions
Durability: Persisted if enabled
Automatic state replication in clustered deployments:
State changes replicated to backup
Backup maintains identical state
Review AEP Module to see store usage in end-to-end context