Things I Read This Week – 2010.09.03

Just in case you want to live vicariously through my reading choices, here are some of the things that I found interesting this week when I should have been doing my job.


An Illustrated Guide to the PostgreSQL Buffer Cache – Just in case you were wondering how a buffer cache works in a database. Because, you know… it’s cool. For you SQL Server people out there, this is conceptually identical to how buffer pool scans work in SQL Server. I suspect this is the same everywhere and probably based on an obscure academic paper. Inside the Optimizer: Plan Costing – The SQL Server optimizer is an interesting creature. You can’t see what it’s doing directly because it’s full of patents and secrets (and probably dragons). Paul White (blog | twitter) has been doing a phenomenal job recently of taking apart the optimizer step by step and showing how it works. The problems with ACID and how to fix them without going NoSQL – You know all of those reasons your developers are giving you to abandon SQL Server for a NoSQL database? This guy claims to have the answer. It boils down to using stronger ACID compliance and sounds suspiciously like Postgre-XC. If you don’t want to read several lengthy academic papers (really? you don’t want to?), the basic premise is that we should use stronger ACID controls by strengthening isolation levels and making the database deterministic such that the outcome of three transactions (A, B, and C) on all nodes will be the same regardless of execution order. Using Riak’s map/reduce for sorting – Many NoSQL databases use something similar to MapReduce instead of SQL. The magic of map/reduce isn’t always apparent (it isn’t always apparent to me, that’s for sure). This article gives a well-commented example of the code you would use to write an ORDER BY date DESC query. Configuring Mongo Replica Sets – Kristina Chodorow covers how you would set up Replica Sets to eliminate any single point of failure in MongoDB. Good to know ;) 10 things you should know about about NoSQL databases

Code – I haven’t really been reading this one so much as I am amazed by it. combs the Ruby source code in a few locations and dynamically generates up to the second documentation based on the current stable versions of libraries. Go go magic clouds! TextMate’s Missing Drawer – Mac fiends, take note! I’ve always thought TextMate’s project drawer was a bit lacking. This really improves on the built in drawer and integrates it a lot better into the application. (Found via The Hidden Magic of TextMate.)

Other Stuff

The Importance of a Mentor – My good friend, and long time unknowing mentor, Jonathan Kehayias talks about the importance of having a mentor. Take some time and thank the people who have mentored you throughout your career.