Skip to content

Append Only data structure usefully for storing sorted data

License

Notifications You must be signed in to change notification settings

LRagji/sorted-blocks

Repository files navigation

SortedBlocks

It is a append-only data structure used in conjunction with custom blocks to persist data on underlying store.

  1. Can be used to create embeded database.
  2. Lock free data structure for reading and writting.
  3. Supports multiple writers without sync, cause of its append nature.
  4. Supports Multi version concurrency.(M.V.C.C)
  5. Supports custom blocks.
  6. Supports consolidation or defrag of store.
  7. Upcoming support for indexing for faster reads.
  8. Out of box support for local caching.

Binary Block Format

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
UInt32BE4Bytes
Block-Body-Length
UInt32BE4Bytes
Block-Type
UInt32BE4Bytes
Preamble-CRC-16
UInt16BE2Bytes
Preamble-CRC-16
UInt16BE2Bytes
SOB
0x23,0x21(#!)2Bytes
Index 0 in on RHS

About

Append Only data structure usefully for storing sorted data

Resources

License

Stars

Watchers

Forks

Packages

No packages published