Content Delivery Networks: A Primer

Content Delivery Networks (CDNs) cache your content around the globe to reduce latency and improve performance for end users. It is a very powerful tool and can be leveraged by any web site. Historically, CDN providers have been very expensive and were not practical for most people. Now things have changed and there are many CDN providers that cater to cloud customers who want pay-as-you-go service.
Read More
Written on December 5, 2012

avr-os: Multitasking on Arduino

Arduino is an open source prototyping platform for electronics. There is so much you can do with Arduino and the community is proof. In playing with Arduino I decided that it would be a great project to create a small multitasking library for use on AVR platforms, which includes Arduino.
Read More
Written on December 5, 2012

libhashring - high performance consistent hashing

In a previous post I talked about the need to shard Redis data and how I accomplished this by adding shard/hashing support to erldis, an Erlang client for Redis. This solution proved to work well, it distributed our data very well amongst many Redis servers -- but there was one problem. Performance. In the change I made to erldis, the hash ring was stored in ETS (an erlang memory store) and anytime a key was...
Read More
Written on June 5, 2011

Thrift and ZooKeeper

Thrift provides a great framework for developing and accessing remote services. It allows developers to create services that can be consumed by any application that is written in a language that there are Thrift bindings for (which is...just about every mainstream one, and more). This is great for systems that are heterogeneous -- for example, you could write a user authentication service in Java, but call it from your Ruby web application. Thrift manages serialization...
Read More
Written on May 25, 2011

Redis sharding with Erlang

I've been using a great Erlang Redis library erldis recently and as our data set has grown much larger, we have decided we need to start sharding. Unfortunately the erldis library does not have support for sharding so I've forked the repository and made the changes. You can find my fork here. Pull request here. A little background Redis has been really great for us so far but as we get more data and more...
Read More
Written on April 11, 2011