Predicate locking in GIN index
Teodor Sigaev <teodor@sigaev.ru>
Predicate locking in GIN index Predicate locks are used on per page basis only if fastupdate = off, in opposite case predicate lock on pending list will effectively lock whole index, to reduce locking overhead, just lock a relation. Entry and posting trees are essentially B-tree, so locks are acquired on leaf pages only. Author: Shubham Barai with some editorization by me and Dmitry Ivanov Review by: Alexander Korotkov, Dmitry Ivanov, Fedor Sigaev Discussion: https://www.postgresql.org/message-id/flat/CALxAEPt5sWW+EwTaKUGFL5_XFcZ0MuGBcyJ70oqbWqr42YKR8Q@mail.gmail.com
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/access/gin/ginbtree.c | modified | +22 −0 |
| src/backend/access/gin/gindatapage.c | modified | +9 −1 |
| src/backend/access/gin/ginget.c | modified | +69 −7 |
| src/backend/access/gin/gininsert.c | modified | +32 −6 |
| src/backend/access/gin/ginutil.c | modified | +9 −1 |
| src/backend/access/gin/ginvacuum.c | modified | +10 −2 |
| src/backend/storage/lmgr/README-SSI | modified | +9 −0 |
| src/include/access/gin_private.h | modified | +3 −1 |
| src/test/isolation/expected/predicate-gin.out | added | +756 −0 |
| src/test/isolation/isolation_schedule | modified | +1 −0 |
| src/test/isolation/specs/predicate-gin.spec | added | +134 −0 |
Discussion
- GSoC 2017: weekly progress reports (week 6) 54 messages · 2017-07-11 → 2018-05-04