durusmail: durus-users: A new backend storage (Re: [Durus-users] Re: Trivial doc/interface fix)
Trivial doc/interface fix
2006-03-13
Re: Trivial doc/interface fix
2006-03-13
2006-03-13
A new backend storage (Re: [Durus-users] Re: Trivial doc/interface fix)
2006-03-13
Re: A new backend storage (Re: [Durus-users] Re: Trivial doc/interface fix)
2006-03-13
Re: A new backend storage (Re: [Durus-users] Re: Trivial doc/interface fix)
2006-03-14
Re: A new backend storage (Re: [Durus-users] Re: Trivial doc/interface fix)
2006-03-14
Re: A new backend storage (Re: [Durus-users] Re: Trivial doc/interface fix)
2006-03-14
Re: A new backend storage (Re: [Durus-users] Re: Trivial doc/interface fix)
2006-03-14
2006-03-13
2006-03-21
A new backend storage (Re: [Durus-users] Re: Trivial doc/interface fix)
Jesus Cea
2006-03-13
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

David Binger wrote:
> Okay.  I'll add those two to Storage.

Thanks.

> It sounds like you are implementing a Storage.
> That's good.

Nice. Yes, I'm implementing a BerkeleyDB backend storage. A family of
storages, actually.

I'm just finishing my first member of the family. It is a full featured
storage with a *IMPORTANT* caveat: the persistent structure MUST BE a
tree. That is, each element can only have a parent. This is a limitation
I impose to simplify garbage collection.

In a tree each node can only have a parent. So, if that link is deleted
a no other link is stablished in the same transaction, you can safety
remove that node and its childs. A tree can't have cycles, either.

I know that a tree can be a limiting factor, although I don't need a
general graph in my current applications (a mailbox storage pool). In
fact you can use "weak" links to create a general graph, if you use the
name of a node instead of its OID and explicitally check for existence
in your aplication.

In any case, I plan to do a full garbage collection implementation in
the future.

I have several small issues, nevertheless. For example, objects come to
the storage engine already serialized. I would rather prefer to do the
serialization myself. I don't need, for example, to keep the first eight
bytes of the object in the database, since that is the OID and I already
have the OID as the database key.

Could those storage engines be included in future Durus releases or must
I to create a "contribution" webpage in my personal site?.

- --
Jesus Cea Avion                         _/_/      _/_/_/        _/_/_/
jcea@argo.es http://www.argo.es/~jcea/ _/_/    _/_/  _/_/    _/_/  _/_/
                                      _/_/    _/_/          _/_/_/_/_/
PGP Key Available at KeyServ   _/_/  _/_/    _/_/          _/_/  _/_/
"Things are not so easy"      _/_/  _/_/    _/_/  _/_/    _/_/  _/_/
"My name is Dump, Core Dump"   _/_/_/        _/_/_/      _/_/  _/_/
"El amor es poner tu felicidad en la felicidad de otro" - Leibniz
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.2 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iQCVAwUBRBXvsJlgi5GaxT1NAQK9jQP/S1kXP9DZOjuxHkMYN9Y6ASDoiYVtPvJH
cKRKDA2Trd9VrVxtStUkkKoLKrQPU7TazVD80sFKilqFebnqwcHxJVrrw3fzYXnt
yRRqXGWpjQKBLLz7kbDie40Wu8t9Q2abB+/gxe+nNnb+tc+3tfoPqI9ZCTyPym1e
nwPn1Zj0UQo=
=7g0r
-----END PGP SIGNATURE-----
reply