인프라/용어

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 파일이 얼마나 디스크로 플러시 될지 설정하는 것이다.
    • 플러시 되는 주기를 길게 잡으면, 성능에는 좋지만 일부 데이터를 잃을 위험성이 있다.
    • 플러시 되는 주기를 짧게 잡으면, 성능에는 나쁘지만 데이터를 잃을 걱정은 줄어든다.
반응형