MySQL에서의 TPC-C 벤치마크에 의한 플래시 메모리의 성능 분석

Retired DISLab
Swpark (토론 | 기여) 사용자의 2012년 4월 21일 (토) 20:52 버전
(비교) ← 이전 판 | 현재 판 (비교) | 다음 판 → (비교)
이동: 둘러보기, 찾기


Title(Korean) MySQL에서의 TPC-C 벤치마크에 의한 플래시 메모리의 성능 분석
Title(English)
Authors 장주연, 김상현, 최화영, 이정우, 박상원
Date 2008.10
Keywords
Acknowledgement
SCI
Impact Factor
Publication Type Domestic Conference
Publication Info
Conference Info 한국정보과학회 2008년 가을 학술발표논문집(C), 중앙대학교
Volume 35
Number 2
Year 2008
Month 10
Pages 24~25
Publisher
ISBN/ISSN ISSN 1598-5164
Link
Download PDF
Related Research
Related Project
Abstract (Korean) 플래시 메모리의 사용량이 증가함에 따라 플래시 메모리를 효율적으로 사용하려는 연구가 활발히 일어나고 있다. 플래시 메모리는 물리적인 특성 때문에 읽기와 쓰기 연산에 대하여 추가적인 연산이 발생한다. 본 논문에서는 TPC-C 벤치마크를 MySQL에서 수행함으로써 추가적인 읽기와 쓰기 비용을 구하고 플래시 메모리에서의 FTL 성능을 분석하였다. 조인 연산의 비용 모델을 보면 쓰기에 대한 추가적인 비용도 중요하지만 읽기 연산에 대한 추가적인 비용도 중요하다는 것을 알 수 있다. 기존의 대표적인 FTL 알고리즘에 대한 성능 분석을 하였으며 그 결과 이를 개선할 필요가 있다는 것을 알 수 있다.
Abstract (Engligh)

목차

서론

최근 이동성과 휴대성을 중요시하는 MP3 플레이어, 휴대폰, PDA 같은 기기들이 등장함에 따라 낮은 소비전력, 안정성, 비휘발성을 지닌 저장매체를 필요로 하게 되었다. 플래시 메모리는 이러한 특성들에 부합하는 매체로서 사용 분야가 다양해지고 대용량화 되어가고 있다. 그래서 많은 데이터를 플래시 메모리에서 어떻게 효율적으로 관리할 것인가에 대한 연구가 활발하게 일어나고 있다.
[1]은 오라클에서 TPC-C 벤치마크를 수행하여 플래시 메모리에서의 FTL 성능을 분석하여 그 결과를 제시하고 있으나 오라클의 로그를 이용하여 트레이스를 추출한 것이기 때문에 읽기 연산을 제외한 쓰기 연산에 대한 것만 추출할 수가 있었다. 하지만 질의처리에는 쓰기 연산 만이 아니라 읽기 연산도 중요한 요소이다. 특히 조인 연산의 비용을 분석하면 쓰기 연산도 중요하지만 읽기 연산도 비용에 많은 영향을 끼친다는 것을 알 수 있다[2]. 이것은 쓰기 연산에 대한 추가적인 비용만을 추출해서는 정확한 성능 평가를 할 수가 없다는 것을 의미한다.
본 논문에서는 TPC-C 벤치마크를 MySQL에서 수행하여 플래시 메모리에서의 FTL 성능을 분석하였다. 먼저, TPC-C 벤치마크를 MySQL에서 수행하였을 때 파일 시스템으로 보내지는 읽기와 쓰기 I/O를 추출한 후, 추출한 트레이스에 대한 추가적인 쓰기와 읽기 비용을 구하였다. 이 값을 FTL 알고리즘 중 특징이 분명한 3가지 알고리즘에 대해 적용하여 성능을 분석하였다. 이 실험 결과 세 가지 알고리즘은 모두 만족할 만한 성능을 보이지 않았다. 이것은 기존의 알고리즘을 대용량 데이터베이스에 바로 적용시키는 것은 적합하지 않다는 것을 의미한다. 그러므로 플래시 메모리의 성능을 향상시키기 위해서 읽기와 쓰기 연산의 추가 비용을 줄이는 새로운 FTL 알고리즘이 제안되어야 한다. 본 논문은 각 FTL 알고리즘에 대해 성능을 분석하고 새로운 FTL 알고리즘이 제안되어야 하는 이유와 그 방향을 제시한다.


관련연구

플래시 메모리

