From 7aa8ec191cc95b43fce47247fb6e5bff8dbbd5ce Mon Sep 17 00:00:00 2001 From: goodGid Date: Mon, 17 Jun 2024 23:32:31 +0900 Subject: [PATCH] =?UTF-8?q?Write=20SD=20Post=20"=20[=EB=8D=B0=EC=9D=B4?= =?UTF-8?q?=ED=84=B0=20=EC=A4=91=EC=8B=AC=20=EC=95=A0=ED=94=8C=EB=A6=AC?= =?UTF-8?q?=EC=BC=80=EC=9D=B4=EC=85=98=20=EC=84=A4=EA=B3=84]=205=EC=9E=A5.?= =?UTF-8?q?=20=EB=B3=B5=EC=A0=9C=20:=20=EC=93=B0=EA=B8=B0=20=ED=9B=84=20?= =?UTF-8?q?=EC=9D=BD=EA=B8=B0=20=EC=9D=BC=EA=B4=80=EC=84=B1=20(Read=20Afte?= =?UTF-8?q?r=20Write)=20"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...4-06-17-SD-Replication-Read-After-Write.md | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100755 _posts/2024-06-17-SD-Replication-Read-After-Write.md diff --git a/_posts/2024-06-17-SD-Replication-Read-After-Write.md b/_posts/2024-06-17-SD-Replication-Read-After-Write.md new file mode 100755 index 00000000..7161c0c5 --- /dev/null +++ b/_posts/2024-06-17-SD-Replication-Read-After-Write.md @@ -0,0 +1,71 @@ +--- +layout: post +title: " [데이터 중심 애플리케이션 설계] 5장. 복제 : 쓰기 후 읽기 일관성 (Read After Write) " +categories: SystemDesign +author: goodGid +--- +* content +{:toc} + +> 이 글은 [책](https://book.naver.com/bookdb/book_detail.nhn?bid=13483879) 내용을 토대로 작성하였습니다. + +## Question + +* 리더 기반 복제 시스템에서 쓰기 후 읽기 일관성은 어떻게 구현할 수 있을까? + + 책에서는 다양한 케이스를 예시로 들었지만 + + 이 글에서는 2가지 케이스만 알아보자. + + + +--- + +### 첫 번째 방법 + +* 사용자가 수정한 내용을 읽을 때는 리더에서 읽는다. + + 그 밖에는 팔로워에서 읽는다. + +* 예를 들어 SNS에서 사용자 프로필 정보는 + + 보통 다른 사람이 아닌 프로필 소유자만 편집할 수 있다. + +* 따라서 항상 사용자 소유의 프로필은 리더에서 읽고 + + 다른 사용자의 프로필은 팔로워에서 읽는 간단한 규칙을 사용한다. + +--- + +### 두 번째 방법 + +* 많은 사용자가 편집할 가능성이 있다면 + + 리더에서 읽을지 여부를 결정하기 위해 다른 기준을 사용해야 한다. + +* 예를 들어 마지막 갱신 시각을 찾아서 + + 마지막 갱신 후 1분 동안은 리더에서 모든 읽기를 수행한다. + +* 또한 팔로워에서 복제 지연을 모니터링해 + + 리더보다 1분 이상 늦은 모든 팔로워에 대한 질의를 금지할 수 있다. + + +--- + +## Suumary + +* 실제 프로덕트를 개발할 때 유용하게 사용할 수 있는 좋은 팁이라 생각이 든다. + +* 다만 두 번째 방법을 구현한다면 + + 코드가 굉장히 더러워지지 않을까?란 생각이 들어서 + + 실무에 도입해야한다면 살짝 멈칫하게 될 거 같다. + +--- + +## Refernece + +* [데이터 중심 애플리케이션 설계](https://book.naver.com/bookdb/book_detail.nhn?bid=13483879) - p165 \ No newline at end of file