- use `rustix-uring`
- use `seize`
- without WAL
- optimized for NVME
- in memory collection type: SkipList and HashMap
- read - always sync methods
- write/update/delete - sync
- CAS, read-modify-write
- keys are arrays with compile time length
- key type: just array bytes
- values are two types: with static length and variable length (ByteView)
- ByteView is:
+ aligned 8 bytes
+ like Vec<u8>, but inline <= 20 bytes
use for:
- users sessions
- indexes
- logs
- backups
- second/read replica
- etc...
Research:
- https://gemini.google.com/gem/coding-partner/8bb405beb595ef2f
- https://gemini.google.com/app/a637bfa3ffdb3ce3