0. 질문에 대한 답변
DB 인터리빙(Interleaving)이란 다중 트랜잭션 환경에서 동시에 여러 트랜잭션의 연산들이 일정한 규칙에 따라 교차되어 실행되는 방식으로, 데이터베이스의 일관성(Consistency)과 동시성(Concurrency)을 보장하기 위한 트랜잭션 스케줄링 기법입니다.
1. 개념 & 핵심
- Interleaving은 여러 트랜잭션의 연산들을 순차적으로 섞어 실행하는 방식
- 동시성 제어(Concurrency Control)의 핵심 기술
- 직렬 가능성(Serializability)을 유지하여 데이터 정합성 확보
2. 등장배경 & 목적
- 등장배경: 다수의 사용자 또는 애플리케이션이 동시에 DB를 사용하는 환경 증가
- 목적: 데이터 무결성을 지키면서 시스템 자원 활용률 극대화 및 응답 시간 단축
3. 역할
- 트랜잭션 간 동시 수행 가능성 확보
- 트랜잭션 간 데이터 충돌 방지
- 일관성 유지 및 복구 용이성 제공
4. 활용 계층 또는 범위
- DBMS의 트랜잭션 처리기(Transaction Manager)에서 활용
- OLTP(Online Transaction Processing) 시스템에 필수 적용
5. 구성요소
- 트랜잭션 집합
- 각 트랜잭션의 연산(Read, Write, Commit 등)
- 스케줄러(Scheduler): 트랜잭션 연산 순서를 조절
6. 시간순 작동 순서
1. 여러 트랜잭션이 DBMS에 요청
2. 스케줄러가 트랜잭션 연산들을 일정 규칙에 따라 교차 배치
3. 교차된 연산 순서대로 실행
4. 직렬 가능성 판단 후 실행 허용 or Rollback
7. 종류
- Serial Schedule: 하나씩 순차 실행 (비인터리빙)
- Non-Serial Schedule (Interleaved): 교차 실행
- 이 중 Serializability(직렬 가능성)을 만족하면 유효한 스케줄
- 스케줄에 따라
- Conflict Serializable Schedule
- View Serializable Schedule
8. 장단점
장점
- 시스템 자원 활용 극대화
- 동시 사용자 처리량 향상
- 응답 시간 단축
단점
- 교착 상태(Deadlock) 발생 가능성
- 동시성 제어 기법에 따라 구현 복잡도 증가
- 직렬 가능성 판단 어려움
9. 전망 & 개선점
- AI 기반 스케줄링 및 Adaptive Concurrency Control 도입으로 효율 향상 기대
- 복잡도 줄이기 위한 Optimistic Concurrency Control 방식의 확산
- 분산 DBMS 환경에서의 인터리빙 최적화 연구 활발
10. 어린이 버전 요약
인터리빙은 여러 사람이 동시에 컴퓨터에 저장된 정보를 사용하는데, 서로 부딪히지 않게 순서를 똑똑하게 섞어주는 방법이에요! 마치 친구들이 교대로 블록 놀이를 하면서도, 각자 만든 집이 망가지지 않도록 도와주는 거예요!