Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 2076db2

Browse files
committed
Move the backup-block logic from XLogInsert to a new file, xloginsert.c.
xlog.c is huge, this makes it a little bit smaller, which is nice. Functions related to putting together the WAL record are in xloginsert.c, and the lower level stuff for managing WAL buffers and such are in xlog.c. Also move the definition of XLogRecord to a separate header file. This causes churn in the #includes of all the files that write WAL records, and redo routines, but it avoids pulling in xlog.h into most places. Reviewed by Michael Paquier, Alvaro Herrera, Andres Freund and Amit Kapila.
1 parent d2b8a2c commit 2076db2

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

84 files changed

+1123
-856
lines changed

contrib/pg_xlogdump/pg_xlogdump.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515
#include <dirent.h>
1616
#include <unistd.h>
1717

18-
#include "access/xlog.h"
1918
#include "access/xlogreader.h"
19+
#include "access/xlogrecord.h"
2020
#include "access/transam.h"
2121
#include "common/fe_memutils.h"
2222
#include "getopt_long.h"

doc/src/sgml/wal.sgml

+7-7
Original file line numberDiff line numberDiff line change
@@ -578,12 +578,12 @@
578578

579579
<para>
580580
There are two commonly used internal <acronym>WAL</acronym> functions:
581-
<function>XLogInsert</function> and <function>XLogFlush</function>.
582-
<function>XLogInsert</function> is used to place a new record into
581+
<function>XLogInsertRecord</function> and <function>XLogFlush</function>.
582+
<function>XLogInsertRecord</function> is used to place a new record into
583583
the <acronym>WAL</acronym> buffers in shared memory. If there is no
584-
space for the new record, <function>XLogInsert</function> will have
584+
space for the new record, <function>XLogInsertRecord</function> will have
585585
to write (move to kernel cache) a few filled <acronym>WAL</acronym>
586-
buffers. This is undesirable because <function>XLogInsert</function>
586+
buffers. This is undesirable because <function>XLogInsertRecord</function>
587587
is used on every database low level modification (for example, row
588588
insertion) at a time when an exclusive lock is held on affected
589589
data pages, so the operation needs to be as fast as possible. What
@@ -594,7 +594,7 @@
594594
made, for the most part, at transaction commit time to ensure that
595595
transaction records are flushed to permanent storage. On systems
596596
with high log output, <function>XLogFlush</function> requests might
597-
not occur often enough to prevent <function>XLogInsert</function>
597+
not occur often enough to prevent <function>XLogInsertRecord</function>
598598
from having to do writes. On such systems
599599
one should increase the number of <acronym>WAL</acronym> buffers by
600600
modifying the <xref linkend="guc-wal-buffers"> parameter. When
@@ -683,7 +683,7 @@
683683
Enabling the <xref linkend="guc-wal-debug"> configuration parameter
684684
(provided that <productname>PostgreSQL</productname> has been
685685
compiled with support for it) will result in each
686-
<function>XLogInsert</function> and <function>XLogFlush</function>
686+
<function>XLogInsertRecord</function> and <function>XLogFlush</function>
687687
<acronym>WAL</acronym> call being logged to the server log. This
688688
option might be replaced by a more general mechanism in the future.
689689
</para>
@@ -708,7 +708,7 @@
708708
building the server). Each segment is divided into pages, normally
709709
8 kB each (this size can be changed via the <option>--with-wal-blocksize</>
710710
configure option). The log record headers are described in
711-
<filename>access/xlog.h</filename>; the record content is dependent
711+
<filename>access/xlogrecord.h</filename>; the record content is dependent
712712
on the type of event that is being logged. Segment files are given
713713
ever-increasing numbers as names, starting at
714714
<filename>000000010000000000000000</filename>. The numbers do not wrap,

src/backend/access/gin/ginbtree.c

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
#include "postgres.h"
1616

1717
#include "access/gin_private.h"
18+
#include "access/xloginsert.h"
1819
#include "miscadmin.h"
1920
#include "utils/rel.h"
2021

src/backend/access/gin/gindatapage.c

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
#include "postgres.h"
1616

1717
#include "access/gin_private.h"
18+
#include "access/xloginsert.h"
1819
#include "lib/ilist.h"
1920
#include "miscadmin.h"
2021
#include "utils/memutils.h"

