[논문 리뷰] Improving High Contention OLTP Performance via Transaction Scheduling
Strife는 거래를 버치하고 충돌 없는 클러스터와 잔여 작업으로 분할하여 고콘텐션 OLTP 성능을 향상시킨다; 클러스터는 동시성 제어 없이 병렬로 실행되며, 잔여 작업은 순차적으로 또는 동시성 제어를 통해 처리되어 2PL 및 옵timistic concurrency control 프로토콜 대비 최대 2배의 처리량 향상을 달성한다.
Research in transaction processing has made significant progress in improving the performance of multi-core in-memory transactional systems. However, the focus has mainly been on low-contention workloads. Modern transactional systems perform poorly on workloads with transactions accessing a few highly contended data items. We observe that most transactional workloads, including those with high contention, can be divided into clusters of data conflict-free transactions and a small set of residuals. In this paper, we introduce a new concurrency control protocol called Strife that leverages the above observation. Strife executes transactions in batches, where each batch is partitioned into clusters of conflict-free transactions and a small set of residual transactions. The conflict-free clusters are executed in parallel without any concurrency control, followed by executing the residual cluster either serially or with concurrency control. We present a low-overhead algorithm that partitions a batch of transactions into clusters that do not have cross-cluster conflicts and a small residual cluster. We evaluate Strife against the optimistic concurrency control protocol and several variants of two-phase locking, where the latter is known to perform better than other concurrency protocols under high contention, and show that Strife can improve transactional throughput by up to 2x. We also perform an in-depth micro-benchmark analysis to empirically characterize the performance and quality of our clustering algorithm
연구 동기 및 목표
- 고콘텐션 환경에서 전통적인 OLTP 시스템의 성능 저하, 특히 락 경쟁과 거래 실패로 인한 성능 저하 문제를 해결하기 위해.
- 다중 코어 인메모리 OLTP 시스템에서 거래 접근 패턴의 본질적 특성을 활용하여 동시성 제어 오버헤드를 줄이기 위해.
- 동적 방식으로 거래 버치를 충돌 없는 클러스터와 잔여 작업으로 분할하여 락 또는 유효성 검사에 의존도를 최소화하기 위해.
- 클러스터는 병렬로 실행하고 잔여 작업은 제어된 동시성으로 처리하여 순서 있는 실행을 유지하면서도 높은 처리량을 달성하기 위해.
- TPC-C 및 YCSB와 같은 왈쓰 집약적이고 고콘텐션 워크로드에서 표준 2PL 및 OCC 프로토콜을 능가하기 위해.
제안 방법
- Strife는 거래를 마이크로 버치로 처리하고, 각 버치를 독립적으로 분석하여 충돌 없는 클러스터와 잔여 작업을 식별한다.
- 저오버헤드의 분할 알고리즘이 서로 다른 클러스터 간 데이터 충돌이 없는 거래를 클러스터로 묶어, 병렬 실행 시 순서 있는 실행을 보장한다.
- 충돌 없는 클러스터는 동시성 제어 없이 여러 코어에서 병렬로 실행되며, 명시적으로 취소되지 않는 한 커밋을 보장한다.
- 다수의 클러스터와 충돌하는 잔여 거래는 순차적으로 또는 동시성 제어를 통해 처리되어 정확성을 유지한다.
- 시스템은 각 버치마다 거래를 재분할하여 정적 데이터 분할 없이 변화하는 접근 패턴에 적응할 수 있다.
- 중앙 집중식 락 관리 방식을 피하고, 락과 유효성 검사의 사용을 최소화함으로써 실패 수를 줄인다.
실험 결과
연구 질문
- RQ1고콘텐션 워크로드에서 거래 워크로드를 효과적으로 충돌 없는 클러스터로 분할하여 동시성 제어 오버헤드를 줄일 수 있는가?
- RQ2버치 단위의 동적 분할 전략은 정적 또는 전역 분할 전략에 비해 OLTP 처리량을 어떻게 향상시킬 수 있는가?
- RQ3충돌 없는 클러스터에 대해 동시성 제어를 완전히 제거하면 고콘텐션 환경에서 성능 향상에 얼마나 기여하는가?
- RQ4쓰기 집약적 워크로드에서 Strife는 2PL 및 OCC와 비교해 처리량과 실패율 측면에서 어떻게 성능을 낼 수 있는가?
- RQ5병렬 클러스터와 제어된 잔여 작업을 조합한 하이브리드 실행 모델은 높은 성능과 순서 있는 실행을 동시에 달성할 수 있는가?
주요 결과
- Strife는 TPC-C 및 YCSB 워크로드에서 고콘텐션 환경에서 표준 2단계 락(2PL) 프로토콜 대비 최대 2배의 처리량을 달성한다.
- 성능 향상의 주요 원인은 고콘텐션 워크로드에서 대부분의 거래를 차지하는 충돌 없는 거래 클러스터에 대해 동시성 제어 오버헤드를 제거했기 때문이다.
- Strife는 옵티미스틱 동시성 제어(OCC) 및 기타 2PL 변종보다 뛰어난 성능을 보이며, 특히 쓰기 경쟁이 높고 자주 실패하는 워크로드에서 두각을 나타낸다.
- 저오버헤드의 분할 알고리즘이 교차 클러스터 충돌이 없는 클러스터를 효율적으로 식별하여 확장 가능한 병렬 실행을 가능하게 한다.
- 효율적인 클러스터링 덕분에 잔여 작업이 최소화되어 고비용의 동시성 제어나 순차 처리의 필요성을 줄였다.
- 버치 단위의 재분할 기능 덕분에 정적 분할 데이터베이스나 고정된 동시성 제어 프로토콜과 달리 동적 접근 패턴에 적응할 수 있다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.