17 poin oleh xguru 2025-05-08 | 1 komentar | Bagikan ke WhatsApp
  • Alat pooling transaksi + sharding + load balancing PostgreSQL yang ditulis dengan Rust + Tokio, mampu mengelola ratusan database dan ratusan ribu koneksi secara efisien
  • Bekerja mirip PgBouncer, tetapi merupakan proxy lapisan aplikasi (OSI L7) khusus PostgreSQL yang juga mendukung analisis kueri dan replikasi
  • Dapat dideploy dengan mudah menggunakan Kubernetes dan Docker, serta menangani konfigurasi klaster, load balancing, replikasi, hingga pengelolaan multi-shard dalam satu konfigurasi
  • Dengan kemampuan manajemen replikasi logis bawaan, dapat memperluas klaster PostgreSQL yang sudah ada menjadi sharding tanpa downtime

Fitur utama

  • Load balancing

    • Mendistribusikan trafik berdasarkan kueri PostgreSQL di OSI Layer 7
    • SELECT diarahkan otomatis ke replika, sedangkan INSERT/UPDATE dan sejenisnya ke node utama
    • Mendukung strategi: round robin, random, least active connections, dan lainnya
    • Health check real-time dan failover otomatis saat terjadi gangguan
  • Pooling transaksi

    • Seperti PgBouncer, mendukung pooling per sesi/transaksi
    • Dapat melayani ratusan ribu klien dengan hanya beberapa koneksi PostgreSQL
  • Sharding dan replikasi

    • Melalui analisis SQL, mengekstrak shard key dan otomatis meneruskan kueri ke shard yang sesuai
    • Untuk kueri lintas shard, menggabungkan hasil di memori dan memberikan satu respons terpadu kepada pengguna
    • Perintah COPY juga diproses dengan pemisahan per shard
    • Mendukung replikasi logis: memungkinkan perluasan sharding pada DB yang sudah ada tanpa downtime
  • Perubahan konfigurasi real-time

    • Menggunakan konfigurasi .toml bergaya PgBouncer, konfigurasi dapat diubah tanpa restart
    • Dapat mengatur autentikasi per pengguna, koneksi per database, hingga informasi shard
  • Pemantauan

    • Mendukung port administrasi standar PgBouncer + OpenMetrics
    • Menyertakan contoh integrasi dan dashboard Datadog

1 komentar

 
kaydash 2025-05-08

Saya menggunakan patroni untuk konfigurasi multi-master,
kalau konfigurasinya punya banyak permintaan baca, sepertinya layak dicoba seperti maxscale.