Skip to main content
QUICK REVIEW

[논문 리뷰] Parallel Database Recovery for Multicore Main-Memory Databases.

Yingjun Wu, Wentian Guo|arXiv (Cornell University)|2016. 04. 12.
Distributed systems and fault tolerance참고 문헌 34인용 수 3
한 줄 요약

이 논문은 주로 메모리 기반 다중코어 데이터베이스에서 병렬 로그 복구 메커니즘인 TARS를 제안하며, 온라인 트랜잭션 처리 중에 로깅 오버헤드 없이도 빠른 장애 복구를 가능하게 한다. 저장 프로시저의 정적 의존성 분석과 복구 시점의 동적, 단일 패assing 파rameter 스캔을 조합함으로써 TARS는 로그 재실행에서 높은 병렬성을 달성하여 최신 기술 대비 복구 지연을 크게 감소시킨다.

ABSTRACT

Main-memory database systems for multicore servers can achieve excellent performance when processing massive volume of OLTP workloads. But crash-resilience mechanism, or namely loggingand-replay, can either degrade the performance of transaction processing or slow down the process of failure recovery. In this paper, we show that, by exploiting application semantics, it is possible to achieve speedy failure recovery without introducing any costly logging overhead to the execution of online transactions. We propose TARS, a parallel log-recovery mechanism that is specifically designed for lightweight, coarse-grained command-logging approach. TARS leverages a combination of static and dynamic analyses to parallelize the log replay: at compile time, TARS decomposes stored procedures by carefully analyzing dependencies within and across programs; at recovery time, a re-execution schedule with a high degree of parallelism is attained through lightweight one-pass scans over transaction parameter values. As such, recovery latency is remarkably minimized. We evaluated TARS in a main-memory database prototype running on a 40-core server. Compared to the state-of-the-art mechanisms, TARS yields significantly higher recovery rate without compromising the efficiency of transaction processing.

연구 동기 및 목표

  • 로그 및 재실행에 의존하는 주로 메모리 기반 OLTP 데이터베이스에서 장애 복구 메커니즘의 성능 저하 문제를 해결하기 위해.
  • 트랜잭션 실행 중에 로깅 오버헤드를 제거하면서도 장애 내성성을 유지하기 위해.
  • 다중코어 환경에서 높은 병렬성의 로그 재실행을 통해 복구 지연을 최소화하기 위해.
  • 응용 프로그램 의미론과 저장 프로시저 구조를 활용하여 효율적인 병렬 실행을 위한 복구 메커니즘을 설계하기 위해.

제안 방법

  • TARS는 컴파일 시점에 정적 분석을 사용하여 저장 프로시저 간의 데이터 및 제어 의존성을 식별함으로써 프로시저를 분해한다.
  • 의존성 분석을 수행하여 복구 시 로그 재실행에 대해 안전한 병렬 실행 단위를 결정한다.
  • 복구 시점에 TARS는 트랜잭션 파라미터 값에 대한 경량의 단일 패assing 스캔을 수행하여 고수준의 재실행 스케줄을 생성한다.
  • 비용이 많이 드는 로깅을 피하기 위해 굵은 단위의 명령 로깅을 활용한다.
  • 파라미터 값에 기반하여 동적으로 재실행 작업을 스케줄링하여 복구 시 병렬성을 극대화한다.
  • 정적 분해와 동적 스케줄링을 통합하여 복구의 정확성과 성능 간의 균형을 맞춘다.

실험 결과

연구 질문

  • RQ1트랜잭션 실행 중에 로깅 없이도 응용 프로그램 의미론을 활용하여 주로 메모리 기반 데이터베이스에서 빠르고 오버헤드가 적은 복구를 달성할 수 있는가?
  • RQ2저장 프로시저 간 의존성을 정적으로 분석하여 안전하고 효율적인 병렬 로그 재실행를 가능하게 할 수 있는가?
  • RQ3정확성을 보장하면서도 복구 시 병렬성을 극대화할 수 있는 동적 스케줄링 전략은 무엇인가?
  • RQ4정적 분석과 경량 런타임 스캔의 조합을 통해 복구 지연을 얼마나 줄일 수 있는가?
  • RQ5다중코어 환경에서 기존의 로깅 및 재실행 메커니즘과 비교해 복구 성능은 어떻게 되는가?

주요 결과

  • TARS는 40코어 메모리 기반 데이터베이스 프로토타입에서 최신 기술 대비 뚜렷이 높은 복구 속도를 달성한다.
  • 시스템은 온라인 트랜잭션 처리 중에 로깅 오버헤드를 제거하여 트랜잭션 처리 효율성을 유지한다.
  • 정적 및 동적 분석으로 인해 높은 병렬성이 확보되어 복구 지연이著명하게 감소한다.
  • 트랜잭션 파라미터에 대한 경량의 단일 패assing 스캔 덕분에 효율적이고 확장 가능한 복구 스케줄링이 가능하다.
  • TARS는 복구 성능을 트랜잭션 처리 오버헤드로부터 분리하여 높은 처리량과 낮은 복구 지연을 동시에 달성한다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.