prune some stuff
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
## JormunDB Architecture
|
## JormunDB Architecture
|
||||||
|
# !!THIS IS NO LONGER ENTIRELY ACCURATE IGNORE OR UPDATE WITH ACCURATE INFO!!
|
||||||
|
|
||||||
This document explains the internal architecture of JormunDB, including design decisions, storage formats, and the arena-per-request memory management pattern.
|
This document explains the internal architecture of JormunDB, including design decisions, storage formats, and the arena-per-request memory management pattern.
|
||||||
|
|
||||||
|
|||||||
52
TODO.md
52
TODO.md
@@ -47,23 +47,11 @@ Goal: "aws cli works reliably for CreateTable/ListTables/PutItem/GetItem/DeleteI
|
|||||||
- [x] Expand operator coverage: BETWEEN and begins_with are implemented in parser
|
- [x] Expand operator coverage: BETWEEN and begins_with are implemented in parser
|
||||||
- [x] **Sort key condition filtering in query** — **DONE**: `query()` now accepts optional `Sort_Key_Condition` and applies it (=, <, <=, >, >=, BETWEEN, begins_with)
|
- [x] **Sort key condition filtering in query** — **DONE**: `query()` now accepts optional `Sort_Key_Condition` and applies it (=, <, <=, >, >=, BETWEEN, begins_with)
|
||||||
|
|
||||||
---
|
### 5) Service Features
|
||||||
|
- [ ] Configuration settings like environment variables for defining users and credentials
|
||||||
|
- [ ] Configuration settings for setting up master and replica nodes
|
||||||
|
|
||||||
## Next (feature parity with Zig + API completeness)
|
### 6) Test coverage / tooling
|
||||||
### 5) UpdateItem / conditional logic groundwork
|
|
||||||
- [x] `UpdateItem` handler registered in router (currently returns clear "not yet supported" error)
|
|
||||||
- [x] Implement `UpdateItem` (initially minimal: SET for scalar attrs)
|
|
||||||
- [x] `UpdateItem` needs UPDATED_NEW/UPDATED_OLD response filtering for perfect parity with Dynamo
|
|
||||||
- **DONE**: `filter_updated_attributes` extracts modified paths from `Update_Plan` and filters the response item to only include those attributes. `get_update_plan_modified_paths` + `filter_item_to_paths` in `transact.odin`.
|
|
||||||
- [x] Add `ConditionExpression` support for Put/Delete/Update (start with simple comparisons)
|
|
||||||
- [x] Define internal "update plan" representation (parsed ops → applied mutations)
|
|
||||||
|
|
||||||
### 6) Response completeness / options
|
|
||||||
- [x] `ReturnValues` handling where relevant (NONE/ALL_OLD/UPDATED_NEW etc. — even partial support is useful)
|
|
||||||
- [x] `ProjectionExpression` (return subset of attributes)
|
|
||||||
- [x] `FilterExpression` (post-query filter for Scan/Query)
|
|
||||||
|
|
||||||
### 7) Test coverage / tooling
|
|
||||||
- [ ] Add integration tests mirroring AWS CLI script flows:
|
- [ ] Add integration tests mirroring AWS CLI script flows:
|
||||||
- create table → put → get → scan → query → delete
|
- create table → put → get → scan → query → delete
|
||||||
- [ ] Add fuzz-ish tests for:
|
- [ ] Add fuzz-ish tests for:
|
||||||
@@ -71,45 +59,19 @@ Goal: "aws cli works reliably for CreateTable/ListTables/PutItem/GetItem/DeleteI
|
|||||||
- expression parsing robustness
|
- expression parsing robustness
|
||||||
- TLV decode failure cases (corrupt bytes)
|
- TLV decode failure cases (corrupt bytes)
|
||||||
|
|
||||||
---
|
### 7) Secondary indexes
|
||||||
|
|
||||||
## Later (big features)
|
|
||||||
These align with the "Future Enhancements" list in ARCHITECTURE.md.
|
|
||||||
|
|
||||||
### 8) Secondary indexes
|
|
||||||
- [ ] Global Secondary Indexes (GSI)
|
- [ ] Global Secondary Indexes (GSI)
|
||||||
- [ ] Local Secondary Indexes (LSI)
|
- [ ] Local Secondary Indexes (LSI)
|
||||||
- [ ] Index backfill + write-path maintenance
|
- [ ] Index backfill + write-path maintenance
|
||||||
|
|
||||||
### 9) Batch + transactions
|
### 8) Performance / ops
|
||||||
- [x] BatchWriteItem
|
|
||||||
- [x] BatchGetItem
|
|
||||||
- [x] Transactions (TransactWriteItems / TransactGetItems)
|
|
||||||
- **DONE**: `transact.odin` implements all-or-nothing semantics:
|
|
||||||
- Put, Delete, Update, ConditionCheck action types
|
|
||||||
- Pre-flight condition evaluation (all conditions checked before any mutation)
|
|
||||||
- Deterministic table lock ordering to prevent deadlocks
|
|
||||||
- `transact_handlers.odin` contains HTTP handlers and JSON parsing
|
|
||||||
- TransactGetItems supports ProjectionExpression per item
|
|
||||||
|
|
||||||
### 10) Performance / ops
|
|
||||||
- [ ] Connection reuse / keep-alive tuning
|
- [ ] Connection reuse / keep-alive tuning
|
||||||
- [ ] Bloom filters / RocksDB options tuning for common patterns
|
- [ ] Bloom filters / RocksDB options tuning for common patterns
|
||||||
- [ ] Optional compression policy (LZ4/Zstd knobs)
|
- [ ] Optional compression policy (LZ4/Zstd knobs)
|
||||||
- [ ] Parallel scan (segment scanning)
|
- [ ] Parallel scan (segment scanning)
|
||||||
|
|
||||||
---
|
### 9) Replication / WAL
|
||||||
|
|
||||||
## Replication / WAL
|
|
||||||
(There is a C++ shim stubbed out for WAL iteration and applying write batches.)
|
(There is a C++ shim stubbed out for WAL iteration and applying write batches.)
|
||||||
- [ ] Implement WAL iterator: `latest_sequence`, `wal_iter_next` returning writebatch blob
|
- [ ] Implement WAL iterator: `latest_sequence`, `wal_iter_next` returning writebatch blob
|
||||||
- [ ] Implement apply-writebatch on follower
|
- [ ] Implement apply-writebatch on follower
|
||||||
- [ ] Add a minimal replication test harness (leader generates N ops → follower applies → compare)
|
- [ ] Add a minimal replication test harness (leader generates N ops → follower applies → compare)
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Housekeeping
|
|
||||||
- [x] Fix TODO hygiene: keep this file short and "actionable"
|
|
||||||
- Added "Bug Fixes Applied" section documenting what changed and why
|
|
||||||
- [ ] Add a CONTRIBUTING quick checklist (allocator rules, formatting, tests)
|
|
||||||
- [ ] Add "known limitations" section in README (unsupported DynamoDB features)
|
|
||||||
Reference in New Issue
Block a user