Robert/team,You are not going down a wrong path; you are going down an uncertain path, which has a good contingency plan. The future of BDB itself and its licensing situation is slightly uncertain. If you had to switch to the relational backend, it would be painless; one of the things that Elephant does really well is to allow repository migration (I think.) Elephant insulates you from this consideration, to some extent. BDB is 5 times faster---are you sure that matters to you? One cannot emphasize too much that premature optimization is a bad thing. If someone would just improve the serializer, the relational backend would be much faster --- I know how to do this but have not done so, since, for me, it is irrelevant.
I know I've discussed this in the past, but somehow, your comment has awaken my concern as to the future of Elephant and Sleepycat. I know you've mentioned that you are using Elephant mainly (or only) for the relational backend. However, being that the BDB backend is about 5 times faster than the relational one, I was concentrating on using the BDB backend.
Am I going down the wrong or uncertain path? Will future enhancements to Elephant be focused on the relational backend first? I wish I could say that I can volunteer to help enhance Elephant in anyway, but I just don't have the qualifications; at least not yet. I know there are others involved in the project, but not really familiar with everyone's contributions.
Right. I committed (about a year ago, I think) to maintain it for some time, not necessarily to improve it. By good fortune,
The one thing I know is that, this, being an open-source project, is sort of like a side task for the current team members. After all, we "all" have to work to put food on the table. So, it's not that I'm asking the dedication of a team of developers such as one assigned by a company offering commercial licenses.
Ian Eslick has improved it a lot, and I have helped.
Through the documents I've read, I think I came across one that said that there are about 15 people (entities) usingThat was my guess based on the downloads, questions, and the membership of the lists like this one. It could be
much, much higher if the average user never asks a question. I honestly wish I know how many people are using it.
Elephant. I don't know if those are just people known to use it and then many others that you just don't know about, or that it really is a low profile project. I can only comment/compare to CL-SQL, which is the other project I've come across more often. I don't use it but do see more traffic related to that project than to Elephant. From what I know, the two projects have different schools of thought and philosophies as to how persistence is implemented and managed. I can say that I like the way things are done in Elephant. They just seem so natural and elegant.Elephant sits on top of CL-SQL; CL-SQL is the premier database connectivity system for LISP (it rocks.)
CL-SQL also implements some object mapping stuff (ORM), whereas Elephant implements a straight Object database
(more or less.) CL-SQL insulates Elephant from changing database issues, and let's us work with Postgres and
SQLite3, and, with a little work, probably others; its evolution is partially driven by changes in those databases.
It is for that reason that I'm concerned with my using of Elephant and BDB backend. I plan to migrate a large project over from Ruby on Rails to the UCW/Elephant framework. I just don't want to shoot myself on the foot down the road when my clients are using the system or, hopefully won't be the case, obsoleted framework.You will certainly be able to migrate your data to a different backend; although I wish we had more real-world tests of
this capability, it's definitely there. The real question is: do you really have a performance critical situation?
I don't plan to work on BDB 4.4 in the next six months, and Ian and I are the only really active developers right now.
I'm not planning to drop support for BDB either, unless they change the licensing in some way. Perhaps you should
actually measure your object retrieval rate and see if you think it is acceptable. I personally use DCM (in the contrib dir)
which is basically an prevalence-style caching system; in general, caching and indexing go a long way.
Thanks for using it! I wish I had more time to work on it, but I have children and college tuitions looming...
Thanks again for such great work.
---- Robert L. Read, PhD read &T robertlread.net Consider visiting Progressive Engineering: http://robertlread.net/pe In Austin: 912-8593 "Think globally, Act locally." -- RBF |
_______________________________________________ elephant-devel site list elephant-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/elephant-devel