IN DEVELOPMENT DON'T USE IN PRODUCTION (wait stabilization)
- database in development and might rapidly change syntax
in_memory/embedded (single file) database
Example of using in code
Current state
Now, impliment A__D (atomicity, consistency, isolation, durability).
quick roadmap:
documnet [x] collection [x] findCollection [x] insertCollectionByOffset [x] insertOne [x] insertCollection [x] insertDML [x] find [x] findDML [x] find({args}) [x]
- bson
- Atomicity
- Durability
- session catalog (TransactionParticipant -> txnNumber, recovery unit (changes) )
- Consistency (almost, check about collection catalog)
- Isolation
- limit
- insertMany
- storage-pages
- delete
- make lazy col. check if collection catalog lookup don't find
- indexes
- SQL parsing
How does it works?
Based on start-storage crate, database first keeps 100 bytes header.
Next it (sys-master) contains tables, first system-tables (like sys-master, then sys-trash)
At second, it keeps user tables. Each table is linked list.
TO REMEMBER
redesign dbs - collection-master doc-next key as next document, doc-content-next as next collection