Pilih tingkat konsistensi yang tepat

Selesai

Setiap model konsistensi dapat digunakan untuk skenario dunia nyata tertentu. Masing-masing menyediakan ketersediaan dan tradeoff performa yang tepat dan didukung oleh SLA yang komprehensif. Pertimbangan sederhana berikut membantu Anda membuat pilihan yang tepat dalam banyak skenario umum.

Mengonfigurasi tingkat konsistensi default

Anda dapat mengonfigurasi tingkat konsistensi default di akun Azure Cosmos DB Anda kapan saja. Tingkat konsistensi default yang dikonfigurasi pada akun Anda berlaku untuk semua database dan kontainer Azure Cosmos DB di bawah akun tersebut. Semua baca dan kueri yang dikeluarkan terhadap kontainer atau database menggunakan tingkat konsistensi yang ditentukan secara default.

Konsistensi baca berlaku untuk satu operasi baca yang tercakup dalam partisi logika. Operasi baca dapat dikeluarkan oleh klien jarak jauh atau prosedur yang disimpan.

Jaminan yang terkait dengan tingkat konsistensi

Azure Cosmos DB menjamin bahwa 100 persen permintaan baca memenuhi jaminan konsistensi untuk tingkat konsistensi yang dipilih. Definisi yang tepat dari lima tingkat konsistensi di Azure Cosmos DB menggunakan bahasa spesifikasi TLA + disediakan dalam repo azure-cosmos-tla GitHub.

Konsistensi kuat

Konsistensi yang kuat menawarkan jaminan linearizability. Linearizability mengacu pada permintaan penyajian secara bersamaan. Bacaan dijamin akan mengembalikan versi terapan item yang terbaru. Klien tidak pernah melihat tulisan yang belum diterapkan atau sebagian. Pengguna selalu dijamin membaca tulisan terbaru yang diterapkan.

Konsistensi keusangan terikat

Dalam konsistensi kedaluwarsa terikat, bacaan dijamin untuk menghormati jaminan awalan yang konsisten. Bacaan mungkin tertinggal menulis oleh paling banyak versi "K" (yaitu, "pembaruan") dari item atau dengan interval waktu "T", mana yang dicapai terlebih dahulu. Dengan kata lain, ketika Anda memilih kedaluwarsa terikat, "kedaluwarsa" dapat dikonfigurasi dengan dua cara:

  • Jumlah versi (K) item
  • Interval waktu (T) berbunyi mungkin tertinggal dari tulisan

Untuk satu akun wilayah, nilai minimum K dan T adalah 10 operasi tulis atau 5 detik. Untuk akun beberapa wilayah nilai minimum K dan T adalah 100.000 operasi tulis atau 300 detik.

Konsistensi sesi

Dalam konsistensi sesi, dalam satu sesi klien, dijamin untuk menghormati awalan yang konsisten, bacaan monotonik, penulisan monotonik, read-your-writes, dan jaminan write-follows-reads. Ini mengasumsikan sesi "penulis" tunggal atau berbagi token sesi untuk beberapa penulis.

Konsistensi awalan konsisten

Dalam awalan yang konsisten, pembaruan yang dibuat sebagai penulisan dokumen tunggal melihat konsistensi akhir. Pembaruan yang dibuat sebagai batch dalam transaksi, dikembalikan konsisten ke transaksi tempat mereka dilakukan. Operasi tulis dalam transaksi beberapa dokumen selalu terlihat bersama- sama.

Asumsikan dua operasi tulis dilakukan pada dokumen Doc 1 dan Doc 2, dalam transaksi T1 dan T2. Ketika klien melakukan baca di replika apa pun, pengguna melihat "Doc 1 v1 dan Doc 2 v1" atau "Doc 1 v2 dan Doc 2 v2", tetapi tidak pernah "Doc 1 v1 dan Doc 2 v2" atau "Doc 1 v2 dan Doc 2 v1" untuk operasi baca atau kueri yang sama.

Konsistensi akhir

Pada konsistensi peristiwa, tidak ada jaminan pemesanan untuk bacaan. Dengan tidak adanya tulisan lebih lanjut, replika peristiwa bertemu.

Konsistensi akhir adalah bentuk konsistensi terlemah karena klien dapat membaca nilai yang lebih lama dari yang dibaca sebelumnya. Konsistensi akhir sangat ideal ketika aplikasi tidak memerlukan jaminan pemesanan apa pun. Contohnya termasuk jumlah Retweet, Suka, atau komentar yang tidak dibaca