My understanding is that the discussion has two orthogonal points:
1. the app needs to use the database layer more intelligently (c.f. fast reading in of thousands of mail messages, not persisting the UI in the database, not deriving items from database objects)
2. the database layer API should be a higher level than Berkeley DB. (e.g. SQL)
I think these two goals are very separate. We could easily accomplish the first goal with the existing database. It has been shown that Berkeley DB [BDB] is very fast, and as Andi has pointed out, all the time spent "committing items" is in fact spent in app code creating items and firing off notifications. Nobody can say our repository is slow.
Having said that, a higher-level database back-end has its attractions. I love how on my Mac I can type "sqlite3 ~/Library/Mail/ Envelope\ Index" and enter ".schema" and play around with the data. It immediately speaks to writing little utilities and apps. It also helps me understand a lot about how Mail.app works. If it was open source, I could probably get into the code much more easily. My impression is that there are a lot more tools out there to deal with SQL databases than BDB databases.
Philip mentioned that MySQL uses BDB internally for its backing store. I was very surprised at that, but it makes senss: MySQL puts a higher-level abstraction over BDB. Very cool.
Reid _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Open Source Applications Foundation "chandler-dev" mailing list http://lists.osafoundation.org/mailman/listinfo/chandler-dev
