3 ms·
I have the starting state: DB={} Q={} I would like to either remain in the starting state, or enter a new state: DB={Bob paid $15} Q={Bob paid $15}
by mrkeen 4mo ago
I have the starting state:
DB={} Q={}
I would like to either remain in the starting state, or enter a new state:
DB={Bob paid $15} Q={Bob paid $15}
But this is Two Generals, which is impossible.
If you invoke 2PC, you want the states to progress thus:
DB={locked} Q={locked}
DB={locked; Q={locked;
Bob paid $15} Bob paid $15}
DB={locked; Q={locked;
Bob paid $15; Bob paid $15;
unlocked} unlocked}
A strictly harder problem, right?
- dcminter 4mo agoAh, you're assuming distributed, which I wasn't. We are not at home to partition tolerance :) Makes sense in the context of the original post though.
- pragmatic 4mo agoBut you are assuming distributed transactions as soon as you have two systems participating in the transaction. It's a recipe for deadlocks and even live locks. That's a reason industry moved away from this. Bc when it works it's magic. But when the problems start it's pure hell.