-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathepisode-5.xml
131 lines (111 loc) · 4.32 KB
/
episode-5.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
<?xml version="1.0" encoding="utf-8"?>
<item xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd">
<title>nlog</title>
<guests>Teemu Koponen from Styra and Yusheng Wang from VMware</guests>
<description>
<p>
Interview with Teemu Koponen of <a href="http://www.styra.com/">Styra</a>
and Yusheng Wang of <a href="http://www.vmware.com/">VMware</a>, about
the nlog language.
</p>
<p>
nlog, in this context, is unrelated to the logging platform for .NET. It
is a database language, a simplified form of <a
href="https://en.wikipedia.org/wiki/Datalog">Datalog</a> that lacks
recursion and negation. Teemu designed this language for use in Nicira
NVP, the forerunner of <a
href="https://www.sdxcentral.com/resources/vmware/what-is-vmware-nsx/">VMware
NSX-MH</a>. Yusheng is now working to implement nlog in <a
href="https://networkheresy.com/2015/01/13/ovn-bringing-native-virtual-networking-to-ovs/">OVN</a>.
</p>
<p>
Teemu and Yusheng begin by describing the nlog language, its name (the
``N'' stands for ``Nicira.''), and its purpose and contrast it with more
commonly known languages such as SQL. An nlog (or Datalog) program
consists of a series of queries against input table that produce new
tables, which can be reused in subsequent queries to eventually produce
output tables.
</p>
<p>
In a network virtualization system such as NVP or OVN, input tables
contain information on the configuration or the state of the system. The
queries transform this input into flow tables to push down to switches.
The nlog program acts a function of the entire contents of the input
tables, without reference to a concept of time or order. This simplifies
implementation, because it avoids ordering problems found so pervasively
in distributed systems. Thus, versus hand-code state machines, nlog
offers better hope of correctness and easier quality assurance, since it
allows programmers to specify the desired results rather than all of the
possible state transitions that could lead there.
</p>
<p>
Topics include:
</p>
<ul>
<li>
Related (more complicated) work in academia.
</li>
<li>
External functions for mapping output.
</li>
<li>
Query planning in NVP and in OVN.
</li>
<li>
Sharding, threading, and performance.
</li>
<li>
Where Yusheng is planning to first propose nlog for use in OVN.
</li>
<li>
The simple Java-based network virtualization system that Yusheng built
to demonstrate the idea.
</li>
<li>
The patches that we should expect to see soon from Yusheng.
</li>
<li>
Code size for nlog implementations (small!).
</li>
<li>
Strategies for testing an nlog implementation.
</li>
<li>
Data types in nlog, and risks of asynchronous interfacing
</li>
<li>
Convergence, performance, and transactions.
</li>
<li>
Lessons learned:
<ol>
<li>
Only implement a DSL if you know what you're getting in for.
</li>
<li>
nlog solved correctness issues, period (leaving developers to worry
about scale).
</li>
</ol>
</li>
</ul>
<p>
You can reach Teemu at <a
href="mailto:[email protected]">[email protected]</a> and Yusheng at <a
href="mailto:[email protected]">[email protected]</a>.
</p>
<p class="attribution">
OVS Orbit is produced by <a href="mailto:[email protected]">Ben Pfaff</a>. The
intro and bumper music is <a
href="http://dig.ccmixter.org/files/myfreemickey/48180">Electro
Deluxe</a>, featuring Gurdonack, copyright 2014 by My Free Mickey. The
outro music is <a
href="http://dig.ccmixter.org/files/JeffSpeed68/44932">Girls like
you</a>, featuring Thespinwires, copyright 2014 by Stefan Kartenberg.
All content is licensed under a Creative Commons <a
href="http://creativecommons.org/licenses/by/3.0/">Attribution 3.0
Unported (CC BY 3.0)</a> license.
</p>
</description>
<pubDate>Thu, 26 May 2016 01:05:53 GMT</pubDate>
</item>