Ringkasan replikasi
Replikasi untuk Bigtable memungkinkan Anda meningkatkan ketersediaan dan ketahanan data dengan menyalinnya di beberapa region atau beberapa zona dalam region yang sama. Anda juga dapat mengisolasi workload dengan merutekan berbagai jenis permintaan ke cluster yang berbeda.
Halaman ini menjelaskan cara kerja replikasi di Bigtable dan menjelaskan beberapa kasus penggunaan umum untuk replikasi. Panduan ini juga menjelaskan model konsistensi yang digunakan Bigtable saat replikasi diaktifkan dan menjelaskan apa yang terjadi saat satu cluster gagal di-failover ke cluster lain.
- Untuk contoh setelan yang dapat Anda gunakan untuk menerapkan kasus penggunaan umum, lihat Contoh konfigurasi replikasi.
- Untuk mempelajari cara membuat instance yang menggunakan replikasi, lihat Membuat instance.
- Untuk mempelajari cara mengaktifkan replikasi untuk instance yang ada, lihat Menambahkan cluster.
- Untuk memahami biaya yang terkait dengan replikasi, lihat Harga.
Sebelum membaca halaman ini, Anda harus sudah memahami ringkasan Bigtable.
Cara kerja replikasi
Untuk menggunakan replikasi di instance Bigtable, buat instance baru dengan lebih dari satu cluster atau tambahkan cluster ke instance yang ada.
Instance Bigtable dapat memiliki cluster yang terletak di hingga delapan region Bigtable, dan di setiap delapan region tersebut, instance hanya dapat berisi satu cluster per zona. Misalnya, jika Anda membuat instance di 8 region yang masing-masing memiliki 3 zona, instance Anda dapat memiliki hingga 24 cluster.
Setiap zona dalam region hanya dapat berisi satu cluster. Dengan memiliki cluster di zona atau region yang berbeda, Anda dapat mengakses data instance meskipun satu zona atau region Google Cloud tidak tersedia.
Saat Anda membuat instance dengan lebih dari satu cluster, Bigtable akan segera mulai menyinkronkan data Anda antar-cluster, sehingga membuat salinan data yang terpisah dan independen di setiap zona tempat instance Anda memiliki cluster. Demikian pula, saat Anda menambahkan cluster baru ke instance yang ada, Bigtable akan menyalin data yang ada dari zona cluster asli ke zona cluster baru, lalu menyinkronkan perubahan pada data Anda di antara zona tersebut.
Bigtable mereplikasi setiap perubahan pada data Anda, termasuk semua jenis perubahan berikut:
- Pembaruan pada data di tabel yang ada
- Tabel baru dan yang dihapus
- Menambahkan dan menghapus keluarga kolom
- Perubahan pada kebijakan pembersihan sampah memori grup kolom
Replikasi memiliki beberapa latensi, dan konsistensi antar-cluster bersifat tertunda.
Bigtable memperlakukan setiap cluster dalam instance Anda sebagai cluster utama, sehingga Anda dapat melakukan operasi baca dan tulis di setiap cluster. Anda juga dapat menyiapkan instance sehingga permintaan dari berbagai jenis aplikasi dirutekan ke cluster yang berbeda.
Sebelum menambahkan cluster ke instance, Anda harus mengetahui batasan yang berlaku saat mengubah kebijakan pembersihan sampah untuk tabel yang direplikasi.
Performa
Penggunaan replikasi memiliki implikasi performa yang harus Anda rencanakan saat membuat instance yang direplikasi atau mengaktifkan replikasi dengan menambahkan cluster ke instance cluster tunggal. Misalnya, cluster yang direplikasi di region yang berbeda biasanya memiliki latensi replikasi yang lebih tinggi daripada cluster yang direplikasi di region yang sama. Selain itu, cluster dalam instance yang memiliki lebih dari satu cluster sering kali memerlukan lebih banyak node untuk menangani pekerjaan tambahan dalam menangani replikasi. Untuk mempelajari lebih lanjut, lihat Memahami performa.
Kasus penggunaan
Bagian ini menjelaskan beberapa kasus penggunaan umum untuk replikasi Bigtable. Untuk menemukan setelan konfigurasi terbaik untuk setiap kasus penggunaan, serta tips penerapan untuk kasus penggunaan lainnya, lihat Contoh Setelan Replikasi.
Mengisolasi aplikasi penyaluran dari pembacaan batch
Jika Anda menggunakan satu cluster untuk menjalankan tugas analisis batch yang melakukan banyak pembacaan besar bersama aplikasi yang melakukan campuran pembacaan dan penulisan, tugas batch besar dapat memperlambat proses bagi pengguna aplikasi. Dengan replikasi, Anda dapat menggunakan profil aplikasi dengan pemilihan rute cluster tunggal untuk merutekan tugas analisis batch dan traffic aplikasi ke cluster yang berbeda, sehingga tugas batch tidak memengaruhi pengguna aplikasi Anda. Pelajari lebih lanjut cara menerapkan kasus penggunaan ini.
Meningkatkan ketersediaan
Jika instance hanya memiliki satu cluster, ketahanan dan ketersediaan data Anda terbatas pada zona tempat cluster tersebut berada. Replikasi dapat meningkatkan ketahanan dan ketersediaan dengan menyimpan salinan data Anda yang terpisah di beberapa zona atau region dan secara otomatis melakukan failover antar-cluster jika diperlukan. Pelajari lebih lanjut cara menerapkan kasus penggunaan ini.
Memberikan pencadangan hampir secara real-time
Dalam beberapa kasus—misalnya, jika Anda tidak dapat membaca data yang sudah tidak berlaku—Anda harus selalu merutekan permintaan ke satu cluster. Namun, Anda tetap dapat menggunakan replikasi dengan menangani permintaan dengan satu cluster dan menyimpan cluster lain sebagai pencadangan hampir real-time. Jika cluster penyaluran tidak tersedia, Anda dapat meminimalkan periode nonaktif dengan melakukan failover ke cluster cadangan secara manual. Pelajari lebih lanjut cara menerapkan kasus penggunaan ini.
Memastikan data Anda memiliki kehadiran global
Anda dapat menyiapkan replikasi di lokasi di seluruh dunia untuk menempatkan data lebih dekat kepada pelanggan. Misalnya, Anda dapat membuat instance dengan cluster yang direplikasi di Amerika Serikat, Eropa, dan Asia, serta menyiapkan profil aplikasi untuk merutekan traffic aplikasi ke cluster terdekat. Pelajari lebih lanjut cara menerapkan kasus penggunaan ini.
Model konsistensi
Bagian ini menjelaskan model konsistensi yang dapat disediakan Bigtable untuk replika, bergantung pada kebijakan pemilihan rute yang Anda gunakan.
Konsistensi tertunda
Secara default, replikasi untuk Bigtable memiliki konsistensi tertunda. Istilah ini berarti bahwa saat Anda menulis perubahan ke satu cluster, Anda pada akhirnya dapat membaca perubahan tersebut dari cluster lain dalam instance, tetapi hanya setelah perubahan direplikasi di antara cluster.
Jika instance Anda responsif, latensi untuk replikasi biasanya beberapa detik atau menit, bukan jam. Namun, jika Anda menulis data dalam jumlah besar ke cluster, atau jika cluster kelebihan beban atau tidak tersedia untuk sementara, perlu waktu agar replikasi dapat mengejar. Selain itu, replikasi dapat memerlukan waktu lebih lama jika cluster Anda berjauhan. Akibatnya, biasanya tidak aman untuk mengasumsikan bahwa Anda selalu membaca nilai terbaru yang ditulis, atau bahwa menunggu beberapa detik setelah operasi tulis memberi Bigtable cukup waktu untuk mereplikasi perubahan.
Konsistensi read-your-write
Anda dapat mencapai konsistensi read-your-writes dengan perutean cluster tunggal, dan Anda dapat mencapai rasio konsistensi read-your-writes yang tinggi dengan menggunakan perutean multi-cluster dengan perutean afinitas baris atau saat cluster instance Anda masing-masing berada di region yang berbeda.
Pemilihan rute cluster tunggal
Jika Anda menggunakan pemetaan cluster tunggal, Bigtable dapat memberikan konsistensi baca-tulis saat replikasi diaktifkan. Model konsistensi ini memastikan bahwa aplikasi tidak pernah membaca data yang lebih lama dari penulisan terbarunya.
Setiap profil aplikasi yang Anda gunakan harus dikonfigurasi untuk perutean cluster tunggal, dan semua profil aplikasi harus merutekan permintaan ke cluster yang sama. Anda dapat menggunakan cluster tambahan instance secara bersamaan untuk tujuan lain.
Pemilihan rute multi-cluster dengan satu cluster per region
Dengan pemilihan rute multi-cluster, Bigtable selalu merutekan permintaan ke cluster terdekat. Jika setiap cluster di instance Anda berada di region Bigtable yang berbeda, dan Anda menggunakan profil aplikasi yang dikonfigurasi untuk perutean multi-cluster, data Anda memiliki konsistensi operasi baca-tulis dalam region sumber, kecuali jika terjadi failover.
Pemilihan rute afinitas baris
Untuk mencapai tingkat konsistensi operasi baca-tulis yang lebih tinggi dengan perutean multi-cluster ke instance yang memiliki lebih dari satu cluster di region, Anda dapat menggunakan profil aplikasi yang dikonfigurasi untuk rute afinitas baris (rute melekat).
Dengan pemilihan rute afinitas baris, Bigtable akan otomatis merutekan permintaan baca dan tulis baris tunggal ke cluster tertentu berdasarkan kunci baris permintaan. Anda tidak dapat menetapkan pemetaan antara kunci baris dan cluster secara manual. Konsistensi tidak dijamin karena permintaan mungkin masih gagal karena berbagai alasan, termasuk saat cluster tidak sehat, masalah jaringan terjadi, atau cluster telah menerima terlalu banyak permintaan.
Konsistensi kuat
Untuk beberapa kasus penggunaan replikasi, Bigtable juga dapat memberikan konsistensi yang kuat, yang memastikan bahwa semua aplikasi Anda melihat data dalam status yang sama. Untuk mendapatkan konsistensi yang kuat, Anda menggunakan konfigurasi profil aplikasi rute cluster tunggal untuk konsistensi baca-tulis yang dijelaskan sebelumnya, tetapi Anda tidak boleh menggunakan cluster tambahan instance kecuali jika Anda perlu beralih ke cluster lain. Tinjau contoh setelan replikasi untuk mengetahui apakah hal ini memungkinkan untuk kasus penggunaan Anda.
Penyelesaian konflik
Setiap nilai sel dalam tabel Bigtable diidentifikasi secara unik oleh empat tuple (kunci baris, grup kolom, penentu kolom, stempel waktu). Lihat Model penyimpanan Bigtable untuk mengetahui detail selengkapnya tentang ID ini. Dalam kasus yang jarang terjadi, jika dua operasi tulis dengan empat tuple yang sama persis dikirim ke dua cluster yang berbeda, Bigtable akan otomatis menyelesaikan konflik menggunakan algoritma last write wins internal berdasarkan waktu sisi server. Implementasi "last write wins" Bigtable bersifat deterministik, dan saat replika mengejar, semua cluster memiliki nilai yang sama untuk empat tuple.
Profil aplikasi
Jika instance menggunakan replikasi, Anda menggunakan profil aplikasi, atau profil aplikasi, untuk menentukan kebijakan perutean. Profil aplikasi juga menentukan apakah Anda dapat melakukan transaksi baris tunggal, yang mencakup operasi baca-ubah-tulis (termasuk penambahan dan penambahan) dan operasi periksa-dan-ubah (juga dikenal sebagai mutasi bersyarat atau operasi tulis bersyarat).
Untuk mengetahui detailnya, lihat Profil Aplikasi. Untuk contoh setelan yang dapat Anda gunakan untuk menerapkan kasus penggunaan umum, lihat Contoh konfigurasi replikasi.
Kebijakan perutean
Setiap profil aplikasi memiliki kebijakan perutean yang mengontrol cluster mana yang menangani permintaan masuk dari aplikasi Anda. Opsi untuk kebijakan pemilihan rute mencakup hal berikut:
- Pemilihan rute cluster tunggal: Mengirim semua permintaan ke satu cluster yang Anda tentukan.
- Pemetaan multi-cluster:
- Pemilihan rute cluster apa pun: Mengirim permintaan ke cluster terdekat dalam instance.
- Pemilihan rute grup cluster: Membatasi semua permintaan ke cluster yang Anda tentukan.
- Pemetaan afinitas baris: Mengirim permintaan baca atau tulis baris tunggal ke cluster tertentu berdasarkan kunci baris permintaan. Untuk mengetahui informasi selengkapnya, lihat Pemilihan rute afinitas baris.
Failover
Jika cluster Bigtable menjadi tidak responsif, replikasi memungkinkan traffic masuk mengalami kegagalan ke cluster lain dalam instance yang sama. Failover dapat bersifat manual atau otomatis, bergantung pada profil aplikasi yang digunakan aplikasi dan cara profil aplikasi dikonfigurasi. Untuk mengetahui detailnya, lihat Failover.
Menghapus rentang baris saat replikasi diaktifkan
Cloud Bigtable Admin API memungkinkan Anda menghapus rentang baris yang berdekatan dari tabel berdasarkan kunci barisnya. Dalam instance yang tidak menggunakan replikasi, Bigtable dapat menghapus rentang baris dengan cepat dan efisien. Namun, jika replikasi diaktifkan, menghapus rentang baris akan jauh lebih lambat dan jauh kurang efisien.
Langkah selanjutnya
- Temukan setelan replikasi yang tepat untuk kasus penggunaan Anda.
- Membuat instance yang menggunakan replikasi.
- Mengaktifkan replikasi untuk instance yang ada.
- Pelajari setelan replikasi di profil aplikasi.
- Cari tahu cara menyelesaikan failover manual.