Caching in Search. Hugh Williams explains caching works really well in search because we pretty much all ask the same questions. Storing the results for the top 100,000 queries saves the search backend from processing 34% of all queries.

Scale and scalability: Scalability is the ability to grow your datacenter without growing the amount of work, time or money needed to support it. I mentioned some of the main factors here as a teaser. I challenge readers to look at their own systems with a critical eye: what does it cost you as you add more IT.

Urs Holzle @ Open Networking Summit 2012. James Hamilton with a exquisitely detailed summary of the happenings at the Open Networking Summit. The key observations behind SDN: 1) if the entire system is under single administrative control, central routing control is possible, 2) at the scale of a single administrative domain, central control of networking routing decisions is practical, and 3) central routing control allows many advantages including faster convergence on failure, priority-based routing decisions when resource constrained, application-aware routing and it enables the same software system that manages application deployment to manage network configuration.

Cloud computing Walmart effect: Call it the "Walmart effect" of the cloud. Gone are your system admins, routing professionals, and DBAs. They are replaced by cloud computers and cloud databases. All that talent that you could have on your team is deemed marginal and useless with phrases like "cost of sys admin" instead you rely on white papers written by people with self serving motives as your source of truth. Inferior products like Amazon high latency network can push out smaller better faster network providers. Why even write innovative code? You can not compete with Amazon DynamoDB, or whatever Amazon white paper says is the solution to your problem?

Reader Comments (2)

Thanks again for the shout out. I write the stuff I write because it interests me, and I routinely use my own blog as a reference. That's really what my blog and all the software projects on my web site are about: references and reference implementations primarily for my own use. I'm always a little pleasantly surprised when others find my stuff interesting or useful.

Thanks for the pointer to Scott Miller's write up on "How many processors do I have?". My only nit is that as an old guy, I find his definition of "processor" -- which is basically the physical chip -- a little bothersome. He's spot on in that's how the typical consumer as the local computer store thinks of it. But us old folks (I'm basically a brain in a jar) tend to think "processor" and "CPU" are the same thing, or maybe "processor" is the CPU with its I/O surround. I think I'd use the term "package" instead. Miller's remarks on the difficulty of figuring out what the heck you really have is also spot on. You almost need to look at the chip schematic and data sheet to figure out what actual functional units you have that may work in parallel (e.g. floating point processing units, arithmetic units, etc.).

"Nasdaq characterized the problem as a race condition. A race condition occurs when two or more parts of a program that rely on each other get locked in an infinite loop, halting forward progress of the program as a whole." ... isn't that actually rather a live lock?