Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit46441e6

Browse files
committed
ptrack_9.6.2_EE_v1.2
1 parent745dcbe commit46441e6

Some content is hidden

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

45 files changed

+1258
-18
lines changed

‎src/backend/access/brin/brin.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
#include"access/reloptions.h"
2323
#include"access/relscan.h"
2424
#include"access/xloginsert.h"
25+
#include"access/ptrack.h"
2526
#include"catalog/index.h"
2627
#include"catalog/pg_am.h"
2728
#include"miscadmin.h"
@@ -685,6 +686,7 @@ brinbuildempty(Relation index)
685686
LockBuffer(metabuf,BUFFER_LOCK_EXCLUSIVE);
686687

687688
/* Initialize and xlog metabuffer. */
689+
ptrack_add_block(index,BufferGetBlockNumber(metabuf));
688690
START_CRIT_SECTION();
689691
brin_metapage_init(BufferGetPage(metabuf),BrinGetPagesPerRange(index),
690692
BRIN_CURRENT_VERSION);

‎src/backend/access/brin/brin_pageops.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
#include"access/brin_revmap.h"
1616
#include"access/brin_xlog.h"
1717
#include"access/xloginsert.h"
18+
#include"access/ptrack.h"
1819
#include"miscadmin.h"
1920
#include"storage/bufmgr.h"
2021
#include"storage/freespace.h"
@@ -177,6 +178,7 @@ brin_doupdate(Relation idxrel, BlockNumber pagesPerRange,
177178
UnlockReleaseBuffer(newbuf);
178179
}
179180

