데이터 내구성을 보장하는 법

Durability는 시스템이 오류를 겪거나 충돌되더라도 데이터의 내구성을 보장한다. 시스템 장애를 대비해 다음과 같은 3가지 테크닉을 사용할 수 있다. - 레플리케이션 - 백업 - Write-Ahead Logging (WAL) 1️⃣ 레플리케이션 분산 시스템에서 레플리케이션이란 여러 노드에 데이터가 복제된 것을 말한다. 높은 가용성과 시스템 확장성의 높은 퍼포먼스를 확보하기 위해 레플리케이션을 사용한다. - 시스템에 장애가 생기더라도 데이터가 잘 보존되어 있도록 한다. 카피한 데이터 중 데이터가 손실(data loss)되거나 손상(data corruption)되더라도 다른 카피를 사용해서 데이터 복원이 가능한다 - 복제를 통해 성능을 높이기도 한다(예: 네트워크 Latency 감소). 카피를 여러 노드에 저장한 다음 가장 가까운 노드에 있는 데이터를 Read/Write한다 - 한 노드에 장애가 생기더라도, 다른 노드에 있는 데이터 카피를 Read/Write할 수 있다 📌 추가 내용 복제에서 중요한 또 다른 개념은 데이터간 동기화입니다. 따라서 Eventual Consistency, Strong Consistency 개념도 함께 공부하는 것이 좋습니다. 또 한가지는 데이터 클린업인데, 유저가 데이터를 지울 때 모든 노드에 복제된 데이터를 지워야 합니다. 설계에 따라 드문 케이스로 Orphan(고아) 데이터를 발생시킬 수 있습니다. 2️⃣ 백업 분산 시스템에서 백업은 데이터 안정성의 기본이다. - 중복성(Redundancy): 중복성은 다양한 요인으로 인해 데이터 복사본이 손실되는 경우에도 데이터 복사본으로 복원해서 중요한 정보에 문제 없이 액세스할 수 있도록 보장한다. - 자동 백업: 특정 주기로 데이터가 백업되는 기능이다. - 증분 백업: 마지막 백업이 발생한 후 발생한 데이터의 변경 사항만 백업하는 테크닉이다. 백업해야 할 데이터양은 줄어들어서 백업 속도가 빠르다. 📌 추가 내용 백업의 어려운 점 중 하나는 완전성(completeness)이 아닐까 싶습니다. 특히 라지 스케일의 시스템과 방대한 양의 데이터 업데이트가 일어나는 시스템의 경우, 모든 최신 데이터를 일정 시간(SLA) 내에 백업하는 게 어려울 수 있습니다. 따라서 완전성(completeness)과 성능(performance)의 적절한 절충점이 필요할 수 있습니다. 3️⃣ Write-Ahead Logging (WAL) 데이터를 먼저 로그에 기록한 후 데이터 스토어에 저장되는 방식이다. 데이터 스토어에 커밋하는 중 데이터 손상이나 손실이 일어나는 경우, 로그에서 데이터를 복원할 수 있다. 📌 추가 내용 WAL 개념은 알아둬야 하고, 데이터베이스를 좀 더 깊이 배울 수 있습니다. 궁금하신 분들은 WAL 개념을 잘 설명해 주는 유튜브 비디오를 참조해 주세요. https://www.youtube.com/watch?v=ixDvm9qw2JA 참고로 위 유튜브 채널은 UC버클리의 CS 186. Introduction to Database Systems 클래스입니다. 데이터베이스에 중요한 개념을 설명하는 짧은 유튜브 영상이 많이 올라와 있어서 유튜브에서 무료로 수업 들어보세요. 🪴 함께 읽으면 좋은 글: 각종 스토리지를 통해 알아 보는 분산 시스템 개념 https://careerly.co.kr/comments/86021 면접 전 꼭 알아야 할 설계 패턴 12가지 https://careerly.co.kr/comments/86057 면접과 설계에 필요한 분산 시스템의 주요 특성 https://careerly.co.kr/comments/83900

Durability in Distributive Systems | Learn System Design - GeeksforGeeks

GeeksforGeeks

Durability in Distributive Systems | Learn System Design - GeeksforGeeks

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2023년 7월 4일 오전 5:42

 • 

저장 32조회 4,886

댓글 0