플래시 메모리는 ROM의 일종인 EEPROM의 변종이며 비휘발성 기억장치이고, 디스크에 비해 여러 가지 장점을 가진다. 소음이 없으며 낮은 전력을 사용하고 충격이나 온도로부터 데이터를 안전하게 보관할 수 있다. 크기가 작아 가볍고 반도체로 만들어져 속도가 빠르다. 또한 저장 위치에 상관없이 접근 시간이 동일하다.
플래시 메모리는 물리적인 특성 때문에 몇 가지 제약이 있다. 쓰기 연산을 수행할 때 그 섹터에 데이터가 기록되어 있는 경우 덮어 쓰기 연산이 불가능하여 다른 비어있는 섹터에 데이터를 기록하거나 블록을 소거한 후 쓰기 연산을 수행한다. 소거 연산은 블록 단위로만 수행이 가능하기 때문에 해당 블록에 다른 유효한 데이터만 있는 경우 그 섹터들을 다른 블록에 옮기는 작업이 필요하다. 그래서 하나의 쓰기 연산에 대해 추가적인 비용이 생기게 된다. 그리고 플래시 메모리는 소거할 수 있는 횟수가 제한되어 있어 그 횟수를 초과하는 경우에는 정상적인 작동을 보장할 수가 없다. 그 횟수는 보통 10만 번 정도이다
본 논문의 실험은 4개의 섹터가 하나의 페이지를 구성하고 있는 대블록 플래시 메모리를 사용하였다. 페이지란 한 번에 읽고 쓸 수 있는 단위를 의미한다. 최근의 플래시 메모리는 효율적인 성능을 위하여 칩 인터리빙(chip-interleaving)과 내부복사(copy-back) 기술을 사용한다[1].
칩 인터리빙은 여러 개의 플래시 칩을 병렬로 연결하고 명령을 전달하는 버스를 여러 개로 두어 각각의 플래시 메모리 칩에 동시에 명령을 보내는 방법이다. 예를 들어 칩 인터리빙의 값이 4이면 네 개의 명령을 네 개의 칩에 동시에 보내어 명령어 하나를 처리하는 시간동안 4개의 명령을 처리하는 것이다.
내부복사는 플래시 메모리 내부에서 데이터를 복사할 경우 호스트로 데이터를 복사하지 않고 칩 내부에서 복사하여 데이터의 전송 오버헤드를 줄이는 기술이다. 내부복사 기술을 사용함으로써 복사 연산의 시간이 쓰기 연산의 시간과 같아진다.


FTL

FTL은 호스트 컴퓨터에 플래시 메모리를 블록 장치로 보여주는 시스템 소프트웨어이다. FTL은 플래시 메모리의 단점을 극복하고 성능을 높이기 위하여 다양한 방법을 사용하고 있다. 본 논문에서는 M-system사의 FMAX[4], Mitsubishi의 MITS[5], 로그 블록 기법인 LOG[6]을 이용하여 성능을 평가하였다[7].


기존 연구의 문제점

[1]은 데이터베이스 쓰기 연산에 대한 추가적인 연산을 α라고 하고 이 값을 구한 뒤 성능을 평가하였다. 하지만 쓰기 연산에 대한 비용만을 고려해서는 플래시 메모리의 성능을 정확히 분석할 수 없다.


I/O 트레이스 추출

본 논문에서는 MySQL에서 TPC-C 벤치마크를 수행했을 때 발생하는 I/O를 추출하여 실험하였다. 이 실험에서는 InnoDB를 사용하여 TPC-C 벤치마크를 동작시켰을 때 파일 시스템으로 보내지는 읽기와 쓰기 I/O를 추출하였다. TPC-C 벤치마크를 수행한 warehouse의 cardinality는 20, districts는 10, customers는 3000, items는 100000, orders는 3000, stock은 100000, new_orders는 900이다. cardinality는 전체 row수 * selectivity로 계산하였다.
TPC-C 벤치마크의 수행은 커넥션 수는 20, warehouse 당 터미널의 수는 20, warehouse의 selectivity는 20으로 설정 후 실험하였다.
이렇게 추출한 트레이스를 이용하여 각 FTL 알고리즘에 대해 플래시 메모리에서 발생한 총 읽기 명령에 대한 읽기와 쓰기, 쓰기 명령에 대한 읽기와 쓰기, 소거 및 내부복사를 측정하였고, 합병 연산의 횟수를 측정하였다. 각각의 연산 횟수를 통해 총 수행시간, 데이터베이스 페이지 읽기 연산에 대한 성능 비, 데이터베이스 페이지 쓰기 연산에 대한 성능 비, 평균적인 응답 시간을 계산하였다. 이로써 각 알고리즘의 성능을 평가할 수 있다.


읽기/쓰기 연산의 추가 비용에 따른 FTL 성능분석

디스크 기반 비용 모델에서는 디스크의 읽기와 쓰기 연산의 소요 시간이 같기 때문에 읽기와 쓰기를 같은 비중으로 간주하고 I/O 횟수로 비용을 측정한다. 하지만 플래시 메모리에서는 읽기, 쓰기, 소거의 세 가지 연산에 대하여 각 연산의 소요 시간이 다르다. 또한 FTL은 각각의 연산을 빠르게 수행하기 위하여 호스트에서 요청하는 블록을 다른 블록에 매핑하여 동작하기 때문에 읽기, 쓰기 요청에 대하여 부가적인 읽기, 쓰기, 소거 연산을 유발한다


