[ovs-dev] [PATCH 0/5] Stream Record/Replay.

Ilya Maximets i.maximets at ovn.org
Tue Jun 30 01:24:30 UTC 2020

This patch set adds new stream provider and other functionality in
order to record all the incoming data on all the steams (ssl, tcp,
unixctl) of openvswitch library based applications and replay these
streams later for debugging purposes or performance tests.

For example, these changes allowed me to record the lifecycle of
a standalone ovsdb-server in a fake-multinode cluster from ovn
scale testing setup with 100 nodes.  While having only replay files,
user could reproduce transactions and connections in a big cluster on
a local PC wile being able to tweak various log levels, run everything
under debugger or tracer, measure performance difference with perf.

Current implementation doesn't work with clustered databases since
raft heavily depends on time events.  This is a point of further

Some more details in individual commit messages.  Some documentation
updates are missing, will be in next version of the patch-set.  Code
maybe not that elegant in a couple of places, I'm going to work on
this too.

ovn-northd might be a good candidate to integrate this functionality
from the OVN side.

Ilya Maximets (5):
  ovsdb-server: Allow using predictable UUIDs.
  stream: Add record/replay functionality.
  ovsdb-server: Integrate stream replay engine.
  ovsdb-server: Don't update manager status if replay engine is active.
  jsonrpc: Disable inactivity probes if replay engine is active.

 lib/automake.mk         |   1 +
 lib/jsonrpc.c           |  10 +-
 lib/stream-provider.h   |   4 +
 lib/stream-replay.c     | 561 ++++++++++++++++++++++++++++++++++++++++
 lib/stream.c            |  38 ++-
 lib/stream.h            |  46 +++-
 lib/uuid.c              |  34 +++
 lib/uuid.h              |   1 +
 ovsdb/ovsdb-client.c    |   2 +-
 ovsdb/ovsdb-server.c    |  30 ++-
 tests/test-jsonrpc.c    |   2 +-
 utilities/ovs-vsctl.c   |   2 +-
 vswitchd/ovs-vswitchd.c |   2 +-
 vtep/vtep-ctl.c         |   2 +-
 14 files changed, 717 insertions(+), 18 deletions(-)
 create mode 100644 lib/stream-replay.c


More information about the dev mailing list