I was reading an article about how Tumblr scaled to handle the huge amount of data it’s regularly pushing out. Apparently, it started life as a traditional LAMP stack, but they’ve since moved on – to software packages I have not yet needed to ever use. Being open source software, it all has crazy names. Some of these packages are perfectly familiar to me now, but others are completely new.
Anyway, for fun, I decided to see how many of these sometimes new-to-me packages were present in pkgsrc. I’ll reproduce a paragraph from the story that lists the software they use, and link each one that I found in pkgsrc.
- Apache
- PHP, Scala, Ruby
- Redis, HBase, MySQL
- Varnish, HA-Proxy, nginx,
- Memcache, Gearman, Kafka, Kestrel, Finagle
- Thrift, HTTP
- Func
- Git, Capistrano, Puppet, Jenkins
That’s actually more than I thought I’d find, though I can’t articulate why. Anyway, if any of the names are unfamiliar to you, now is the time to follow up. Redis, for example, looks more interesting to me at a casual glance than the normal NoSQL models I’ve heard about.
I’ve used libthrift’s C++ mode professionally on DragonFly 2.8; worked pretty well there. Redis also runs pretty well on DragonFly.
Redis (BSD licensed btw.) indeed is pretty nice. Its biggest strength is it’s biggest weakness though. Everything is stored in RAM. So it doesn’t work in all (hosting) situations. Also it can be hard to do things like full text search, but for that you can simply use another database, like MongoDB. In fact that’s exactly just what I did in one project.
Another interesting and often overlooked piece of software are Tokyo and Kyoto Cabinet. They are BerkleyDB-ish and both also have a sever versions named Tokyo and Kyoto Tyrant.