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 |