Commit c448f92
committed
storage: always write RANGEKEYDELs in ClearRangeWithHeuristic
Previously, ClearRangeWithHeuristic applied a heuristic that would switch
between writing RANGEKEYUNSETs versus RANGEKEYDELs. When multiple range keys
overlap, unsetting each individual range key with RANGEKEYUNSET is strictly
worse than writing a single RANGEKEYDEL over the same span.
This commit adapts ClearRangeWithHeuristic to write a single RANGEKEYDEL over
the cleared span, but only if there are indeed range keys within the span.
Setting a broad RANGEKEYDEL increases the likelihood that data can be removed
using a delete-only compaction.
Close #144954.
Epic: none
Release note: none1 parent 02d269e commit c448f92
File tree
6 files changed
+39
-93
lines changed- pkg
- kv/kvserver
- batcheval
- kvstorage
- storage
6 files changed
+39
-93
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
150 | 150 | | |
151 | 151 | | |
152 | 152 | | |
153 | | - | |
| 153 | + | |
154 | 154 | | |
155 | | - | |
| 155 | + | |
156 | 156 | | |
157 | 157 | | |
158 | 158 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4023 | 4023 | | |
4024 | 4024 | | |
4025 | 4025 | | |
4026 | | - | |
| 4026 | + | |
4027 | 4027 | | |
4028 | 4028 | | |
4029 | 4029 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
34 | | - | |
35 | | - | |
36 | | - | |
37 | | - | |
38 | | - | |
39 | 34 | | |
40 | 35 | | |
41 | 36 | | |
| |||
78 | 73 | | |
79 | 74 | | |
80 | 75 | | |
81 | | - | |
| 76 | + | |
82 | 77 | | |
83 | | - | |
| 78 | + | |
84 | 79 | | |
85 | 80 | | |
86 | 81 | | |
87 | 82 | | |
88 | | - | |
| 83 | + | |
89 | 84 | | |
90 | 85 | | |
91 | 86 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
940 | 940 | | |
941 | 941 | | |
942 | 942 | | |
943 | | - | |
944 | 943 | | |
945 | 944 | | |
946 | 945 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1589 | 1589 | | |
1590 | 1590 | | |
1591 | 1591 | | |
1592 | | - | |
1593 | | - | |
1594 | | - | |
1595 | | - | |
| 1592 | + | |
| 1593 | + | |
| 1594 | + | |
| 1595 | + | |
| 1596 | + | |
| 1597 | + | |
1596 | 1598 | | |
1597 | | - | |
1598 | | - | |
1599 | | - | |
1600 | | - | |
1601 | | - | |
1602 | | - | |
| 1599 | + | |
| 1600 | + | |
1603 | 1601 | | |
1604 | | - | |
1605 | | - | |
1606 | | - | |
1607 | | - | |
1608 | | - | |
| 1602 | + | |
1609 | 1603 | | |
| 1604 | + | |
| 1605 | + | |
| 1606 | + | |
| 1607 | + | |
1610 | 1608 | | |
1611 | 1609 | | |
1612 | 1610 | | |
| |||
1655 | 1653 | | |
1656 | 1654 | | |
1657 | 1655 | | |
1658 | | - | |
| 1656 | + | |
1659 | 1657 | | |
1660 | 1658 | | |
1661 | 1659 | | |
| |||
1666 | 1664 | | |
1667 | 1665 | | |
1668 | 1666 | | |
1669 | | - | |
1670 | | - | |
1671 | | - | |
1672 | | - | |
1673 | | - | |
1674 | | - | |
1675 | | - | |
1676 | | - | |
1677 | | - | |
1678 | | - | |
1679 | | - | |
1680 | | - | |
1681 | | - | |
1682 | | - | |
1683 | | - | |
1684 | | - | |
1685 | | - | |
1686 | | - | |
| 1667 | + | |
| 1668 | + | |
1687 | 1669 | | |
1688 | 1670 | | |
1689 | | - | |
1690 | | - | |
1691 | | - | |
1692 | | - | |
1693 | | - | |
1694 | | - | |
1695 | | - | |
1696 | | - | |
1697 | | - | |
1698 | | - | |
1699 | | - | |
| 1671 | + | |
| 1672 | + | |
| 1673 | + | |
1700 | 1674 | | |
1701 | | - | |
1702 | | - | |
1703 | | - | |
1704 | | - | |
1705 | | - | |
| 1675 | + | |
| 1676 | + | |
1706 | 1677 | | |
1707 | 1678 | | |
| 1679 | + | |
| 1680 | + | |
| 1681 | + | |
| 1682 | + | |
1708 | 1683 | | |
1709 | 1684 | | |
1710 | | - | |
1711 | | - | |
1712 | | - | |
1713 | | - | |
| 1685 | + | |
| 1686 | + | |
| 1687 | + | |
| 1688 | + | |
| 1689 | + | |
1714 | 1690 | | |
1715 | 1691 | | |
1716 | 1692 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1813 | 1813 | | |
1814 | 1814 | | |
1815 | 1815 | | |
1816 | | - | |
| 1816 | + | |
1817 | 1817 | | |
1818 | 1818 | | |
1819 | 1819 | | |
1820 | 1820 | | |
1821 | 1821 | | |
1822 | 1822 | | |
1823 | 1823 | | |
1824 | | - | |
| 1824 | + | |
1825 | 1825 | | |
1826 | 1826 | | |
1827 | 1827 | | |
1828 | 1828 | | |
1829 | 1829 | | |
1830 | 1830 | | |
1831 | 1831 | | |
1832 | | - | |
| 1832 | + | |
1833 | 1833 | | |
1834 | 1834 | | |
1835 | | - | |
1836 | | - | |
1837 | | - | |
1838 | | - | |
1839 | | - | |
1840 | | - | |
1841 | | - | |
1842 | | - | |
1843 | | - | |
1844 | | - | |
1845 | | - | |
1846 | | - | |
1847 | | - | |
1848 | | - | |
1849 | | - | |
1850 | | - | |
1851 | | - | |
1852 | | - | |
1853 | | - | |
1854 | | - | |
1855 | | - | |
1856 | | - | |
1857 | | - | |
1858 | | - | |
1859 | 1835 | | |
1860 | 1836 | | |
1861 | 1837 | | |
| |||
0 commit comments