Halaman ini menjelaskan cara menggunakan isolasi baca yang dapat diulang di Spanner.
Repeatable read adalah tingkat isolasi yang memastikan bahwa semua operasi baca dalam transaksi melihat snapshot database yang konsisten sebagaimana adanya pada awal transaksi. Di Spanner, tingkat isolasi ini diterapkan menggunakan teknik yang juga biasa disebut snapshot isolation. Pendekatan ini bermanfaat dalam skenario konkurensi baca-tulis tinggi di mana banyak transaksi membaca data yang mungkin dimodifikasi oleh transaksi lain. Dengan menggunakan snapshot tetap, bacaan yang dapat diulang menghindari dampak performa dari tingkat isolasi yang dapat diserialisasi dan lebih ketat. Operasi baca dapat dieksekusi tanpa memperoleh kunci dan tanpa memblokir operasi tulis serentak, sehingga berpotensi mengurangi transaksi yang dibatalkan yang mungkin perlu dicoba lagi karena konflik serialisasi. Untuk informasi selengkapnya, lihat Ringkasan tingkat isolasi.
Menetapkan tingkat isolasi
Anda dapat menyetel tingkat isolasi pada transaksi baca-tulis di tingkat transaksi menggunakan metode berikut:
Library klien
Go
Java
Node.js
Python
REST
Anda dapat menggunakan TransactionOptions.isolation_level
REST API untuk menyetel tingkat isolasi pada transaksi baca-tulis di
tingkat transaksi. Opsi yang valid adalah TransactionOptions.SERIALIZABLE
dan
TransactionOptions.REPEATABLE_READ
. Secara default, Spanner menetapkan
tingkat isolasi ke isolasi serialisabel.
RPC
Kasus penggunaan yang tidak didukung
- Anda hanya dapat menggunakan isolasi baca yang dapat diulang dalam transaksi baca-tulis. Spanner akan menampilkan error jika Anda menetapkan tingkat isolasi ini pada transaksi hanya baca. Semua transaksi hanya baca beroperasi pada snapshot tetap dan tidak memerlukan penguncian.
- Anda tidak dapat menggunakan isolasi baca yang dapat diulang untuk mengubah tabel yang memiliki indeks penelusuran teks lengkap yang ditentukan di kolomnya.
Langkah berikutnya
Pelajari lebih lanjut tingkat isolasi.
Pelajari cara menggunakan SELECT FOR UPDATE dalam isolasi baca yang dapat diulang.
Untuk mempelajari lebih lanjut serialisabilitas dan konsistensi eksternal Spanner, lihat TrueTime dan konsistensi eksternal.