Re: [HACKERS] increasing the default WAL segment size
От | Jim Nasby |
---|---|
Тема | Re: [HACKERS] increasing the default WAL segment size |
Дата | |
Msg-id | 41573363-1026-2352-4a61-e8ea8866f989@BlueTreble.com обсуждение исходный текст |
Ответ на | Re: [HACKERS] increasing the default WAL segment size (David Rowley <david.rowley@2ndquadrant.com>) |
Ответы |
Re: [HACKERS] increasing the default WAL segment size
|
Список | pgsql-hackers |
On 1/4/17 10:03 PM, David Rowley wrote: >> I recall taht pow(x, 2) and x * x result usually in the same assembly >> code, but pow() can never be more optimal than a simple >> multiplication. So I'd think that it is wiser to avoid it in this code >> path. Documentation is missing for the new replication command >> SHOW_WAL_SEG. Actually, why not just having an equivalent of the SQL >> command and be able to query parameter values? > This would probably be nicer written using a bitwise trick to ensure > that no lesser significant bits are set. If it's a power of 2, then > subtracting 1 should have all the lesser significant bits as 1, so > binary ANDing to that should be 0. i.e no common bits. > > Something like: > > /* ensure segment size is a power of 2 */ > if ((wal_segment_size & (wal_segment_size - 1)) != 0) > { > fprintf(stderr, _("%s: WAL segment size must be in the power of > 2\n"), progname); > exit(1); > } > > There's a similar trick in bitmapset.c for RIGHTMOST_ONE, so looks > like we already have assumptions about two's complement arithmetic Well, now that there's 3 places that need to do almost the same thing, I think it'd be best to just centralize this somewhere. I realize that's not going to save any significant amount of code, but it would make it crystal clear what's going on (assuming the excellent comment above RIGHTMOST_ONE was kept). -- Jim Nasby, Data Architect, Blue Treble Consulting, Austin TX Experts in Analytics, Data Architecture and PostgreSQL Data in Trouble? Get it in Treble! http://BlueTreble.com 855-TREBLE2 (855-873-2532)
В списке pgsql-hackers по дате отправления: