STM 동시성 제어 프로토콜 성능 비교: BTO·SGT·MVTO와 Synchrobench 연동 실험
초록
본 논문은 기본 타임스탬프 순서(BTO), 직렬화 그래프 검사(SGT), 다중버전 타임스탬프(MVTO) 세 가지 소프트웨어 트랜잭션 메모리(STM) 프로토콜을 구현하고, 이를 Synchrobench 벤치마크의 다양한 락 기반 리스트와 비교한다. 70% 업데이트 비율, 100스레드까지의 실험에서 BTO와 MVTO가 SGT보다 우수한 CPU 사용량을 보였으며, ESTM이 전체적으로 가장 높은 성능을 기록하였다.
상세 분석
이 연구는 데이터베이스에서 오랜 역사를 가진 타임스탬프 기반 동시성 제어 기법을 STM에 직접 적용한 점이 가장 큰 특징이다. 구현은 ‘지연 쓰기(deferred write)’ 방식을 채택해 각 트랜잭션이 로컬 버퍼에 읽·쓰기 연산을 기록하고, 커밋 시점에 프로토콜별 검증을 수행한다. BTO는 각 공유 객체에 MAX_READ와 MAX_WRITE 타임스탬프를 유지해 충돌 시 타임스탬프 순서에 따라 자동 롤백한다. SGT는 트랜잭션 간 충돌 관계를 그래프로 관리하고, 사이클이 발생하면 해당 트랜잭션을 중단한다. MVTO는 다중 버전을 유지해 읽기 연산이 최신 커밋된 버전 중 타임스탬프가 가장 큰 것을 선택하도록 설계되었다.
성능 평가에서는 Intel i3 듀얼코어 환경에서 2 GB 메모리, Ubuntu 16.04, g++ 5.4를 사용하였다. 측정 지표는 실시간(real time), 전체 CPU 시간, 스레드당 CPU 시간 세 가지이며, 특히 스레드당 CPU 시간이 가장 중요한 지표로 채택되었다. 실험 결과 BTO는 lazy‑list와 lock‑coupling list(스핀락) 대비 스레드당 CPU 시간을 24 %~33 % 절감했으며, MVTO는 동일 조건에서 22 %~36 % 정도의 개선을 보였다. 반면 SGT는 대부분의 경우 성능이 뒤처졌고, ESTM은 모든 측정에서 가장 앞선 결과를 기록했다.
프로토콜별 장단점을 살펴보면, BTO는 구현이 비교적 단순하고 메타데이터 관리 비용이 낮아 높은 스케일러빌리티를 제공한다. MVTO는 읽기‑집중 워크로드에서 버전 관리가 이점을 주지만, 버전 저장소가 커지면 메모리 오버헤드와 가비지 컬렉션 비용이 급증한다. SGT는 충돌 그래프를 실시간으로 유지해야 하므로 락 오버헤드와 그래프 크기 증가에 따른 성능 저하가 두드러진다. 또한, 모든 프로토콜이 동일한 ‘지연 쓰기’ 모델을 사용했기 때문에 커밋 단계에서의 검증 비용이 전체 성능에 큰 영향을 미친다.
한계점으로는 실험 환경이 듀얼코어 수준에 머물러 있어 고코어 수 시스템에서의 확장성을 충분히 검증하지 못했다는 점, 그리고 테스트 어플리케이션이 SET(링크드 리스트) 하나에 국한되어 있어 트리, 해시, 스킵리스트 등 다른 자료구조에 대한 일반화가 필요하다는 점을 들 수 있다. 향후 연구에서는 더 많은 코어를 갖춘 서버급 머신, 다양한 워크로드(예: STAMP), 그리고 가비지 컬렉션 및 컨텐션 매니지먼트 기법을 통합한 하이브리드 프로토콜을 탐색할 여지가 있다.
댓글 및 학술 토론
Loading comments...
의견 남기기