BSDCan2007 - Confirmed Schedule

BSDCan 2007
The Technical BSD Conference

Colin Percival
Day 4
Room SITE A0150
Start time 11:30
Duration 01:00
ID 36
Event type Lecture
Track Advanced
Language English


What (it is), Why (it was written), and How (it works)

In this talk, I will describe three years of development on portsnap: Why I wrote it, the design decisions I made, and the lessons I learned. While portsnap is a utility with a very narrow focus -- distributing updates to the FreeBSD ports tree -- the lessons learned from it are far more widely applicable, and this can be considered as a "case study" of software for distributing and keeping a set of files updated.

I won't know exactly what I'll cover until I prepare my slides, but topics are likely to include

  • An overview of portsnap (build code vs. mirroring code vs. client code)
  • Why I decided to write portsnap: Security, security, security
  • The basic idea behind portsnap: Divide the tree into lots of small pieces plus an index which says which bits go where
  • The messier details: Distributing INDEX files as well
  • Why portsnap is fast: Pipelined HTTP
  • Why there isn't any srcsnap/docsnap/wwwsnap/cvssnap (but there might be a tarsnap some day)
Generally speaking, I intend to talk about the design decisions, since I think BSDCan attendees probably already know how to use portsnap.