src/backend/access/gin/ginentrypage.c

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
#include "postgres.h"
1616

1717
#include "access/gin_private.h"
18+
#include "access/xloginsert.h"
1819
#include "miscadmin.h"
1920
#include "utils/rel.h"
2021

src/backend/access/gin/ginfast.c

+1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
#include "postgres.h"
2020

2121
#include "access/gin_private.h"
22+
#include "access/xloginsert.h"
2223
#include "commands/vacuum.h"
2324
#include "miscadmin.h"
2425
#include "utils/memutils.h"

src/backend/access/gin/gininsert.c

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
#include "postgres.h"
1616

1717
#include "access/gin_private.h"
18+
#include "access/xloginsert.h"
1819
#include "catalog/index.h"
1920
#include "miscadmin.h"
2021
#include "storage/bufmgr.h"

src/backend/access/gin/ginutil.c

+1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
#include "access/gin_private.h"
1818
#include "access/reloptions.h"
19+
#include "access/xloginsert.h"
1920
#include "catalog/pg_collation.h"
2021
#include "catalog/pg_type.h"
2122
#include "miscadmin.h"

src/backend/access/gin/ginvacuum.c

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
#include "postgres.h"
1616

1717
#include "access/gin_private.h"
18+
#include "access/xloginsert.h"
1819
#include "commands/vacuum.h"
1920
#include "miscadmin.h"
2021
#include "postmaster/autovacuum.h"

src/backend/access/gist/gistbuild.c

+1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
#include "access/genam.h"
2020
#include "access/gist_private.h"
21+
#include "access/xloginsert.h"
2122
#include "catalog/index.h"
2223
#include "miscadmin.h"
2324
#include "optimizer/cost.h"

src/backend/access/gist/gistxlog.c

+1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
#include "postgres.h"
1515

1616
#include "access/gist_private.h"
17+
#include "access/xloginsert.h"
1718
#include "access/xlogutils.h"
1819
#include "utils/memutils.h"
1920

src/backend/access/heap/heapam.c

+2
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@
5151
#include "access/valid.h"
5252
#include "access/visibilitymap.h"
5353
#include "access/xact.h"
54+
#include "access/xlog.h"
55+
#include "access/xloginsert.h"
5456
#include "access/xlogutils.h"
5557
#include "catalog/catalog.h"
5658
#include "catalog/namespace.h"

src/backend/access/heap/pruneheap.c

+1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
#include "access/heapam_xlog.h"
1919
#include "access/transam.h"
2020
#include "access/htup_details.h"
21+
#include "access/xlog.h"
2122
#include "catalog/catalog.h"
2223
#include "miscadmin.h"
2324
#include "pgstat.h"

src/backend/access/heap/rewriteheap.c

+1
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@
113113
#include "access/transam.h"
114114
#include "access/tuptoaster.h"
115115
#include "access/xact.h"
116+
#include "access/xloginsert.h"
116117

117118
#include "catalog/catalog.h"
118119

src/backend/access/heap/visibilitymap.c

+1
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@
8484

8585
#include "access/heapam_xlog.h"
8686
#include "access/visibilitymap.h"
87+
#include "access/xlog.h"
8788
#include "miscadmin.h"
8889
#include "storage/bufmgr.h"
8990
#include "storage/lmgr.h"

src/backend/access/nbtree/nbtinsert.c

+1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
#include "access/heapam.h"
1919
#include "access/nbtree.h"
2020
#include "access/transam.h"
21+
#include "access/xloginsert.h"
2122
#include "miscadmin.h"
2223
#include "storage/lmgr.h"
2324
#include "storage/predicate.h"

src/backend/access/nbtree/nbtpage.c

+2
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424

2525
#include "access/nbtree.h"
2626
#include "access/transam.h"
27+
#include "access/xlog.h"
28+
#include "access/xloginsert.h"
2729
#include "miscadmin.h"
2830
#include "storage/indexfsm.h"
2931
#include "storage/lmgr.h"

src/backend/access/nbtree/nbtree.c

+1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
#include "access/nbtree.h"
2222
#include "access/relscan.h"
23+
#include "access/xlog.h"
2324
#include "catalog/index.h"
2425
#include "commands/vacuum.h"
2526
#include "storage/indexfsm.h"