181+
ptrack_add_block(idxrel,BufferGetBlockNumber(oldbuf));
180182
START_CRIT_SECTION();
181183
PageIndexDeleteNoCompact(oldpage,&oldoff,1);
182184
if (PageAddItemExtended(oldpage, (Item)newtup,newsz,oldoff,
@@ -237,6 +239,9 @@ brin_doupdate(Relation idxrel, BlockNumber pagesPerRange,
237239

238240
revmapbuf=brinLockRevmapPageForUpdate(revmap,heapBlk);
239241

242+
ptrack_add_block(idxrel,BufferGetBlockNumber(newbuf));
243+
ptrack_add_block(idxrel,BufferGetBlockNumber(oldbuf));
244+
ptrack_add_block(idxrel,BufferGetBlockNumber(revmapbuf));
240245
START_CRIT_SECTION();
241246

242247
/*
@@ -408,6 +413,8 @@ brin_doinsert(Relation idxrel, BlockNumber pagesPerRange,
408413
blk=BufferGetBlockNumber(*buffer);
409414

410415
/* Execute the actual insertion */
416+
ptrack_add_block(idxrel,BufferGetBlockNumber(*buffer));
417+
ptrack_add_block(idxrel,BufferGetBlockNumber(revmapbuf));
411418
START_CRIT_SECTION();
412419
if (extended)
413420
brin_page_init(BufferGetPage(*buffer),BRIN_PAGETYPE_REGULAR);
@@ -862,6 +869,7 @@ brin_initialize_empty_new_buffer(Relation idxrel, Buffer buffer)
862869
"brin_initialize_empty_new_buffer: initializing blank page %u",
863870
BufferGetBlockNumber(buffer)));
864871

872+
ptrack_add_block(idxrel,BufferGetBlockNumber(buffer));
865873
START_CRIT_SECTION();
866874
page=BufferGetPage(buffer);
867875
brin_page_init(page,BRIN_PAGETYPE_REGULAR);

‎src/backend/access/brin/brin_revmap.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
#include"access/brin_xlog.h"
2828
#include"access/rmgr.h"
2929
#include"access/xloginsert.h"
30+
#include"access/ptrack.h"
3031
#include"miscadmin.h"
3132
#include"storage/bufmgr.h"
3233
#include"storage/lmgr.h"
@@ -475,6 +476,8 @@ revmap_physical_extend(BrinRevmap *revmap)
475476
* Ok, we have now locked the metapage and the target block. Re-initialize
476477
* it as a revmap page.
477478
*/
479+
ptrack_add_block(irel,BufferGetBlockNumber(buf));
480+
ptrack_add_block(irel,BufferGetBlockNumber(revmap->rm_metaBuf));
478481
START_CRIT_SECTION();
479482

480483
/* the rm_tids array is initialized to all invalid by PageInit */

‎src/backend/access/brin/brin_xlog.c

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
#include"access/brin_pageops.h"
1515
#include"access/brin_xlog.h"
1616
#include"access/xlogutils.h"
17+
#include"access/ptrack.h"
1718

1819

1920
/*
@@ -26,6 +27,11 @@ brin_xlog_createidx(XLogReaderState *record)
2627
xl_brin_createidx*xlrec= (xl_brin_createidx*)XLogRecGetData(record);
2728
Bufferbuf;
2829
Pagepage;
30+
RelFileNodernode;
31+
BlockNumberblkno;
32+
33+
XLogRecGetBlockTag(record,0,&rnode,NULL,&blkno);
34+
ptrack_add_block_redo(rnode,blkno);
2935

3036
/* create the index' metapage */
3137
buf=XLogInitBufferForRedo(record,0);
@@ -50,6 +56,13 @@ brin_xlog_insert_update(XLogReaderState *record,
5056
BlockNumberregpgno;
5157
Pagepage;
5258
XLogRedoActionaction;
59+
RelFileNodernode;
60+
BlockNumberblkno;
61+
62+
XLogRecGetBlockTag(record,0,&rnode,NULL,&blkno);
63+
ptrack_add_block_redo(rnode,blkno);
64+
XLogRecGetBlockTag(record,1,&rnode,NULL,&blkno);
65+
ptrack_add_block_redo(rnode,blkno);
5366

5467
/*
5568
* If we inserted the first and only tuple on the page, re-initialize the
@@ -137,9 +150,15 @@ brin_xlog_update(XLogReaderState *record)
137150
xl_brin_update*xlrec= (xl_brin_update*)XLogRecGetData(record);
138151
Bufferbuffer;
139152
XLogRedoActionaction;
153+
RelFileNodernode;
154+
BlockNumberblkno;
155+
156+
XLogRecGetBlockTag(record,2,&rnode,NULL,&blkno);
157+
ptrack_add_block_redo(rnode,blkno);
140158

141159
/* First remove the old tuple */
142160
action=XLogReadBufferForRedo(record,2,&buffer);
161+
143162
if (action==BLK_NEEDS_REDO)
144163
{
145164
Pagepage;
@@ -174,9 +193,15 @@ brin_xlog_samepage_update(XLogReaderState *record)
174193
xl_brin_samepage_update*xlrec;
175194
Bufferbuffer;
176195
XLogRedoActionaction;
196+
RelFileNodernode;
197+
BlockNumberblkno;
198+
199+
XLogRecGetBlockTag(record,0,&rnode,NULL,&blkno);
200+
ptrack_add_block_redo(rnode,blkno);
177201

178202
xlrec= (xl_brin_samepage_update*)XLogRecGetData(record);
179203
action=XLogReadBufferForRedo(record,0,&buffer);
204+
180205
if (action==BLK_NEEDS_REDO)
181206
{
182207
Sizetuplen;
@@ -220,14 +245,21 @@ brin_xlog_revmap_extend(XLogReaderState *record)
220245
Pagepage;
221246
BlockNumbertargetBlk;
222247
XLogRedoActionaction;
248+
RelFileNodernode;
249+
BlockNumberblkno;
223250

224251
xlrec= (xl_brin_revmap_extend*)XLogRecGetData(record);
225252

226-
XLogRecGetBlockTag(record,1,NULL,NULL,&targetBlk);
253+
XLogRecGetBlockTag(record,0,&rnode,NULL,&blkno);
254+
ptrack_add_block_redo(rnode,blkno);
255+
XLogRecGetBlockTag(record,1,&rnode,NULL,&targetBlk);
256+
ptrack_add_block_redo(rnode,targetBlk);
257+
227258
Assert(xlrec->targetBlk==targetBlk);
228259

229260
/* Update the metapage */
230261
action=XLogReadBufferForRedo(record,0,&metabuf);
262+
231263
if (action==BLK_NEEDS_REDO)
232264
{
233265
Pagemetapg;

‎src/backend/access/gin/ginbtree.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
#include"access/gin_private.h"
1818
#include"access/xloginsert.h"
19+
#include"access/ptrack.h"
1920
#include"miscadmin.h"
2021
#include"utils/memutils.h"
2122
#include"utils/rel.h"
@@ -385,6 +386,9 @@ ginPlaceToPage(GinBtree btree, GinBtreeStack *stack,
385386
elseif (rc==GPTP_INSERT)
386387
{
387388
/* It will fit, perform the insertion */
389+
ptrack_add_block(btree->index,BufferGetBlockNumber(stack->buffer));
390+
if (BufferIsValid(childbuf))
391+
ptrack_add_block(btree->index,BufferGetBlockNumber(childbuf));
388392
START_CRIT_SECTION();
389393

390394
if (RelationNeedsWAL(btree->index)&& !btree->isBuild)
@@ -534,6 +538,12 @@ ginPlaceToPage(GinBtree btree, GinBtreeStack *stack,
534538
* the new contents of the root.
535539
*/
536540

541+
ptrack_add_block(btree->index,BufferGetBlockNumber(rbuffer));
542+
ptrack_add_block(btree->index,BufferGetBlockNumber(stack->buffer));
543+
if (stack->parent==NULL)
544+
ptrack_add_block(btree->index,BufferGetBlockNumber(lbuffer));
545+
if (BufferIsValid(childbuf))
546+
ptrack_add_block(btree->index,BufferGetBlockNumber(childbuf));
537547
START_CRIT_SECTION();
538548

539549
MarkBufferDirty(rbuffer);

‎src/backend/access/gin/gindatapage.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
#include"access/gin_private.h"
1818
#include"access/xloginsert.h"
19+
#include"access/ptrack.h"
1920
#include"lib/ilist.h"
2021
#include"miscadmin.h"
2122
#include"utils/rel.h"
@@ -835,6 +836,7 @@ ginVacuumPostingTreeLeaf(Relation indexrel, Buffer buffer, GinVacuumState *gvs)
835836
computeLeafRecompressWALData(leaf);
836837

837838
/* Apply changes to page */
839+
ptrack_add_block(indexrel,BufferGetBlockNumber(buffer));
838840
START_CRIT_SECTION();
839841

840842
dataPlaceToPageLeafRecompress(buffer,leaf);
@@ -1811,6 +1813,7 @@ createPostingTree(Relation index, ItemPointerData *items, uint32 nitems,
18111813
page=BufferGetPage(buffer);
18121814
blkno=BufferGetBlockNumber(buffer);
18131815

1816+
ptrack_add_block(index,BufferGetBlockNumber(buffer));
18141817
START_CRIT_SECTION();
18151818

18161819
PageRestoreTempPage(tmppage,page);

‎src/backend/access/gin/ginfast.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
#include"access/gin_private.h"
2222
#include"access/xloginsert.h"
23+
#include"access/ptrack.h"
2324
#include"access/xlog.h"
2425
#include"commands/vacuum.h"
2526
#include"catalog/pg_am.h"
@@ -67,6 +68,7 @@ writeListPage(Relation index, Buffer buffer,
6768
/* workspace could be a local array; we use palloc for alignment */
6869
workspace=palloc(BLCKSZ);
6970

71+
ptrack_add_block(index,BufferGetBlockNumber(buffer));
7072
START_CRIT_SECTION();
7173

7274
GinInitBuffer(buffer,GIN_LIST);
@@ -293,6 +295,7 @@ ginHeapTupleFastInsert(GinState *ginstate, GinTupleCollector *collector)
293295
/*
294296
* Main list is empty, so just insert sublist as main list
295297
*/
298+
ptrack_add_block(index,BufferGetBlockNumber(metabuffer));
296299
START_CRIT_SECTION();
297300

298301
metadata->head=sublist.head;
@@ -316,6 +319,8 @@ ginHeapTupleFastInsert(GinState *ginstate, GinTupleCollector *collector)
316319

317320
Assert(GinPageGetOpaque(page)->rightlink==InvalidBlockNumber);
318321

322+
ptrack_add_block(index,BufferGetBlockNumber(metabuffer));
323+
ptrack_add_block(index,BufferGetBlockNumber(buffer));
319324
START_CRIT_SECTION();
320325

321326
GinPageGetOpaque(page)->rightlink=sublist.head;
@@ -358,6 +363,8 @@ ginHeapTupleFastInsert(GinState *ginstate, GinTupleCollector *collector)
358363
if (needWal)
359364
XLogBeginInsert();
360365

366+
ptrack_add_block(index,BufferGetBlockNumber(metabuffer));
367+
ptrack_add_block(index,BufferGetBlockNumber(buffer));
361368
START_CRIT_SECTION();
362369

363370
/*
@@ -553,6 +560,7 @@ shiftList(Relation index, Buffer metabuffer, BlockNumber newHead,
553560
if (RelationNeedsWAL(index))
554561
XLogEnsureRecordSpace(data.ndeleted,0);
555562

563+
ptrack_add_block(index,BufferGetBlockNumber(metabuffer));
556564
START_CRIT_SECTION();
557565

558566
metadata->head=blknoToDelete;

‎src/backend/access/gin/gininsert.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
#include"access/gin_private.h"
1818
#include"access/xloginsert.h"
1919
#include"access/generic_xlog.h"
20+
#include"access/ptrack.h"
2021
#include"catalog/index.h"
2122
#include"miscadmin.h"
2223
#include"storage/bufmgr.h"
@@ -337,6 +338,8 @@ ginbuild(Relation heap, Relation index, IndexInfo *indexInfo)
337338
/* initialize the root page */
338339
RootBuffer=GinNewBuffer(index);
339340

341+
ptrack_add_block(index,BufferGetBlockNumber(MetaBuffer));
342+
ptrack_add_block(index,BufferGetBlockNumber(RootBuffer));
340343
START_CRIT_SECTION();
341344
GinInitMetabuffer(MetaBuffer);
342345
MarkBufferDirty(MetaBuffer);
@@ -430,6 +433,8 @@ ginbuildempty(Relation index)
430433
LockBuffer(RootBuffer,BUFFER_LOCK_EXCLUSIVE);
431434

432435
/* Initialize and xlog metabuffer and root buffer. */
436+
ptrack_add_block(index,BufferGetBlockNumber(MetaBuffer));
437+
ptrack_add_block(index,BufferGetBlockNumber(RootBuffer));
433438
START_CRIT_SECTION();
434439
GinInitMetabuffer(MetaBuffer);
435440
MarkBufferDirty(MetaBuffer);

‎src/backend/access/gin/ginutil.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
#include"access/gin_private.h"
1818
#include"access/reloptions.h"
1919
#include"access/xloginsert.h"
20+
#include"access/ptrack.h"
2021
#include"catalog/pg_collation.h"
2122
#include"catalog/pg_type.h"
2223
#include"miscadmin.h"
@@ -639,6 +640,7 @@ ginUpdateStats(Relation index, const GinStatsData *stats, bool is_build)
639640
metapage=BufferGetPage(metabuffer);
640641
metadata=GinPageGetMeta(metapage);
641642

643+
ptrack_add_block(index,BufferGetBlockNumber(metabuffer));
642644
START_CRIT_SECTION();
643645

644646
metadata->nTotalPages=stats->nTotalPages;

‎src/backend/access/gin/ginvacuum.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
#include"access/gin_private.h"
1818
#include"access/xloginsert.h"
19+
#include"access/ptrack.h"
1920
#include"commands/vacuum.h"
2021
#include"miscadmin.h"
2122
#include"postmaster/autovacuum.h"
@@ -209,6 +210,9 @@ ginDeletePage(GinVacuumState *gvs, BlockNumber deleteBlkno, BlockNumber leftBlkn
209210
* LockBufferForCleanup() */
210211
LockBuffer(pBuffer,GIN_EXCLUSIVE);
211212

213+
ptrack_add_block(gvs->index,BufferGetBlockNumber(pBuffer));
214+
ptrack_add_block(gvs->index,BufferGetBlockNumber(lBuffer));
215+
ptrack_add_block(gvs->index,BufferGetBlockNumber(dBuffer));
212216
START_CRIT_SECTION();
213217

214218
/* Unlink the page by changing left sibling's rightlink */
@@ -603,6 +607,7 @@ ginbulkdelete(IndexVacuumInfo *info, IndexBulkDeleteResult *stats,
603607

604608
if (resPage)
605609
{
610+
ptrack_add_block(gvs.index,BufferGetBlockNumber(buffer));
606611
START_CRIT_SECTION();
607612
PageRestoreTempPage(resPage,page);
608613
MarkBufferDirty(buffer);

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp