Performance Guide
Purpose
Provides recommendations for achieving good performance when storing/processing events and submitting proofs.
Principles
- Optimize data structure: use Arrow for columnar storage.
- Reduce IO/serialize overhead: batch events, avoid large binary payloads in
data. - Use caching wisely: L1 in memory, L2 persistent if needed.
Related Settings (excerpt from config/settings.py)
ADVANCED_CACHING_ENABLED: enable advanced caching.BLOCK_CACHE_SIZE,EVENT_CACHE_SIZE,ENTITY_CACHE_SIZE: cache sizes.- Policies:
BLOCK_CACHE_POLICY(lru/lfu/fifo/ttl),EVENT_CACHE_POLICY,ENTITY_CACHE_POLICY. - Parallel processing:
PARALLEL_PROCESSING_ENABLED,MAX_WORKERS,PROCESSING_CHUNK_SIZE.
Recommendations
- Adjust batch size according to actual load (e.g. 100–1000 events/batch).
- Enable
PARALLEL_PROCESSING_ENABLEDwhen multiple CPUs are available; setMAX_WORKERS=Noneto auto-select based on 50% of cores. - Use Arrow to reduce conversion overhead; avoid multiple conversions back and forth.
Minimum Benchmark
- Write 10k events and measure time: Run basic load test.
- Adjust configuration: Try changing
PROCESSING_CHUNK_SIZE,EVENT_CACHE_POLICYparameters. - Compare results: Measure throughput (events/sec) and latency (p50/p95).
System Observation
- Use
monitoring/performance_monitor.pyto get CPU/RAM metrics. - Enable
ResourceGuardMiddlewarefor load shedding during peak load.