Firebird 트랜잭션 상세 설명
Firebird 트랜잭션 상세 과정은 멀티버전 관리, 격리, 마커, 커밋과 롤백, 가비지 컬렉션, 스윕, 그리고 애플리케이션에서 트랜잭션 문제를 진단하는 방법에 대해 다룹니다.
교육 과정
- 레코드 버전이 생성되는 방식
- 트랜잭션 상태: 활성, 커밋됨, 롤백됨, 림보
- 버전의 가시성; Read Committed vs Snapshot
- 트랜잭션 시작/종료 시 트리거; 트랜잭션 수준 컨텍스트 변수
- 트랜잭션 시작 시 발생하는 일; 전역 마커 OAT, OST, OIT
- 커밋; 캐시 플러시가 있는 표준 롤백 vs 플러시 없는 강제 롤백
- 언두 로그 유무에 따른 롤백; 유지 트랜잭션
- 임시 BLOB; 언두 로그; 자동 커밋
- 트랜잭션 메모리; 로컬 TIP 및 관련 문제
- 트랜잭션 간 상호작용; 충돌; 애플리케이션 템플릿
- 시나리오: 읽기/읽기, 읽기/쓰기, 쓰기/쓰기; 모범 사례
- 가비지 컬렉션 vs 스윕; 자동 스윕의 장단점
- 과도한 가비지를 생성하는 애플리케이션 실수
- 문제 진단: OIT/OST/OAT/NEXT 조합; GC가 실행되지 않는 경우
- 가비지 양; MON$로 장기 트랜잭션 찾기
- MON$ 및 Trace API를 통한 모니터링
- 트랜잭션 처리가 손상된 레거시 애플리케이션을 위한 해결 방법