[Chandler-dev] [Sum] The Great Architecture Discussion of 2007
rae at osafoundation.org
Wed Oct 10 08:50:34 PDT 2007
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.
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
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.
More information about the chandler-dev