max_pred_locks_per_page
| 버전 | 기본값 | context | 타입 |
|---|---|---|---|
| 14 | 2 | sighup | integer |
| 15 | 2 | sighup | integer |
| 16 | 2 | sighup | integer |
| 17 | 2 | sighup | integer |
| 18 | 2 | sighup | integer |
| 19 | 2 | sighup | integer |
하나의 page에서 row 단위 predicate lock을 몇 개까지 유지하다가 page 전체 lock으로 승격할지 정한다.
기본값은 2다. 한 page 안에서 이 수를 넘는 row가 predicate lock 대상이 되면 개별 row lock 대신 page lock 하나로 합쳐진다. lock 테이블 공간은 절약되지만 lock 범위가 넓어져 serializable transaction 간 충돌 판정이 보수적으로 바뀌고, 그만큼 직렬화 실패가 늘어날 수 있다. postgresql.conf 파일이나 서버 커맨드라인에서만 설정할 수 있다.
출처: PostgreSQL 18 문서