Transaksi basis data klasik yang disederhanakan dapat dilihat sebagai:
- membaca item M.
- melakukan beberapa perhitungan berdasarkan bacaan tersebut
- menulis beberapa hasil N berdasarkan perhitungan ini, yang dapat mencakup unsur-unsur yang awalnya dibaca.
Saat melakukan transaksi ini (secara bersamaan) properti ACID perlu dipertahankan.
Persis persyaratan yang sama (pembaruan N berdasarkan M membaca secara transaksi) ada di sistem bersamaan non-DBMS lainnya.
Saya tertarik untuk mencari tahu apa algoritma yang ada untuk melakukan / menyelesaikan transaksi ini, dan apa kekuatan dan kelemahan relatif dari algoritma ini. Bisakah Anda merekomendasikan beberapa bacaan? Ini bisa berupa buku atau referensi / tutorial online.
Klarifikasi:
Jadi misalnya, algoritma naif mungkin setiap transaksi mengambil kunci global tunggal, yang berlaku memaksa threading tunggal dan menghapus konkurensi. Algoritma yang sedikit lebih rumit adalah kunci baca / tulis item individual, dengan urutan untuk menghindari kebuntuan). Dll, dll. Apakah ada sumber yang bagus yang mendokumentasikan berbagai algoritma untuk memecahkan masalah ini. Bahkan jawaban yang hanya menunjuk pada satu algoritma dengan kekuatan dan kelemahannya akan berguna.