PgDog Dilancarkan sebagai Penyelesaian Sharding PostgreSQL Berasaskan Rust dengan Sokongan Query Cross-Shard

BigGo Editorial Team
PgDog Dilancarkan sebagai Penyelesaian Sharding PostgreSQL Berasaskan Rust dengan Sokongan Query Cross-Shard

Sebuah alat pengurusan PostgreSQL baharu yang dipanggil PgDog telah muncul, berjanji untuk menyelesaikan salah satu masalah paling mencabar dalam dunia pangkalan data: sharding automatik dengan pengendalian query yang telus. Dibina dalam Rust dan dilesenkan di bawah AGPL v3, projek sumber terbuka ini bertujuan untuk menjadikan penskalaan PostgreSQL semudah mungkin untuk pembangun.

Ciri-ciri Utama:

  • Pengumpulan transaksi yang menyokong ratusan ribu sambungan
  • Pengimbangan beban lapisan aplikasi ( OSI Level 7 ) dengan pelbagai strategi
  • Penghuraian pertanyaan automatik dan penghalaan shard menggunakan penghurai asli PostgreSQL
  • Pemasangan hasil pertanyaan merentas shard dalam memori
  • Penghurai CSV terbina dalam untuk memisahkan arahan COPY merentas shard
  • Sokongan protokol replikasi logik untuk resharding secara langsung

Sharding Telus dengan Kecerdasan Cross-Shard

Aspek yang paling menarik tentang PgDog terletak pada pendekatannya terhadap query teragih. Tidak seperti penyelesaian sharding tradisional yang memerlukan aplikasi untuk menyedari pengedaran data, PgDog beroperasi pada lapisan rangkaian sambil mengekalkan keserasian PostgreSQL. Alat ini menggunakan parser asli PostgreSQL untuk memahami query, mengekstrak kunci sharding, dan secara automatik mengarahkan permintaan ke shard yang sesuai.

Apabila query merangkumi berbilang shard, PgDog menyusun hasil dalam memori sebelum menghantarnya kepada klien. Ketelusan ini bermakna aplikasi sedia ada boleh mendapat manfaat daripada sharding tanpa perubahan kod. Walau bagaimanapun, pendekatan ini menimbulkan persoalan penting tentang prestasi dan penggunaan sumber yang komuniti tidak sabar untuk meneroka.

Persoalan Prestasi dan Kebimbangan Dunia Sebenar

Maklum balas awal komuniti menyerlahkan jurang penting dalam penanda aras semasa. Walaupun PgDog menunjukkan prestasi yang mengagumkan untuk pooling sambungan standard, ujian sebenar datang dengan parsing query dan operasi cross-shard.

Salah satu projek Postgres yang paling menarik yang pernah saya lihat dalam beberapa tahun. Penanda aras yang dibentangkan nampaknya hanya menangani pooling standard, saya ingin melihat bagaimana rupanya setelah parsing query dan cross-shard join dimainkan.

Kebimbangan ini mencerminkan skeptisisme industri yang lebih luas tentang penyelesaian sharding telus. Overhed pengiraan untuk parsing setiap query, digabungkan dengan keperluan memori untuk menyusun hasil cross-shard, boleh memberi kesan yang ketara kepada prestasi di bawah beban berat.

Tangkapan skrin ini mempamerkan repositori GitHub untuk projek PgDog, mencerminkan perbincangan berterusan tentang prestasi dan penanda arasnya
Tangkapan skrin ini mempamerkan repositori GitHub untuk projek PgDog, mencerminkan perbincangan berterusan tentang prestasi dan penanda arasnya

Ketersediaan Tinggi dan Cabaran Operasi

Pendekatan projek terhadap ketersediaan tinggi mendedahkan kedua-dua kekuatan dan batasan. PgDog mengendalikan berbilang proxy frontend melalui konfigurasi yang disegerakkan dan bukannya mekanisme konsensus. Pilihan reka bentuk ini mengelakkan senario split-brain yang kompleks tetapi memerlukan koordinasi deployment yang teliti.

Untuk deployment tanpa masa henti, pendekatan yang disyorkan melibatkan menjeda trafik, memuatkan semula konfigurasi, dan menyambung semula operasi dalam beberapa saat. Walaupun ini berfungsi untuk penyelenggaraan yang dirancang, ia tidak menangani kegagalan yang tidak dijangka di mana deployment blue-green dengan load balancer TCP menjadi perlu.

Keperluan Konfigurasi:

  • Konfigurasi Utama: pgdog.toml (tetapan am dan maklumat pelayan)
  • Konfigurasi Pengguna: users.toml (butiran pengesahan)
  • Pemantauan: titik akhir OpenMetrics dan pangkalan data pentadbir gaya PgBouncer
  • Penggunaan: Didorong konfigurasi dengan muat semula yang diselaraskan untuk berbilang proksi

Model Perniagaan dan Pertimbangan Pelesenan

Lesen AGPL v3 PgDog telah mencetuskan perbincangan tentang penggunaan enterprise. Lesen ini membenarkan penggunaan dalaman dan modifikasi peribadi tanpa berkongsi kod sumber, tetapi memerlukan organisasi yang menawarkan PgDog sebagai perkhidmatan awam untuk berkongsi modifikasi mereka.

Pasukan pembangunan merancang untuk memonetisasi melalui deployment terurus dan perkhidmatan sokongan, mengikuti corak yang telah ditetapkan dalam perisian infrastruktur. Walau bagaimanapun, sesetengah organisasi kekal berhati-hati tentang pelesenan AGPL walaupun terdapat penjelasan daripada pembangun.

Memandang ke Hadapan

PgDog mewakili percubaan yang bercita-cita tinggi untuk menyelesaikan cabaran penskalaan mendatar PostgreSQL melalui proxying pintar. Kejayaan projek ini sebahagian besarnya bergantung pada sejauh mana ia mengendalikan implikasi prestasi sharding telus dan sama ada ia dapat memenuhi janjinya untuk skalabiliti yang lancar.

Memandangkan projek ini masih dalam peringkat awal, bakal pengguna disarankan untuk menguji secara menyeluruh kes penggunaan khusus mereka, terutamanya yang melibatkan query cross-shard yang kompleks. Bulan-bulan akan datang akan mendedahkan sama ada PgDog dapat merapatkan jurang antara kebolehpercayaan PostgreSQL dan tuntutan penskalaan aplikasi moden.

Rujukan: PgDog