Latch(걸쇠)
발음 shuān
이름
(사물을 일컫는 말. 문에서 보면 "一"이 모양을 닮음 문 걸쇠의 원래 의미: 문에 있는 수평 플러그)는 원래 의미와 동일합니다(볼트, 걸쇠)
걸쇠, 문이 수평으로 닫혀 있습니다. ——Fan Chengda, "Guihai Yu Hengzhi·잡지"
또 다른 예: 볼트로 고정 . 예: 문에 볼트로 고정
단단히 걸쇠(바) 단단히 고정하려면 문 걸쇠를 사용하세요.
예: 문에 볼트로 고정
계정 데이터베이스 용어입니다.
Latch는 공유 데이터 구조, 개체 및 파일에 대한 다중 사용자 액세스를 조정하는 데 사용되는 경량 직렬화 장치입니다.
래치는 매우 짧은 시간 동안만 유지되도록 설계된 잠금입니다(예: 메모리 내 데이터 구조를 수정하는 데 필요한 시간). 래치는 데이터베이스 블록 버퍼 캐시 또는 공유 풀의 라이브러리 캐시와 같은 특정 메모리 구조를 보호하는 데 사용됩니다. 래치는 일반적으로 "대기" 모드에서 내부적으로 요청됩니다. 이는 래치를 사용할 수 없는 경우 요청 세션이 잠시 동안 대기 상태에 있다가 나중에 작업을 다시 시도한다는 의미입니다. "immediate" 모드를 사용하여 다른 래치를 요청할 수도 있습니다. 이는 SELECT FOR UPDATE NOWAIT의 아이디어와 매우 유사하며, 이 프로세스가 Sit뿐만 아니라 다른 작업(예: 다른 동등한 여유 래치를 가져오는 등)을 수행함을 나타냅니다. 이 래치를 사용할 수 있을 때까지 기다립니다. 많은 요청자가 동시에 래치를 기다리고 있을 수 있으므로 일부 프로세스는 다른 프로세스보다 조금 더 오래 기다리는 것을 볼 수 있습니다. 래치는 운에 따라 상당히 무작위로 할당됩니다. 래치가 해제된 후에는 래치를 요청하는 모든 후속 세션이 이를 얻게 됩니다. 래치를 기다리는 세션 대기열이 없으며 단지 여러 세션이 계속해서 다시 시도될 뿐입니다.
Oracle은 래치를 처리하기 위해 "테스트 및 설정"(테스트 및 설정) 및 "비교 및 교환"(비교 및 교환)과 같은 원자적 명령을 사용합니다. 래치를 설정하고 해제하는 명령은 원자성이므로 운영 체제 자체에서는 여러 프로세스가 동시에 요청할 수 있더라도 하나의 프로세스만 래치를 테스트하고 설정할 수 있음을 보장합니다. 명령은 명령일 뿐이며 매우 빠르게 실행될 수 있습니다. 래치는 짧은 시간 동안만 유지되며 래치를 잡고 있는 동안 래치 홀더가 비정상적으로 "죽는" 경우 정리 메커니즘을 제공합니다. 이 정리 프로세스는 PMON에 의해 수행됩니다.
앞서 설명한 큐 잠금(인큐)은 더 복잡한 직렬화 장치이기도 합니다. 예를 들어 큐에 넣기 잠금은 데이터베이스 테이블의 행을 업데이트할 때 사용됩니다. 래치와의 차이점은 대기열 잠금을 사용하면 요청자가 리소스를 기다리는 "대기열"을 허용한다는 것입니다. 래치 요청의 경우 래치 획득 여부를 요청자 세션에 즉시 알립니다. 대기열 잠금의 경우 요청자 세션은 잠금이 실제로 획득될 때까지 차단됩니다.