Saya pikir perilaku yang diharapkan sedikit menyimpang. Sebelum db_slow melakukan, semua baris dalam tabel dikunci. Setelah komit, ada dua baris. db_fast tidak diblokir ketika db_slow melakukan. Jadi, perilakunya adalah:
- db_slow:pilih baris 1 dan kunci
- db_slow:lihat hanya 1 baris dan tunggu
- db_fast:coba pilih baris 1, lihat itu terkunci, tunggu
- db_slow:sisipkan baris dengan '2'
- db_slow:komit
- db_fast:membuka blokir dan membaca 2 baris
- db_fast:tidak melakukan apa-apa
- Berakhir dengan foo:1, 2