It is a append-only data structure used in conjunction with custom blocks to persist data on underlying store.
- Can be used to create embeded database.
- Lock free data structure for reading and writting.
- Supports multiple writers without sync, cause of its append nature.
- Supports Multi version concurrency.(M.V.C.C)
- Supports custom blocks.
- Supports consolidation or defrag of store.
- Upcoming support for indexing for faster reads.
- Out of box support for local caching.
This is the format used to append blocks in the store, where each block is formatted as follows.
Block-Body |
Byte[] |
<4294967295Bytes |
Index 0 in on LHS |
|
Block-Header |
Byte[] |
<4294967295Bytes |
Index 0 in on LHS |
|
Block-Header-Length |
UInt32BE |
4Bytes |
|
Block-Body-Length |
UInt32BE |
4Bytes |
|
Block-Type |
UInt32BE |
4Bytes |
|
Preamble-CRC-16 |
UInt16BE |
2Bytes |
|
Preamble-CRC-16 |
UInt16BE |
2Bytes |
|
|
Index 0 in on RHS |