AWS Sumber Terbuka pgactive Sambungan PostgreSQL Di Tengah Perdebatan Komuniti Mengenai Risiko Replikasi Multi-Master

Pasukan Komuniti BigGo
AWS Sumber Terbuka pgactive Sambungan PostgreSQL Di Tengah Perdebatan Komuniti Mengenai Risiko Replikasi Multi-Master

AWS telah secara rasmi menjadikan pgactive sebagai sumber terbuka, iaitu sambungan PostgreSQL yang membolehkan replikasi aktif-aktif merentasi berbilang contoh pangkalan data. Walaupun teknologi ini telah tersedia sebagai ciri dalam AWS RDS Postgres sejak 2023, pelepasan terkininya kepada komuniti telah mencetuskan perbincangan sengit mengenai kerumitan dan risiko persediaan pangkalan data multi-master.

Ciri-ciri Utama pgactive:

  • Replikasi aktif-aktif merentasi berbilang instans PostgreSQL
  • Penyelesaian konflik last-write-wins berdasarkan cap masa
  • Pengelogan konflik ke jadual pgactive_conflict_history
  • Dibina di atas replikasi logikal PostgreSQL
  • Menyokong penggunaan berbilang wilayah
  • Tersedia dalam AWS RDS Postgres sejak 2023

Janji dan Bahaya Replikasi Aktif-Aktif

Sambungan pgactive membenarkan berbilang contoh PostgreSQL menerima penulisan serentak, dengan perubahan direplikasi merentasi kluster menggunakan ciri replikasi logik PostgreSQL . Pendekatan ini bertujuan menyelesaikan cabaran biasa seperti mengurangkan kependaman penulisan merentasi wilayah dan mengekalkan ketersediaan tinggi semasa pembahagian rangkaian. Walau bagaimanapun, respons komuniti mendedahkan kebimbangan mendalam mengenai pertukaran asas yang terlibat.

Sambungan ini menggunakan strategi penyelesaian konflik tulisan-terakhir-menang berdasarkan cap masa, merekod transaksi yang bercanggah ke jadual khas untuk semakan kemudian. Walaupun ini kedengaran mudah, pakar pangkalan data memberi amaran bahawa pendekatan ini pada asasnya melanggar salah satu prinsip teras sistem pangkalan data.

Penyelesaian konflik tidak lebih daripada eufemisme untuk melanggar ketahanan dengan membuang data yang telah komited dan diakui.

Kritikan ini menyerlahkan isu asas: apabila konflik berlaku, data yang telah komited sebelum ini mungkin ditulis ganti secara senyap, melanggar jaminan ketahanan yang biasanya dijangka aplikasi daripada PostgreSQL .

Kerumitan Teknikal dan Cabaran Dunia Sebenar

Perbincangan komuniti mendedahkan bahawa pgactive terletak dalam ekosistem kompleks penyelesaian replikasi PostgreSQL . Teknologi ini dibina berdasarkan kerja terdahulu daripada syarikat seperti 2ndQuadrant (kini sebahagian daripada EDB ), yang membangunkan pelbagai lelaran alat replikasi logik termasuk BDR dan pglogical sepanjang dekad yang lalu.

Pelaksanaan teknikal bergantung pada replikasi logik terbina dalam PostgreSQL , tetapi menambah keupayaan pengesanan dan penyelesaian konflik. Apabila konflik timbul, sistem merekodkannya untuk penyelesaian manual yang berpotensi, tetapi tingkah laku lalai mengutamakan ketersediaan berbanding konsistensi. Pilihan reka bentuk ini menjadikan pgactive sesuai untuk kes penggunaan tertentu tetapi berpotensi berbahaya untuk aplikasi yang memerlukan integriti data yang ketat.

Pengamal pangkalan data menyatakan bahawa penggunaan yang berjaya biasanya memerlukan perancangan seni bina yang teliti. Aplikasi mesti direka dengan strategi pembahagian data di mana setiap wilayah atau contoh terutamanya menulis kepada subset datanya sendiri, meminimumkan konflik. Tanpa perancangan sedemikian, sistem boleh menghasilkan keputusan yang tidak dapat diramal yang memerlukan campur tangan manual untuk diselesaikan.

Garis Masa Evolusi Replikasi PostgreSQL:

  • BDR1: Sumber terbuka, asas untuk pgactive
  • PostgreSQL 10 (2017): Replikasi logikal natif ditambah
  • pglogical v1/v2: Sambungan replikasi logikal sumber terbuka
  • BDR v3/v4: Sumber tertutup, kemudiannya dinamakan semula kepada Postgres Distributed (PGD)
  • PGD v6: Penawaran komersial terkini daripada EDB
  • pgactive (2023): Ciri AWS RDS , dijadikan sumber terbuka pada 2024

Kes Penggunaan Terhad dan Alternatif

Konsensus komuniti mencadangkan bahawa pgactive menangani set keperluan yang sempit. Ia berfungsi terbaik untuk senario di mana pengedaran geografi adalah penting, pembahagian rangkaian dijangka, dan beberapa ketidakkonsistenan data boleh diterima. Contohnya termasuk sistem pengurusan kandungan, platform media sosial, atau beban kerja analitik di mana konsistensi akhirnya sudah memadai.

Untuk aplikasi yang memerlukan konsistensi yang kuat, pakar mengesyorkan sama ada berpegang pada persediaan PostgreSQL master tunggal tradisional dengan replika baca, atau beralih kepada pangkalan data teragih yang dibina khas seperti CockroachDB , FoundationDB , atau penyelesaian natif awan seperti Google Spanner .

Perbincangan juga mendedahkan bahawa banyak organisasi boleh berskala mengejutkan jauh dengan konfigurasi PostgreSQL master tunggal, mempersoalkan sama ada kerumitan operasi persediaan multi-master dibenarkan untuk kebanyakan kes penggunaan.

Penyelesaian Pangkalan Data Teragih Alternatif:

  • MySQL Group Replication: Replikasi segerak dengan konsensus majoriti
  • Galera: Plugin replikasi MySQL dengan penulisan segerak
  • CockroachDB: Pangkalan data SQL teragih
  • FoundationDB: Stor nilai-kunci dengan sifat ACID
  • Google Spanner: Pangkalan data teragih natif awan
  • Oracle Database: Multi-master dengan perkakasan khusus

Kesimpulan

Walaupun pgactive mewakili usaha kejuruteraan yang ketara dan mengisi niche tertentu dalam ekosistem PostgreSQL , respons komuniti menggariskan cabaran yang wujud dalam sistem pangkalan data teragih. Pelepasan sumber terbuka sambungan ini menyediakan ketelusan mengenai pertukaran ini, tetapi juga berfungsi sebagai peringatan bahawa tiada penyelesaian mudah untuk ketegangan asas antara konsistensi, ketersediaan, dan toleransi pembahagian dalam sistem teragih.

Untuk kebanyakan organisasi, nasihat kekal jelas: nilai dengan teliti sama ada faedah replikasi aktif-aktif mengatasi kerumitan operasi dan isu konsistensi data yang berpotensi. Daya tarikan menggoda persediaan multi-master sering menyamarkan kepakaran mendalam yang diperlukan untuk melaksanakannya dengan selamat.

Nota: Replikasi logik adalah ciri PostgreSQL yang menangkap dan mereplikasi perubahan data dalam format yang boleh ditafsir dan diubah suai sebelum digunakan pada pangkalan data sasaran.

Rujukan: Active-active Replication Extension for PostgreSQL (pgactive)