Re: Proposal: "Causal reads" mode for load balancing reads without stale data
От | Simon Riggs |
---|---|
Тема | Re: Proposal: "Causal reads" mode for load balancing reads without stale data |
Дата | |
Msg-id | CANP8+jK8xBm7p2YhFvCqsV2j5+M=D_R20xcuqt_GYr3RqidLqg@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Proposal: "Causal reads" mode for load balancing reads without stale data (Craig Ringer <craig@2ndquadrant.com>) |
Список | pgsql-hackers |
On 16 November 2015 at 11:01, Craig Ringer <craig@2ndquadrant.com> wrote:
--
On 16 November 2015 at 18:44, Simon Riggs <simon@2ndquadrant.com> wrote:The pooler knows which statements are reads and writesI think that's an iffy assumption.
It's not an assumption, its a requirement. If it can't do this in some manner then you can't use a load balancing pooler.
Randomly submitting things works as well, since it leads to a write error when you try to write data on a read only server, so you do then learn whether it is a read or a write. Once you know its a write, you submit to master. But you still need to be careful of other effects, so that isn't recommended.
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 doesSELECT 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 masterIf a pooler had insight into the catalogs and if we had readonly / readwrite attributes on functions, it could be smarter.
pgpool supports white/black function listing for exactly this reason.
Simon Riggs http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
В списке pgsql-hackers по дате отправления: