Langsung ke konten

Arsip

Optimistic Concurrency

1 artikel
Rekayasa Perangkat Lunak 21 Sep 2026 4 min read

Kolom Versi Mengubah Lost Update Menjadi Konflik yang Terdeteksi

Kolom Versi Mengubah Lost Update Menjadi Konflik yang Terdeteksi Alur read-modify-write dapat menimpa perubahan lain yang sudah commit walaupun setiap statement database berhasil. Dua client membaca row yang sama, menghitung replacement berbeda, lalu menulis secara berurutan. Tanpa kondisi yang mengikat setiap write ke state yang dibacanya, write terakhir dapat menghapus perubahan sebelumnya tanpa sinyal konflik. Kolom versi membuat dependency tersebut eksplisit. Client membaca data beserta versinya, lalu melakukan update hanya jika versi di storage masih sama dengan yang diamati. Perubahan versi mengubah race menjadi conditional update yang gagal, bukan lost update.