목록병행제어 (2)
개발스토리
트랜잭션 읽기 쓰기 시나리오 트랜잭션 동시 실행 문제 ■ 오손읽기(uncommitted dependency) - 읽기 작업을 하는 트랜잭션1이 쓰기 작업을 하는 트랜잭션2가 작업한 중간 데이터를 읽기 때문에 생기는 문제 - 작업 중인 트랜잭션2가 어떤 이유에서 작업을 철회(ROLLBACK)할 경우 트랜잭션1은 무효가 된 데이터를 읽게 되고 잘못된 결과를 도출하는 현상 ■ 반복 불가능 읽기(inconsistent analysis) - 트랜잭션1이 데이터를 읽고 트랜잭션2가 데이터를 쓰고, 트랜잭션1이 다시 한 번 데이터를 읽을 때 생기는 문제 - 트랜잭션1이 읽기 작업을 다시 한 번 반복할 경우 이전의 결과와 다른 결과가 나오는 현상 ■ 유령 데이터 읽기(phantom read) - 트랜잭션1이 데이터를 ..
병행 수행(concurrency) - 여러 사용자가 데이터베이스를 동시 공유할 수 있도록 여러 개의 트랜잭션을 동시에 수행하는 것을 의미 - 여러 트랜잭션이 차례로 번갈아 수행되는 인터리빙(interleaving) 방식으로 진행된다. 인터리빙 방식 주기억장치에 접근하는 속도를 빠르게 하는데 사용된다. 메모리 인터리빙 기법은 인접한 메모리 위치를 서로 다른 메모리 뱅크(bank)에 둠으로써 동시에 여러 곳을 접근할 수 있게 하는 것이다. ■ 병행 제어(concurrency control)또는 동시성 제어 - 병행 수행 시 같은 데이터에 접근하여 연산을 실행해도 문제가 발생하지 않고 정확한 수행 결과를 얻을 수 있도록 트랜잭션의 수행을 제어하는 것을 의미한다. 병행 수행 시 발생할 수 있는 문제점 ■ 갱신 ..