성능 개선
SQLite는 수조 개의 인스턴스에 사용된 견고한 파일 기반 DB입니다. WAL(Write-Ahead Logging) 모드 도입(Rails 7.1부터 기본)으로 동시 읽기/쓰기가 가능해지며 성능이 향상되었습니다. Ruby SQLite 드라이버는 쓰기 트랜잭션에 ‘Immediate’ 모드를 적용하여 Busy Exception을 줄였습니다. GVL을 블로킹하던 C 기반 Busy Handler는 Ruby로 재작성되어 sleep
기반 비동기 방식으로 변경, Busy Timeout 시 VM 블로킹 문제를 해결했습니다. 지수 백오프 대신 고정 1ms 슬립으로 트랜잭션 충돌 가능성을 최소화했습니다.
백업 및 복제
SQLite는 다양한 백업 및 복제 도구를 제공합니다. .backup
은 DB를 잠그지 않고 바이트 단위 복사본을 생성하며, VACUUM INTO
는 새롭고 효율적인 파일을 만듭니다. Lightstream은 SQLite를 S3/SFTP로 실시간(1초 간격) 동기화하며, ‘generation’ 개념으로 변경 이력을 관리합니다. SQLite3 Arsync는 변경된 페이지만 복사하여 효율적 복제본 동기화를 지원하고, 동기화 중에도 원본/복제본 모두 사용 가능합니다. LightFS는 FUSE 마운트를 통해 여러 호스트에 실시간 복제본을 제공하며, 복제본은 읽기 전용입니다.
확장된 활용 사례
SQLite는 메인 프로덕션 외 보조 시스템에도 활용됩니다. 연사는 외부 데이터를 Rails 앱으로 직접 동기화하여 API보다 빠른 로컬 접근 사례를 소개했습니다. 또한, LightFS를 활용하여 주 서버 데이터를 웹 서버에 분산 캐시로 동기화함으로써 프론트엔드 서비스 응답 속도를 향상시키는 ‘엣지 캐시’ 개념도 제시했습니다.