* You are viewing the archive for March, 2009

“Systems Researcher Interview”

systems-researcher-interview

Emil Sit, a friend from MIT with whom I published one of my first papers, has been blogging a series of “interviews” from colleagues about their experience building distributed systems. He started this series after describing some implementation issues with building Chord, which was one of the first and remains the canonical distributed hash table (DHT).   CoralCDN uses a DHT for its indexing, and its first implementation actually used MIT Chord as a software layer.  (I later implemented my own DHT layer, although instead based on Kademlia — which was proposed by an officemate … Continue Reading

From Industry to Academia, or it’s been a long, windy road…

from-industry-to-academia-or-its-been-a-long-windy-road

Having spent the last 9 years in industry, it’s been a refresher diving back into academic waters, not unlike taking a cold shower on a blistering hot day. It shocks you a bit at first, but once acclimated you feel so much better. One of the primary reasons for my return to the ivory internet tower is to expand the horizon of knowledge and understanding, both my own and of the systems/networking field, in large part motivated by my experience in industry. Innovation and expansive thinking are often scant luxuries, indulged in only when the rare respite between development cycles … Continue Reading

Series: Experiences with CoralCDN

series-experiences-with-coralcdn

Over the next few weeks, I’ll be posting a number of my “experiences” from the design and deployment of CoralCDN.  For those who aren’t familiar with CoralCDN, it’s a semi-open, self-organizing content distribution network (CDN) that I’ve been operating on PlanetLab for the past five years.

Our goal with CoralCDN was to democratize content distribution:  to make desired content available to everybody, regardless of the publisher’s own resources or dedicated hosting services.  It provides an open infrastructure that any publisher is free to use, without any prior registration. Publishing through CoralCDN is as simple as appending a suffix to a URL’s … Continue Reading

History of NSDR

history-of-nsdr

The call for papers for the 3rd Workshop on Networked Systems for Developing Regions (NSDR) was announced today. NSDR 2009 will be held with ACM SOSP this year at Big Sky, Montana. Direct all whining about the location to the SOSP organizers please!

I thought I’d share a little history of NSDR on this blog. Research in technologies for developing regions has been going on for a while. For example, the TIER group at Berkeley started in 2003. However, this area (often dubbed as ICTD) lacked a sense of community with no specialized workshops/conferences.

In 2006, I was attending SenSys at … Continue Reading

Coordination in Distributed Systems (ZooKeeper)

coordination-in-distributed-systems-zookeeper

Architecting distributed systems can be very difficult. Arguably the hardest part of programming a distributed application is getting node coordination correct. I’ll define a node in this context as a service running on a single server which communicates with other nodes and together make up your distributed application.

What I mean by coordination here is some act that multiple nodes must perform together. Some examples of coordination:

  • Group membership
  • Locking
  • Publisher/Subscriber
  • Ownership
  • Synchronization

One or more of these primitives show up in all distributed systems, so implementing them correctly is extremely important. While developing CRAQ, I originally implemented a very simple group membership service, but … Continue Reading