Skip to content

Commit b71e3b7

Browse files
author
MPCoreDeveloper
committed
Optimize phases
1 parent 7a7ab34 commit b71e3b7

27 files changed

+1268
-6321
lines changed

README.md

Lines changed: 33 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,12 @@ A high-performance, encrypted, embedded database engine for .NET 10 with **B-tre
4040
- **Encryption**: AES-256-GCM at rest (**0% overhead, sometimes faster!** ✅)
4141
- **Analytics**: **28,660x faster** than LiteDB with SIMD vectorization ✅
4242
- **Analytics**: **682x faster** than SQLite with SIMD vectorization ✅
43-
- **INSERT**: **37% faster** than SQLite, **28% faster** than LiteDB! ✅
43+
- **INSERT**: **43% faster** than SQLite, **44% faster** than LiteDB! ✅
4444
- **SELECT**: **2.3x faster** than LiteDB for full table scans ✅
45-
- **UPDATE**: **7.5x faster** than LiteDB for random updates ✅
45+
- **UPDATE**: **5.4x faster** Single-File mode with batch coalescing ✅ **NEW!**
46+
- **UPDATE**: Competitive with LiteDB (60ms vs 65ms) ✅ **NEW!**
4647
- **B-tree Indexes**: O(log n + k) range scans, ORDER BY, BETWEEN support ✅
47-
- **Unlimited Rows**: FILESTREAM support for multi-gigabyte rows ✅ **NEW!**
48+
- **Unlimited Rows**: FILESTREAM support for multi-gigabyte rows ✅
4849

4950
---
5051

@@ -92,10 +93,11 @@ db.ExecuteSQL("INSERT INTO files VALUES (1, @data)");
9293

9394
- **SIMD Analytics**: **28,660x faster** aggregations than LiteDB (1.08µs vs 30.9ms)
9495
- **SIMD Analytics**: **682x faster** than SQLite (1.08µs vs 737µs)
95-
- **INSERT Operations**: **37% faster** than SQLite (4.09ms vs 6.50ms) ✅
96-
- **INSERT Operations**: **28% faster** than LiteDB (4.09ms vs 5.66ms) ✅
96+
- **INSERT Operations**: **43% faster** than SQLite (3.68ms vs 5.70ms) ✅
97+
- **INSERT Operations**: **44% faster** than LiteDB (3.68ms vs 6.51ms) ✅
9798
- **SELECT Queries**: **2.3x faster** than LiteDB for full table scans
98-
- **UPDATE Operations**: **7.5x faster** than LiteDB (10.7ms vs 81ms)
99+
- **UPDATE Operations**: **5.4x faster** Single-File mode (60ms vs 325ms) ✅ **NEW!**
100+
- **UPDATE Memory**: **280x less** allocations (1.9MB vs 540MB) ✅ **NEW!**
99101
- **AVX-512/AVX2/SSE2**: Hardware-accelerated analytics with SIMD vectorization
100102
- **NativeAOT-Ready**: Zero reflection, zero dynamic dispatch, aggressive inlining
101103
- **Memory Efficient**: **52x less memory** than LiteDB for SELECT operations
@@ -138,10 +140,10 @@ db.ExecuteSQL("INSERT INTO files VALUES (1, @data)");
138140

139141
---
140142

141-
## 📊 Performance Benchmarks (January 28, 2026)
143+
## 📊 Performance Benchmarks (February 3, 2026)
142144

143145
**Test Environment**: Windows 11, Intel i7-10850H @ 2.70GHz (6 cores/12 threads), 16GB RAM, .NET 10
144-
**Status**: **SCDB Phase 6 Production Ready**
146+
**Status**: **SCDB Phase 6 Production Ready** + **Phase 2 Batch UPDATE Optimization**
145147

146148
---
147149

@@ -163,10 +165,11 @@ db.ExecuteSQL("INSERT INTO files VALUES (1, @data)");
163165

