SkunkDB

Description

SkunkDB is a collection of tools to deal with skunk databases. The aim is to create a library, support tools, and a format suitable for high-speed data retrieval. The database is a static key -> value mapping. The databases cannot be inserted into, or deleted from. They are designed to be created once and queried many times. It is pretty small so can be statically linked (the code to query a skunk db is 511 bytes on i386, and the code to create a db is 1426 bytes).

Contact / Support

You can address any bug reports, patches, questions etc.. to Gianni Tedesco <gianni at scaramanga dot co dot uk>

Copyleft - All rights reversed

SkunkDB is free software released under the GNU GPL version 2.
SkunkDB is Copyright © 2001-2002 Gianni Tedesco.

Notes about scalability

The 32bit (default) version of skunkDB supports DBs up to 4GB in size. Records can be any size up to that. sdb_make needs about 20 bytes of RAM per record (although the data itself doesn't need to fit in to memory). On 32bit CPUs however, you can only use databases up to 2GB in size because the DB needs to fit into the available address space.

Database Creation Performance

I have benchmarked sdb_make as taking 2.7 seconds to create a million record DB from a warm cache (excluding fsync() time obviously).

Query Performance

On the million record database created above, I managed 1,000,000 unique queries in about 0.425 seconds (yes thats about 2,352,941 queries per second!!). I think the bottleneck is the code to make sure all the queries are different and unique.

Download

The latest version is 0.0.5
Version 0.0.5 Source code
Version 0.0.4 Source code
Version 0.0.3 Source code
Version 0.0.2 Source code
Version 0.0.1 Source code

Current Features:

Possible Applications

TODO

Valid HTML 3.2!

Copyright (c) Spanish Inquisition 1478-1834. All rights reversed.