• Home
  • About

Mark Fletcher's Blog

Occasional posts about startups, skiing, and perhaps chickens

Feeds:
Posts
Comments
« Bloglines Email Subscriptions
Better To Be Lucky Than Good? »

What I Learned As A Sysadmin

March 6, 2004 by MarkF

My first job out of college was working for a defense contractor, splitting time between programming and system administration. It was a small company with a network of SGI machines. I had being working as an intern at the San Diego Supercomputer Center, working on a distributed volume visualization system. I knew that SGI machines were fun to work on and I liked graphics. I’d be able to do both at this new job, and I’d get some sysadmin experience. It sounded great.
Jim Patterson was the main system administrator and one of my bosses. Unfortunately, it didn’t take me long to realize that the job wasn’t for me. Specificially, the world of defense wasn’t for me; I just wasn’t interested in what everybody was working on. But even though I wasn’t terribly happy with the work, I’m very glad I took the job. Jim was a great mentor, and I learned a lot about system administration from him. I think every programmer should have some sysadmin experience; I’m convinced it makes you a better programmer.
The IRIX version of Unix that SGI shipped with their boxes was considered state of the art for its time. Very stable (at least the 4.0 version that I initially used), and easy to program to. Even so, it taught me to avoid some things. Specifically, NFS and NIS never seemed to work correctly. NFS, in particular, would cause machines to freeze up randomly. It was such a pain that I vowed to never use NFS voluntarily again. And I haven’t used it since.
How did this experience effect the architecture of ONElist and, now, Bloglines? NFS is used to distribute access to a partition (ie. data) to multiple machines. Instead of using NFS, I take two approaches. For read-only information, I copy files between machines and have the programs just read them off the local disk. It’s simple and scales very well, as long as you’re not copying huge amounts of data every 10 seconds or so.
In the other case, where I’m dealing with either large quantities of information, or re-writable data, I create simple client/server applications. Yes, this can be a bit of work the first time you do it, but it’s easy enough to create a library that makes creating these client/server pairs really easy. By doing this, you can also instrument them so that you can get all sorts of statistics that you’d be hard pressed to get using NFS. For each server, I also have a ‘ping’ application that queries the server for various statistics. The servers get pinged once a minute, and are hooked up to a monitoring/paging system, so we know quickly if there’s a problem.
There are many other design decisions that must be made when building a scalable on-line service, like how you will partition and distribute the various data, but I’ve procrastinated enough for today. Time to get back to work.

Advertisement

Like this:

Like
Be the first to like this post.

Posted in Architecture & Design | Leave a Comment

  • Recent Tweets

    • Found one of the chickens dead in the coop. Bummed. 1 day ago
    • Checking out @pinterest. They copy/host images from elsewhere on the web. People are ok with that? 4 days ago
    • "We are calling you to update your Google profile. Please press 1 to update your profile on Google and other search engines." UGH. 4 days ago
    • Just finished season 4 of Breaking Bad. That show is amazingly awesome. I can't say enough good things about it. 5 days ago
    • Yay, the chickens have started laying eggs again. 1 week ago
  • Elsewhere

    • The ONElist File
  • Founder

    • Bloglines
    • ONElist
  • Investor/Consultant

    • One True Media
    • Plaxo
    • Techdirt
    • Wesabe
  • Archives

    • July 2010 (2)
    • May 2010 (4)
    • April 2010 (10)
    • January 2009 (1)
    • November 2008 (1)
    • October 2008 (1)
    • July 2008 (1)
    • June 2008 (2)
    • April 2008 (4)
    • March 2008 (4)
    • February 2008 (5)
    • January 2008 (5)
    • December 2007 (8)
    • November 2007 (4)
    • September 2007 (1)
    • August 2007 (3)
    • July 2007 (1)
    • June 2007 (4)
    • May 2007 (3)
    • April 2007 (2)
    • March 2007 (2)
    • February 2007 (2)
    • January 2007 (2)
    • December 2006 (2)
    • November 2006 (2)
    • October 2006 (2)
    • September 2006 (1)
    • August 2006 (1)
    • June 2006 (5)
    • May 2006 (2)
    • April 2006 (3)
    • March 2006 (1)
    • February 2006 (1)
    • January 2006 (1)
    • December 2005 (5)
    • October 2005 (2)
    • September 2005 (1)
    • August 2005 (1)
    • July 2005 (1)
    • June 2005 (6)
    • May 2005 (7)
    • April 2005 (1)
    • March 2005 (2)
    • February 2005 (5)
    • January 2005 (1)
    • December 2004 (3)
    • November 2004 (1)
    • October 2004 (4)
    • September 2004 (7)
    • August 2004 (6)
    • July 2004 (7)
    • June 2004 (7)
    • May 2004 (7)
    • April 2004 (6)
    • March 2004 (6)
    • February 2004 (11)
    • January 2004 (9)
    • December 2003 (5)
    • November 2003 (7)
    • October 2003 (4)
    • September 2003 (3)
    • August 2003 (2)
    • July 2003 (11)
    • June 2003 (1)
    • May 2003 (1)
    • April 2003 (2)
    • March 2003 (6)
    • February 2003 (2)
    • January 2003 (8)
    • December 2002 (1)
    • November 2002 (4)
    • October 2002 (5)
    • September 2002 (5)
    • August 2002 (2)
    • July 2002 (1)
    • May 2002 (1)
    • April 2002 (2)
    • March 2002 (7)
    • February 2002 (4)
    • January 2002 (4)
    • December 2001 (1)
    • November 2001 (3)
    • October 2001 (3)
    • September 2001 (7)
    • August 2001 (10)

Blog at WordPress.com.

Theme: MistyLook by Sadish.


Follow

Get every new post delivered to your Inbox.

Powered by WordPress.com