Uploaded image for project: 'Fast Datapath Product'
  1. Fast Datapath Product
  2. FDP-590

[RFE] ovsdb-server: Use table indexes (other than UUID) for ovsdb_query()

XMLWordPrintable

    • 8
    • False
    • False
    • rhel-sst-network-fastdatapath
    • ssg_networking
    • OVS/DPDK - FDP-25.B
    • 1

      While executing transaction, OVSDB needs to find a row where changes
      need to be applied. Currently, if condition is not a match on a
      row UUID, linear lookup through the table will be performed. See the
      implementation of 'ovsdb_query()' function.

      However, ovsdb-server maintains hash tables for client-side indexes
      specified in the database schema, and these can be used instead of a
      linear lookup, if condition contains exact match on one of the indexed
      columns.

      Though conventional database utilities based on C and Python IDL are
      using UUIDs in most cases in transaction, some other clients may perform
      transactions with arbitrary conditions. So, it would be nice to have
      this use case better optimized.

      Example of operation that triggers an indexed lookup:

      "where":[["_uuid","==",["uuid","<UUID of the logical switch row>"]]],
      "mutations":[["ports","insert",["set",[["named-uuid","rowUUID"]]]]],
      "op":"mutate","table":"Logical_Switch"

      And operation that triggers a linear lookup even if the 'name' will be a
      client-side index according to a database schema ("indexes": [["name"]]):

      "where":[["name","==","<host-name>"]],
      "mutations":[["ports","insert",["set",[["named-uuid","rowUUID"]]]]],
      "op":"mutate","table":"Logical_Switch"

              rh-ee-mpattric Mike Pattrick
              imaximet@redhat.com Ilya Maximets
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated: