Bagikan melalui


Memahami penulisan multi-wilayah di Azure Cosmos DB

BERLAKU UNTUK: NoSQL MongoDB Cassandra Gremlin Meja

Cara terbaik untuk mencapai waktu henti mendekati nol dalam skenario pemadaman parsial atau total di mana konsistensi bacaan tidak perlu dijamin, adalah dengan mengonfigurasi akun Anda untuk penulisan multi-wilayah. Artikel ini membahas konsep utama yang harus diperhatikan saat mengonfigurasi akun tulis multi-wilayah.

Wilayah hub

Di akun database multi-wilayah-tulis dengan dua wilayah atau lebih, wilayah pertama tempat akun Anda dibuat disebut wilayah "hub". Semua wilayah lain yang kemudian ditambahkan ke akun disebut wilayah "satelit". Jika wilayah hub dihapus dari akun, wilayah berikutnya, dalam urutan ditambahkan, secara otomatis dipilih sebagai wilayah hub.

Setiap penulisan yang tiba di wilayah satelit adalah kuorum yang diterapkan di wilayah lokal dan kemudian dikirim ke wilayah Hub untuk resolusi konflik, secara asinkron. Setelah penulisan masuk ke wilayah hub dan menyelesaikan konflik, itu menjadi tulisan "dikonfirmasi". Sampai saat itu, itu disebut tulisan "tentatif" atau tulisan "belum dikonfirmasi". Setiap tulisan yang disajikan dari wilayah hub segera menjadi tulisan yang dikonfirmasi.

Memahami tanda waktu

Salah satu perbedaan utama dalam akun multi-penulisan wilayah adalah adanya dua nilai tanda waktu server yang terkait dengan setiap entitas. Yang pertama adalah waktu epoch server di mana entitas ditulis di wilayah tersebut. Tanda waktu ini tersedia di akun tulis wilayah tunggal dan tulis multi-wilayah. Nilai tanda waktu server kedua dikaitkan dengan waktu epoch di mana tidak adanya konflik dikonfirmasi, atau konflik diselesaikan di wilayah hub. Penulisan yang dikonfirmasi atau diselesaikan konflik memiliki tanda waktu resolusi konflik (crts) yang ditetapkan, sedangkan tulisan yang tidak dikonfirmasi atau tentatif tidak memiliki crts. Ada dua tanda waktu di Cosmos DB yang ditetapkan oleh server. Perbedaan utamanya adalah apakah konfigurasi wilayah akun adalah Single-Write atau Multi-Write.

Tanda Waktu Makna Ketika diekspos
_ts Waktu epoch server tempat entitas ditulis. Selalu diekspos oleh semua API baca dan kueri.
crts Waktu epoch di mana konflik Multi-Tulis diselesaikan, atau tidak adanya konflik dikonfirmasi. Untuk konfigurasi wilayah Multi-Tulis, tanda waktu ini menentukan urutan perubahan untuk Umpan Perubahan:

  • Digunakan untuk menemukan waktu mulai untuk permintaan Umpan Perubahan
  • Digunakan sebagai urutan pengurutan dalam respons Umpan Perubahan.
Diekspos sebagai respons terhadap permintaan Ubah Umpan dan hanya ketika "Model Kabel Baru" diaktifkan oleh permintaan. Ini adalah default untuk Semua versi dan menghapus mode Ubah Umpan.

Langkah berikutnya

Selanjutnya, Anda dapat membaca artikel berikut: