The Log: What every software engineer should know about real-time data's unifying abstraction 요약

Bernard Choi (최연식)·2022년 3월 2일
0

https://engineering.linkedin.com/distributed-systems/log-what-every-software-engineer-should-know-about-real-time-datas-unifying 내용 정리

log란?

  • append only, totally-ordered records
  • 각 entry는 sequential한 number를 가진다.
  • 로그는 무엇이 언제 발생했는지에 대한 정보를 담고 있고 이것이 분산시스템의 핵심이다.
  • 로그의 종류에는 응용프로그램이 남기는 application logging, 데이터 사이언스에서 주로 수집되고 분석하는 로그는 data logs가 있다.

데이터베이스에서의 로그

  • atomic, durable 하기 위해, 변경 사항을 적용하기 전에 로그를 남긴다.
  • 충돌이 발생하여 복원이 필요할 때 로그가 중요한 역할을 하게 된다.
  • ACID의 발전과 함께 로그의 사용도 발전해나갔으며, 데이터베이스를 복제하는 방식이 변화를 기록하는 것과(로그를 기록) 같아 로그가 중요한 역할을 한 것.

분산시스템에서의 로그

  • 데이터 변경 순서를 기록하고 데이터를 분산하는 문제를 해결한 로그는 분산시스템에서 더 중요한 역할을 하게 된다.
  • State Machine Replication 에서 로그의 역할을 살펴보자.
  • 어떤 특정한 입력이 들어오면 언제나 똑같은 결과를 내놓는다는 Deterministic algorithm을 조건으로 한다. 여기서 특정한 입력이 로그가 된다.
  • 로그는 분산 시스템에서 각 replica의 sync를 맞춰주는 역할을 한다.

profile
Interested in Data Engineering

0개의 댓글