I was reading a quick run-through of memcached and it occurred to me how absolutely simple and SIMPLISTIC memcached is. Really, it’s absolutely.. basic. Oh, but wait, what is memcached? memcached is really nothing more than a cache service for accessing data. Its origins are as a cache service for the RDBMS used by Facebook. Anyway, memcached is nothing more than a hash table in memory that is used to cache query results. That’s it.
“So what?” you ask.
Well, memcached is actually a pretty big deal. It’s used all over now. And if you monitor places In The Know, like the High Scalability blog, you’ll notice a trend: A lot of people use it or plan on using it Real Soon Now.
memcached was written to serve one basic role: cache database request. It wasn’t written to provide a massively redundant service. Or to distribute load across memcached nodes. Or to provide a secure proxy to a database service. It just takes a query and returns whatever is in the cache. And this is done using a simple hash, meaning that at its core memcached uses a set of algorithms that you’ll find on every second year Computer Science exam in college.
What I find so fascinating is that yet again we see a very simple but hugely effective service developed in the UNIX world. Why aren’t these things happening for Windows? With Microsoft’s forays into HPC, you would hope that people both in research and business would start fleshing out these genius little nuggets on the Windows platform, but I haven’t seen this happen yet. So, what’s the hold up?