On 05/06/11 16:28, hiro wrote:
On Tue, May 3, 2011 at 8:38 PM, pancake<panc...@youterm.com> wrote:
You may like starting to play with sdb.
http://hg.youterm.com/sdb
Its a nosql-like (key-value db) based on cdb, but with a decent api and aiming
to provide a memcache network protocol. Its about 1000 LOC atm.
Contribs are welcome
I don't really understand. sdb is essentially a ramfs without folders,
but hidden behind a CLI?
it's a hashtable. why you try to explain such a simple concept in that
complicated way?
I would either have to run stuff on my server (128MB RAM) or use web
services like gmail which I don't have to pay for.
i dont get the point. maybe you need to get a job to earn some money.
And memcached seems to me like a complicated nontransparent cache with
tcp/ip interface.
complicated? is the most simple implementation for storing data. why non
transparent?
it's rather simple.
What is all this stuff good for?
you have O(1) times to access the information, you can build any data
structure on top of a keyvalue database, you can use it from shell, as a
library from C or networkedly using netcat or a memcache client.
it's stupidly simple to replicate memcache-like servers and it's
lightweight.
what i did in sdb is a hashtable (memory) database which syncs to disk
using a slightly modified version of cdb. it is just faster than any
other implementation out there.the only problem is that the disk
database is always fully replaced atomically. this means that if you
have zillions of rows it will take some seconds to write to disk instead
of just updating what has been modified.
You can split up the key space with namespaces, so you can create a
pseudo-tree structure like in cassandra, and get better scaling times.
or use different databases for each key group.. and get faster times for
listing the whole database.
Also key expiration times are not yet implemented..but it would be just
simple to do.
I also write a vala interface for it, this means that if you use
'valaswig' you can just build bindings for sdb for python, ruby, perl,
lua, java, ... but that's not really suckless at all :P
--pancake