[Chandler-dev] [Sum] The Great Architecture Discussion of 2007

Reid Ellis 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.  
(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  

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 mailing list