Tuesday, January 05, 2010

SQLite talk - SELECT * FROM SQLite_internals

I haven't used SQLite but I've used and still like H2Database a lot. SQLite is the grand daddy of embedded/in-process databases. Just look at its user base - almost all the smartphone products, Mac, Adobe, aviation, automation...

This talk by its author Richard Hipp is entertaining and informative - Hipp: SELECT * FROM SQLite_internals.

What amused me was when he said SQLite is robust against malloc() failures and there's a setting that avoids calling malloc(). So SQLite manages memory on its own because (without a real memory manager - *ahem* like Garbage Collectors) memory becomes fragmented and then malloc() fails which is not a good thing when running aviation systems.
[Update: Jan 6, 2010 - So SQLite manages memory on its own because the Operating System's memory manager most often does not work well for long running applications, which I had written about earlier too - in support of *ahem* Mark-Compact or Mark-Relocate Garbage Collectors]

It supports Full text search, R-Trees, Thread-safe - pretty cool stuff for a 750KB binary.