Kebuntuan menyiratkan bahwa setiap utas mencoba memperbarui beberapa baris dalam satu transaksi dan bahwa pembaruan tersebut dilakukan dalam urutan yang berbeda di seluruh utas. Oleh karena itu, jawaban paling sederhana yang mungkin adalah memodifikasi kode sehingga pesan dalam transaksi yang sama diterapkan dalam beberapa urutan yang ditentukan (yaitu dalam urutan kunci utama). Itu akan memastikan bahwa Anda tidak akan pernah menemui jalan buntu meskipun Anda masih akan mendapatkan kunci pemblokiran sementara satu utas menunggu utas lain untuk melakukan transaksinya.
Mengambil langkah mundur, tampaknya tidak mungkin Anda benar-benar ingin banyak utas memperbarui baris yang sama dalam sebuah tabel ketika Anda tidak dapat memprediksi urutan pembaruan. Tampaknya sangat mungkin itu akan menyebabkan banyak pembaruan yang hilang dan beberapa perilaku yang agak tidak terduga. Apa tepatnya yang dilakukan aplikasi Anda yang membuat hal semacam ini masuk akal? Apakah Anda melakukan sesuatu seperti memperbarui tabel agregat setelah memasukkan baris ke dalam tabel detail (yaitu memperbarui jumlah tampilan yang dimiliki sebuah pos selain mencatat informasi tentang tampilan tertentu)? Jika demikian, apakah operasi tersebut benar-benar perlu disinkronkan? Atau bisakah Anda memperbarui jumlah penayangan secara berkala di utas lain dengan menggabungkan penayangan selama N detik terakhir?