Tuesday, August 03 2010

Database Virtual Machines

Today I'm being told once again about SQLite as an embedded database software. That one ain't a database server but a software library that you can use straight into your main program. I'm yet to use it, but it looks like its SQL support is good enough for simple things — and that covers loads of things. I guess read-only cache and configuration storage would be the obvious ones, because it seems that SQLite use cases aren't including mixed concurrency, that is workloads with concurrent readers and writers.

The part that got my full attention is The Virtual Database Engine of SQLite, as this blog title would imply. It seems to be the same idea as what MonetDB calls their MonetDB Assembly Language, and I've been trying to summarize some idea about it in my Next Generation PostgreSQL article.

The main thing is how to further optimize PostgreSQL given what we have. It seems that among the major road blocks in the performance work is how we get the data from disk and to the client. We're still spending so many time in the CPU that the disk bandwidth are not always saturated, and that's a problem. Further thoughts on the full length article, but that's just about a one page section now!