디지털 라이브러리[ 검색결과 ]
인-메모리 키-값 데이터베이스를 위한 비 휘발성 메모리 기반 영속적 로그 버퍼 기법
http://doi.org/10.5626/JOK.2018.45.11.1193
Redis는 인-메모리 키-값 데이터베이스로, 실시간 데이터 처리 및 저장이 필요한 서비스에서 많이 사용되고 있다. 하지만 DRAM의 특징인 휘발성으로 인하여, 시스템이 비정상적으로 종료되면 Redis에 저장된 데이터들이 손실되는 문제가 발생한다. 이를 방지하기 위해 Redis는 로그를 디스크에 저장하고, 로그를 이용하여 데이터를 복구함으로써 데이터 손실을 방지한다. 요청된 명령을 로그 형태로 디스크에 저장하는 방식인 AOF 복구 메커니즘은 1초마다 주기적으로 로그를 기록하는 everysec 정책과 명령이 요청될 때마다 로그를 기록하는 always 정책으로 동작한다. everysec 정책은 Redis의 성능을 저하시키지 않지만, 시스템이 1초내에 비정상적으로 종료되면 데이터 손실이 발생할 수 있다. 반면 always 정책은 데이터 손실은 발생하지 않지만, 명령이 요청될 때마다, 디스크 연산을 수행하기 때문에 성능 저하의 원인이 된다. 본 논문에서는 everysec 정책에서 아직 디스크에 동기화되지 않고 AOF 버퍼에 저장되어 있는 AOF 로그들을 비 휘발성 메모리에 저장함으로써, 데이터 손실이 발생하는 단점을 극복하고 always 정책에 비해 약 100배 더 향상된 성능을 가진 시스템 모델을 제시한다.