Add a bit more precision to docs, plus philosophy

This commit is contained in:
2025-09-16 00:44:00 -04:00
parent 4d015fa3dc
commit cb66d65479
4 changed files with 46 additions and 26 deletions

View File

@@ -22,10 +22,20 @@ WeaselDB is a high-performance write-side database component designed for system
- **Ultra-fast arena allocation** (~1ns vs ~20-270ns for malloc)
- **High-performance JSON parsing** with streaming support and SIMD optimization
- **Multi-threaded networking** using multiple epoll instances with unified I/O thread pool
- **Multi-stage commit pipeline** with serial processing for consistency and parallel I/O for performance
- **Non-blocking metrics system** with try-lock optimization preventing pipeline stalls
- **Configurable epoll instances** to eliminate kernel-level contention
- **Optimized memory management** with arena allocation and efficient copying
- **Factory pattern safety** ensuring correct object lifecycle management
### Design Philosophy
**"Two machines once you've mastered one"** - Optimize aggressively for single-machine performance before distributing. Most systems prematurely scale horizontally and never fully utilize their hardware. How are you supposed to horizontally scale strict serializability anyway?
**Boring formats, fast implementations** - Use standard data formats (JSON, HTTP, base64) with heavily optimized parsing. Universal compatibility without sacrificing performance.
**Read/write separation** - Fan out reads from the single write stream (persist stage to many subscribers), with true horizontal scaling via S3 for historical data. Keep writes simple and fast.
______________________________________________________________________
## Quick Start
@@ -359,6 +369,7 @@ See [style.md](style.md) for comprehensive C++ coding standards and conventions.
- **CPU**: Perfect hashing and SIMD operations are critical paths - avoid alternatives
- **I/O**: Streaming parser design supports incremental network data processing
- **Cache**: String views avoid copying, keeping data cache-friendly
- **Pipeline**: Serial stages must never block - only parallel release stage can take locks
### Configuration & Testing