프로그램 TRACK
DAY 2 09.30 (화) ⁄ TRACK 2 ⁄ 세션 6 16:15 ~ 17:00
SQLite DB 의 입출력 특성분석 : Android 와 Tizen 사례
SQLite 는 스마트폰을 비롯한 다수 임베디드 기기에서 널리 사용되고 있는 오픈소스 경량 DBMS 라이브러리입니다. 본 발표는 Mobile Platform 에서 많이 사용되고 있는 SQLite DB 접근에 대한 IO 발생 행태를 살펴보고 특징을 설명합니다. Mobile Platform 및 어플리케이션에서는 주로 SQLite 를 사용해 DB 형태로 데이터를 저장하는데 SQLite 는 DB Crash 에 대비하여 별도의 journal 파일을 생성 하고 이때 해당 journal file 의 Data Consistency 를 유지하기 위해 Filesystem 은 중복된 journaling을 시도하는 journaling of journal anomaly 현상이 발생합니다. 실제 Tizen Platform 의 특정 DB 사용 시에 journaling of journal anomaly 현상과 DB 의 table schema 및 index 갱신이 추가되면서 DB Record 에 기록한 순수한 data 량보다 1067 배 많은 양의 쓰기 IO 가 발생함을 관찰 하였습니다. 이렇게 과도한 WAF(Write Amplifcation Factor)를 가진 SQLite DB 의 IO 량을 경감하는 시도는 느린 쓰기 속도와 제한된 수명을 가진 NAND Flash 기반의 저장장치를 사용하는 많은 IT 기기에서 성능 및 수명을 개선할 수 있습니다. SQLite 입출력 성능 개선을 위한 Log 파일시스템의 적용, LS-MVBT 를 사용한 SQLite Index 구조 최적화 등 최근 연구 사례들을 살펴봅니다. 또한 DB 의 사용용도와 목적, SQLite DB journaling Mode 등 DB 성능 측면에서 개선을 기대할 수 있는 IO Stack 별 추가적인 최적화 요소 및 Platform 에서 SQLite DB 사용 시 주의해야 할 점들을 언급합니다.
- 발표자 소개 김명식 한양대학교
- 삼성전자 생활가전 사업부, 책임 연구원으로 임베디드 소프트웨어 기술을 접목한 스마트 가전 관련 소프트웨어 개발을 해왔다. 2012 년부터 현재 한양 대학교 컴퓨터 공학과 임베디드 시스템 연구실 박사 과정에 파견 재학 중이며 플래시 메모리를 사용하는 임베디드 스토리지, Mobile Platform 에서의 IO 분석, 중복제거 (deduplication), NVRAM 를 활용한 임베디드 시스템에 대해 연구 중이다.
- 강연 대상
- SQLite DB를 사용하는 모바일/임베디드 어플리케이션 개발자, 모바일 플랫폼/임베디드 스토리지 최적화에 관심 있는 분
- 발표 자료
- 동영상