Jag tycker att det förväntade beteendet är lite off. Innan db_slow commits är alla rader i tabellen låsta. Efter att den har begåtts finns det två rader. db_fast är avblockerad när db_slow commits. Följaktligen är beteendet:
- db_slow:välj rad 1 och lås den
- db_slow:se att det bara är en rad och vänta
- db_fast:försök välja rad 1, se att den är låst, vänta
- db_slow:infoga rad med '2'
- db_slow:commit
- db_fast:avblockerad och läser 2 rader
- db_fast:gör ingenting
- Sluta med foo:1, 2