64.4. 메이저 토토 사이트 잠금 고려사항

메이저 토토 사이트 액세스 방법은 여러 프로세스에 의한 메이저 토토 사이트의 동시 업데이트를 처리해야 합니다. 핵심PostgreSQL시스템 획득액세스공유잠금색인 스캔 중 색인에 대한 및RowExclusiveLock색인 업데이트 시(일반 포함진공). 이러한 잠금 유형은 충돌하지 않으므로 액세스 방법은 필요할 수 있는 세부적인 잠금을 처리해야 합니다. 안접속 독점메이저 토토 사이트 전체에 대한 잠금은 메이저 토토 사이트 생성, 파기 중에만 수행됩니다. 또는REINDEX (업데이트 독점 공유대신 다음으로 촬영됨동시).

동시 업데이트를 지원하는 색인 유형을 구축하려면 일반적으로 필요한 동작에 대한 광범위하고 미묘한 분석이 필요합니다. b-트리 및 해시 인덱스 유형의 경우 다음과 관련된 설계 결정에 대해 읽을 수 있습니다.src/백엔드/액세스/nbtree/README그리고src/백엔드/액세스/해시/README.

색인 자체의 내부 일관성 요구 사항 외에도 동시 업데이트로 인해 상위 테이블 간의 일관성에 관한 문제가 발생합니다() 및 색인입니다. 왜냐면PostgreSQL인덱스의 액세스 및 업데이트와 힙의 액세스 및 업데이트를 분리하므로 인덱스가 힙과 일치하지 않을 수 있는 창이 있습니다. 우리는 다음 규칙에 따라 이 문제를 처리합니다.

  • 색인 항목을 만들기 전에 새로운 힙 항목이 만들어졌습니다. (따라서 동시 인덱스 스캔은 힙 항목을 확인하는 데 실패할 가능성이 높습니다. 어쨌든 인덱스 리더는 커밋되지 않은 행에 관심이 없기 때문에 괜찮습니다. 하지만 참조하세요.Postgresql: Tài liệu: 15: 64.5. 메이저 토토 사이트ỉ mục kiểm tra tính duy nhất.)

  • 힙 항목이 삭제될 때(by진공), 먼저 모든 색인 항목을 제거해야 합니다.

  • 122PostgreSQL: 문서: 15: 64.4. 메이저 토토 사이트 잠금 고려사항31amgettupleambulkdelete다른 백엔드에 의해 고정된 페이지의 항목을 삭제할 수 없습니다. 이 규칙의 필요성은 아래에 설명되어 있습니다.

세 번째 규칙이 없으면 색인 리더는 다음에 의해 제거되기 직전에 색인 항목을 볼 수 있습니다.진공, 그리고 나서 해당 힙 항목에 도달한 후 해당 힙 항목이 제거되었습니다.진공. 독자가 해당 항목 번호에 도달했을 때 해당 항목 번호가 여전히 사용되지 않은 경우에는 심각한 문제가 발생하지 않습니다. 왜냐하면 빈 항목 슬롯은 다음에서 무시되기 때문입니다.heap_fetch(). 하지만 세 번째 백엔드가 이미 다른 용도로 아이템 슬롯을 재사용했다면 어떻게 될까요? MVCC 호환 스냅샷을 사용하는 경우 슬롯의 새 점유자가 스냅샷 테스트를 통과하기에는 너무 새로운 것이 확실하기 때문에 문제가 없습니다. 그러나 MVCC를 준수하지 않는 스냅샷(예:스냅샷Any), 실제로 스캔 키와 일치하지 않는 행을 수락하고 반환하는 것이 가능합니다. 모든 경우에 힙 행에 대해 스캔 키를 다시 확인하도록 요구하여 이 시나리오를 방어할 수 있지만 비용이 너무 많이 듭니다. 대신 색인 페이지의 핀을 프록시로 사용하여 독자가 아직 남아 있을 수 있음을 나타냅니다.비행 중메이저 토토 사이트 항목에서 일치하는 힙 항목까지. 만들기ambulkdelete이러한 핀을 차단하면 다음이 보장됩니다.진공리더가 작업을 완료하기 전에는 힙 항목을 삭제할 수 없습니다. 이 솔루션은 런타임 비용이 거의 들지 않으며 실제로 충돌이 발생하는 드문 경우에만 차단 오버헤드를 추가합니다.

이 솔루션을 사용하려면 색인 스캔이 필요합니다.동기식: 해당 메이저 토토 사이트 항목을 스캔한 후 즉시 각 힙 튜플을 가져와야 합니다. 이는 여러 가지 이유로 비용이 많이 듭니다. 안비동기인덱스에서 많은 TID를 수집하고 나중에 힙 튜플만 방문하는 스캔은 훨씬 적은 인덱스 잠금 오버헤드를 필요로 하며 보다 효율적인 힙 액세스 패턴을 허용할 수 있습니다. 위 분석에 따라 MVCC 비준수 스냅샷에는 동기 접근 방식을 사용해야 하지만 MVCC 스냅샷을 사용하는 쿼리에는 비동기 스캔이 가능합니다.

안에amgetbitmap메이저 토토 사이트 스캔, 액세스 방법은 반환된 튜플에 대한 메이저 토토 사이트 핀을 유지하지 않습니다. 따라서 이러한 스캔은 MVCC 호환 스냅샷에서만 사용하는 것이 안전합니다.

ampredlocks플래그가 설정되지 않은 경우 직렬화 가능 트랜잭션 내에서 해당 인덱스 액세스 방법을 사용하는 모든 스캔은 전체 인덱스에 대한 비차단 조건자 잠금을 획득합니다. 이는 동시 직렬화 가능 트랜잭션에 의해 해당 인덱스에 튜플을 삽입할 때 읽기-쓰기 충돌을 발생시킵니다. 일련의 동시 직렬화 가능 트랜잭션 사이에서 특정 패턴의 읽기-쓰기 충돌이 감지되면 데이터 무결성을 보호하기 위해 해당 트랜잭션 중 하나가 취소될 수 있습니다. 플래그가 설정되면 인덱스 액세스 방법이 더 세분화된 조건자 잠금을 구현하여 이러한 트랜잭션 취소 빈도를 줄이는 경향이 있음을 나타냅니다.

수정사항 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.