HomePhabricator

Simplify transaction handling and restore read/write locks
c30cb7669e37Unpublished

Unpublished Commit · Learn More

No further details are available.

Description

Simplify transaction handling and restore read/write locks

Summary:

  • We used to have connection-level caching, so we needed getTransactionKey() to make sure there was one transaction state per real connection. We now cache in Lisk and each Connection object is guaranteed to represent a real, unique connection, so we can make this a non-static.
  • I kept the classes separate because it was a little easier, but maybe we should merge them?
  • Also track/implement read/write locking.
  • (The advantage of this over just writing LOCK IN SHARE MODE is that you can use, e.g., some Query class even if you don't have access to the queries it runs.)

Test Plan: Can you come up with a way to write unit tests for this? It seems like testing that it works requires deadlocking MySQL if the test is running in one process.

Reviewers: vrana, btrahan

Reviewed By: vrana

CC: aran

Differential Revision: https://secure.phabricator.com/D2398

Details

Provenance
epriestleyAuthored on
Reviewer
vrana
Differential Revision
Restricted Differential Revision
Parents
rP9f9716f81fce: Fix Firefox upload fatal
Branches
Unknown
Tags
Unknown

Event Timeline