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

Commita25d308

Browse files
author
Sokolov Yura
committed
cfs: memset_hole in a page
clear hole between pd_lower and pd_upper of a page, so compression canefficiently eliminate this wasted space.
1 parent21654b5 commita25d308

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

‎src/backend/storage/page/bufpage.c

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -485,6 +485,17 @@ compactify_tuples(itemIdSort itemidbase, int nitems, Page page)
485485
phdr->pd_upper=upper;
486486
}
487487

488+
/*
489+
* Clean up space between pd_lower and pd_upper for better page compression.
490+
*/
491+
staticvoid
492+
memset_hole(Pagepage)
493+
{
494+
PageHeaderphdr= (PageHeader)page;
495+
if (phdr->pd_upper>phdr->pd_lower)
496+
memset((char*)page+phdr->pd_lower,0,phdr->pd_upper-phdr->pd_lower);
497+
}
498+
488499
/*
489500
* PageRepairFragmentation
490501
*
@@ -582,6 +593,7 @@ PageRepairFragmentation(Page page)
582593

583594
compactify_tuples(itemidbase,nstorage,page);
584595
}
596+
memset_hole(page);
585597

586598
/* Set hint bit for PageAddItem */
587599
if (nunused>0)
@@ -931,6 +943,7 @@ PageIndexMultiDelete(Page page, OffsetNumber *itemnos, int nitems)
931943

932944
/* and compactify the tuple data */
933945
compactify_tuples(itemidbase,nused,page);
946+
memset_hole(page);
934947
}
935948

936949
/*
@@ -1083,6 +1096,7 @@ PageIndexDeleteNoCompact(Page page, OffsetNumber *itemnos, int nitems)
10831096
*/
10841097
compactify_tuples(itemidbase,nline,page);
10851098
}
1099+
memset_hole(page);
10861100
}
10871101

10881102
/*

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp