Abstract
Flash memory becomes increasingly popular as data storage for various devices because of its versatile features such as non-volatility, light weight, low power consumption, and shock resistance. Flash memory, however, has some distinct characteristics that make today's disk-based database technology unsuitable, such as no in-place update and the asymmetric speed of read and write operations. As a result, most traditional disk-based database systems may not provide the best attainable performance on flash memory. To maximize the database performance on flash memory, some approaches have been proposed where only the changes made to the database, i.e., logs, are written to another empty place that has born erased in advance. In this paper, we propose an efficient log management scheme for flash-based database systems. Unlike the previous approaches, the proposed approach stores logs in specially allocated blocks, called log blocks. By evenly distributing logs across log blocks, the proposed approach can significantly reduce the number of write and erase operations. Our performance evaluation shows that the proposed approaches can improve the overall system performance by reducing the number of write and erase operation compared to the previous ones.
플래시 메모리는 비휘발성이면서도 작고 가벼우며, 전력 소모가 적고 충격에 강하다는 장점 등으로 인해 휴대 기기를 포함한 다양한 기기의 저장매체로 사용되고 있다. 그러나 플래시 메모리는 하드디스크와는 달리 제자리 갱신이 불가능하고, 읽기 연산에 비해 쓰기 및 지우기 연산이 매우 느리기 때문에, 기존의 하드 디스크를 기반으로 설계된 데이터베이스 시스템은 플래시 메모리 상에서 최적의 성능을 내기 어렵다. 플래시 메모리 상에서 데이터베이스의 성능을 극대화하기 위해, 어떤 데이터에 변경이 발생하면 원래 위치의 데이터를 덮어쓰는 대신, 해당 데이터의 변경 사항에 대한 로그만을 다른 위치에 기록하는 방식들이 제안되었다. 본 논문에서는 플래시 메모리 기반의 데이터베이스 시스템을 위한 효율적인 로깅 방법을 제안한다. 제안하는 방법은 기존 방법들과 달리, 로그만을 저장하는 로그 블록들을 별도로 두고 데이터의 변경에 따라 발생하는 로그를 로그 블록들에 고르게 분포시킨다. 이를 통해 제안하는 방법은 페이지 쓰기 및 블록 지우기 연산의 횟수를 크게 감소시킬 수 있다. 합성 데이터와 TPC-C 벤치마크 데이터를 사용한 실험을 통해, 제안하는 방법은 기존의 방법에 비해 좋은 성능을 나타냄을 보였다.