forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commit2ec005b

Amit Kapila
Ensure that the sync slots reach a consistent state after promotion without losing data.
We were directly copying the LSN locations while syncing the slots on thestandby. Now, it is possible that at some particular restart_lsn there aresome running xacts, which means if we start reading the WAL from thatlocation after promotion, we won't reach a consistent snapshot state atthat point. However, on the primary, we would have already been in aconsistent snapshot state at that restart_lsn so we would have justserialized the existing snapshot.To avoid this problem we will use the advance_slot functionality unlessthe snapshot already exists at the synced restart_lsn location. This willhelp us to ensure that snapbuilder/slot statuses are updated properlywithout generating any changes. Note that the synced slot will remain asRS_TEMPORARY till the decoding from corresponding restart_lsn can reach aconsistent snapshot state after which they will be marked asRS_PERSISTENT.Per buildfarmAuthor: Hou ZhijieReviewed-by: Bertrand Drouvot, Shveta Malik, Bharath Rupireddy, Amit KapilaDiscussion:https://postgr.es/m/OS0PR01MB5716B3942AE49F3F725ACA92943B2@OS0PR01MB5716.jpnprd01.prod.outlook.com1 parente37662f commit2ec005b
File tree
7 files changed
+351
-171
lines changed- src
- backend/replication
- logical
- include/replication
- test/recovery/t
7 files changed
+351
-171
lines changedLines changed: 143 additions & 4 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
36 | 36 |
| |
37 | 37 |
| |
38 | 38 |
| |
| 39 | + | |
39 | 40 |
| |
40 | 41 |
| |
41 | 42 |
| |
| |||
516 | 517 |
| |
517 | 518 |
| |
518 | 519 |
| |
519 |
| - | |
| 520 | + | |
| 521 | + | |
| 522 | + | |
| 523 | + | |
| 524 | + | |
| 525 | + | |
520 | 526 |
| |
521 | 527 |
| |
522 | 528 |
| |
523 | 529 |
| |
524 | 530 |
| |
525 | 531 |
| |
526 |
| - | |
527 |
| - | |
| 532 | + | |
| 533 | + | |
| 534 | + | |
528 | 535 |
| |
529 |
| - | |
| 536 | + | |
530 | 537 |
| |
531 | 538 |
| |
532 | 539 |
| |
| |||
2034 | 2041 |
| |
2035 | 2042 |
| |
2036 | 2043 |
| |
| 2044 | + | |
| 2045 | + | |
| 2046 | + | |
| 2047 | + | |
| 2048 | + | |
| 2049 | + | |
| 2050 | + | |
| 2051 | + | |
| 2052 | + | |
| 2053 | + | |
| 2054 | + | |
| 2055 | + | |
| 2056 | + | |
| 2057 | + | |
| 2058 | + | |
| 2059 | + | |
| 2060 | + | |
| 2061 | + | |
| 2062 | + | |
| 2063 | + | |
| 2064 | + | |
| 2065 | + | |
| 2066 | + | |
| 2067 | + | |
| 2068 | + | |
| 2069 | + | |
| 2070 | + | |
| 2071 | + | |
| 2072 | + | |
| 2073 | + | |
| 2074 | + | |
| 2075 | + | |
| 2076 | + | |
| 2077 | + | |
| 2078 | + | |
| 2079 | + | |
| 2080 | + | |
| 2081 | + | |
| 2082 | + | |
| 2083 | + | |
| 2084 | + | |
| 2085 | + | |
| 2086 | + | |
| 2087 | + | |
| 2088 | + | |
| 2089 | + | |
| 2090 | + | |
| 2091 | + | |
| 2092 | + | |
| 2093 | + | |
| 2094 | + | |
| 2095 | + | |
| 2096 | + | |
| 2097 | + | |
| 2098 | + | |
| 2099 | + | |
| 2100 | + | |
| 2101 | + | |
| 2102 | + | |
| 2103 | + | |
| 2104 | + | |
| 2105 | + | |
| 2106 | + | |
| 2107 | + | |
| 2108 | + | |
| 2109 | + | |
| 2110 | + | |
| 2111 | + | |
| 2112 | + | |
| 2113 | + | |
| 2114 | + | |
| 2115 | + | |
| 2116 | + | |
| 2117 | + | |
| 2118 | + | |
| 2119 | + | |
| 2120 | + | |
| 2121 | + | |
| 2122 | + | |
| 2123 | + | |
| 2124 | + | |
| 2125 | + | |
| 2126 | + | |
| 2127 | + | |
| 2128 | + | |
| 2129 | + | |
| 2130 | + | |
| 2131 | + | |
| 2132 | + | |
| 2133 | + | |
| 2134 | + | |
| 2135 | + | |
| 2136 | + | |
| 2137 | + | |
| 2138 | + | |
| 2139 | + | |
| 2140 | + | |
| 2141 | + | |
| 2142 | + | |
| 2143 | + | |
| 2144 | + | |
| 2145 | + | |
| 2146 | + | |
| 2147 | + | |
| 2148 | + | |
| 2149 | + | |
| 2150 | + | |
| 2151 | + | |
| 2152 | + | |
| 2153 | + | |
| 2154 | + | |
| 2155 | + | |
| 2156 | + | |
| 2157 | + | |
| 2158 | + | |
| 2159 | + | |
| 2160 | + | |
| 2161 | + | |
| 2162 | + | |
| 2163 | + | |
| 2164 | + | |
| 2165 | + | |
| 2166 | + | |
| 2167 | + | |
| 2168 | + | |
| 2169 | + | |
| 2170 | + | |
| 2171 | + | |
| 2172 | + | |
| 2173 | + | |
| 2174 | + | |
| 2175 | + |
Lines changed: 96 additions & 37 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
25 | 25 |
| |
26 | 26 |
| |
27 | 27 |
| |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
28 | 37 |
| |
29 | 38 |
| |
30 | 39 |
| |
| |||
49 | 58 |
| |
50 | 59 |
| |
51 | 60 |
| |
52 |
| - | |
| 61 | + | |
53 | 62 |
| |
| 63 | + | |
54 | 64 |
| |
55 | 65 |
| |
56 | 66 |
| |
| |||
147 | 157 |
| |
148 | 158 |
| |
149 | 159 |
| |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
150 | 164 |
| |
151 | 165 |
| |
152 |
| - | |
| 166 | + | |
| 167 | + | |
153 | 168 |
| |
154 | 169 |
| |
155 |
| - | |
156 |
| - | |
157 |
| - | |
| 170 | + | |
158 | 171 |
| |
159 | 172 |
| |
160 | 173 |
| |
161 |
| - | |
162 |
| - | |
| 174 | + | |
| 175 | + | |
163 | 176 |
| |
164 |
| - | |
165 |
| - | |
166 |
| - | |
167 |
| - | |
168 |
| - | |
169 |
| - | |
170 |
| - | |
171 |
| - | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
172 | 202 |
| |
173 |
| - | |
174 |
| - | |
175 |
| - | |
176 |
| - | |
177 |
| - | |
178 |
| - | |
179 |
| - | |
180 |
| - | |
181 |
| - | |
182 |
| - | |
183 |
| - | |
184 |
| - | |
185 |
| - | |
186 |
| - | |
187 |
| - | |
188 |
| - | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
189 | 211 |
| |
190 |
| - | |
| 212 | + | |
191 | 213 |
| |
192 | 214 |
| |
193 |
| - | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
194 | 239 |
| |
195 | 240 |
| |
196 | 241 |
| |
| |||
413 | 458 |
| |
414 | 459 |
| |
415 | 460 |
| |
| 461 | + | |
416 | 462 |
| |
417 | 463 |
| |
418 | 464 |
| |
| |||
443 | 489 |
| |
444 | 490 |
| |
445 | 491 |
| |
446 |
| - | |
447 |
| - | |
448 |
| - | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
449 | 508 |
| |
450 | 509 |
| |
451 | 510 |
| |
| |||
578 | 637 |
| |
579 | 638 |
| |
580 | 639 |
| |
581 |
| - | |
| 640 | + | |
582 | 641 |
| |
583 | 642 |
| |
584 | 643 |
| |
|
Lines changed: 23 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
2134 | 2134 |
| |
2135 | 2135 |
| |
2136 | 2136 |
| |
| 2137 | + | |
| 2138 | + | |
| 2139 | + | |
| 2140 | + | |
| 2141 | + | |
| 2142 | + | |
| 2143 | + | |
| 2144 | + | |
| 2145 | + | |
| 2146 | + | |
| 2147 | + | |
| 2148 | + | |
| 2149 | + | |
| 2150 | + | |
| 2151 | + | |
| 2152 | + | |
| 2153 | + | |
| 2154 | + | |
| 2155 | + | |
| 2156 | + | |
| 2157 | + | |
| 2158 | + | |
| 2159 | + |
0 commit comments
Comments
(0)