Re: Upcoming release 2.11

Heiko Kirschke <[email protected]> Wed, 06 Apr 2005 10:03:57 +0200
Newsgroups gmane.lisp.plob.general
Message-ID <[email protected]>
Moin Edi,

Edi Weitz schrieb:

>>I have still plans to replace PLOB's underlying library POSTORE with
>>Berkely DB, but unfortunately did not have the time to do so.
>>   =20
>>
>It'd be great if you could replace the underlying store with something
>else.  I wonder, however, if Berkeley DB is the right solution.
>Again, because of licensing (or rather pricing) issues.  See my email
>to the Elephant mailing list:
>
>  <http://common-lisp.net/pipermail/elephant-devel/2005-March/000121.htm=
l>
> =20
>
Ok, reading this means that the Berkeley DB license is not suitable for=20
Plob. Sigh.

>Could you describe in a few words which features have to be supported
>by an alternative back-end?
>
The requirements are not that high.

First, I know of a successor of POSTORE called `Lumberjack' with the=20
same API. Unfortunately, it looks as if the work on Lumberjack has stuck=20
a bit, since the author(s) told me that it is not yet ready for putting=20
it into the public domain. I will ask them again.

Second, to me it looks as if  Plob should use its own underlying=20
persistent heap. There are several options to this:

1. Abonding the mixed C-/LISP-approach of Plob, coding the persistent=20
heap in LISP. Would mean a major redesign and cost a lot of effort.

2. Replace the POSTORE lib by an own implementation of a persistent=20
heap, again in C. Would mean only a redesign on Plob's lower levels,=20
with maybe moderate efforts. I cannot estimate what it would mean to=20
replace the POSTORE lib by something coded in LISP, but I'm afraid that=20
this would mean that I've to drop the idea of using Plob randomly in=20
server or serverless mode and to decide on supporting only exactly one=20
of these modes.

For option 2., the POSTORE API is not that complicated. There are=20
functions for allocating a persistent record with a quite simple=20
structure (references to other persistent  records and values [i.e., no=20
references]), access functions to these records by their `object id',=20
and some administrative functions like flushing, creating a new=20
persistent heap etc. You find the interface in the SH_* functions=20
declared in plob-2.10/src/include/postore.h. All other databasespecific=20
stuff (transactions, btrees etc.) has been implemented in Plob anyway in=20
the layer above the persistent heap.

Since my time for working on Plob is rather constrained, I would prefer=20
option 2.

Viele Gr=FC=DFe from Hamburg, too,
Heiko

Heiko Kirschke
Achtern Barg 48
D-22885 Barsb=FCttel
Tel.: +49 40 225497


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=3D6595&alloc_id=3D14396&op=3Dclick