nlog, with Teemu Koponen from Styra and Yusheng Wang from VMware - a podcast by Ben Pfaff

from 2016-05-26T01:05:53

:: ::

Interview with Teemu Koponen ofStyraand Yusheng Wang ofVMware, about
the nlog language.

nlog, in this context, is unrelated to the logging platform for .NET. It
is a database language, a simplified form ofDatalogthat lacks
recursion and negation. Teemu designed this language for use in NiciraNVP, the forerunner ofVMware
NSX-MH
. Yusheng is now working to implement nlog inOVN.

Teemu and Yusheng begin by describing the nlog language, its name (the
“N” stands for “Nicira.”), and its purpose and contrast it with morecommonly known languages such as SQL. An nlog (or Datalog) program
consists of a series of queries against input table that produce newtables, which can be reused in subsequent queries to eventually produce
output tables.

In a network virtualization system such as NVP or OVN, input tables
contain information on the configuration or the state of the system. Thequeries transform this input into flow tables to push down to switches.
The nlog program acts a function of the entire contents of the inputtables, without reference to a concept of time or order. This simplifies
implementation, because it avoids ordering problems found so pervasivelyin distributed systems. Thus, versus hand-code state machines, nlog
offers better hope of correctness and easier quality assurance, since itallows programmers to specify the desired results rather than all of the
possible state transitions that could lead there.

Topics include:

  • Related (more complicated) work in academia.
  • External functions for mapping output.
  • Query planning in NVP and in OVN.
  • Sharding, threading, and performance.
  • Where Yusheng is planning to first propose nlog for use in OVN.
  • The simple Java-based network virtualization system that Yusheng built
    to demonstrate the idea.
  • The patches that we should expect to see soon from Yusheng.
  • Code size for nlog implementations (small!).
  • Strategies for testing an nlog implementation.
  • Data types in nlog, and risks of asynchronous interfacing
  • Convergence, performance, and transactions.
  • Lessons learned:
    1. Only implement a DSL if you know what you're getting in for.
    2. nlog solved correctness issues, period (leaving developers to worry
      about scale).

You can reach Teemu atkoponen@styra.comand Yusheng atyshwang@vmware.com.

OVS Orbit is produced byBen Pfaff. The
intro and bumper music isElectro
Deluxe
, featuring Gurdonack, copyright 2014 by My Free Mickey. The
outro music isGirls like
you
, featuring Thespinwires, copyright 2014 by Stefan Kartenberg.
All content is licensed under a Creative CommonsAttribution 3.0
Unported (CC BY 3.0)
license.

Further episodes of OVS Orbit

Further podcasts by Ben Pfaff

Website of Ben Pfaff