Skip to content

Commit fda5eee

Browse files
update post
1 parent 918df39 commit fda5eee

File tree

2 files changed

+15
-4
lines changed

2 files changed

+15
-4
lines changed

_posts/2023-06-01-key-value-store-consistency.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,17 @@ N = 3 인 경우의 예시를 살펴보자.
9898

9999
**예시를 통해 이해해보자.**
100100

101+
<pre class="mermaid">
102+
flowchart TD
103+
D1["D1 ([Sx,1])"] -->|write<br/>handled by Sx| D2["D2 ([Sx,2])"]
104+
105+
D2 -->|write<br/>handled by Sy| D3["D3 ([Sx,2],[Sy,1])"]
106+
D2 -->|write<br/>handled by Sz| D4["D4 ([Sx,2],[Sz,1])"]
107+
108+
D3 --> D5["D5 ([Sx,3],[Sy,1],[Sz,1])"]
109+
D4 -->|reconciled<br/>and written by Sx| D5
110+
</pre>
111+
101112
① 클라이언트가 데이터 D1을 시스템에 기록한다. 이 쓰기 연산을 처리한 서버는 Sx이다. 따라서 벡터 시계는 D1\[Sx, 1\]으로 변한다.
102113

103114
② 다른 클라이언트가 데이터 D1을 읽고 D2로 업데이트한 다음 기록한다. D2는 D1에 대한 변경이므로 D1을 덮어쓴다. 이때 쓰기 연산은 같은 서버 Sx가 처리한다고 가정하자. 벡터 시계는 D2(\[Sx, 2\])로 바뀔 것이다.

_posts/2023-06-01-key-value-store.html

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ <h3 class="wp-block-heading">CAP 정리</h3>
166166
<p>CAP 정리는 이들 가운데 어떤 두 가지를 충족하려면 나머지 하나는 반드시 희생되어야 한다는 것을 의미한다.</p>
167167
<p><!-- /wp:paragraph --></p>
168168
<p><!-- wp:image {"id":223,"width":512,"height":512,"sizeSlug":"large","linkDestination":"none"} --></p>
169-
<figure class="wp-block-image size-large is-resized"><img src="/assets/images/2023-06-01-key-value-store/image1.png" alt="" class="wp-image-223" width="512" height="512"/></figure>
169+
<figure class="wp-block-image size-large is-resized"><img src="/assets/images/2023-06-01-key-value-store/image1.png" alt="" class="wp-image-223" width="512"/></figure>
170170
<p><!-- /wp:image --></p>
171171
<p><!-- wp:list --></p>
172172
<ul><!-- wp:list-item --></p>
@@ -227,7 +227,7 @@ <h4 class="wp-block-heading">가정</h4>
227227
<p>n1에 기록된 데이터는 자동적으로 n2와 n3에 복제된다. 데이터 일관성과 가용성도 만족된다.</p>
228228
<p><!-- /wp:paragraph --></p>
229229
<p><!-- wp:image {"id":222,"width":512,"height":470,"sizeSlug":"large","linkDestination":"none"} --></p>
230-
<figure class="wp-block-image size-large is-resized"><img src="/assets/images/2023-06-01-key-value-store/image2.png" alt="" class="wp-image-222" width="512" height="470"/></figure>
230+
<figure class="wp-block-image size-large is-resized"><img src="/assets/images/2023-06-01-key-value-store/image2.png" alt="" class="wp-image-222" width="512"/></figure>
231231
<p><!-- /wp:image --></p>
232232
<p><!-- wp:paragraph --></p>
233233
<p><!-- /wp:paragraph --></p>
@@ -241,7 +241,7 @@ <h4 class="wp-block-heading">가정</h4>
241241
<p>클라이언트 n1 또는 n2에 기록된 데이터는 n3에 전달되지 않는다. n3 기록되었으나 아직 n1 및 n2로 전달되지 않은 데이터가 있다면 n1과 n2는 오래된 사본을 갖고 있을 것이다.</p>
242242
<p><!-- /wp:paragraph --></p>
243243
<p><!-- wp:image {"id":224,"width":512,"height":470,"sizeSlug":"large","linkDestination":"none"} --></p>
244-
<figure class="wp-block-image size-large is-resized"><img src="/assets/images/2023-06-01-key-value-store/image3.png" alt="" class="wp-image-224" width="512" height="470"/></figure>
244+
<figure class="wp-block-image size-large is-resized"><img src="/assets/images/2023-06-01-key-value-store/image3.png" alt="" class="wp-image-224" width="512"/></figure>
245245
<p><!-- /wp:image --></p>
246246
<p><!-- wp:paragraph --></p>
247247
<p>- 일관성을 선택할 경우 (CP 시스템)</p>
@@ -311,7 +311,7 @@ <h3 class="wp-block-heading">시스템 컴포넌트</h3>
311311
<p>여기서 N은 튜닝 가능한 값이다.</p>
312312
<p><!-- /wp:paragraph --></p>
313313
<p><!-- wp:image {"id":225,"width":512,"height":498,"sizeSlug":"large","linkDestination":"none"} --></p>
314-
<figure class="wp-block-image size-large is-resized"><img src="/assets/images/2023-06-01-key-value-store/image4.png" alt="" class="wp-image-225" width="512" height="498"/></figure>
314+
<figure class="wp-block-image size-large is-resized"><img src="/assets/images/2023-06-01-key-value-store/image4.png" alt="" class="wp-image-225" width="512"/></figure>
315315
<p><!-- /wp:image --></p>
316316
<p><!-- wp:paragraph --></p>
317317
<p>가상 노드를 사용할 경우 N개의 노드가 대응될 실제 물리 서버의 개수가 N보다 작아질 수 있다. 이 문제를 피하려면 노드를 선택할 때 같은 물리 서버를 중복 선택하지 않도록 해야 한다.</p>

0 commit comments

Comments
 (0)