- Notifications
You must be signed in to change notification settings - Fork5
Commite472b92
committed
Avoid deadlocks during insertion into SP-GiST indexes.
SP-GiST's original scheme for avoiding deadlocks during concurrent indexinsertions doesn't work, as per report from Hailong Li, and there isn't anyevident way to make it work completely. We could possibly lock individualinner tuples instead of their whole pages, but preliminary experimentationsuggests that the performance penalty would be huge. Instead, if we failto get a buffer lock while descending the tree, just restart the treedescent altogether. We keep the old tuple positioning rules, though, inhopes of reducing the number of cases where this can happen.Teodor Sigaev, somewhat edited by Tom Lane1 parentc62866e commite472b92
File tree
4 files changed
+71
-18
lines changed- src
- backend/access/spgist
- include/access
4 files changed
+71
-18
lines changedLines changed: 25 additions & 11 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
201 | 201 |
| |
202 | 202 |
| |
203 | 203 |
| |
204 |
| - | |
205 |
| - | |
206 |
| - | |
207 |
| - | |
208 |
| - | |
209 |
| - | |
210 |
| - | |
211 |
| - | |
212 |
| - | |
213 |
| - | |
214 |
| - | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
215 | 229 |
| |
216 | 230 |
| |
217 | 231 |
| |
|
Lines changed: 30 additions & 4 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1836 | 1836 |
| |
1837 | 1837 |
| |
1838 | 1838 |
| |
1839 |
| - | |
| 1839 | + | |
| 1840 | + | |
| 1841 | + | |
| 1842 | + | |
| 1843 | + | |
1840 | 1844 |
| |
1841 |
| - | |
| 1845 | + | |
1842 | 1846 |
| |
1843 | 1847 |
| |
1844 | 1848 |
| |
| |||
1927 | 1931 |
| |
1928 | 1932 |
| |
1929 | 1933 |
| |
1930 |
| - | |
1931 |
| - | |
| 1934 | + | |
1932 | 1935 |
| |
| 1936 | + | |
1933 | 1937 |
| |
1934 | 1938 |
| |
1935 | 1939 |
| |
| 1940 | + | |
| 1941 | + | |
| 1942 | + | |
| 1943 | + | |
| 1944 | + | |
| 1945 | + | |
| 1946 | + | |
| 1947 | + | |
| 1948 | + | |
| 1949 | + | |
| 1950 | + | |
| 1951 | + | |
| 1952 | + | |
| 1953 | + | |
| 1954 | + | |
| 1955 | + | |
| 1956 | + | |
| 1957 | + | |
| 1958 | + | |
| 1959 | + | |
1936 | 1960 |
| |
1937 | 1961 |
| |
1938 | 1962 |
| |
| |||
2131 | 2155 |
| |
2132 | 2156 |
| |
2133 | 2157 |
| |
| 2158 | + | |
| 2159 | + | |
2134 | 2160 |
|
Lines changed: 15 additions & 2 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
45 | 45 |
| |
46 | 46 |
| |
47 | 47 |
| |
48 |
| - | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
49 | 52 |
| |
50 | 53 |
| |
51 | 54 |
| |
| |||
219 | 222 |
| |
220 | 223 |
| |
221 | 224 |
| |
222 |
| - | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
223 | 236 |
| |
224 | 237 |
| |
225 | 238 |
| |
|
Lines changed: 1 addition & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
652 | 652 |
| |
653 | 653 |
| |
654 | 654 |
| |
655 |
| - | |
| 655 | + | |
656 | 656 |
| |
657 | 657 |
| |
658 | 658 |
|
0 commit comments
Comments
(0)