The History of Logging @ Facebook (Abridged)

Tuesday, October 30, 2018 - 11:00 am11:45 am

KC Braunschweig, Facebook

Abstract: 

Ten years ago Facebook released the first version of Scribe which has formed the basis for our logging infrastructure ever since. Back then logging was mostly about aggregating files full of text but since then “logs” have evolved to include abstract streams of events and blurred the line with messaging and pub/sub systems. Scribe continues to aggregate massive amounts of log data but now also forms the basis for many real time stream processing applications at Facebook. Having a common transport layer allows us to apply new stream processing and data science tools to business or operational data with equal ease.

I'll look back at some of the early design choices that have allowed Scribe to evolve with our needs. This evolution has required us to replace major components and scale up the infrastructure by several orders of magnitude. I'll walk through the steps in this evolution with particular emphasis on our most recent upgrade: replacing the HDFS-based persistence layer with LogDevice and how we accomplished that upgrade with little user impact. 

KC Braunschweig, Facebook

KC Braunschweig has spent the last 6 years as a production engineer working on Facebook infrastructure. He's currently working on distributed coordination services built on Apache Zookeeper. He's previously worked in areas including logging, stream processing, search infrastructure and configuration management.

Open Access Media

USENIX is committed to Open Access to the research presented at our events. Papers and proceedings are freely available to everyone once the event begins. Any video, audio, and/or slides that are posted after the event are also free and open to everyone. Support USENIX and our commitment to Open Access.

Presentation Audio

BibTeX
@conference {221776,
author = {KC Braunschweig},
title = {The History of Logging @ Facebook (Abridged)},
year = {2018},
address = {Nashville, TN},
publisher = {{USENIX} Association},
}