320 0

멀티코어 환경에서의 버퍼 동기화 성능 개선

Title
멀티코어 환경에서의 버퍼 동기화 성능 개선
Other Titles
Improving Buffer Synchronization on Multicore Environments
Author
오현석
Alternative Author(s)
Hyeonseok Oh
Advisor(s)
정형수
Issue Date
2019-02
Publisher
한양대학교
Degree
Master
Abstract
기존 비 휘발성 저장 장치들은 I/O속도가 RAM에 비해 현저히 느리기 때문에 운영체제를 비롯해 많은 어플리케이션 및 시스템들은 중간에 버퍼 계층을 두어 오버헤드를 최소화한다. 하지만 변경된 버퍼 페이지가 실제 저장 장치에 적용되지 않고 비정상적으로 종료될 경우 정보가 소실될 수 있으며 일부 시스템에서는 치명적인 문제가 될 수 있다. 그러므로 시스템은 페이지에 대한 변경이 발생하면 변경에 대한 정보를 담은 로그를 만들고 이를 커밋되기 전에 플러시하여 비정상적인 문제로 인한 정보 소실을 막는다. 하지만 생성되는 로그는 저장 공간의 한계로 인해 무한히 저장할 수 없으며, 특히 복구를 수행할 때 로그의 크기에 따라 복구 작업의 양이 정해지기 때문에 가용성을 중시하는 시스템에서는 로그의 양을 조절하는 것이 필요하다. 이렇게 저장해야 하는 로그의 양을 줄이기 위해 시스템에서는 변경된 페이지를 비 휘발성 저장 장치에 플러시하고 필요 없어진 로그를 정리하는 동기화 혹은 체크포인팅 기법이 사용된다. 즉 백그라운드 스레드를 생성해 변경된 페이지들을 비 휘발성 저장 장치에 플러시하며, 이 과정이 끝나면 로그 공간을 정리하고 재활용할 수 있게 된다. 하지만 백그라운드 스레드가 변경된 페이지를 순회하고 각 페이지를 플러시하기 위해 공유 자료구조에 접근함으로서 글로벌 래치나 락으로 인한 오버헤드가 발생한다는 문제가 있으며 변경된 페이지의 수에 해당하는 많은 I/O가 급격히 발생함으로서 다른 트랜잭션 혹은 어플리케이션에 의한 I/O요청이 지연되는 문제가 있다. 즉 현재의 동기화 기법은 시스템의 성능에 큰 영향을 주며 특히 느린 동기화는 로그 공간 부족으로 인한 트랜잭션 정지를 야기하고 그 결과 성능의 고저가 심한 불안정한 시스템 성능을 야기한다. 본 논문은 이러한 동기화 작업의 문제들을 해결하고자 경쟁이 적고 많은 양을 효율적으로 플러시할 수 있는 새로운 서브 시스템인 Delta Farm을 소개한다. Delta Farm은 동기화 작업으로 인해 다른 스레드가 블록되지 않도록 기존 버퍼 자료구조와는 별도로 변경사항에 대한 정보를 담은 델타를 관리하며, 데이터베이스 페이지 전체가 아닌 실제 변경된 내용만 저장장치에 씀으로써 많은 I/O양에 의한 성능 하락을 방지하고 이후 별도의 스레드에 의해 상황에 맞게 유동적으로 페이지에 적용된다. 본 논문의 기법을 평가하기 위해 마이크로벤치마크를 이용해 다양한 조건에서 기법 자체의 성능을 평가하고 그 이유를 설명한다. 또한 이 문제가 많이 발생할 수 있는 데이터베이스 어플리케이션에서 실제 성능 변화를 확인하기 위해 많이 사용되는 오픈소스 DBMS인 MariaDB에 본 논문의 기법을 추가하여 실험을 진행하고 그 결과를 분석한다.
URI
https://repository.hanyang.ac.kr/handle/20.500.11754/99796http://hanyang.dcollection.net/common/orgView/200000434984
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