@@ -80,28 +80,18 @@ fn set_max_key_len(&self, len: usize) {
8080
8181``` rust
8282/// Batch write operations for better performance
83- pub fn write_batch <F >(& self , meta_prefix : PreBytes , f : F )
84- where
85- F : FnOnce (& mut dyn BatchTrait )
86- {
87- let db = self . get_db (meta_prefix );
88- let cf = self . get_cf (meta_prefix );
89- let mut batch = RocksBatch :: new (meta_prefix , cf );
90- f (& mut batch );
91- db . write (batch . inner). unwrap ();
92-
93- // ... update max_keylen logic
94- }
83+ let mut batch = map . batch_entry ();
84+ batch . insert (& key , & value );
85+ batch . commit (). unwrap ();
9586```
9687
9788** Usage Example** :
9889
9990``` rust
100- map . batch (| batch | {
101- for i in 0 .. 1000 {
102- batch . insert (& key (i ), & value (i ));
103- }
104- });
91+ // Example: Batch write
92+ let mut batch = map . batch_entry ();
93+ batch . insert (& key (i ), & value (i ));
94+ batch . commit (). unwrap ();
10595```
10696
10797** Effect** :
@@ -148,7 +138,7 @@ fn alloc_prefix(&self) -> Pre {
148138| Operation Type | Before | After | Improvement Source |
149139| :--- | :--- | :--- | :--- |
150140| Single Write | Baseline | 5-15% faster | Memory allocation optimization |
151- | Batch Write | Baseline | 2-5x faster | WriteBatch API |
141+ | Batch Write | Baseline | 2-5x faster | batch_entry API |
152142| Prefix Allocation (High Concurrency) | Baseline | 10-100x faster | Lock-free algorithm |
153143
154144## 2. Benchmark Improvements
@@ -270,7 +260,7 @@ Suggested additions:
270260This optimization work focused on:
271261
2722621 . ** RocksDB Engine Core Optimization** - Reduced memory allocation, lower write amplification, improved concurrency performance.
273- 2 . ** API Improvements** - Added ` WriteBatch ` support for batch operations.
263+ 2 . ** API Improvements** - Added ` batch_entry ` support for batch operations.
2742643 . ** Code Cleanup** - Removed deprecated ` Vecx ` related code.
2752654 . ** Test Improvements** - Added new performance test cases.
276266
0 commit comments