SQLite Optimization with Atomic Write

Atomic Write를 활용한 SQLite 최적화

  • Published : 2017.10.25

Abstract

According to researches, while the speed of processor and network in embedded devices is fast enough to meet user requirement, the IO speed is recognized as the main performance bottleneck. Meanwhile it is known that more than 70 percent of IOs are issued from SQLite database. Many researches related SQLite performance optimization is based on WAL mode because WAL mode optimized for write IO performance. In this paper, I propose to optimize SQLite with Atomic Write in the Rollback Journal Mode, which is mainly used in Android and Tizen. I have observed that Atomic Write have a significant write performance improvement(300%) by reducing write, file sync operation and memory usage improvement(80%). Additionally it can block JOJ(Journaling of Journal) and extend the life of the flash memory.

여러 연구에 따르면 임베디드 디바이스에서 프로세서 및 네트워크의 속도는 사용자의 요구사항을 충족시킬 만큼 빠른데 반해 IO 속도가 성능의 주요 병목으로 밝혀진 바 있다. 또한 이런 IO 병목 현상의 70% 이상이 SQLite 데이터베이스와 관련된 현상으로 밝혀졌다. 이를 해결하기 위한 SQLite 성능 최적화 관련 연구들은 쓰기 IO에 최적화된 저널 방식인 WAL 방식 중심의 연구들이 다수를 이루고 있다. 본 논문에서는 Android와 Tizen에서 주로 사용되는 Rollback 저널 방식 환경 하에서 성능 문제 해결을 위한 SQLite Atomic Write 기법을 제안한다. 제안한 기법을 통해 파일 쓰기, 동기화 작업을 줄임으로써 쓰기 성능(300%)과 메모리 사용량(80%)이 향상 된 것을 확인할 수 있었고 JOJ(저널링 파일에 대한 저널링) 현상을 막고 플래시 메모리의 수명을 늘릴 수 있다.

Keywords