Benchmarks & Performance
Benchmarks & Performance
Section titled “Benchmarks & Performance”Sharpino is designed with efficiency in mind, optimizing event appending and in-memory caching to guarantee high performance on .NET workloads.
Sharpino vs. UmaDb
Section titled “Sharpino vs. UmaDb”A performance test comparing Sharpino against UmaDb (v0.6.1) was conducted to evaluate write throughput under sequential event appending.
- Benchmark Repository: tonyx/sharpinoVsUmaDbTest
- Workload: 10,000 sequential operations.
- Environment: Conducted on an Apple M2 Silicon machine running macOS.
Execution Results
Section titled “Execution Results”Uma Append operation took 68 msAdd operation took 29 msMassive Subscription of 10000 courses took 24 msParallel Uma Append operation (10000 elements) took 504 msParallel Sharpino Add operation (10000 elements) took 763 msParallel tasks (30 tasks of 10000 elements) Uma Append operation took 832 msParallel tasks (30 tasks of 10000 elements) Sharpino Add operation took 9190 msSharpino prevails on single-task appends. Umadb prevails on parallel append tasks.
Key Factors for Performance
Section titled “Key Factors for Performance”- Lightweight Concurrency Control: Sharpino relies on optimized event ID optimistic concurrency checks at the database query level, avoiding expensive distributed locks.
- Task-based Asynchrony: Rebuilt around native async tasks and thread-pool optimization, minimizing context-switching and maximizing IO utilization.
- Optimized L1 Caching: Bypasses state reconstruction completely on subsequent command executions by keeping state in memory and updating it proactively.
