PolarDB untuk PostgreSQL mendukung fitur pemisahan baca/tulis. Jika Anda menggunakan titik akhir kluster dengan mode baca/tulis Baca dan Tulis (Pemisahan Baca/Tulis Otomatis), titik akhir tersebut secara otomatis meneruskan permintaan baca dan tulis ke node yang sesuai.
Informasi latar belakang
Jika sejumlah besar permintaan baca tetapi hanya sedikit permintaan tulis dikirim ke database, satu node mungkin tidak dapat menangani beban kerja tersebut, yang dapat memengaruhi layanan. Dengan menggunakan titik akhir kluster dalam mode Baca dan Tulis (Pemisahan Baca/Tulis Otomatis), permintaan tulis akan diteruskan ke node utama, sementara permintaan baca diteruskan ke node baca-saja. Hal ini meningkatkan kemampuan baca secara elastis untuk menangani volume permintaan baca yang tinggi.
Manfaat
Pemeliharaan Mudah Berdasarkan Titik Akhir Terpadu
Tanpa menggunakan titik akhir kluster dalam mode Baca dan Tulis (Pemisahan Baca/Tulis Otomatis), Anda harus mengonfigurasi titik akhir node utama dan setiap node baca-saja di aplikasi Anda agar permintaan tulis dan baca dapat diteruskan ke node yang tepat. Namun, dengan menghubungkan aplikasi Anda ke titik akhir kluster dalam mode ini, titik akhir kluster secara otomatis meneruskan permintaan ke node yang relevan, mengurangi biaya pemeliharaan. Anda hanya perlu menambahkan node baca-saja untuk meningkatkan kapasitas pemrosesan kluster tanpa perlu memodifikasi aplikasi.
Konsistensi Baca Tingkat Sesi
Saat klien terhubung melalui titik akhir kluster, proksi bawaan untuk pemisahan baca/tulis secara otomatis membuat koneksi ke node utama dan setiap node baca-saja. Dalam sesi yang sama, proksi memilih node berdasarkan kemajuan sinkronisasi data dari setiap node database. Kemudian, proksi meneruskan permintaan baca dan tulis ke node dengan data paling mutakhir, menyeimbangkan beban antar node.
Distribusi Merata Pernyataan PREPARE
Pernyataan PREPARE yang berisi operasi tulis dan pernyataan EXECUTE terkait hanya dikirim ke node utama. Pernyataan PREPARE yang berisi operasi baca-saja disiarkan ke semua node, dan pernyataan EXECUTE terkait dirutekan berdasarkan beban pada node-node tersebut, mencapai keseimbangan beban untuk permintaan kueri.
Dukungan untuk Tautan Keamanan Tinggi Asli dan Peningkatan Performa
Anda dapat membangun proksi sendiri di cloud untuk pemisahan baca/tulis, namun latensi berlebihan dapat terjadi karena data diurai dan diteruskan oleh beberapa komponen sebelum sampai di database. PolarDB menggunakan proksi bawaan sebagai komponen kluster untuk pemisahan baca/tulis, memberikan latensi lebih rendah dan kecepatan pemrosesan data lebih tinggi dibandingkan komponen eksternal.
Pemeriksaan Kesehatan Node untuk Meningkatkan Ketersediaan Database
Modul pemisahan baca/tulis PolarDB melakukan pemeriksaan kesehatan pada node utama dan node baca-saja kluster. Jika suatu node gagal atau latensinya melebihi ambang batas tertentu, PolarDB menghentikan distribusi permintaan baca ke node tersebut dan mendistribusikan permintaan ke node lain yang sehat. Setelah node pulih, PolarDB secara otomatis menambahkannya kembali ke daftar node yang tersedia.
Batasan
PolarDB tidak mendukung pernyataan atau fitur berikut:
Hubungkan ke kluster melalui metode replication-mode. Untuk menyiapkan kluster dua node berdasarkan arsitektur replikasi utama/sekunder, gunakan titik akhir node utama.
Gunakan nama tabel sementara untuk mendeklarasikan atribut %ROWTYPE.
create temp table fullname (first text, last text); select '(Joe,von Blow)'::fullname, '(Joe,d''Blow)'::fullname;Buat sumber daya sementara dengan menggunakan fungsi.
Jika Anda membuat tabel sementara dengan menggunakan fungsi dan menjalankan pernyataan SQL untuk menanyakan tabel sementara, pesan kesalahan mungkin dikembalikan yang menunjukkan bahwa tabel tidak ada.
Jika fungsi Anda berisi pernyataan PREPARE, pesan kesalahan mungkin dikembalikan saat Anda menjalankan pernyataan EXECUTE, menunjukkan bahwa nama pernyataan PREPARE tidak ada.
Pembatasan Terkait Routing:
Permintaan dalam transaksi dirutekan ke node utama, dan keseimbangan beban dilanjutkan setelah transaksi dihentikan.
Semua fungsi yang melibatkan operasi tulis atau operasi baca-tulis campuran dirutekan ke node utama. Semua fungsi baca-saja, termasuk fungsi baca-saja yang disesuaikan, dirutekan ke node baca-saja.
Buat atau modifikasi titik akhir kluster
Untuk informasi lebih lanjut tentang cara membuat titik akhir kluster kustom, lihat Konfigurasikan PolarProxy.
Untuk informasi lebih lanjut tentang cara memodifikasi titik akhir kluster, lihat Konfigurasikan PolarProxy.
Konfigurasikan pemisahan transaksi
Untuk informasi lebih lanjut, lihat Pemisahan Transaksi.
Tentukan tingkat konsistensi
Untuk informasi lebih lanjut, lihat Tingkat Konsistensi.
Tambahkan petunjuk untuk menentukan arah routing pernyataan SQL
Tambahkan petunjuk /*FORCE_MASTER*/ atau /*FORCE_SLAVE*/ sebelum pernyataan SQL untuk menentukan arah routing. Secara default, pernyataan SELECT * FROM test dirutekan ke node baca-saja. Jika Anda mengubah pernyataan menjadi /*FORCE_MASTER*/ SELECT * FROM test, pernyataan tersebut dirutekan ke node utama.
Hubungkan ke kluster PolarDB untuk PostgreSQL
Hubungkan ke Kluster PolarDB untuk PostgreSQL
Setelah titik akhir kluster dibuat, Anda hanya perlu mengonfigurasi titik akhir kluster di aplikasi Anda untuk mencapai pemisahan baca/tulis otomatis.
Operasi terkait
API | Deskripsi |
Membuat titik akhir publik untuk kluster PolarDB. | |
Meminta informasi titik akhir tentang kluster PolarDB. | |
Memodifikasi konfigurasi titik akhir kluster untuk kluster PolarDB. | |
Memodifikasi titik akhir untuk kluster PolarDB, misalnya, titik akhir kluster kustom. | |
Melepaskan titik akhir publik dari titik akhir utama, titik akhir kluster default, atau titik akhir kluster kustom untuk kluster PolarDB. |