[NDC 2015] 마비노기 듀얼: 분산 데이터베이스 트랜잭션 설계와 구현
비관적 동기화 (락 기반 동기화) 내용 __ 작업하는 동안 다른 동작을 못하게 한다. 단점 __ 모든 DB 변경에서 락을 잡아야 한다 __ 락을 잡을 수 없는 상황(서버 다운)이 있다 낙관적 동기화 (트랜잭셔널 메모리) 내용 __ 일단 진행하고, 문제가 생기면 롤백한다 애플리케이션 레벨에서 롤백을 구현해야 하므로 문제 영역을 나눠보자 __ 퍼스트 로컬 트랜잭션 ____ 실패할 가능성이 있는 것 ____ 안전하게 롤백할 수 있어야 함 ____ ex) 아이템 제거, 골드 감소 __ 세컨드 로컬 트랜잭션 ____ 실패할 가능성이 없는 것 ____ 안전하게 롤백할 수 없어도 된다 ____ ex) 아이템 추가, 골드 증가 절차 1. 모든 참여자(DB)들에게 퍼스트 LT를 실행 2. 모든 퍼스트 LT가 성공하고 나..