Re: Proposal: "Causal reads" mode for load balancing reads without stale data

From: Simon Riggs <simon(at)2ndQuadrant(dot)com>
To: Thomas Munro <thomas(dot)munro(at)enterprisedb(dot)com>
Cc: Pg Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Proposal: "Causal reads" mode for load balancing reads without stale data
Date: 2015-11-11 08:23:59
Message-ID: CANP8+jJn5nWx8dgbxiG6weCqPKTMOoodM8BSKy0234RM9O76bw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 11 November 2015 at 05:37, Thomas Munro <thomas(dot)munro(at)enterprisedb(dot)com>
wrote:

Many sites use hot standby servers to spread read-heavy workloads over more
> hardware, or at least would like to. This works well today if your
> application can tolerate some time lag on standbys. The problem is that
> there is no guarantee of when a particular commit will become visible for
> clients connected to standbys. The existing synchronous commit feature is
> no help here because it guarantees only that the WAL has been flushed on
> another server before commit returns. It says nothing about whether it has
> been applied or whether it has been applied on the standby that you happen
> to be talking to.
>

Thanks for working on this issue.

> 3. Commit on the primary with "causal_reads = on" waits for all
> 'available' standbys either to apply the commit record, or to cease to be
> 'available' and begin raising the error if they are still alive (because
> their authorizations have expired).
>

This causes every writer to wait.

What we want is to isolate the wait only to people performing a write-read
sequence, so I think it should be readers that wait. Let's have that debate
up front before we start reviewing the patch.

--
Simon Riggs http://www.2ndQuadrant.com/
<http://www.2ndquadrant.com/>
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Heikki Linnakangas 2015-11-11 08:42:55 Re: Proposal: "Causal reads" mode for load balancing reads without stale data
Previous Message Torsten Zühlsdorff 2015-11-11 08:02:20 Re: can we add SKIP LOCKED to UPDATE?