레디스의 영속성에 해당되는 내용임.

레디스는 기본적으로 단일 스레드로 동작. 따라서 디스크 I/O와 같은 무거운 작업이 메인 스레드를 멈추게(Blocking) 하지 않도록 설계하는 것이 매우 중요. 레디스는 이를 위해 프로세스 분리(fork())와 제한적인 백그라운드 스레드를 활용

RDB(스냅샷) 방식

자식 프로세스를 통한 메인 스레드 보호방식인 RDB는 특정 시점의 데이터셋 스냅샷을 디스크에 저장합니다.

단점 및 한계

fork()시에 왜 메인 스레드에서 대기가 걸릴 수 있고 그 지연을 줄일 수 있는 방법은?

답: 페이지테이블

만약 자식 프로세스가 파일에 데이터를 쓰는 동안, 메인 스레드에서 새로운 데이터 변경 요청이 들어온다면?

핵심 키워드: 메모리 페이지(보통 4KB)를 복사하여 별도 공간 만듦

생각할 부분: 메인 스레드에 많은 양의 쓰기 작업이 들어오면, 메모리 페이지 복사가 빈번하게 일어나서 전체 메모리 사용량이 순식간에 2배 가까이 급증할 수 있음