Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[6주차] CAP 정리 (p.335) #36

Open
wbluke opened this issue Nov 7, 2023 · 1 comment
Open

[6주차] CAP 정리 (p.335) #36

wbluke opened this issue Nov 7, 2023 · 1 comment
Assignees

Comments

@wbluke
Copy link

wbluke commented Nov 7, 2023

가 실용적인 도움이 안되는 거였다구?

ACID에서 C가 구색맞추기였다는 것만큼 충격,,


[참고] 이전에 정리해놓은 CAP 내용

정의

아래 3가지 요구사항을 동시에 만족하는 분산 시스템 설계는 불가능하다.

  • Consistency(데이터 일관성) : 분산 시스템에 접속하는 모든 클라이언트는 어떤 노드에 접속했느냐에 관계없이 언제나 같은 데이터를 보게 되어야 한다.
  • Availability(가용성) : 클라이언트는 일부 노드에 장애가 발생하더라도 항상 응답을 받을 수 있어야 함
  • Partition tolerance(파티션 내성) : 파티션은 두 노드 사이에 통신 장애가 발생하였음을 의미. 네트워크에 파티션이 생기더라도 시스템은 계속 동작하여야 한다.

분류

가용성을 희생하는 CP 시스템, 일관성을 희생하는 AP 시스템, 파티션 내성을 희생하는 CA 시스템으로 나뉠 수 있다. 단, 통상 네트워크 장애는 피할 수 없는 일로 여겨지므로, 분산 시스템은 반드시 파티션 문제를 감내할 수 있도록 설계되어야 한다. 그러므로 실세계에서 CA 시스템은 사용하지 않는다.

@wbluke wbluke self-assigned this Nov 7, 2023
@jiwoo-kimm
Copy link

우빈쌤) 면접을 위해 공부하고 외웠었는데 괜히 외웠다... 역사적으로만 의미가 있다더라..

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants