Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The four hierarchy related operations would be changed to update only update the container and not the dependencies in the hierarchy in a single transaction. After the transaction commits, a message would be sent to a new asynchronous worker.  The new worker worker would update each dependency with an individual transaction for each update.  After the commit of each update an entity update message would be sent to all listeners.  This option results in the eventual consistency of benefactor and project ID of each dependent.

...

Unlike the current implementation, this option does not require locks to ensure consistency when there are concurrent updates to the same hierarchy.  With the example above where user-A moves folder-1 to folder-2 and at the same time user-B moves folder-2 to project-2, both transaction transactions would commit in constant time.   In addition, the two moves would trigger two events to be pushed to the asynchronous worker queue (one for each transaction).  Both transaction transactions will have been committed by the time the worker receives and processes the second message, therefore the second event will result in a consistent state for all dependent benefactor IDs.

...