Re: Attempt to consolidate reading of XLOG page
Michael Paquier <michael@paquier.xyz>
From: Michael Paquier <michael@paquier.xyz>
To: Antonin Houska <ah@cybertec.at>
Cc: Alvaro Herrera <alvherre@2ndquadrant.com>, Thomas Munro <thomas.munro@gmail.com>, Robert Haas <robertmhaas@gmail.com>, "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>
Date: 2019-11-22T00:49:03Z
Lists: pgsql-hackers
On Thu, Nov 21, 2019 at 05:05:50PM +0900, Michael Paquier wrote: > And with WAL segments at 1MB, I was seeing quite a slowdown with the > patch... Then I have done an extra test with pg_waldump with the > segments generated previously with the output redirected to /dev/null. > Going through 512 segments takes 15.730s with HEAD (average of 3 runs) > and 15.851s with the patch. Here are more tests with pg_waldump and 1MB/1GB segment sizes with records generated from pgbench, (7 runs, eliminated the two highest and two lowest, these are the remaining 3 runs as real time): 1) 1MB segment size, 512 segments: time pg_waldump 000000010000000100000C00 000000010000000100000F00 > /dev/null - HEAD: 0m4.512s, 0m4.446s, 0m4.501s - Patch + system's pg_read: 0m4.495s, 0m4.502s, 0m4.486s - Patch + fallback pg_read: 0m4.505s, 0m4.527s, 0m4.495s 2) 1GB segment size, 3 segments: time pg_waldump 000000010000000200000001 000000010000000200000003 > /dev/null - HEAD: 0m11.802s, 0m11.834s, 0m11.846s - Patch + system's pg_read: 0m11.939s, 0m11.991s, 0m11.966s - Patch + fallback pg_read: 0m12.054s, 0m12.066s, 0m12.159s So there is a tendency for a small slowdown here. Still it is not that much, so I withdraw my concerns. Another thing: +void WALReadRaiseError(WALReadError *errinfo); This is missing an "extern" declaration. Alvaro, you are marked as a committer of this CF entry. Are you planning to look at it again? Sorry for the delay from my side. -- Michael
Commits
-
Remove logical_read_local_xlog_page
- 5d0c2d5eba6b 13.0 landed
-
Refactor WAL file-reading code into WALRead()
- 0dc8ead46363 13.0 landed
-
Rework WAL-reading supporting structs
- 709d003fbd98 13.0 landed
-
Make XLogReaderInvalReadState static
- 25dcc9d35dfe 13.0 landed
-
Use pg_pread() and pg_pwrite() for data files and WAL.
- c24dcd0cfd94 12.0 cited