Re: Proposal: "Causal reads" mode for load balancing reads without stale data
От | Craig Ringer |
---|---|
Тема | Re: Proposal: "Causal reads" mode for load balancing reads without stale data |
Дата | |
Msg-id | CAMsr+YEWgRTk2hDaNEGjuNpXrLkm1=478mCOLCEsQN6=mh+jQQ@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Proposal: "Causal reads" mode for load balancing reads without stale data (Simon Riggs <simon@2ndQuadrant.com>) |
Ответы |
Re: Proposal: "Causal reads" mode for load balancing reads
without stale data
|
Список | pgsql-hackers |
On 16 November 2015 at 18:44, Simon Riggs <simon@2ndquadrant.com> wrote:
The pooler knows which statements are reads and writes
I think that's an iffy assumption. It's one we tend to make because otherwise read/write pooling won't work, but in PostgreSQL there's really no way to know when calling a function.
What does
SELECT get_user_stats()
do? The pooler has _no_ _idea_ unless manually configured with knowledge about particular user defined functions.
In the absence of such knowledge it can:
- send the work to a replica and report the ERROR to the user if it fails due to an attempted write;
- send the work to a replica, capture an ERROR due to attempted write, and retry on the master;
- send everything it's not sure about to the master
If a pooler had insight into the catalogs and if we had readonly / readwrite attributes on functions, it could be smarter.
I would like to see a load balancing pooler in Postgres.
В списке pgsql-hackers по дате отправления: