PolarDB-X menerapkan arsitektur ketersediaan tinggi dengan RPO=0. Topik ini menjelaskan prinsip teknis di balik penerapan ketersediaan tinggi oleh PolarDB-X.
Prinsip teknis
PolarDB-X menggunakan arsitektur data multi-replika (misalnya tiga atau lima replika). Untuk menjamin konsistensi kuat (RPO=0) antarreplika, protokol replikasi mayoritas Paxos diterapkan, yang mengharuskan konfirmasi dari lebih dari separuh node untuk setiap operasi penulisan. Bahkan jika satu node gagal, kluster tetap dapat menyediakan layanan secara normal. Algoritma Paxos menjamin konsistensi kuat antarreplika, sehingga sepenuhnya menghilangkan risiko ketidakkonsistenan replika.
Pada PolarDB-X, replika data diklasifikasikan menjadi dua jenis berdasarkan keadaan mesin keadaan data: Normal dan Logger. Selain itu, berdasarkan partisipasinya dalam pemungutan suara dan pemilihan, replika dalam grup replikasi dibagi lebih lanjut menjadi peran-peran berikut:
|
Peran Replika |
Jenis Peran |
Deskripsi |
|
Leader |
Normal |
Leader bertanggung jawab memproses permintaan client dan membuat keputusan. Leader menyimpan log untuk memastikan konsistensi data dan kemampuan pemulihan. |
|
Follower |
Normal |
Follower menerima dan mengeksekusi instruksi dari leader. Ketika leader gagal atau tidak dapat diakses, follower dapat dipilih sebagai leader baru. |
|
Logger |
Logger |
Logger mirip dengan peran follower dan hanya menyediakan layanan protokol mayoritas tanpa menyediakan layanan data. Ketika leader gagal atau tidak dapat diakses, logger berpartisipasi dalam pemungutan suara pemilihan leader dan mungkin sementara terpilih sebagai leader. Namun, logger tidak menyediakan layanan data. Setelah replika follower mayoritas lainnya menyelesaikan sinkronisasi log, logger secara proaktif melepaskan peran leader. |
|
Learner |
Normal |
Learner hanya dapat menerima informasi keadaan sistem secara pasif dan tidak dapat berpartisipasi dalam pemungutan suara atau pengambilan keputusan, sehingga tidak memengaruhi sistem. |
Instans utama dan instans hanya baca

-
DN instans utama: Terdiri dari dua replika data (Normal) dan satu replika log (Logger). Karena replika log (Logger) hanya menyimpan log tanpa menyimpan data, replika ini membutuhkan sumber daya yang sangat sedikit. Dengan demikian, konfigurasi tiga replika ini dapat mencapai biaya yang mendekati pendekatan tradisional dua replika primary-standby.
-
DN instans hanya baca: Menggunakan satu replika data berbasis peran Learner untuk melakukan sinkronisasi data secara asinkron dari instans utama. Replika ini tidak berpartisipasi dalam pemungutan suara maupun pengambilan keputusan protokol Paxos. Oleh karena itu, kegagalan instans hanya baca tidak memengaruhi instans utama, sehingga memenuhi persyaratan isolasi kesalahan untuk instans hanya baca.
Disaster recovery ketersediaan tinggi
PolarDB-X menyediakan beberapa konfigurasi disaster recovery untuk DN instans utama berdasarkan arsitektur multi-replika Paxos:
|
Mode Penyebaran |
Strategi Replika |
Kemampuan Disaster Recovery |
|
Single zone |
Tiga replika (2 replika data + 1 replika log) |
|
|
Three zones |
Tiga replika (2 replika data + 1 replika log) |
|
|
Geo-redundancy (two regions, three data centers) |
Lima replika (5 replika data) |
|
PolarDB-X menyesuaikan konfigurasi DN instans hanya baca sesuai dengan konfigurasi disaster recovery DN instans utama:
|
Mode Penyebaran Instans Utama |
Strategi Replika Instans Hanya Baca |
|
Single zone |
Satu replika. Wilayah harus sama dengan instans utama, tetapi zona dapat berbeda. |
|
Three zones |
|
|
Geo-redundancy (two regions, three data centers) |
Satu replika. Wilayah harus sama dengan wilayah utama instans utama, tetapi zona dapat berbeda. |
Contoh ketersediaan tinggi:
