Homec4science

Simplify transaction handling and restore read/write locks

Authored by epriestley <git@epriestley.com> on May 5 2012, 20:29.

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

Committed
epriestley <git@epriestley.com>May 5 2012, 20:29
Pushed
aubortJan 31 2017, 17:16
Parents
rPH9f9716f81fce: Fix Firefox upload fatal
Branches
Unknown
Tags
Unknown

Event Timeline

epriestley <git@epriestley.com> committed rPHc30cb7669e37: Simplify transaction handling and restore read/write locks (authored by epriestley <git@epriestley.com>).May 5 2012, 20:29