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 mengarahkan berbagai jenis permintaan ke cluster yang berbeda.
Halaman ini menjelaskan cara kerja replikasi di Bigtable dan menjelaskan beberapa kasus penggunaan umum untuk replikasi. Dokumen ini juga menjelaskan model konsistensi yang digunakan Bigtable saat replikasi diaktifkan dan menjelaskan apa yang terjadi jika satu cluster gagal terhubung ke cluster lainnya.
- Untuk contoh setelan yang dapat Anda gunakan untuk menerapkan kasus penggunaan umum, lihat Contoh Setelan 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 dalam instance Bigtable, buat instance baru dengan lebih dari 1 cluster atau tambahkan cluster ke instance yang ada.
Instance Bigtable dapat memiliki cluster yang terletak di hingga 8 region Bigtable, dan di masing-masing dari 8 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 maksimal 24 cluster.
Setiap zona dalam satu region hanya dapat berisi satu cluster. Memiliki cluster di berbagai zona atau region memungkinkan Anda mengakses data instance meskipun satu zona atau region Google Cloud menjadi 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 dari Anda 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 ke data Anda di antara zona.
Bigtable mereplikasi setiap perubahan pada data Anda, termasuk semua jenis perubahan berikut:
- Pembaruan pada data di tabel yang sudah ada
- Tabel baru dan yang dihapus
- Menambahkan dan menghapus grup kolom
- Perubahan pada kebijakan pembersihan sampah memori grup kolom
Penting untuk diperhatikan bahwa replikasi memiliki beberapa latensi, dan konsistensi antarreplika pada akhirnya akan terjadi. Penting untuk diperhatikan bahwa replikasi memiliki beberapa latensi, dan konsistensi antar-cluster pada akhirnya akan terjadi.
Bigtable memperlakukan setiap cluster dalam instance Anda sebagai cluster utama, sehingga Anda dapat melakukan pembacaan dan penulisan 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 Anda mengubah kebijakan pembersihan sampah memori untuk tabel replika.
Performa
Penggunaan replikasi memiliki implikasi performa yang harus Anda rencanakan saat membuat instance replika 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 baca dan tulis, tugas batch besar dapat memperlambat berbagai hal bagi pengguna aplikasi. Dengan replikasi, Anda dapat menggunakan profil aplikasi dengan perutean cluster tunggal untuk merutekan tugas analisis batch dan traffic aplikasi ke berbagai cluster, sehingga tugas batch tidak memengaruhi pengguna aplikasi Anda. Pelajari lebih lanjut cara menerapkan kasus penggunaan ini.
Tingkatkan ketersediaan
Jika instance hanya memiliki 1 cluster, ketahanan dan ketersediaan data Anda terbatas pada zona tempat cluster tersebut berada. Replikasi dapat meningkatkan ketahanan dan ketersediaan dengan menyimpan salinan data Anda secara terpisah di beberapa zona atau region, dan secara otomatis menggagalkan antar-cluster jika diperlukan. Pelajari lebih lanjut cara menerapkan kasus penggunaan ini.
Menyediakan pencadangan hampir secara real-time
Dalam beberapa kasus—misalnya, jika Anda tidak dapat membaca data yang tidak berlaku—Anda harus selalu merutekan permintaan ke satu cluster. Namun, Anda masih dapat menggunakan replikasi dengan menangani permintaan dengan satu cluster dan menyimpan cluster lain sebagai cadangan yang mendekati real-time. Jika cluster penyaluran tidak tersedia, Anda dapat meminimalkan periode nonaktif dengan menggagalkan cluster cadangan secara manual. Pelajari lebih lanjut cara menerapkan kasus penggunaan ini.
Memastikan data Anda tersedia secara global
Anda dapat menyiapkan replikasi di lokasi di seluruh dunia untuk menempatkan data lebih dekat ke pelanggan. Misalnya, Anda dapat membuat instance dengan cluster replikasi di AS, Eropa, dan Asia, serta menyiapkan profil aplikasi untuk merutekan traffic aplikasi ke cluster terdekat. Pelajari lebih lanjut cara menerapkan kasus penggunaan ini.
Model konsistensi
Secara default, replikasi untuk Bigtable nantinya konsisten. Istilah ini berarti bahwa saat Anda menulis perubahan pada satu cluster, pada akhirnya Anda akan dapat membaca perubahan tersebut dari cluster lain dalam instance, tetapi hanya setelah perubahan tersebut direplikasi di antara cluster tersebut.
Jika instance Anda responsif, latensi untuk replikasi biasanya beberapa detik atau menit, bukan jam. Namun, jika Anda menulis data dalam jumlah besar ke sebuah cluster, atau jika cluster kelebihan beban atau tidak tersedia untuk sementara, replikasi mungkin perlu waktu untuk mengejar ketertinggalan tersebut. 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 penulisan memberikan cukup waktu pada Bigtable untuk mereplikasi perubahan tersebut.
Jika Anda memerlukan jaminan konsistensi yang berbeda, Bigtable juga dapat memberikan konsistensi baca-Anda-tulis saat replikasi diaktifkan, yang memastikan bahwa aplikasi tidak akan pernah membaca data yang lebih lama dari penulisan terbarunya. Untuk mendapatkan konsistensi read-your-write untuk grup aplikasi, setiap aplikasi dalam grup tersebut harus menggunakan profil aplikasi yang dikonfigurasi untuk perutean cluster tunggal, dan semua profil aplikasi harus mengarahkan permintaan ke cluster yang sama. Anda dapat menggunakan cluster tambahan instance secara bersamaan untuk tujuan lain.
Untuk beberapa kasus penggunaan replikasi, Bigtable juga dapat memberikan konsistensi yang kuat, yang memastikan bahwa semua aplikasi melihat data Anda dalam status yang sama. Untuk mendapatkan konsistensi yang kuat, gunakan konfigurasi profil aplikasi perutean cluster tunggal untuk konsistensi baca-Anda-tulis yang dijelaskan sebelumnya, tetapi Anda tidak boleh menggunakan cluster tambahan instance kecuali jika Anda perlu menggagalkan ke cluster yang berbeda. Tinjau contoh setelan replikasi untuk melihat apakah hal ini memungkinkan untuk kasus penggunaan Anda.
Resolusi konflik
Setiap nilai sel dalam tabel Bigtable diidentifikasi secara unik dengan empat tuple (kunci baris, grup kolom, penentu kolom, stempel waktu). Lihat Model penyimpanan Bigtable untuk mengetahui detail selengkapnya tentang ID ini. Jika dua penulisan dengan empat tuple yang sama persis dikirim ke dua cluster yang berbeda, Bigtable secara otomatis akan menyelesaikan konflik menggunakan algoritma last write wins internal berdasarkan waktu sisi server. Implementasi "last write wins" Bigtable bersifat deterministik, dan jika replikasi mengejar, semua cluster akan memiliki nilai yang sama untuk empat tuple tersebut.
Profil aplikasi
Jika instance menggunakan replikasi, gunakan profil aplikasi, atau profil aplikasi, untuk menentukan kebijakan perutean. Profil aplikasi juga menentukan apakah Anda dapat melakukan transaksi baris tunggal yang mencakup operasi baca-modifikasi-tulis (termasuk penambahan dan penambahan) serta operasi check-and-mutate (juga dikenal sebagai mutasi bersyarat atau penulisan bersyarat).
Untuk mengetahui detailnya, lihat Profil Aplikasi. Untuk contoh setelan yang dapat Anda gunakan untuk menerapkan kasus penggunaan umum, lihat Contoh Setelan Replikasi.
Kebijakan perutean
Setiap profil aplikasi memiliki kebijakan perutean yang mengontrol cluster mana yang menangani permintaan masuk dari aplikasi Anda. Opsi untuk kebijakan perutean mencakup hal berikut:
- Pemilihan rute cluster tunggal: Mengirim semua permintaan ke satu cluster yang Anda tentukan.
- Pemilihan rute multi-cluster ke cluster apa pun: Mengirim permintaan ke cluster terdekat yang tersedia dalam instance.
- Pemilihan rute grup cluster: Mengirim permintaan ke cluster terdekat yang tersedia dalam grup cluster yang Anda tentukan di setelan profil aplikasi.
Failover
Jika cluster Bigtable tidak responsif, replikasi memungkinkan traffic masuk untuk beralih ke cluster lain dalam instance yang sama. Failover dapat dilakukan secara 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
Dengan Cloud Bigtable Admin API, Anda dapat menghapus rentang baris yang berdekatan dari tabel berdasarkan kunci barisnya. Pada instance yang tidak menggunakan replikasi, Bigtable dapat menghapus rentang baris dengan cepat dan efisien. Namun, jika replikasi diaktifkan, penurunan rentang baris akan jauh lebih lambat dan sangat kurang efisien.
Langkah selanjutnya
- Temukan setelan replikasi yang tepat untuk kasus penggunaan Anda.
- Buat instance yang menggunakan replikasi.
- Mengaktifkan replikasi untuk instance yang ada.
- Pelajari setelan replikasi di profil aplikasi.
- Cari tahu cara menyelesaikan failover manual.