5 Jul 2007 00:49
db-postmodern update - Integrated!
I have just integrated Henrik Hjelte's postmodern-based backend into the official
darcs repository for elephant:
http://common-lisp.net/project/elephant/darcs/elephant/
However, this is not an official release, but presumably will be part of the next official release.
It passes all of the tests. The Postmodern backend is not quite twice as fast on our testsuite as
the CL-SQL backend. The CL-SQL backend still has some value, however, for non-Postgres
databases. If someone were to write another DB-specific backend, such as a MySQL backend
or an Oracle backend, I would assume they would benefit from both the CL-SQL version and
the Postmodern version. However, I think the Postmodern version is better-written. I thank
Henrik very much for preparing such a well-written, easy-to-integrate backend.
I did, however, have to make three changes to get this to work for me under SBCL.
Postmodern defines "db-error" incompatibly with the BDB backend, so I renamed the BDB symbol
from db-error to bdb-db-error. This was one issue on a "handler-case" that I assume was
acceptable under Henrik's LISP, but didn't work under SBCL, or seem to follow the CLHS.
Finally, in shared-initialize :after method that builds the cache-indices I had to explicitly
set the slot to the initform, to prevent a reading of an unbound-slot. I still have no idea
why the slot was unbound at that point, in spite of all documentation saying that it should be.
I slightly modified Henrik's test to harmonize more with the CL-SQL version, and added an
example of using postmodern into the RUNTEST.lisp file.
Describing this in the manual remains to be done; I don't have any immediate plans to do so.
Personally, I think each backend adds to the overall usability of Elephant, and should broaden
our user base. Particularly since one can migrate data from one backend to another, it would
seem that we are offering a solid platform.
Once this is officially released, users can expect the postmodern backend to be supported
indefinitely. If we ever drop a backend, we will provide a way to migrate data out of it.
On Sat, 2007-05-12 at 16:46 +0200, Henrik Hjelte wrote:
darcs repository for elephant:
http://common-lisp.net/project/elephant/darcs/elephant/
However, this is not an official release, but presumably will be part of the next official release.
It passes all of the tests. The Postmodern backend is not quite twice as fast on our testsuite as
the CL-SQL backend. The CL-SQL backend still has some value, however, for non-Postgres
databases. If someone were to write another DB-specific backend, such as a MySQL backend
or an Oracle backend, I would assume they would benefit from both the CL-SQL version and
the Postmodern version. However, I think the Postmodern version is better-written. I thank
Henrik very much for preparing such a well-written, easy-to-integrate backend.
I did, however, have to make three changes to get this to work for me under SBCL.
Postmodern defines "db-error" incompatibly with the BDB backend, so I renamed the BDB symbol
from db-error to bdb-db-error. This was one issue on a "handler-case" that I assume was
acceptable under Henrik's LISP, but didn't work under SBCL, or seem to follow the CLHS.
Finally, in shared-initialize :after method that builds the cache-indices I had to explicitly
set the slot to the initform, to prevent a reading of an unbound-slot. I still have no idea
why the slot was unbound at that point, in spite of all documentation saying that it should be.
I slightly modified Henrik's test to harmonize more with the CL-SQL version, and added an
example of using postmodern into the RUNTEST.lisp file.
Describing this in the manual remains to be done; I don't have any immediate plans to do so.
Personally, I think each backend adds to the overall usability of Elephant, and should broaden
our user base. Particularly since one can migrate data from one backend to another, it would
seem that we are offering a solid platform.
Once this is officially released, users can expect the postmodern backend to be supported
indefinitely. If we ever drop a backend, we will provide a way to migrate data out of it.
On Sat, 2007-05-12 at 16:46 +0200, Henrik Hjelte wrote:
I have made some changes to the postmodern postgresql backend. The darcs repo is now based on the official elephant darcs repo, so patches can be moved between them easily. The postmodern backend passes all "official" tests, but has not been extensively tested with real data yet. The db-postmodern tree can be found here: http://common-lisp.net/project/grand-prix/darcs/elephant /Henrik Hjelte _______________________________________________ elephant-devel site list elephant-devel-F1HGIaG5STRyXAeb93iumQ@public.gmane.org http://common-lisp.net/mailman/listinfo/elephant-devel
<div> I have just integrated Henrik Hjelte's postmodern-based backend into the official<br> darcs repository for elephant:<br><br><a href="http://common-lisp.net/project/elephant/darcs/elephant/">http://common-lisp.net/project/elephant/darcs/elephant/</a><br><br> However, this is not an official release, but presumably will be part of the next official release.<br> It passes all of the tests. The Postmodern backend is not quite twice as fast on our testsuite as<br> the CL-SQL backend. The CL-SQL backend still has some value, however, for non-Postgres <br> databases. If someone were to write another DB-specific backend, such as a MySQL backend<br> or an Oracle backend, I would assume they would benefit from both the CL-SQL version and <br> the Postmodern version. However, I think the Postmodern version is better-written. I thank<br> Henrik very much for preparing such a well-written, easy-to-integrate backend.<br><br> I did, however, have to make three changes to get this to work for me under SBCL.<br> Postmodern defines "db-error" incompatibly with the BDB backend, so I renamed the BDB symbol<br> from db-error to bdb-db-error. This was one issue on a "handler-case" that I assume was <br> acceptable under Henrik's LISP, but didn't work under SBCL, or seem to follow the CLHS.<br> Finally, in shared-initialize :after method that builds the cache-indices I had to explicitly <br> set the slot to the initform, to prevent a reading of an unbound-slot. I still have no idea<br> why the slot was unbound at that point, in spite of all documentation saying that it should be.<br><br> I slightly modified Henrik's test to harmonize more with the CL-SQL version, and added an<br> example of using postmodern into the RUNTEST.lisp file.<br><br> Describing this in the manual remains to be done; I don't have any immediate plans to do so.<br><br> Personally, I think each backend adds to the overall usability of Elephant, and should broaden<br> our user base. Particularly since one can migrate data from one backend to another, it would<br> seem that we are offering a solid platform.<br><br> Once this is officially released, users can expect the postmodern backend to be supported <br> indefinitely. If we ever drop a backend, we will provide a way to migrate data out of it.<br><br><br><br><br><br><br> On Sat, 2007-05-12 at 16:46 +0200, Henrik Hjelte wrote: <blockquote type="CITE"> I have made some changes to the postmodern postgresql backend. The darcs repo is now based on the official elephant darcs repo, so patches can be moved between them easily. The postmodern backend passes all "official" tests, but has not been extensively tested with real data yet. The db-postmodern tree can be found here: <a href="http://common-lisp.net/project/grand-prix/darcs/elephant">http://common-lisp.net/project/grand-prix/darcs/elephant</a> /Henrik Hjelte _______________________________________________ elephant-devel site list <a href="mailto:elephant-devel@...">elephant-devel@...</a> <a href="http://common-lisp.net/mailman/listinfo/elephant-devel">http://common-lisp.net/mailman/listinfo/elephant-devel</a> </blockquote> </div>
RSS Feed