From: | Fujii Masao <masao(dot)fujii(at)gmail(dot)com> |
---|---|
To: | Robert Haas <robertmhaas(at)gmail(dot)com> |
Cc: | Andres Freund <andres(at)2ndquadrant(dot)com>, Tatsuo Ishii <ishii(at)postgresql(dot)org>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Function to know last log write timestamp |
Date: | 2014-08-14 17:51:44 |
Message-ID: | CAHGQGwE7mXUxoqbiK4fQV=NQ4Kf8pEMz4VTwqOoqtdpdXmB_Xw@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Fri, Aug 15, 2014 at 1:55 AM, Robert Haas <robertmhaas(at)gmail(dot)com> wrote:
> On Mon, Aug 11, 2014 at 3:20 AM, Fujii Masao <masao(dot)fujii(at)gmail(dot)com> wrote:
>> There is no extra spinlock.
>
> The version I reviewed had one; that's what I was objecting to.
Sorry for confusing you. I posted the latest patch to other thread.
This version doesn't use any spinlock.
> Might need to add some pg_read_barrier() and pg_write_barrier() calls,
> since we have those now.
Yep, memory barries might be needed as follows.
* Set the commit timestamp to shared memory.
shmem->counter++;
pg_write_barrier();
shmem->timestamp = my_timestamp;
pg_write_barrier();
shmem->count++;
* Read the commit timestamp from shared memory
my_count = shmem->counter;
pg_read_barrier();
my_timestamp = shmem->timestamp;
pg_read_barrier();
my_count = shmem->counter;
Is this way to use memory barriers right?
Regards,
--
Fujii Masao
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2014-08-14 17:57:14 | Re: jsonb format is pessimal for toast compression |
Previous Message | Peter Geoghegan | 2014-08-14 17:24:55 | Re: B-Tree support function number 3 (strxfrm() optimization) |