- Notifications
You must be signed in to change notification settings - Fork5
Commitdb76b1e
committed
Allow SetHintBits() to succeed if the buffer's LSN is new enough.
Previously we only allowed SetHintBits() to succeed if the commit LSN ofthe last transaction touching the page has already been flushed todisk. We can't generally change the LSN of the page, because we don'tnecessarily have the required locks on the page. But the required LSNinterlock does not mean the commit record has to be flushed immediately,it just requires that the commit record will be flushed before the page iswritten out. Therefore if the buffer LSN is newer than the commit LSN,the hint bit can be safely set.In a number of scenarios (e.g. pgbench) this noticeably increases thenumber of hint bits are set. But more importantly it also keeps thesuccess rate up when flushing WAL less frequently. That was the originalreason for commit4de82f7, which has negative performance consequencesin a number of scenarios. This will allow a followup commit to reducethe flush rate.Discussion: 20160118163908.GW10941@awork2.anarazel.de1 parentcfafd8b commitdb76b1e
1 file changed
+13
-8
lines changedLines changed: 13 additions & 8 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
89 | 89 |
| |
90 | 90 |
| |
91 | 91 |
| |
92 |
| - | |
93 |
| - | |
94 |
| - | |
95 |
| - | |
96 |
| - | |
97 |
| - | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
98 | 99 |
| |
99 | 100 |
| |
100 | 101 |
| |
| |||
122 | 123 |
| |
123 | 124 |
| |
124 | 125 |
| |
125 |
| - | |
126 |
| - | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
127 | 132 |
| |
128 | 133 |
| |
129 | 134 |
| |
|
0 commit comments
Comments
(0)