Model
Optimistic against pessimistic
If conflicts are rare, a lock manager is a cost paid on every operation to protect against something that almost never happens.
- Items
- items per transaction
- Lock cost
- cost of one lock acquisition
- Conflict probability
- chance a transaction must redo its work
How it behaves
One input on the horizontal axis, the others held fixed.
lockingoptimistic
Data table
| Conflict probability p | series | Cost per transaction |
|---|---|---|
| 0 | locking | 1.5 µs |
| 0 | locking | 1.5 µs |
| 0 | locking | 1.5 µs |
| 0 | locking | 1.5 µs |
| 0 | locking | 1.5 µs |
| 0 | locking | 1.5 µs |
| 0 | locking | 1.5 µs |
| 0 | locking | 1.5 µs |
| 0 | locking | 1.5 µs |
| 0 | locking | 1.5 µs |
| 0 | locking | 1.5 µs |
| 0 | locking | 1.5 µs |
| 0 | locking | 1.5 µs |
| 0 | locking | 1.5 µs |
| 0 | locking | 1.5 µs |
| 0 | locking | 1.5 µs |
| 0 | locking | 1.5 µs |
| 0.001 | locking | 1.5 µs |
| 0.001 | locking | 1.5 µs |
| 0.001 | locking | 1.5 µs |
| 0.001 | locking | 1.5 µs |
| 0.001 | locking | 1.5 µs |
| 0.001 | locking | 1.5 µs |
| 0.001 | locking | 1.5 µs |
| 0.001 | locking | 1.5 µs |
| 0.001 | locking | 1.5 µs |
| 0.001 | locking | 1.5 µs |
| 0.001 | locking | 1.5 µs |
| 0.001 | locking | 1.5 µs |
| 0.002 | locking | 1.5 µs |
| 0.002 | locking | 1.5 µs |
| 0.002 | locking | 1.5 µs |
| 0.002 | locking | 1.5 µs |
| 0.002 | locking | 1.5 µs |
| 0.003 | locking | 1.5 µs |
| 0.003 | locking | 1.5 µs |
| 0.003 | locking | 1.5 µs |
| 0.003 | locking | 1.5 µs |
| 0.004 | locking | 1.5 µs |
| 0.004 | locking | 1.5 µs |
| 0.004 | locking | 1.5 µs |
| 0.005 | locking | 1.5 µs |
| 0.005 | locking | 1.5 µs |
| 0.006 | locking | 1.5 µs |
| 0.007 | locking | 1.5 µs |
| 0.007 | locking | 1.5 µs |
| 0.008 | locking | 1.5 µs |
| 0.009 | locking | 1.5 µs |
| 0.01 | locking | 1.5 µs |
| 0.011 | locking | 1.5 µs |
| 0.012 | locking | 1.5 µs |
| 0.013 | locking | 1.5 µs |
| 0.014 | locking | 1.5 µs |
| 0.015 | locking | 1.5 µs |
| 0.017 | locking | 1.5 µs |
| 0.019 | locking | 1.5 µs |
| 0.021 | locking | 1.5 µs |
| 0.023 | locking | 1.5 µs |
| 0.025 | locking | 1.5 µs |
| 0.027 | locking | 1.5 µs |
| 0.03 | locking | 1.5 µs |
| 0.033 | locking | 1.5 µs |
| 0.036 | locking | 1.5 µs |
| 0.04 | locking | 1.5 µs |
| 0.044 | locking | 1.5 µs |
| 0.048 | locking | 1.5 µs |
| 0.053 | locking | 1.5 µs |
| 0.058 | locking | 1.5 µs |
| 0.064 | locking | 1.5 µs |
| 0.07 | locking | 1.5 µs |
| 0.077 | locking | 1.5 µs |
| 0.085 | locking | 1.5 µs |
| 0.094 | locking | 1.5 µs |
| 0.103 | locking | 1.5 µs |
| 0.113 | locking | 1.5 µs |
| 0.124 | locking | 1.5 µs |
| 0.137 | locking | 1.5 µs |
| 0.15 | locking | 1.5 µs |
| 0.165 | locking | 1.5 µs |
| 0.182 | locking | 1.5 µs |
| 0.2 | locking | 1.5 µs |
| 0 | optimistic | 0.01 µs |
| 0 | optimistic | 0.011 µs |
| 0 | optimistic | 0.012 µs |
| 0 | optimistic | 0.013 µs |
| 0 | optimistic | 0.015 µs |
| 0 | optimistic | 0.016 µs |
| 0 | optimistic | 0.018 µs |
| 0 | optimistic | 0.019 µs |
| 0 | optimistic | 0.021 µs |
| 0 | optimistic | 0.024 µs |
| 0 | optimistic | 0.026 µs |
| 0 | optimistic | 0.028 µs |
| 0 | optimistic | 0.031 µs |
| 0 | optimistic | 0.034 µs |
| 0 | optimistic | 0.038 µs |
| 0 | optimistic | 0.042 µs |
| 0 | optimistic | 0.046 µs |
| 0.001 | optimistic | 0.05 µs |
| 0.001 | optimistic | 0.055 µs |
| 0.001 | optimistic | 0.061 µs |
| 0.001 | optimistic | 0.067 µs |
| 0.001 | optimistic | 0.074 µs |
| 0.001 | optimistic | 0.081 µs |
| 0.001 | optimistic | 0.089 µs |
| 0.001 | optimistic | 0.098 µs |
| 0.001 | optimistic | 0.108 µs |
| 0.001 | optimistic | 0.118 µs |
| 0.001 | optimistic | 0.13 µs |
| 0.001 | optimistic | 0.143 µs |
| 0.002 | optimistic | 0.157 µs |
| 0.002 | optimistic | 0.173 µs |
| 0.002 | optimistic | 0.19 µs |
| 0.002 | optimistic | 0.209 µs |
| 0.002 | optimistic | 0.23 µs |
| 0.003 | optimistic | 0.253 µs |
| 0.003 | optimistic | 0.278 µs |
| 0.003 | optimistic | 0.306 µs |
| 0.003 | optimistic | 0.336 µs |
| 0.004 | optimistic | 0.37 µs |
| 0.004 | optimistic | 0.407 µs |
| 0.004 | optimistic | 0.447 µs |
| 0.005 | optimistic | 0.492 µs |
| 0.005 | optimistic | 0.541 µs |
| 0.006 | optimistic | 0.595 µs |
| 0.007 | optimistic | 0.654 µs |
| 0.007 | optimistic | 0.719 µs |
| 0.008 | optimistic | 0.791 µs |
| 0.009 | optimistic | 0.87 µs |
| 0.01 | optimistic | 0.956 µs |
| 0.011 | optimistic | 1.05 µs |
| 0.012 | optimistic | 1.16 µs |
| 0.013 | optimistic | 1.27 µs |
| 0.014 | optimistic | 1.4 µs |
| 0.015 | optimistic | 1.54 µs |
| 0.017 | optimistic | 1.69 µs |
| 0.019 | optimistic | 1.86 µs |
| 0.021 | optimistic | 2.05 µs |
| 0.023 | optimistic | 2.25 µs |
| 0.025 | optimistic | 2.47 µs |
| 0.027 | optimistic | 2.72 µs |
| 0.03 | optimistic | 2.99 µs |
| 0.033 | optimistic | 3.29 µs |
| 0.036 | optimistic | 3.62 µs |
| 0.04 | optimistic | 3.98 µs |
| 0.044 | optimistic | 4.37 µs |
| 0.048 | optimistic | 4.81 µs |
| 0.053 | optimistic | 5.29 µs |
| 0.058 | optimistic | 5.82 µs |
| 0.064 | optimistic | 6.4 µs |
| 0.07 | optimistic | 7.03 µs |
| 0.077 | optimistic | 7.73 µs |
| 0.085 | optimistic | 8.5 µs |
| 0.094 | optimistic | 9.35 µs |
| 0.103 | optimistic | 10.3 µs |
| 0.113 | optimistic | 11.3 µs |
| 0.124 | optimistic | 12.4 µs |
| 0.137 | optimistic | 13.7 µs |
| 0.15 | optimistic | 15 µs |
| 0.165 | optimistic | 16.5 µs |
| 0.182 | optimistic | 18.2 µs |
| 0.2 | optimistic | 20 µs |
Worked examples, recomputed
Every number the mechanisms quote for this relationship is recomputed from it, so none of them disagrees with it.
Where it appears
Each mechanism states it in its own names. The general symbol each name stands for is shown with it.
- Transactions & Concurrency Control
What happens when many users change the same data at the same time, and how do we keep the result correct?