Penso che il comportamento previsto sia un po' strano. Prima del commit db_slow, tutte le righe della tabella sono bloccate. Dopo il commit, ci sono due righe. db_fast viene sbloccato quando db_slow esegue il commit. Quindi, il comportamento è:
- db_slow:seleziona la riga 1 e bloccala
- db_slow:vedi che è solo 1 riga e aspetta
- db_fast:prova a selezionare la riga 1, vedi che è bloccata, aspetta
- db_slow:inserisci la riga con '2'
- db_slow:commit
- db_fast:sbloccato e legge 2 righe
- db_fast:non fa nulla
- Finisci con pippo:1, 2