Concurrency and Recovery (동시성 제어 및 복구) 개요
- DBMS는 장애(Failures) 발생 시 데이터의 올바름(Correctness)을 재확립하고 원래의 안정적인 상태로 복구(Recovery)해야 함
- 또한 여러 클라이언트가 데이터베이스에 동시에 접근할 수 있도록 동시성(Concurrency)을 지원해야 함
- 서로 다른 클라이언트의 연산이 교차 실행(Interleaving)되면서 데이터의 일관성에 문제가 발생할 수 있으므로, 시스템은 **동시성 제어(Concurrency control)**를 통해 일관성을 철저히 보장해야 함
트랜잭션 구현 핵심 기술
- Logging (로깅): 데이터의 원자성(Atomicity)과 지속성(Durability) 속성을 보장함
- Synchronization (동기화 및 락킹): 데이터의 고립성(Isolation) 속성을 보장함
DBMS 소프트웨어 구성 아키텍처

- 트랜잭션이 읽기/쓰기 요청을 생성하면 Transaction Manager로 전송함
- Transaction Manager는 원자성 및 복구 가능성을 확보하기 위해 로그(Log)를 먼저 작성한 뒤, 요청을 하단의 Scheduler로 전달함
- Scheduler는 직렬화 가능성(Serializability)을 보장하기 위해 락 테이블(Lock table)을 참조하여 요청의 실행 순서를 재배열하거나 승인/대기 여부를 결정함
- 안전하다고 판단된 요청만 하단의 메모리 버퍼(Buffers)로 전달되어 실제 데이터 연산이 수행됨
Transaction과 Schedule (트랜잭션과 스케줄)