www.flickr.com
    raschnet's items Go to raschnet's photostream

    January 29, 2008

    MogileFS and race condition

    Tags: , , , , ,
    — drasch @ 9:14 pm

    As any readers of the iContact blog may have learned, MogileFS has become an integral part of our infrastructure at iContact. Rather than store the bodies of messages in our database, we moved them to a quick&dirty storage method in our infrastructure long ago. This method was essentially a cheap WebDAV server and on each STORE command it would write to two backend servers and issue a GET from only one. About a month ago, we migrated most of our messages away from this older, less scalable method to our newer MogileFS backend.

    Our MogileFS setup allows the disk space on each web server (normally unutilized) to form a cheap storage node, and make use of space that would otherwise go entirely unused.

    On Monday 1/21 the database servers behind MogileFS paged with too many connections, which leads to Mogile going very slowly for a while, and sometimes requiring a restart of some of the nodes.

    This database issue cascaded into us asking our Mogile client for item A, but receiving item B in response…
    (more…)

    Related posts

    December 24, 2007

    2007 iContact and personal redux

    Tags: , ,
    — drasch @ 8:24 pm

    iContact Accomplishments

    • Team grew from 10 to 22
    • Down from 12 mail servers to 10!
    • From Four database clusters to six
    • Built and launched a Community
    • From 50-80+servers
    • Created and Grew Infrastructure team from 2 people to 9 people under Carl’s leadership
    • Alan and Geoff reoriented our development teams to create the Middleware and User-experience teams
    • Fixed 1048 bugs, (of 1683 total resolved)
    • 3102 logged hours of development time vs. 2255 hours of development time in 2006
    • 2393 Maint Tickets vs. 1194 in 2006
    • 1141 Systems/Helpdesk Tickets vs. 1137 in 2006 (amazing, a difference of only 4 tickets)
    • 33k lines of code added to the Publisher (170k lines of core code of the Publisher vs 147k at the end of 2006)
    • 71k LOC created in the Community (71k LOC in the Community vs. 266 at the end of 2006)
    • 1778 commits to the Publisher tool (that’s a lot of code reviews)

    At home

    • We’ve taken 3001 photos totaling 3.6 GB
    • We’ve taken 327 movies totaling 9.4 GB
    • I’ve archived 1180 emails totaling 263 MB (theoretically, I read most of these)
    • I’ve Traded 9191 Instant messages
    • I’ve written 25 blog entries (up until this one)
    • We’ve helped at least 22 dogs find new homes (probably many more, but I’m counting those I have photos of)
    • DRNA spent over $8,528 vetting these dogs
    • Rented 103 movies from Netflix (approximately 200 hours of our year)

    Related posts

    September 20, 2007

    stopgaps

    Tags: , ,
    — drasch @ 9:28 pm

    In high-school, the teacher who taught a programming class and worked to write a Java-based voting system insisted they build in logging functionality, in spite of the iron-clad storage of data into text files. This discussion made an impression upon me because the best and worst thing about programming and computers is they do exactly what they’re told to do. Unfortunately, this means that the error of lowly humans can easily seep into what the code or program asks the computer to do.

    We were reminded of this lesson at iContact. Just because your software ’should’ never do something, doesn’t mean you shouldn’t make these rules explicit. An emergency bugfix to our queues at iContact had a trojan horse to allow messages from Client A to be matched with subscribers from Client B. Clearly this is bad, and now we’re putting a patch in to detect and throw exceptions if any situation like this occurs. This is, however, a great example of where things that should never happen are still worthy of writing software to prevent. It’s not shameful, it’s insightful to admit that as a programmer we are human and don’t understand as much as we might like.

    Related posts

    December 17, 2006

    2006 IntelliContact Accomplishments

    Tags: , ,
    — drasch @ 10:40 pm

    I decided to make list of things of which I’ve been a part of accomplishing over the last twelve months at IntelliContact not any without assistance, and some for which I’m only happy to have had a role.

    • From 3500-7200+ customers
    • From one database cluster to four
    • From eight mail servers to 12
    • Creating and maturing the development processing inspired by good things from Scrum, Extreme Programming, and Flickr (credit to Geoff and Alan)
    • One-click deployment tool
    • Bug triage - bugs find their way to solution instead of hanging in purgatory forever
    • Grown from 20 to 50 servers
    • Two four-person development teams
    • From 1.5 to 2.5 Systems people
    • Event-based Billing system (almost all credit here goes to Michael Best)
    • Got rid of Albatross upgrade code
    • Two mailhandlers in two locations
    • Agnification (web servers can serve up from any DB cluster)
    • Message desmurfing interface (credit to Vaughn)
    • RSS feeds
    • Public Newsletter Archive
    • Role-based servers (credit to Jay)

    Related posts

    Next Page »