make batch operations work

This commit is contained in:
2026-02-16 00:18:20 -05:00
parent c6a78ca054
commit ffd3eda63c
6 changed files with 877 additions and 92 deletions

View File

@@ -119,23 +119,6 @@ Binary encoding → Disk
JSON response → Client
```
### Module Structure
```
jormundb/
├── rocksdb/ - C FFI bindings to librocksdb
├── rocksdb_shim/ - C++ FFI bindings to librocksdb (so we can use the WAL helper functions)
├── dynamodb/ - Core types and operations
│ ├── types.odin - AttributeValue, Item, Key, etc.
│ ├── json.odin - DynamoDB JSON serialization
│ ├── storage.odin - Storage engine with RocksDB
│ ├── key_codec.odin - Binary key encoding
│ ├── item_codec.odin - Binary TLV item encoding
│ └── handler.odin - HTTP request handlers
├── http.odin - HTTP Server
└── main.odin - HTTP Router and handler (entry point)
```
### Storage Format
**Keys** (varint-length-prefixed segments):
@@ -230,17 +213,17 @@ Scan (full table) | 5000 ops | 234.56 ms | 21320 ops/sec
- ✅ DeleteItem
- ✅ Query (with KeyConditionExpression)
- ✅ Scan (with pagination)
- ✅ ConditionExpression
- ✅ FilterExpression
- ✅ ProjectionExpression
- ✅ BatchWriteItem
- ✅ BatchGetItem
### Coming Soon
- ⏳ UpdateItem (with UpdateExpression)
- ⏳ BatchWriteItem
- ⏳ BatchGetItem
- ⏳ UpdateItem (works but needs UPDATED_NEW/UPDATED_OLD response filtering to work for full Dynamo Parity)
- ⏳ Global Secondary Indexes
- ⏳ Local Secondary Indexes
- ⏳ ConditionExpression
- ⏳ FilterExpression
- ⏳ ProjectionExpression
## Configuration