푸네의 Oracle 인증 과정에서 동시성 프로토콜에 대해 알아보십시오.
다양한 트랜잭션이 동시에 동작하는 멀티프로그래밍 환경을 고려한다면, 딜링의 동시성을 관리하는 것이 중요합니다 구직.
우리는 비상 처리의 원자성, 고독성 및 직렬성을 보장하는 동시성 관리 방법을 갖추고 있습니다.
동시성 관리 방법은 두 가지 클래스로 나눌 수 있습니다.
- 잠금 기반 프로토콜
- 타임 스탬프 기반 프로토콜
푸네에는 신입생을 위한 데이터베이스 작업이 많이 있으므로 이 모든 것을 배우십시오.
잠금 기반 프로토콜
잠금 기반 방법으로 준비된 데이터베이스 기술은 적절한 잠금을 얻을 때까지 모든 거래가 데이터를 읽거나 편집할 수 없도록 하는 절차를 사용합니다.
자물쇠는 두 종류가 있습니다 –
Binary Lock – 데이터 항목에는 잠금이 있으며 두 가지 상태가 될 수 있습니다. 잠겨 있거나 잠금 해제되어 있습니다.
공유/독점 – 이 유형의 잠금은 용도에 따라 잠금을 구별합니다. 쓰기 기능을 수행하기 위해 데이터 제품에 대해 잠금을 획득한 경우 이는 고유 잠금입니다.
동일한 데이터 제품에 대해 둘 이상의 거래를 활성화하면 데이터 소스가 신뢰할 수 없는 상태가 될 수 있습니다.
데이터 값이 수정되지 않기 때문에 읽기 잠금이 공유됩니다.
잠금 프로토콜에는 4가지 유형이 있습니다.
단순한 잠금 프로토콜
단순한 잠금 기반 방법을 사용하면 ‘쓰기’ 작업이 수행되기 전에 모든 항목에 대한 잠금을 처리할 수 있습니다.
‘쓰기’ 기능이 완료된 후 트랜잭션은 데이터 항목의 잠금을 해제할 수 있습니다.
사전 청구 잠금 프로토콜
사전 청구 방법은 해당 기능을 평가하고 잠금이 필요한 항목 목록을 만듭니다.
공연을 시작하기 전에 거래는 필요한 잠금을 미리 요청합니다. 모든 잠금이 제공되면 거래가 수행되고 모든 기능이 끝나면 모든 잠금이 해제됩니다.
모든 잠금이 제공되지 않으면 거래가 다시 시작되어 모든 잠금이 제공될 때까지 유지됩니다.
2단계 잠금 2PL
이 잠금 방법은 거래의 성과 단계를 세 가지 영역으로 구분합니다.
첫 번째 측면에서는 거래가 시작되면 필요한 잠금에 대한 승인을 찾습니다.
두 번째 측면은 거래가 모든 잠금을 얻는 위치입니다.
거래가 첫 번째 잠금을 해제하자마자 세 번째 단계가 시작됩니다. 이 단계에서는 거래가 새로운 잠금을 요구할 수 없습니다. 획득한 잠금만 해제합니다.
2단계 고정에는 두 단계가 있습니다. 하나는 계속해서 성장하며, 여기서 모든 머릿단은 거래에 의해 획득됩니다. 두 번째 단계는 감소 단계로, 거래에 의해 정리된 모발이 발달하는 단계입니다.
고유(쓰기) 잠금을 선언하려면 거래가 먼저 공유(읽기) 잠금을 획득한 다음 이를 고유 잠금으로 업데이트해야 합니다.
엄격한 2단계 잠금
Strict-2PL의 첫 번째 단계는 2PL과 동일합니다. 첫 번째 단계에서 모든 잠금을 획득한 후 거래는 정상적으로 진행됩니다.
그러나 2PL과 달리 Strict-2PL은 사용 후 잠금을 해제하지 않습니다. Strict-2PL은 커밋 시점까지 모든 잠금을 유지하고 한 번에 모든 잠금을 해제합니다.
타임스탬프 기반 프로토콜
가장 널리 사용되는 동시성 방법은 타임스탬프 중심 방법입니다.
이 방법은 프로그램 시간이나 논리 카운터를 타임스탬프로 사용합니다.
잠금 기반 방법은 성과 기간 동안 거래 중 일관성이 없는 세트 간의 구매를 처리하는 반면, 타임스탬프 기반 방법은 거래가 설계되자마자 시작됩니다.
모든 거래에는 관련된 타임스탬프가 있으며, 구매는 거래 기간에 따라 달라집니다. 0002 시간에 설계된 거래는 그 이후의 다른 모든 거래보다 오래 지속됩니다.
예를 들어, 0004에서 프로그램에 들어오는 모든 거래 ‘y’는 2초 젊고 관심은 성숙한 거래에 주어질 것입니다.
포함 시 모든 데이터 항목에는 최신 연구 및 쓰기 타임스탬프가 제공됩니다.
이를 통해 프로그램은 데이터 항목에 대해 마지막 ‘읽기 및 쓰기’ 기능이 언제 수행되었는지 알 수 있습니다.
타임스탬프 주문 프로토콜
타임스탬프 순서 지정 방법은 일관되지 않은 읽기 및 쓰기 기능 처리 간의 직렬성을 보장합니다.
이는 일관성 없는 두 개의 프로젝트가 거래의 타임스탬프 원칙에 따라 구현되어야 한다는 방법 프로그램을 유지합니다.
거래 Ti의 타임스탬프는 TS(Ti)로 표시됩니다.
데이터 항목 X의 읽기 타임스탬프는 R-timestamp(X)로 표시됩니다.
데이터 항목 X의 쓰기 타임스탬프는 W-timestamp(X)로 표시됩니다.
타임스탬프 구매 방식은 다음과 같습니다.
거래 Ti가 read(X) 기능을 제공하는 경우 –
TS(Ti) < W-타임스탬프(X)인 경우
수술이 거부되었습니다.
TS(Ti) >= W-타임스탬프(X)인 경우
작업이 구현되었습니다.
모든 데이터 항목 타임스탬프가 수정되었습니다.
거래 Ti가 write(X) 기능에 문제가 있는 경우 −
TS(Ti) < R-타임스탬프(X)인 경우
수술이 거부되었습니다.
TS(Ti) < W-타임스탬프(X)인 경우
작업이 거부되고 Ti가 롤백되었습니다.
그렇지 않으면 함수가 실행됩니다.
토마스의 쓰기 규칙
이 개념은 TS(Ti) < W-timestamp(X)인 경우 절차가 거부되고 Ti가 롤백된다는 것을 선언합니다.
루틴 뷰를 직렬화하기 위해 타임스탬프 순서 지정 규칙을 사용자 정의할 수 있습니다.
Ti를 롤백하는 대신 ‘쓰기’ 기능 자체가 무시됩니다.
푸네에서 열리는 SQL DBA 교육에 참여하여 이 분야에서 경력을 쌓을 수 있습니다.