src/backend/access/nbtree/nbtsort.c

+2
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@
6767
#include "postgres.h"
6868

6969
#include "access/nbtree.h"
70+
#include "access/xlog.h"
71+
#include "access/xloginsert.h"
7072
#include "miscadmin.h"
7173
#include "storage/smgr.h"
7274
#include "tcop/tcopprot.h"

src/backend/access/nbtree/nbtxlog.c

+2
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
#include "access/heapam_xlog.h"
1818
#include "access/nbtree.h"
1919
#include "access/transam.h"
20+
#include "access/xlog.h"
21+
#include "access/xlogutils.h"
2022
#include "storage/procarray.h"
2123
#include "miscadmin.h"
2224

src/backend/access/spgist/spgdoinsert.c

+1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
#include "postgres.h"
1717

1818
#include "access/genam.h"
19+
#include "access/xloginsert.h"
1920
#include "access/spgist_private.h"
2021
#include "miscadmin.h"
2122
#include "storage/bufmgr.h"

src/backend/access/spgist/spginsert.c

+2
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818

1919
#include "access/genam.h"
2020
#include "access/spgist_private.h"
21+
#include "access/xlog.h"
22+
#include "access/xloginsert.h"
2123
#include "catalog/index.h"
2224
#include "miscadmin.h"
2325
#include "storage/bufmgr.h"

src/backend/access/spgist/spgvacuum.c

+1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
#include "access/genam.h"
1919
#include "access/spgist_private.h"
2020
#include "access/transam.h"
21+
#include "access/xloginsert.h"
2122
#include "catalog/storage_xlog.h"
2223
#include "commands/vacuum.h"
2324
#include "miscadmin.h"

src/backend/access/spgist/spgxlog.c

+1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
#include "access/spgist_private.h"
1818
#include "access/transam.h"
19+
#include "access/xlog.h"
1920
#include "access/xlogutils.h"
2021
#include "storage/standby.h"
2122
#include "utils/memutils.h"

src/backend/access/transam/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ include $(top_builddir)/src/Makefile.global
1414

1515
OBJS = clog.o transam.o varsup.o xact.o rmgr.o slru.o subtrans.o multixact.o \
1616
timeline.o twophase.o twophase_rmgr.o xlog.o xlogarchive.o xlogfuncs.o \
17-
xlogreader.o xlogutils.o
17+
xloginsert.o xlogreader.o xlogutils.o
1818

1919
include $(top_srcdir)/src/backend/common.mk
2020

src/backend/access/transam/clog.c

+3
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@
3535
#include "access/clog.h"
3636
#include "access/slru.h"
3737
#include "access/transam.h"
38+
#include "access/xlog.h"
39+
#include "access/xloginsert.h"
40+
#include "access/xlogutils.h"
3841
#include "miscadmin.h"
3942
#include "pg_trace.h"
4043

src/backend/access/transam/multixact.c

+2
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,8 @@
7272
#include "access/twophase.h"
7373
#include "access/twophase_rmgr.h"
7474
#include "access/xact.h"
75+
#include "access/xlog.h"
76+
#include "access/xloginsert.h"
7577
#include "catalog/pg_type.h"
7678
#include "commands/dbcommands.h"
7779
#include "funcapi.h"

src/backend/access/transam/twophase.c

+1
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
#include "access/twophase_rmgr.h"
4949
#include "access/xact.h"
5050
#include "access/xlog.h"
51+
#include "access/xloginsert.h"
5152
#include "access/xlogutils.h"
5253
#include "catalog/pg_type.h"
5354
#include "catalog/storage.h"

src/backend/access/transam/varsup.c

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
#include "access/subtrans.h"
1818
#include "access/transam.h"
1919
#include "access/xact.h"
20+
#include "access/xlog.h"
2021
#include "commands/dbcommands.h"
2122
#include "miscadmin.h"
2223
#include "postmaster/autovacuum.h"

src/backend/access/transam/xact.c

+2
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@
2525
#include "access/transam.h"
2626
#include "access/twophase.h"
2727
#include "access/xact.h"
28+
#include "access/xlog.h"
29+
#include "access/xloginsert.h"
2830
#include "access/xlogutils.h"
2931
#include "catalog/catalog.h"
3032
#include "catalog/namespace.h"

0 commit comments

Comments
 (0)