Uploaded image for project: 'ONOS'
  1. ONOS
  2. ONOS-6226

Refactor transactions to improve caching and isolation

    XMLWordPrintable

    Details

    • Story Points:
      8
    • Epic Link:
    • Sprint:
      K Sprint #1 - Platform, K Sprint #2 - Platform, K Sprint #3 - Platform

      Description

      Transaction performance is currently improved by caching reads within a transaction. However, for consistency reasons, each transaction has to rebuild its cache within the transaction. This leads to significant overhead within transactions used in the ResourceStore where a huge number of reads occur within a transaction. But we can safely use cached maps within transactions if we simply ensure that at the start of the transaction all events have been received. The way that can be done is by simply submitting a linearizable read to each partition. Atomix guarantees that once a linearizable read returns, all prior published events will have already been received by the client, so caches will have been updated. Then, transaction caches need only be updated locally from an existing cache to preserve repeatable read isolation.

      I'm not sure if this should be implemented as a feature of Atomix to allow synchronizing the client or just as a read in ONOS. Will figure that out.

        Attachments

          Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            Activity

              People

              • Assignee:
                kuujo Jordan Halterman
                Reporter:
                kuujo Jordan Halterman
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: