Course Schedule

'; if($link != '') { if(time() > $oldfirstday) { $linkstr = '' . $topic . ' (PDF)'; } else { $linkstr = '' . $topic . ''; } } else { $linkstr = '' . $topic . ''; } if($description != '') { $linkstr = $linkstr . ': ' . $description; } $x=''; for($i=0; $i' . $reading[$i][1] . ''; $x = $x . '
  • ' . $reading[$i]; } if($x == '') { $x = 'No reading'; } if(count($additional) > 0) { $y=''; for($i=0; $i' . $additional[$i]; } $x = $x . 'Supplemental Reading:
      ' . $y; } print '
  • '; } lecture('Introduction', '', 'Course, syllabus, how to read papers.', 'egs', array('How to Read A Paper')); lecture('Network Architecture', '', 'Physical topology.', 'egs', array('FatTrees', 'CamCube')); lecture('Network Architecture', '', 'Physical topology.', 'egs', array('Small World Datacenters', 'Jellyfish'), 1, array('VL2', 'Portland', 'SPAIN', 'Auto Addressing', 'DCell', 'BCube', 'Scafida', 'Flyways', 'Cayley', 'CThrough')); lecture('Measurements and Characteristics', '', '', 'egs', array('Network Traffic Characteristics of Data Centers in the Wild', 'The nature of data center traffic: measurements & analysis')); lecture('Transport Protocols', '', 'TCP++', 'egs', array('DCTCP', 'Hedera', 'MPTCP')); lecture('Transport Protocols', '', 'Issues', 'egs', array('TCP Incast', 'Receiver-Pacing')); lecture('Virtualization', '', 'VMMs', 'harrison', array('Disco', 'Xen')); lecture('Virtualization', '', 'Migration and Provisioning', 'sean', array('Xen Live Migration', 'Comm-Aware Xen')); lecture('Software Infrastructure', '', 'Consensus', 'kyle', array('Paxos Made Simple', 'Paxos Made Moderately Complex'), 1, array('Part-Time Parliament')); lecture('Software Infrastructure', '', 'Group Membership and Synchronization', 'qi', array('Zookeeper', 'Chubby'), 1, array('Zab')); lecture('Software Infrastructure', '', 'Provisioning', 'richard', array('Autopilot', 'Centrifuge'), 1, array('Better Late than Never')); lecture('Self Organizing Hash Tables', '', '', 'ashik', array('Chord', 'Pastry', 'Viceroy', 'CAN')); lecture('NoSQL', '', '', 'stavros', array('Cassandra', 'Dynamo')); lecture('NoSQL', '', '', 'tao', array('CRAQ', 'TxCache', 'Scatter'), 1, array('Chain Replication')); lecture('NoSQL', '', '', 'sean?', array('PNUTS', 'Stout', 'MassTree', 'HyperDex'), 1, array('CouchDB', 'MongoDB', 'Tokyo/Kyoto Cabinet/Tyrant', 'Redis', 'VoltDB', 'Datomic')); lecture('CAP Theorem', '', '', 'egs', array('PODC Keynote', 'CAP Theorem'), 1, array('Stonebraker on CAP')); lecture('Spring Break', '', '', '', array()); lecture('Spring Break', '', '', '', array()); lecture('Control and Management', '', '', 'basu', array('OpenFlow: Enabling innovation in campus networks', 'NOX: towards an operating system for networks')); lecture('Google and Facebook Storage Services', '', '', 'kyle', array('GFS', 'BigTable', 'MegaStore', 'Haystack')); lecture('No lecture', '', '', '', array()); lecture('Data Processing', '', '', 'zhefu', array('MapReduce', 'DBs vs. MapReduce: Friends or Foes', 'HStore')); lecture('Data Processing', '', '', 'haoyan', array('Dryad', 'MapReduce Online', 'Mantri'), 1, array('DryadLINQ', 'Distributed Aggregation for Data Parallel Computing')); lecture('MapReduce++', '', '', 'tao', array('Percolator', 'Piccolo', 'Nectar')); lecture('Gossip Protocols', '', '', 'qi', array('Epidemic Algorithms', 'Correctness of Gossip-based Views', 'Astrolabe')); lecture('Security', '', '', 'ali', array('Cloud Security', 'AVM', 'Depot', 'Sporc')); lecture('Green Datacenters', '', '', 'sean', array('FAWN', 'FAWN Energy', 'Silt', 'LiteGreen', 'Sleepless in Seattle', 'SleepServers')); lecture('Multi-Datacenter', '', '', '', array('COPS', 'PSI', 'Volley')); lecture('Storage', '', '', 'haoyan', array('Boxwood')); ?>
    Date Topic Presenter
    '; $oldfirstday = $firstday; while($numlecs > 0) { print date("D M d", $firstday) . '
    '; if(date("D", $firstday) == "Tue") { $firstday += 60 * 60 * 24 * 2; } else if(date("D", $firstday) == "Thu") { $firstday += 60 * 60 * 24 * 5.01; } $numlecs -= 1; } print '
    ' . $linkstr . '
      ' . $x . '
    ' . $presenter . '