[elephant-devel] Inviting comment on future plans

Ian Eslick eslick at csail.mit.edu
Tue Apr 3 18:42:30 UTC 2007


Pierre,

> - confidence that there can't be data loss when using it,

I believe the current Elephant guarantees no data loss, or I would  
not recommend a 1.0 release.  I trust it in my own work, at least.   
You can, of course, shoot yourself in the foot by calling the wrong  
command and telling it to delete data.  And with BDB, at least, you  
can even recover from shooting yourself in the foot by recovering the  
database to a prior point in time.

Now, few pieces of software are perfect, but Elephant inherits the  
durability and recoverability guarantees (after writes commit) of the  
underlying database.  If you properly use transactions, the DB will  
never get into an inconsistent state.  I've used it on enormous,  
complex databases for months without any incident and several other  
people have reported similar success.  What we've been fixing is  
corner cases, adding small features and making it work robustly with  
a number of major lisp platforms.

To me (and Robert) a major release like 1.0 is defined by a coherent  
and well polished set of features, broad support for various  
platforms, excellent test coverage, some good real-world testing and  
complete documentation.    I think the current plan gets us there.

The portability layer porting you suggest are good steps towards a  
cleaner code base, better separation of concerns, easier code  
maintenance and evolution as well as simplifying future porting to  
other platforms.  However none of them change the user experience or  
significantly enhance the current operational stability of the  
project.  I'd be willing to look at this happening on a separate  
branch post-1.0, but I think it would be a distraction at this point  
since:

1) We don't really need thread portability (other than locks for  
which portability is a trivial 3 line addition per lisp),
2) UFFI is stable and is maintained when bugs or incompatibilities  
are identified (last patch was Oct '06). Updates are rare since it  
has a static, well-tested feature set and lisps don't change their  
FFI interfaces that often so there is little need for active support,  
and
3) We've duplicated and verified the corner cases in our use of the  
MOP, not all of which are fixed by Closer BTW, and closer only  
supports one lisp that we don't (CLisp).  I actually did a trial port  
earlier and judged that the headache wasn't worth the resultant  
benefits.

However the CFFI and threads port would make sense if we committed to  
supporting several new platforms.  (CLisp would be trivial to add if  
someone requests it, especially since it doesn't support threads last  
time I checked).

> - two or three big systems deployed for some months with some  
> reasonable
>   load

I do agree with this.  We've had two apps developed by Robert and I  
stressing the 0.5.0 and 0.6.0 releases.  If we had a handful of users  
who signed up to give Elephant a real stress test pre-1.0, I'd be  
happy to sit on a 1.0 release candidate for a few months while it was  
getting a good going over and doing any new development on a separate  
branch.  I can certainly volunteer as all my recent hacking on  
Elephant is preparation for a significant development project of my  
own that will stress Elephant considerably, especially the new features.

I respect your position on what makes a 1.0 release, but I think it's  
better to get the current product neatly packaged up and available  
before we go optimizing it further, especially since we don't have  
users clamoring for other platforms or features at this time.

I think the best thing anyone can do to get us ready for a 1.0  
release is to review and augment the regression tests to cover corner  
cases we haven't captured yet.  Is there a better way to test all our  
combinations of Lisp/OS/machine/word-size?

Cheers,
Ian


-------------- next part --------------
A non-text attachment was scrubbed...
Name: PGP.sig
Type: application/pgp-signature
Size: 186 bytes
Desc: This is a digitally signed message part
URL: <https://mailman.common-lisp.net/pipermail/elephant-devel/attachments/20070403/5a8ccd84/attachment.sig>


More information about the elephant-devel mailing list