example.com -> example.org
[Seppo.git] / doc / cdb.txt
blob44ebee555d767985a98cfe5de62e543ac1e4e3f1
2 read_uiui_le
4 add_entry cdb (key val)
5   if the file is empty
6     write 2048 zero bytes
7   else if the file has set p[0] > 2048
8     set p[0..255] to 2048 zero bytes
9     chop it off at p[0]
10   else
11     fseek eof
12   append key val
14 do_index cdb
15   if the file has set p[0] > 2048
16     chop it off
17     set p[0..255] to 2048 zero bytes
18   else
19     fseek 2048
20   walk all records – from 2048 to eof
21     feed a map with key -> pos
23     or maybe a map of maps: hash%256 -> key -> pos
25   0..255 each
26     write pos and count to p[n]
27     sort acc ((hash / 256) % count), hash, key
28     
32 http://cr.yp.to/cdb/cdb.txt
33 https://packages.debian.org/buster/tinycdb
34 https://github.com/dustin/snippets/blob/master/ocaml/lib/cdb.ml