distributed system 4

Distributed System - 8. Fault Tolerance

1. Introduction* DependabilityComponent가 서비스를 client에게 제공하기 위해, 다른 Component의 서비스에 의존할 수도 있다. 즉, 하나의 component는 완전히 독립적으로 동작하지 않을 수도 있으며, 다른 component와의 상호작용에 따라 동작이 달라질 수 있다.정의 : component C가 component C*에 의존한다고 할 때, C*의 동작이 올바르게 수행하지 않으면 C 역시 장애가 발생한다. (여기서 component는 프로세스나 채널을 의미한다.)=> 이러한 Dependability의 요구사항은 크게 4가지가 존재한다.1. Availability : 시스템의 사용 가능 상태가 얼마나 잘 유지되는지를 의미.(얼마나 준비상태를 유지할 수 있는지...

개인 공부 2024.12.04

Distributed System - 7. Consistency & Replication

1. Reasons for replication복제(Replication)이란 데이터를 여러 복제본(replica)로 분산하여 저장하는 것을 의미한다.복제를 함으로써 얻을 수 있는 효과는 크게 2가지가 있다.1. 성능 : 동일한 데이터에 대해 여러 클라이언트가 동시에 요청을 처리할 수 있어 성능이 향상된다.2. 확장성(Scalability) : replica를 추가함으로써 시스템의 capacity를 확장할 수 있다. (Task 분산) 그러나 복제를 하면 자연스럽게 따라오는 문제가 있는데, 바로 replica 끼리의 consistency 문제이다.replicas consistent를 지키기 위해서, Write 작업과 다른 작업이 동시에 일어날 때 처리를 해줄 규칙이 필수가 된다는 것이다.1. Read-Wr..

개인 공부 2024.12.02

Distributed System - 6. Coordination

1. Clock synchronization분산 시스템을 구축할 때, 각 Autonomous computing element 들은 물리적으로 격리되어있다고 가정한다.따라서 이들은 공통된 Physical global clock을 가지는 것이 불가능하다. 따라서 분산 시스템을 구축하며 coordination의 측면에서 Clock 동기화는 필수이다.위의 사진과 같이 output.c를 컴파일한 결과 output.o가 local clock이 달라 output.o가 먼저 만들어진 것으로 인식될 수가 있다는 것이다. 그렇다면 clock 동기화는 어떻게 하면 될까? 1. Physical clock만약 단순히 선후 관계의 이벤트 순서만이 아니라 해당 이벤트의 정확한 발생 시간이 필요하다고 해보자.(Ex : UTC 등의 ..

개인 공부 2024.12.02

Distributed System - 5. Naming

1. Names, identifiers and addresses- Name : entity를 가리키는 bit나 char의 나열- Entity : Name이 붙을 수 있는 모든 것=> Entity에 접근하기 위해서는 Access Point(AP)를 통해야하며, 이 AP도 역시 entity이다.- Address : AP의 Name- Naming system : 어떻게 각 Entity의 name을 결정할 것이며 이러한 name을 가지고 어떻게 해당 entity까지 접근할지, 그리고 그 name 들을 어떻게 관리, 유지할지를 결정할지를 정하는 것이다. - Identifiers(ID)란?1. Pure name : 이름에 아무런 의미가 없는 형태.2. Identifier : entity와 1대1 매칭이 되며, 재사..

개인 공부 2024.10.23