데이터베이스 페이지 쓰기 연산에 대한 성능 비

데이터베이스 페이지 읽기 연산에 대한 성능 비

β를 사용한 블록 중첩 반복 조인 비용 계산

TPC-C 벤치마크 수행 후의 MySQL I/O 트레이스 분석

각 FTL의 I/O 트레이스 분석

결론

플래시 메모리의 사용량이 증가함에 따라 플래시 메모리에서 대용량 데이터를 얼마나 효율적으로 관리할 것인가에 대한 연구가 활발히 일어나고 있다. [1]에서는 Oracle에서 TPC-C 벤치마크를 수행하여 로그로부터 트레이스를 추출하고 쓰기 연산에 대한 추가 비용을 분석하였다. 하지만 플래시 메모리는 읽기, 쓰기, 소거 연산의 수행 속도가 차이가 나기 때문에 쓰기에 대한 추가비용만을 계산해서는 정확한 분석을 할 수가 없다. 그래서 본 논문에서는 MySQL에서 TPC-C 벤치마크를 수행하여 읽기와 쓰기 연산 모두에 대해 추가 비용을 분석하였다. 쓰기 연산에 대한 추가 비용 α는 칩 인터리빙이 1일 때 FMAX가 1.85로 가장 좋고 LOG가 18.64로 좋지 않은 성능을 보이지만 읽기 연산에 대한 추가 비용인 β는 FMAX는 1.97, LOG는 1.00으로 LOG가 좋은 성능을 보인다. 또한 TPC-C 벤치마크를 반복하여 수행함으로써 Aging에 대한 실험을 했는데, Aging이 진행됨에 따라 각 FTL에서의 I/O는 점점 랜덤으로 발생하게 되었고, α와 β값도 증가하는 것으로 보였다. 하지만 여러 번의 반복 수행을 거친 후, 대부분의 I/O가 랜덤하게 되면 더 이상 성능이 나빠지지 않는 것을 알 수 있었다. 따라서 앞에서 구한 α와 β값을 참고하여 읽기 연산이 많은 지, 쓰기 연산이 많은 지에 따라서 α, β를 비교 분석하여 FTL 알고리즘을 선택하여 사용할 수 있다. 또한 기존의 FTL 알고리즘의 α와 β를 줄여서 좋은 성능을 내는 새로운 저장 방법이 필요하다. 칩 인터리빙과 같은 하드웨어의 특성과 플래시 메모리의 물리적 특성을 잘 이용하여 새로운 FTL을 구현하면 α와 β를 줄임으로써 데이터베이스 시스템에서 플래시 메모리를 효율적으로 사용할 수 있을 것이다.


참고문헌

[1]박성환, 장주연, 서영주, 박원주, 박상원, 플래시 변환 계층에 대한 TPC-C 벤치마크를 통한 성능분석, 정보과학회 논문지: 컴퓨팅의 실제 및 레터, 제14권, 제2호, 2008년 4월
[2]김도윤, 박상원, 플래시 기반 임베디드 DBMS의 전력기반 질의 최적화를 위한 비용 모델, 전자공학회 논문지, 제45권 CI편 제3호, 2008년 5월
[3]Tae-Sun Chung, Dong-Joo Park, Sangwon Park, Dong-Ho Lee, Sang-Won Lee, and Ha-Joo Song, System Software for Flash Memory: A Survey, EUC 2006, LNCS 4096, Aug. 2006
[4]Amir Ban. Flash file system optimized for page-mode flash technologies, 1999. United States Patent, no. 5,937,425.
[5]Takayuki Shinohara. Flash memory card with block memory address arrangement, 1999. United States Patent, no. 5,905,993.
[6]Jesung Kim, Jong Min Kim, Sam H. Noh, Sang Lyul Min, and Yookun Cho. A space-efficient flash translation layer for compact flash systems. IEEE Transactions on Consumer Electronics, 48(2), 2002
[7]박원주, 박성환, 박상원, 윈도우즈 기반 플래시 메모리의 플래시 변환 계층 알고리즘 성능 분석, 정보과학회 논문지: 컴퓨팅의 실제, 정보과학회 논문지: 컴퓨팅의 실제, 제13권, 제4호, 2007년 8월, p.213~225
[8] Sang-Won Lee, Bongki Moon. Design of Flash-Based DBMS: An In-Page Logging Approach. ACM SIGMOD International Conference on Management of Data, Beijing, China, June, 2007.
개인 도구
이름공간
변수
행위
둘러보기
구성원
연구
연구실
기타
도구모음
인쇄/내보내기