[Paper] Lotus: 분산 트랜잭션을 분산 락으로 최적화

발행: (2025년 12월 18일 오후 12:49 GMT+9)
9 min read
원문: arXiv

Source: arXiv - 2512.16136v1

개요

이 논문은 Lotus라는 새로운 분산 트랜잭션 시스템을 소개합니다. 이 시스템은 분산 메모리(DM) 아키텍처를 위해 설계되었습니다. 잠금 관리를 메모리‑노드 NIC에서 컴퓨트 노드로 옮김으로써, Lotus는 주요 네트워크 병목 현상을 제거하고 OLTP 워크로드에 대해 최대 2× 높은 처리량을 제공합니다.

핵심 기여

  • Lock disaggregation: 잠금은 메모리 노드(MNs) 대신 컴퓨트 노드(CNs)에서 저장·처리되어, MN의 RDMA NIC이 무거운 원자 연산 트래픽에서 해방됩니다.
  • Application‑aware lock sharding: Lotus는 워크로드 지역성을 기반으로 잠금을 파티셔닝하여, 캐시 친화성을 유지하면서 CN 전반에 걸쳐 부하를 균형 있게 분산합니다.
  • Lock‑first transaction protocol: 트랜잭션은 모든 데이터 접근 전에 필요한 잠금을 모두 획득하므로, 충돌을 조기에 감지하고 사전에 중단(abort)할 수 있습니다.
  • Lock‑rebuild‑free recovery: 잠금을 일시적인 것으로 취급하여, CN이 충돌(crash) 후에도 잠금 상태를 재구성하지 않고 가볍게 복구합니다.
  • Performance gains: 실험 평가 결과, 기존 최고의 DM 트랜잭션 시스템 대비 2.1배 높은 처리량과 ≈50 % 낮은 지연 시간을 달성했습니다.

Source:

Methodology

  1. 시스템 모델: 저자들은 여러 CN이 RDMA를 통해 MN 풀과 통신하는 전형적인 DM 배치를 가정합니다. 기존 설계에서는 잠금 메타데이터를 MN에 두어 NIC가 일방향 원자 연산(예: compare‑and‑swap)의 홍수를 처리하도록 합니다.
  2. 잠금 분산 설계: Lotus는 트랜잭션을 시작하는 CN으로 각 잠금을 이동시킵니다. 가벼운 잠금 테이블을 CN의 로컬 메모리에 보관하고, 잠금 소유권은 작은 “lock‑owner” 디렉터리를 통해 MN에 광고되어 캐시될 수 있습니다.
  3. 샤딩 알고리즘: 잠금은 보호하는 주요 데이터 항목에 따라 그룹화됩니다. 워크로드 통계(예: 핫 키)를 사용하여 Lotus는 대부분의 잠금 요청이 로컬에 머물도록 CN에 그룹을 할당하고, 핫스팟이 이동할 경우를 대비해 간단한 해시 기반 폴백을 통해 고르게 분산시킵니다.
  4. 트랜잭션 흐름:
    • Lock‑first 단계: CN은 관련된 CN(자신 포함)에게 잠금 획득 메시지 배치를 보냅니다.
    • 검증: 잠금 중 하나라도 실패하면 트랜잭션은 즉시 중단됩니다—데이터 읽기는 수행되지 않습니다.
    • 실행 단계: 모든 잠금이 확보되면 CN은 MN에 존재하는 데이터에 대해 RDMA 읽기/쓰기 작업을 수행합니다.
    • 커밋/해제: 쓰기‑백 후 잠금은 비차단 RDMA 쓰기를 사용해 원자적으로 해제됩니다.
  5. 복구: CN이 실패하면 시스템은 해당 CN이 보유한 모든 잠금을 만료된 것으로 처리합니다. 잠금이 영구 저장되지 않기 때문에 다른 CN은 비용이 많이 드는 재구성 단계 없이 중단된 트랜잭션을 단순히 재시도할 수 있습니다.

결과 및 발견

지표Lotus vs. Baseline (최첨단 DM 트랜잭션 시스템)
처리량↑ 2.1× (최대 2.1배 증가)
평균 지연시간↓ 49.4 % (거의 절반)
NIC 원자 연산 부하↓ ≈ 70 % (MN RNIC에서)
확장성CN을 추가할 때 거의 선형적인 처리량 증가, 반면 베이스라인은 NIC 포화로 인해 정체
복구 시간≈ 30 % 낮음 (lock‑rebuild 접근법 대비)

실험은 YCSB 유형 워크로드와 TPC‑C와 유사한 OLTP 벤치마크를 포함하며, lock‑first 프로토콜이 데이터 읽기 후 발생하는 중단으로 인한 낭비된 네트워크 트래픽을 크게 감소시킴을 보여준다.

Practical Implications

  • For cloud providers: Lotus를 분산 메모리 클러스터(예: NVIDIA DGX‑SuperPOD, Azure의 메모리 풀 서비스)에 배포하면 추가 하드웨어 투자 없이도 자원 활용도를 향상시킬 수 있습니다.
  • For database engineers: 기존 RDMA 기반 트랜잭션 엔진은 락‑우선 프로토콜과 락 샤딩 로직을 도입함으로써, 특히 높은 경쟁이 발생하는 워크로드에서 즉각적인 성능 향상을 얻을 수 있습니다.
  • For developers of micro‑services: 서비스가 공통 DM 스토어를 공유할 때, 락 상태를 서비스 호스트(CN)로 이동하면 노드 간 지연 시간이 감소하여 대규모에서도 세밀한 트랜잭션 의미론을 구현할 수 있습니다.
  • For system architects: 락 재구성 없이 복구하는 모델은 장애 처리를 단순화하고, 대규모 DM 배포의 운영 복잡성을 낮춥니다.

제한 사항 및 향후 연구

  • 워크로드 의존성: Lotus는 지역성 패턴(예: 핫 키가 몇몇 CN에 머무르는 경우)에 의존합니다. 매우 무작위적인 접근 패턴은 샤딩 균형을 악화시키고 네트워크 핫스팟을 다시 발생시킬 수 있습니다.
  • CN의 메모리 오버헤드: 잠금 테이블을 로컬에 저장하면 컴퓨트 노드의 메모리를 추가로 소비하게 되며, 이는 일부 환경에서 제한될 수 있습니다.
  • 내결함성 범위: 현재 설계는 CN 충돌을 우아하게 처리하지만 MN이 신뢰할 수 있다고 가정합니다; MN 실패를 견디도록 모델을 확장하는 연구는 향후 과제로 남겨져 있습니다.
  • 프로토콜 통합 확대: 저자들은 Lotus가 다중 버전 동시성 제어(MVCC) 및 하이브리드 트랜잭션 모델과 어떻게 상호 작용하는지 탐구하여 혼합 읽기‑쓰기 워크로드에서 성능을 더욱 향상시키는 방안을 연구할 계획입니다.

저자

  • Zhisheng Hu
  • Pengfei Zuo
  • Junliang Hu
  • Yizou Chen
  • Yingjia Wang
  • Ming-Chang Yang

논문 정보

  • arXiv ID: 2512.16136v1
  • 카테고리: cs.DC
  • 발행일: 2025년 12월 18일
  • PDF: PDF 다운로드
Back to Blog

관련 글

더 보기 »

[Paper] HEAL 데이터 플랫폼

목표: 목표는 cloud-based, federated system을 개발하여 데이터가 생성되는 환경에서 단일 search, discovery 및 analysis 지점으로 제공하는 것이었습니다.