164166
| Database | Time | Ratio | Memory |
165167
|----------|------|-------|--------|
166-
| **SharpCoreDB Single File** | **4,092 µs** | **0.37x**| 4.6 MB |
167-
| **SharpCoreDB Single (Encrypted)** | **4,344 µs** | **0.39x**| 4.6 MB |
168-
| LiteDB | 5,663 µs | 0.51x | 12.5 MB |
169-
| SQLite | 6,501 µs | 0.59x | 926 KB |
168+
| **SharpCoreDB Single File** | **3,681 µs** | **0.36x**| 4.6 MB |
169+
| **SharpCoreDB Single (Encrypted)** | **3,941 µs** | **0.39x**| 4.6 MB |
170+
| SQLite | 5,701 µs | 0.56x | 926 KB |
171+
| LiteDB | 6,513 µs | 0.64x | 12.5 MB |
172+
| SharpCoreDB PageBased | 9,761 µs | 1.00x | 14.0 MB |
170173

171174
---
172175

@@ -176,21 +179,29 @@ db.ExecuteSQL("INSERT INTO files VALUES (1, @data)");
176179

177180
| Database | Time | Ratio | Memory |
178181
|----------|------|-------|--------|
179-
| SharpCoreDB Dir | 889 µs | 0.94x | 2.6 MB |
180-
| SharpCoreDB PageBased | 951 µs | 1.00x | 2.6 MB |
181-
| SharpCoreDB Single File | 2,269 µs | 2.40x | 3.6 MB |
182+
| **SharpCoreDB Dir (Unencrypted)** | **814 µs** | **0.86x**| 2.8 MB |
183+
| SharpCoreDB Dir (Encrypted) | 855 µs | 0.91x | 2.8 MB |
184+
| SharpCoreDB PageBased | 944 µs | 1.00x | 2.8 MB |
185+
| SharpCoreDB Single File | 2,547 µs | 2.70x | 3.6 MB |
182186

183187
---
184188

185-
### ✏️ **4. UPDATE Performance**
189+
### ✏️ **4. UPDATE Performance - 5.4x IMPROVEMENT!** 🏆 **NEW!**
186190

187-
**Test**: 500 random updates on 5,000 records
191+
**Test**: 500 random updates on 5,000 records (batch UPDATE optimization)
188192

189193
| Database | Time | Ratio | Memory |
190194
|----------|------|-------|--------|
191-
| SQLite | 6,756 µs | 0.63x | 202 KB |
192-
| SharpCoreDB PageBased | 10,750 µs | 1.00x | 3.3 MB |
193-
| LiteDB | 81,051 µs | 7.56x slower | 24.1 MB |
195+
| SQLite | 6,459 µs | 0.54x | 202 KB |
196+
| **SharpCoreDB Dir (Encrypted)** | **7,513 µs** | **0.63x**| 3.3 MB |
197+
| **SharpCoreDB Dir (Unencrypted)** | **9,041 µs** | **0.75x**| 3.4 MB |
198+
| SharpCoreDB PageBased | 12,065 µs | 1.00x | 3.4 MB |
199+
| **SharpCoreDB Single File** | **60,170 µs** | **5.02x** | **1.9 MB**|
200+
| **SharpCoreDB Single (Encrypted)** | **62,107 µs** | **5.18x** | **1.9 MB**|
201+
| LiteDB | 65,126 µs | 5.43x | 24.5 MB |
202+
| AppendOnly | 118,638 µs | 9.89x | 35.1 MB |
203+
204+
> **Note**: Single-File UPDATE improved **5.4x faster** (from 325ms to 60ms) with **280x less memory** (from 540MB to 1.9MB) thanks to batch UPDATE coalescing optimization.
194205
195206
---
196207

@@ -288,8 +299,9 @@ db.ExecuteSQL("INSERT INTO data VALUES (@blob)");
288299

289300
## 🏆 Awards & Recognition
290301

291-
- **Database Performance**: Beats SQLite by 37% on INSERT, LiteDB by 28% ✅
302+
- **Database Performance**: Beats SQLite by 43% on INSERT, LiteDB by 44% ✅
292303
- **Analytics Speed**: 682x faster than SQLite, 28,660x faster than LiteDB ✅
304+
- **UPDATE Optimization**: 5.4x faster Single-File mode, 280x less memory ✅ **NEW!**
293305
- **Code Quality**: 151+ tests, comprehensive documentation ✅
294306
- **Production Ready**: SCDB 100% complete with crash recovery ✅
295307

0 commit comments

Comments
 (0)