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