Repository navigation
RunDB_Native v1.0.2: Stability and Performance Improvements
🚀 Highlights & Improvements
⚡ Performance & Networking
• Edge-Triggered I/O Drain Loop: Refactored Client::handle_read() to drain incoming bytes in a loop until EAGAIN / EWOULDBLOCK. Prevents edge-triggered epoll stalls during large bursts and pipelined workloads exceeding the single-read buffer threshold (16 KB).
• Zero-Allocation Map Lookups: Wired transparent heterogeneous lookup (std::string_view) directly into Database key lookups, eliminating transient std::string heap allocations past 15 characters on reads and writes.
🛡 Reliability & Correctness
• AOF Absolute Expiration Fix: Updated AOF snapshot serialization (dump_all) to use std::chrono::system_clock for wall-clock epoch timestamps rather than steady_clock (uptime- based). Keys replayed across server restarts now retain correct expiration deadlines.
• Neutral Latency Reporting: Cleaned up LATENCY DOCTOR telemetry messages, removing legacy hardcoded name references and aligning with modern production-grade diagnostic reporting.
📚 Documentation & Technical Accuracy
• Allocator & Memory Footprint Clarifications: Updated documentation detailing custom run_malloc tracking vs. standard allocator usage (custom SDS buffers, IntSets, QuickLists vs. standard map node overheads).
• Structure Sizing Precision: Corrected internal sizing references in architecture docs (sizeof(SDS) == 32, sizeof(RunDBObject) == 72).
• Metrics & Benchmarks: Added metrics redirection links and attribution notes across project documentation.
Full Changelog: v1.0.1...v1.0.2