위키득계정 ↗
기술

Silo 트랜잭션 처리

Silo 트랜잭션 처리기술
연구 발표
SOSP 2013
자료 위치
메모리 내 데이터베이스
동시성 방식
낙관적 동시성 제어
복구 구성
주기적 에포크와 로그
Silo는 여러 코어에서 메모리 내 트랜잭션을 처리하도록 설계한 데이터베이스다. 낙관적 동시성 제어와 주기적 실행 구간을 결합해 공유 상태의 경합을 줄이면서 직렬 실행과 동등한 결과 및 복구를 지원한다.

커밋 시점의 검증

트랜잭션은 자신이 읽거나 쓴 레코드를 스레드별로 추적한다. 커밋 과정에서 읽은 자료가 유효한지 검사하고, 검증에 실패하면 중단하는 방식으로 동시 실행의 정확성을 유지한다.

읽기의 공유 쓰기 회피

읽기만 한 레코드에 공유 메모리 쓰기를 남기지 않도록 구성한 점이 핵심이다. 중앙에서 모든 트랜잭션 식별자를 할당하는 경합도 피하려는 설계를 사용한다.

실행 순서와 복구

공유 상태의 수정을 줄이더라도 장애 복구 뒤 트랜잭션 순서를 지켜야 한다. Silo는 주기적으로 갱신하는 에포크를 커밋 프로토콜 및 로깅과 연결해 이 문제를 다뤘다.

관련 문서

데이터베이스 트랜잭션 / Masstree / 병렬 컴퓨팅 / 스레드 (컴퓨팅) / CPU 캐시 / 데이터베이스