cliffmoon / dynomite

Open source dynamo clone written in Erlang.

This URL has Read+Write access

cliffmoon (author)
Mon Dec 01 00:03:40 -0800 2008
commit  e4338df42e33bd8dda2824099f9ab684bea6d079
tree    e7e716f110ea5a608f61d8c7ab25c42043529a08
parent  09869eb77c5fbb8f1548430817e232fc838dc440
dynomite / XHASHFORMAT
100644 25 lines (22 sloc) 0.723 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
This is the file system layout for the xhash storage system. The implementation is based on the data structure described by Split Ordered Lists (Shalev, Shavit.) The basic data structure is a linked list in the data file. A hashed index into the linked list is maintained in a separate file. The main data file format looks like so:
 
header 48 bytes:
identifier: 2bytes = XD
version:2bytes
size:4bytes
head-pointer: 8bytes
reserved: 32bytes
node header=18bytes:
keyhash: 4bytes
nextptr: 8bytes
keysize: 2bytes
datasize: 4bytes
key: variable
data: variable bytes
 
and the index file:
 
header 40 bytes:
identifier: 2bytes = XI
version:2bytes
capacity:4bytes
reserved: 32bytes
table array:
pointer: 8bytes