17 पॉइंट द्वारा xguru 2025-05-08 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Rust + Tokio में लिखा गया PostgreSQL transaction pooling + sharding + load balancing टूल, जो सैकड़ों databases और लाखों connections को कुशलता से मैनेज करता है
  • PgBouncer की तरह काम करते हुए भी, query analysis और replication को सपोर्ट करने वाला PostgreSQL-विशेष application layer (OSI L7) proxy
  • Kubernetes और Docker के साथ आसानी से deploy किया जा सकता है, और cluster configuration, load balancing, replication, तथा multi-shard management को एक ही configuration से संभाल सकता है
  • अपनी logical replication management क्षमता के साथ, मौजूदा PostgreSQL cluster को बिना downtime के sharding के साथ scale out किया जा सकता है

मुख्य विशेषताएँ

  • लोड बैलेंसिंग

    • OSI Layer 7 पर PostgreSQL queries के आधार पर traffic distribution
    • SELECT को replicas की ओर, और INSERT/UPDATE आदि को primary node की ओर अपने-आप route करता है
    • रणनीतियाँ: round robin, random, least active connections आदि का समर्थन
    • failure होने पर real-time health checks और automatic failover
  • ट्रांज़ैक्शन पूलिंग

    • PgBouncer की तरह, session/transaction-स्तरीय pooling का समर्थन
    • लाखों clients को कुछ PostgreSQL connections के साथ संभाल सकता है
  • शार्डिंग और रेप्लिकेशन

    • SQL analysis के जरिए shard key निकालकर, query को संबंधित shard पर अपने-आप भेजता है
    • cross-shard queries में results को memory में जोड़कर उपयोगकर्ता को एकल response देता है
    • COPY command को भी shard-स्तर पर विभाजित करके प्रोसेस करता है
    • logical replication support: बिना downtime के मौजूदा DB को sharding के साथ scale out किया जा सकता है
  • रीयल-टाइम configuration बदलाव

    • PgBouncer-स्टाइल .toml settings का उपयोग, बिना restart के configuration बदला जा सकता है
    • user-आधारित authentication, database-आधारित connections, और shard जानकारी तक configure की जा सकती है
  • मॉनिटरिंग

    • standard PgBouncer management port + OpenMetrics support
    • Datadog integration examples और dashboard शामिल

1 टिप्पणियां

 
kaydash 2025-05-08

मैं multi-master कॉन्फ़िगरेशन में patroni इस्तेमाल कर रहा हूँ
अगर सेटअप में read requests ज़्यादा हैं, तो इसे maxscale की तरह इस्तेमाल करके देखा जा सकता है