인프라/용어
AOF (Append Only File) 란?
Jake Seo
2023. 4. 8. 13:35
AOF (Append Only File) 란?
- 영속적인 데이터 저장 매커니즘이다.
- DB 와 Redis 같은 저장소에서 사용된다.
- 쓰기(write) 연산에 대한 로그를 모두 남겨서 유지하여 시스템 장애가 발생하거나 시스템이 재시작되었을 때 데이터 재구성을 돕는다.
- 모든 연산을 순차적으로 저장하여 로그를 통해 상태를 복구할 수 있도록 돕는다.
AOF (Append Only File) 가 동작하는 방식
초기화 (Initialization)
- 스토리지는 먼저 AOF 파일이 존재하는지 확인한다. 존재한다면, AOF 파일을 읽어 데이터 복원을 준비한다.
연산 데이터 쌓기 (Wirte Operation)
- DB 에서 다양한 연산 (SET, DEL, INCR 등) 이 일어날 때마다 AOF 파일에 연산 내역을 쌓는다.
- 시스템은 장애에 대비하기 위해 매번 AOF 파일이 정상적으로 디스크에 플러시 되었는지 확인한다.
데이터 복구 (Data recovery)
- 시스템 장애 혹은 재시작 시에 DB 는 AOF 파일을 읽고 순차적으로 연산을 재실행하여 DB 의 상태를 돌려놓는다.
- DB 의 상태는 마지막으로 flush 됐던 상태로 돌아간다.
파일 크기 증대와 관리 (File growth and management)
- AOF 는 시간이 지남에 따라 연산 기록이 많아지므로 파일 크기가 커질 수 밖에 없다.
- DB 시스템은 rewriting 을 통해 최소한의 크기로 AOF 파일을 압축한다.
- 이 프로세싱은 백그라운드 작업으로 DB 의 availability 에 아무런 영향을 미치지 않는 선에서 일어난다.
구성 정보 설정과 내구성 (Configuration and durability)
- AOF 는 퍼포먼스와 데이터 안정성 트레이드 오프 사이에서 사용자가 원하는 적절한 수준으로 구성될 수 있다.
- 주요 구성정보는 AOF 파일이 얼마나 디스크로 플러시 될지 설정하는 것이다.
- 플러시 되는 주기를 길게 잡으면, 성능에는 좋지만 일부 데이터를 잃을 위험성이 있다.
- 플러시 되는 주기를 짧게 잡으면, 성능에는 나쁘지만 데이터를 잃을 걱정은 줄어든다.
반응형