302 0

NoSQL 데이터베이스를 위한 병렬 복구기법에 대한 연구

Title
NoSQL 데이터베이스를 위한 병렬 복구기법에 대한 연구
Other Titles
Study on Parallel Recovery for NoSQL Databases
Author
장형원
Alternative Author(s)
Hyeongwon Jang
Advisor(s)
정형수
Issue Date
2019-02
Publisher
한양대학교
Degree
Master
Abstract
데이터베이스의 로깅은 트랜잭션의 원자성(Atomicity) 과 지속성(Durability) 을 보장해주도록 데이터베이스의 상태 변경이 일어날 때 마다 이에 대한 정보를 저장장치에 기록하여 시스템 장애가 발생하여도 데이터베이스를 고장 이전의 일관성있는 상태로 복구할 수 있도록 해준다. 데이터베이스의 복구 작업은 저장장치에 기록된 전체 로그를 읽고 해석하여 데이터베이스의 페이지에 상태 변경을 적용하는 방식으로 동작하는데 이러한 복구 작업은 로그의 양이 많을수록 오랜 시간이 소요될 수 있으며 이는 시스템의 장애 대응 시 서비스 운용에 전반적으로 안 좋은 영향을 미친다. 전통적인 ARIES 방식의 복구를 적용한 많은 상용 및 오픈소스 관계형 데이터베이스에서는 이를 해결하기 위해 멀티코어 환경에서 다수의 코어가 동시에 로그를 읽으면서 페이지 단위로 상태 변경을 적용하도록 하는 병렬 처리 기법을 활용하여 복구 작업을 최대한 빠르게 수행해준다. 하지만 최근에 주목받고 있는 대부분의 NoSQL 데이터베이스는 이러한 복구 작업을 하나의 코어가 담당해서 처리하기 때문에 오랜 시간이 걸린다. 일반적으로 NoSQL 데이터베이스는 관계형 데이터베이스보다 성능이 좋고 특히 분산 로깅을 적용하면 초당 수 백만의 트랜잭션 처리량을 처리할 수 있을 정도로 많은 양의 로그를 빠르게 기록할 수 있는데 이에 대한 복구 작업이 개선되지 않는다면 그만큼 장애 대응 시 피해가 막대해질 수 있다. 이 논문에서는 전통적인 ARIES 기반의 복구 작업에서 사용되고 있는 병렬 처리 기법에 대해서 알아보고 이를 통해 NoSQL데이터베이스에서 일반적으로 설계 가능한 병렬 복구 기법에 대해서 알아본다. 특히 NoSQL 데이터베이스 중 가장 대표적인 도큐먼트 기반 오픈소스 데이터베이스인 MongoDB에서 사용되고 있는 백엔드 스토리지 엔진인 WiredTiger 를 대상으로 NoSQL 데이터베이스의 복구 작업에 적용 가능한 병렬 처리 기법을 논의한다. 그리고 분산 로깅을 적용한 WiredTiger 에서 복구 작업을 여러 가지 병렬 처리 기법을 활용하여 구현하였으며 기존 복구 작업 대비 성능 개선을 확인하기 위해 동일한 로그의 양이 주어졌을 때 얼마나 빠른 시간에 복구하는지 측정하여 비교한다. 분산 로그에 대한 복구 작업을 병렬 처리하면 최대 복구 시간이 76%에서 최대 92% 까지 단축되는 효과를 나타냈으며 이를 통해 NoSQL 데이터베이스의 복구 작업에 병렬 처리를 충분히 활용할 수 있음을 보여준다.
URI
https://repository.hanyang.ac.kr/handle/20.500.11754/99786http://hanyang.dcollection.net/common/orgView/200000434643
Appears in Collections:
GRADUATE SCHOOL[S](대학원) > COMPUTER SCIENCE(컴퓨터·소프트웨어학과) > Theses (Master)
Files in This Item:
There are no files associated with this item.
Export
RIS (EndNote)
XLS (Excel)
XML


qrcode

Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.

BROWSE