@@ -23,7 +23,7 @@ Wildcat is a high-performance embedded key-value database (or storage engine) wr
23
23
- Automatic multi-threaded background compaction with configurable concurrency
24
24
- ACID transaction support with configurable durability guarantees
25
25
- Range, prefix, and full iteration support with bidirectional traversal
26
- - High transactional throughput per second with low latency due to lock-free and non-blocking design.
26
+ - High transactional throughput per second with low latency due to lock-free and non-blocking design from memory to disk
27
27
- Optional Bloom filters per SSTable for improved key lookup performance
28
28
- Key-value separation optimization (` .klog ` for keys, ` .vlog ` for values)
29
29
- Tombstone-aware and version-aware compaction with retention based on active transaction read windows
@@ -134,7 +134,7 @@ The easiest way to interact with Wildcat is through the Update method, which han
134
134
``` go
135
135
// Write a value
136
136
err := db.Update (func (txn *wildcat.Txn ) error {
137
- return txn.Put ([]byte (" hello" ), []byte (" world" )) // Put update's existing key's values.
137
+ return txn.Put ([]byte (" hello" ), []byte (" world" )) // Put update's existing key's values
138
138
})
139
139
if err != nil {
140
140
// Handle error
@@ -158,7 +158,6 @@ if err != nil {
158
158
### Manual Transaction Management
159
159
For more complex operations, you can manually manage transactions.
160
160
``` go
161
- // Begin a transaction
162
161
txn , err := db.Begin ()
163
162
if err != nil {
164
163
// Handle error
@@ -221,7 +220,6 @@ err := db.Update(func(txn *wildcat.Txn) error {
221
220
``` go
222
221
// Perform batch operations
223
222
for i := 0 ; i < 1000 ; i++ {
224
- // Begin a transaction
225
223
txn , err := db.Begin ()
226
224
if err != nil {
227
225
// Handle error
@@ -237,7 +235,6 @@ for i := 0; i < 1000; i++ {
237
235
return
238
236
}
239
237
240
- // Commit the transaction
241
238
err = txn.Commit ()
242
239
if err != nil {
243
240
// Handle error
@@ -293,7 +290,6 @@ err := db.View(func(txn *wildcat.Txn) error {
293
290
#### Range Iterator (bidirectional)
294
291
``` go
295
292
err := db.View (func (txn *wildcat.Txn ) error {
296
- // Create range iterator
297
293
iter , err := txn.NewRangeIterator ([]byte (" start" ), []byte (" end" ), true )
298
294
if err != nil {
299
295
return err
@@ -331,7 +327,6 @@ err := db.View(func(txn *wildcat.Txn) error {
331
327
#### Prefix Iterator (bidirectional)
332
328
``` go
333
329
err := db.View (func (txn *wildcat.Txn ) error {
334
- // Create prefix iterator
335
330
iter , err := txn.NewPrefixIterator ([]byte (" prefix" ), true )
336
331
if err != nil {
337
332
return err
0 commit comments