Myslím, že očekávané chování je trochu mimo. Před potvrzením db_slow jsou všechny řádky v tabulce uzamčeny. Po potvrzení existují dva řádky. db_fast je odblokován při potvrzení db_slow. Chování je tedy:
- db_slow:vyberte řádek 1 a uzamkněte jej
- db_slow:podívejte se, že je to pouze 1 řádek a počkejte
- db_fast:zkuste vybrat řádek 1, uvidíte, že je uzamčen, počkejte
- db_slow:vložte řádek s '2'
- db_slow:potvrzení
- db_fast:odblokováno a čte 2 řádky
- db_fast:nic nedělá
- Skončíte s foo:1, 2