[ovs-dev] [PATCH] Introduce OVSDB readme markdown

Ryan Moats rmoats at us.ibm.com
Wed Apr 13 17:00:01 UTC 2016


From: RYAN D. MOATS <rmoats at us.ibm.com>

Provide a point to start collecting documentation on OVSDB
and seed it with experiences from making use of change
tracking.

Signed-off-by: RYAN D. MOATS <rmoats at us.ibm.com>
---
 ovsdb/README.md |   38 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 38 insertions(+), 0 deletions(-)
 create mode 100644 ovsdb/README.md

diff --git a/ovsdb/README.md b/ovsdb/README.md
new file mode 100644
index 0000000..03e4abf
--- /dev/null
+++ b/ovsdb/README.md
@@ -0,0 +1,38 @@
+OVSDB developer documentation
+=============================
+
+The OVSDB (Open vSwitch database) stores network state used by
+Open vSwitch implementations. 
+
+Design & Architecture
+---------------------
+
+While OVSDB supports only a single central server, it maintains
+a local in-memory replica at each client.  Clients perform reads
+and propose writes to the local in-memory replica. Proposed 
+writes are delivered to the central server via "transactions"
+and if accepted, will trigger notifications to other clients.
+
+The server process also maintains the database in memory, using
+a disk file to provide both backing and a transaction log. This
+file stores the database and transactions using a JSON format,
+which is also used by the OVSDB management protocol (see [1]).
+
+[1]: http://tools.ietf.org/html/rfc7047
+
+Differences from other databases
+--------------------------------
+
+This section is intended to point out some of the differences
+between how OVSDB works and more "classic" databases.
+
+In OVSDB, change tracking is applied at each client in the 
+IDL layer. This means that when a client makes a request to
+track changes on a particular table, they are essentially
+requesting information about the incremental changes from that
+point in time.  Once the client clears tracked changes, that
+information will no longer be available. The implication of
+this is that it is not a simple matter for code to "replay"
+changes from the past. Rather, code should be structured with
+a path for processing the full table as well as a path that
+processes incremental changes.
-- 
1.7.1




More information about the dev mailing list