2016-10-29 5 views
2

私はポストグルシーケンスをキャッシュCREATE SEQUENCE serial CACHE 100で使いたいです。 目標は、1秒あたりの3000回の使用率をSELECT nextval('serial');〜500接続/アプリケーションスレッドで同時に向上させることです。PgBouncerはpostgresqlセッションシーケンスキャッシュを再利用しますか?

集中的な自動スケーリングを行い、接続が切断され、接続が切断されるたびにシーケンスで使用されていないIDの「穴」を残して接続が再接続されることが問題です。

まあ、私はPgBouncer heroku buildpackをトランザクションプールモードで使用している可能性があります。

質問:トランザクションプールモードは、私が記述した "穴"の問題を解決しますか?次のアプリケーション接続がこのセッションをプールから引き継いでセッションを再利用し、シーケンス?

答えて

1

これは、server_reset_queryの設定によって異なります。 DISCARD ALLに設定すると、接続されたサーバーがクライアントに渡される前に順序キャッシュが破棄されます。しかし、トランザクションプールの場合は、server_reset_queryが空であるため、その場合はシーケンスキャッシュを再利用することができます。必要に応じて別のDISCARDコマンドを使用することもできます。

関連する問題