From: | Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> |
---|---|
To: | Bruce Momjian <bruce(at)momjian(dot)us> |
Cc: | Heikki Linnakangas <hlinnakangas(at)vmware(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgreSQL(dot)org> |
Subject: | Re: Further XLogInsert scaling tweaking |
Date: | 2013-09-03 16:33:19 |
Message-ID: | 20130903163319.GB5227@eldon.alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Bruce Momjian wrote:
> On Mon, Sep 2, 2013 at 10:14:03AM +0300, Heikki Linnakangas wrote:
> > diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c
> > index 39c58d0..28e62ea 100644
> > - XLogInsertSlotPadded *insertSlots;
> > + /*
> > + * Make sure the above heavily-contended spinlock and byte positions are
> > + * on their own cache line. In particular, the RedoRecPtr and full page
> > + * write variables below should be on a different cache line. They are
> > + * read on every WAL insertion, but updated rarely, and we don't want
> > + * those reads to steal the cache line containing Curr/PrevBytePos.
> > + */
> > + char pad[128];
>
> Do we adjust for cache line lengths anywhere else? PGPROC? Should it
> be a global define?
We have LWLockPadded in lwlock.c; it only adjusts the size of the struct
to be a power of 2.
--
Álvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2013-09-03 16:56:53 | Re: Backup throttling |
Previous Message | Robert Haas | 2013-09-03 16:28:58 | Re: Freezing without write I/O |