On 7/12/19 3:29 AM, Leonid Ryzhyk wrote:
Dear OVN developers,
This is a brief update on the state of the DDlog port of ovn-northd.
We completed the initial implementation of ovn-northd in DDlog few months
ago. Justin kindly
helped to integrate it with OVN, so that it can be used as a drop-in
replacement for the C
version (and passes all the tests in the OVN test suite). The DDlog
implementation does
not have any of the new features/improvements added in April 2019 or later.
## Repository
The code is in the `ddlog-dev` branch of the `ovn-org/ovn` repository:
https://github.com/ovn-org/ovn/tree/ddlog-dev
Hi Leonid,
I ran into an issue when attempting to build ovn-northd. I successfully
installed DDLog, but then I encountered this issue when building OVN:
ddlog -i ovn/northd/ovn_northd.dl -L
/home/putnopvut/differential-datalog/lib
ddlog: Failed to parse input file: "ovn/northd/ovn_northd.dl" (line 94,
column 5):
unexpected "&"
expecting "not", variable name, relation name, "var", expression or "."
The line in question looks like this:
&SwitchPort(.lsp = lsp, .sw = &sw),
Any idea what's gone wrong here?
Thanks,
Mark Michelson
## Documentation
Building and using ovn-northd-ddlog:
https://github.com/ovn-org/ovn/blob/ddlog-dev/ovn/northd/docs/design.md
Debugging ovn-northd-ddlog:
https://github.com/ovn-org/ovn/blob/ddlog-dev/ovn/northd/docs/debugging.md
## Preliminary performance results
Han Zhou kindly tested ovn-northd-ddlog with his OVN scale test and even
found a nasty
performance bug in the process (thanks, Han!). He reports that DDlog
speeds up the test
by almost a factor of 10:
- ddlog version: 7:39min
- C version: 67:47min
This is great, and in fact profiling shows that there is still plenty of
space for
improvement. He also reports a 10+ times increase in memory footprint:
- ddlog version: 1944696KB
- C version: 147984KB
Again, we are working on a number of optimizations, which should reduce
this overhead; although it will never be as low as C, since DDlog
fundamentally
needs to cache more state to enable fast incremental computation.
Han also used DDlog's record&replay feature to capture all northd
transactions
performed by the scale test in a format that can be replayed against the
standalone DDlog executable without having to reproduce Han's OpenStack
setup.
The replay file is here: http://ryzhyk.net/replay.tgz
Instructions for replaying this script:
https://github.com/ovn-org/ovn/blob/ddlog-dev/ovn/northd/docs/debugging.md#record-and-replay-ddlog-execution
The script will run for a few
minutes and finally print some profiling information, including the
breakdown of
DDlog's CPU and memory usage.
## Next steps
We seek help from the OVN community in maintaining ovn-northd-ddlog. The
first
step is to start porting new OVN features introduced in the last few months
to
DDlog.
Leonid
Hi Leonid,
I attempted
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev