2017 Poster Sessions : NanoLog: A Nanosecond Scale Logging System

Student Name : Stephen Yang
Advisor : John K. Ousterhout
Research Areas: Computer Systems
Abstract:
Runtime logging is at the cornerstone of gaining insight and visibility into software systems, enabling both postmortem analysis and performance tracing. Unfortunately, relative to the performance of modern day datacenter applications and microservices, logging is fairly expensive, taking on the order of a few microseconds per log message when the application response times are in the tens of microseconds. This means that developers often have to compromise the visibility of a system for performance by omitting log messages. To ameliorate this problem, we created an ultra low latency logging system called NanoLog.

NanoLog is a nanosecond scale logging system that's 1-2 orders of magnitude faster than competing logging systems such as Log4j2, spdlog, or Boost Log and maintains a fairly intuitive printf-like API. The system has a throughput of over 60 million logs messages/second at a median latency of just 12.5 nanoseconds. For comparison, our closet competitor, Log4j2, only has a throughput of 1.5 million log messages/second. NanoLog achieves this insane latency and throughput by shifting work out of the runtime hot path into the compilation and post-execution phases of the application. More specifically, it slims down user log messages at compile time by extracting static components, outputs the log in a compacted binary format at runtime, and then relies on an offline process to inflate and analyze the logs. The lower execution cost allows developers to log in more detail, log more often, and use it in a production setting where application response times are critical. In other words, developers no longer have to make large compromises between visibility and performance with NanoLog.

Bio:
Stephen Yang is a 5th year Computer Science PhD student advised by John Ousterhout. His current research interests include low-latency tracing and other techniques for gaining visibility into software systems (such as visualizations), but he has done research areas of Network Simulations with Mendel Rosenblum and Human Robot Interaction with Wendy Ju.