2012-08-30 9 views
14

Non riesco a trovare un buon riepilogo dei vantaggi/svantaggi dell'utilizzo di pgbouncer per il pooling delle transazioni o il pooling delle sessioni.Quali sono i vantaggi dell'utilizzo del pool di transazioni con pgbouncer?

Significa che un carico di lavoro pesante per le transazioni è in qualche modo migliore bilanciato del carico? È necessario impedire il numero di connessioni necessarie per connettersi da pgbouncer al database?

risposta

22

Il pooling a livello di transazione è utile se si dispone di app che contengono sessioni inattive. PgBouncer non ha bisogno di mantenere le sessioni aperte e inattive, ne prende una solo quando viene avviata una nuova transazione. Quelle sessioni inattive ti costano solo una connessione pgbouncer, non una sessione Pg inattiva reale con un backend in giro sprecando memoria overhead di sincronizzazione & senza fare nulla.

Il motivo principale per cui si desidera il pool di sessioni anziché il pool di transazioni è se si desidera utilizzare istruzioni preparate, blocchi di avviso, ascolto/notifica o altre funzionalità che operano a livello di sessione e non a livello di transazione.