From: | Amit Langote <Langote_Amit_f8(at)lab(dot)ntt(dot)co(dot)jp> |
---|---|
To: | Thomas Munro <thomas(dot)munro(at)enterprisedb(dot)com> |
Cc: | Michael Paquier <michael(dot)paquier(at)gmail(dot)com>, Thom Brown <thom(at)linux(dot)com>, Jim Nasby <Jim(dot)Nasby(at)bluetreble(dot)com>, Simon Riggs <simon(at)2ndquadrant(dot)com>, Heikki Linnakangas <hlinnaka(at)iki(dot)fi>, Pg Hackers <pgsql-hackers(at)postgresql(dot)org>, Robert Haas <robertmhaas(at)gmail(dot)com> |
Subject: | Re: Proposal: "Causal reads" mode for load balancing reads without stale data |
Date: | 2016-03-01 01:46:03 |
Message-ID: | 56D4F45B.9080408@lab.ntt.co.jp |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi,
On 2016/02/29 18:05, Thomas Munro wrote:
> On Mon, Feb 29, 2016 at 9:05 PM, Amit Langote wrote:
>> + servers. A transaction that is run with
>> <varname>causal_reads</> set
>> + to <literal>on</> is guaranteed either to see the effects of all
>> + completed transactions run on the primary with the setting on, or to
>> + receive an error "standby is not available for causal reads".
>>
>> "A transaction that is run" means "A transaction that is run on a
>> standby", right?
>
> Well, it could be any server, standby or primary. Of course standbys
> are the interesting case since it it was already true that if you run
> two sequential transactions run on the primary, the second can see the
> effect of the first, but I like the idea of a general rule that
> applies anywhere, allowing you not to care which server it is.
I meant actually in context of that sentence only.
>> By the way, is there some discussion in our existing
>> documentation to refer to about causal consistency in single node case? I
>> don't know maybe that will help ease into the new feature. Grepping the
>> existing source tree doesn't reveal the term "causal", so maybe even a
>> single line in the patch mentioning "single node operation trivially
>> implies (or does it?) causal consistency" would help. Thoughts?
>
> Hmm. Where should such a thing go? I probably haven't introduced the
> term well enough. I thought for a moment about putting something
> here:
>
> http://www.postgresql.org/docs/devel/static/sql-commit.html
>
> "All changes made by the transaction become visible to others ..." --
> which others? But I backed out, that succinct account of COMMIT is 20
> years old, and in any case visibility is tied to committing, not
> specifically to the COMMIT command. But perhaps this patch really
> should include something there that refers back to the causal reads
> section.
I see. I agree this is not exactly material for the COMMIT page. Perhaps
somewhere under "Chapter 13. Concurrency Control" with cross-reference
to/from "25.5. Hot Standby". Might be interesting to hear from others as
well.
Thanks,
Amit
From | Date | Subject | |
---|---|---|---|
Next Message | Jim Nasby | 2016-03-01 01:47:53 | Re: Convert pltcl from strings to objects |
Previous Message | Abhijit Menon-Sen | 2016-03-01 01:27:45 | Re: dealing with extension dependencies that aren't quite 'e' |