forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commit3c3b8a4
committed
Truncate line pointer array during VACUUM.
Teach VACUUM to truncate the line pointer array of each heap page when acontiguous group of LP_UNUSED line pointers appear at the end of thearray -- these unused and unreferenced items are excluded. This processoccurs during VACUUM's second pass over the heap, right after LP_DEADline pointers on the page (those encountered/pruned during the firstpass) are marked LP_UNUSED.Truncation avoids line pointer bloat with certain workloads,particularly those involving continual range DELETEs and bulk INSERTsagainst the same table.Also harden heapam code to check for an out-of-range page offset numberin places where we weren't already doing so.Author: Matthias van de Meent <boekewurm+postgres@gmail.com>Author: Peter Geoghegan <pg@bowt.ie>Reviewed-By: Masahiko Sawada <sawada.mshk@gmail.com>Reviewed-By: Peter Geoghegan <pg@bowt.ie>Discussion:https://postgr.es/m/CAEze2WjgaQc55Y5f5CQd3L=eS5CZcff2Obxp=O6pto8-f0hC4w@mail.gmail.comDiscussion:https://postgr.es/m/CAH2-Wzn6a64PJM1Ggzm=uvx2otsopJMhFQj_g1rAj4GWr3ZSzw@mail.gmail.com1 parent3db826b commit3c3b8a4
File tree
5 files changed
+144
-11
lines changed- src
- backend
- access/heap
- storage/page
- include/storage
5 files changed
+144
-11
lines changedLines changed: 17 additions & 5 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
635 | 635 |
| |
636 | 636 |
| |
637 | 637 |
| |
| 638 | + | |
| 639 | + | |
| 640 | + | |
| 641 | + | |
| 642 | + | |
| 643 | + | |
638 | 644 |
| |
639 |
| - | |
| 645 | + | |
| 646 | + | |
640 | 647 |
| |
641 | 648 |
| |
642 | 649 |
| |
| |||
678 | 685 |
| |
679 | 686 |
| |
680 | 687 |
| |
| 688 | + | |
| 689 | + | |
| 690 | + | |
| 691 | + | |
| 692 | + | |
| 693 | + | |
| 694 | + | |
681 | 695 |
| |
682 | 696 |
| |
683 | 697 |
| |
| |||
8556 | 8570 |
| |
8557 | 8571 |
| |
8558 | 8572 |
| |
8559 |
| - | |
8560 |
| - | |
8561 |
| - | |
8562 |
| - | |
| 8573 | + | |
| 8574 | + | |
8563 | 8575 |
| |
8564 | 8576 |
| |
8565 | 8577 |
| |
|
Lines changed: 4 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
962 | 962 |
| |
963 | 963 |
| |
964 | 964 |
| |
| 965 | + | |
| 966 | + | |
| 967 | + | |
| 968 | + | |
965 | 969 |
| |
966 | 970 |
| |
967 | 971 |
| |
|
Lines changed: 14 additions & 2 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1444 | 1444 |
| |
1445 | 1445 |
| |
1446 | 1446 |
| |
1447 |
| - | |
| 1447 | + | |
| 1448 | + | |
| 1449 | + | |
| 1450 | + | |
| 1451 | + | |
1448 | 1452 |
| |
1449 | 1453 |
| |
1450 | 1454 |
| |
| |||
2033 | 2037 |
| |
2034 | 2038 |
| |
2035 | 2039 |
| |
| 2040 | + | |
| 2041 | + | |
| 2042 | + | |
| 2043 | + | |
| 2044 | + | |
| 2045 | + | |
| 2046 | + | |
2036 | 2047 |
| |
2037 | 2048 |
| |
2038 | 2049 |
| |
| |||
2175 | 2186 |
| |
2176 | 2187 |
| |
2177 | 2188 |
| |
2178 |
| - | |
| 2189 | + | |
| 2190 | + | |
2179 | 2191 |
| |
2180 | 2192 |
| |
2181 | 2193 |
| |
|
Lines changed: 108 additions & 4 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
250 | 250 |
| |
251 | 251 |
| |
252 | 252 |
| |
253 |
| - | |
254 |
| - | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
255 | 264 |
| |
256 | 265 |
| |
257 | 266 |
| |
| |||
675 | 684 |
| |
676 | 685 |
| |
677 | 686 |
| |
678 |
| - | |
679 |
| - | |
| 687 | + | |
680 | 688 |
| |
681 | 689 |
| |
682 | 690 |
| |
| 691 | + | |
| 692 | + | |
| 693 | + | |
| 694 | + | |
| 695 | + | |
| 696 | + | |
| 697 | + | |
| 698 | + | |
| 699 | + | |
| 700 | + | |
| 701 | + | |
| 702 | + | |
| 703 | + | |
683 | 704 |
| |
684 | 705 |
| |
685 | 706 |
| |
| |||
784 | 805 |
| |
785 | 806 |
| |
786 | 807 |
| |
| 808 | + | |
| 809 | + | |
| 810 | + | |
| 811 | + | |
| 812 | + | |
| 813 | + | |
| 814 | + | |
| 815 | + | |
| 816 | + | |
| 817 | + | |
| 818 | + | |
| 819 | + | |
| 820 | + | |
| 821 | + | |
| 822 | + | |
| 823 | + | |
| 824 | + | |
| 825 | + | |
| 826 | + | |
| 827 | + | |
| 828 | + | |
| 829 | + | |
| 830 | + | |
| 831 | + | |
| 832 | + | |
| 833 | + | |
| 834 | + | |
| 835 | + | |
| 836 | + | |
| 837 | + | |
| 838 | + | |
| 839 | + | |
| 840 | + | |
| 841 | + | |
| 842 | + | |
| 843 | + | |
| 844 | + | |
| 845 | + | |
| 846 | + | |
| 847 | + | |
| 848 | + | |
| 849 | + | |
| 850 | + | |
| 851 | + | |
| 852 | + | |
| 853 | + | |
| 854 | + | |
| 855 | + | |
| 856 | + | |
| 857 | + | |
| 858 | + | |
| 859 | + | |
| 860 | + | |
| 861 | + | |
| 862 | + | |
| 863 | + | |
| 864 | + | |
| 865 | + | |
| 866 | + | |
| 867 | + | |
| 868 | + | |
| 869 | + | |
| 870 | + | |
| 871 | + | |
| 872 | + | |
| 873 | + | |
| 874 | + | |
| 875 | + | |
| 876 | + | |
| 877 | + | |
| 878 | + | |
| 879 | + | |
| 880 | + | |
| 881 | + | |
| 882 | + | |
| 883 | + | |
| 884 | + | |
| 885 | + | |
| 886 | + | |
| 887 | + | |
| 888 | + | |
| 889 | + | |
| 890 | + | |
787 | 891 |
| |
788 | 892 |
| |
789 | 893 |
| |
|
Lines changed: 1 addition & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
441 | 441 |
| |
442 | 442 |
| |
443 | 443 |
| |
| 444 | + | |
444 | 445 |
| |
445 | 446 |
| |
446 | 447 |
| |
|
0 commit comments
Comments
(0)