위키득계정 ↗
기술

Cicada 트랜잭션 처리

Cicada 트랜잭션 처리기술
연구 발표
SIGMOD 2017
실행 환경
단일 노드의 여러 코어
동시성 구성
낙관적 실행과 다중 버전
시각 관리
느슨하게 동기화된 여러 시계
Cicada는 단일 서버의 여러 코어에서 트랜잭션을 처리하는 메모리 내 데이터베이스다. 낙관적 실행과 다중 버전 및 스레드별 시계를 결합해 다양한 작업 부하에서 경합 비용을 줄이도록 설계됐다.

작업 부하에 따른 경합

트랜잭션 처리 성능은 읽기와 쓰기의 비율이나 같은 자료에 접근하는 정도에 따라 달라진다. Cicada는 특정 조건에서만 빠른 설계를 벗어나 여러 수준의 경합을 함께 다루는 것을 목표로 했다.

버전과 시계의 결합

작업 스레드는 레코드의 여러 버전 중 필요한 버전을 사용하며 스레드별 시계를 유지한다. 시계를 느슨하게 동기화해 중앙에서 모든 시각을 발급할 때 생기는 부담을 줄인다.

중단 비용과 메모리 접근

자주 중단되는 작업의 재시도 간격을 조정하고 버전 저장 및 회수 비용을 줄이는 기법도 포함한다. 연구는 TPC-C와 YCSB를 이용해 이러한 구성의 처리량을 평가했다.

관련 문서

Silo 트랜잭션 처리 / TicToc 동시성 제어 / 데이터베이스 트랜잭션 / 병렬 컴퓨팅 / CPU 캐시 / 데이터베이스