동시 제어 란 무엇입니까?
데이터 관리 프로그래밍에서 동시성 제어는 동시 작업에 의해 정확한 결과를 생성하도록 설계된 메커니즘입니다. 이러한 결과는 적시에 얻어야합니다. 동시성 제어는 사용자가 얻을 수있는 검색 가능한 정보의 캐시가있는 데이터베이스에서 자주 나타납니다.
프로그래머는 공유 데이터에 대한 중요한 트랜잭션의 영향이 연속적으로 동일하게 될 수있는 방식으로 데이터베이스를 설계하려고합니다. 이것은 모든 트랜잭션이 일련의 특정 순서로 실행될 경우 결과가 얻을 수있는 특정 상태에있는 트랜잭션 세트와 접촉하는 데이터가 결과를 얻을 수 있다는 것입니다. 때로는 두 개의 트랜잭션에 의해 수정 된 결과에 따라 해당 데이터가 유효하지 않습니다.
트랜잭션의 사용을 포함하여 거래에 액세스 할 수있는 트랜잭션을 결정하는 리소스를 작성하는 것뿐만 아니라 트랜잭션이 상대적으로 실행되도록하는 여러 가지 방법이 있습니다. 그러나 이것은 과잉입니다프로그래머가 분산 시스템에서 동시성 제어의 혜택을받을 수 없습니다. 동시성 제어를 통해 여러 트랜잭션을 동시에 실행하면서 이러한 트랜잭션을 서로 멀리 유지하여 선형화 가능성을 보장합니다. 동시성 제어를 구현하는 한 가지 방법은 자원을 공유하는 직렬 거래 실행을위한 특정 리소스에 대한 독점 잠금을 사용하는 것입니다. 트랜잭션은 사용하려는 객체를 잠그고 다른 트랜잭션이 잠긴 객체를 요청하는 경우 해당 트랜잭션이 개체가 잠금 해제 될 때까지 기다려야합니다.
분산 시스템 에서이 방법을 구현하려면 리소스 잠금을 발행하는 서버 인 잠금 관리자가 포함됩니다. 이는 중앙 집중식 상호 배제를위한 서버와 매우 유사하며, 고객이 잠금을 요청하고 특정 리소스에 대한 잠금 장치 릴리스에 대한 메시지를 보낼 수 있습니다. 연속 exe의 보존그러나 동시성 제어를 위해서는 여전히 자체가 필요합니다. 두 개의 개별 트랜잭션이 유사한 객체 세트에 액세스하면 결과는 유사해야하며 이러한 트랜잭션이 특정 순서로 실행 된 것처럼 마치. 자원에 대한 액세스에 대한 순서를 보장하기 위해 2 단계 잠금 장치가 도입되므로 별도의 잠금 장치가 릴리스시 새로운 자물쇠가 허용되지 않습니다.
. 동시성 제어를 위해 2 상 고정에서초기 단계는 트랜잭션이 필요한 잠금을 얻는 성장 단계로 간주됩니다. 다음 단계는 수축 단계로 간주되며 트랜잭션에는 잠금 장치가 릴리스됩니다. 이러한 유형의 잠금에는 문제가 있습니다. 트랜잭션이 중단되면 다른 트랜잭션은 중단 된 트랜잭션으로 수정되고 잠금 해제 된 객체의 데이터를 사용할 수 있습니다. 이로 인해 다른 거래가 중단됩니다.