요약 35일차와 36일차는 정말 몇번을 읽어도 이해가 잘 안가서 다음에 좀 더 집중해서 읽어본다. 일괄 처리 워크플로의 출력에 대해 이해함 검색 색인 구축 일괄 처리의 출력으로 키-값을 저장 일괄 처리 출력에 관한 철학 하둡과 분산 데이터베이스의 비교에 대해 이해함. 저장소의 다양성 처리 모델의 다양성 빈번하게 발생하는 결함을 줄이는 설계 메모 일괄 처리 워크플로의 출력 지금까지 다양한 알고리즘을 사용해 맵리듀스 작업의 워크플로를 구현하는 것을 살펴봄. 그러나 결과가 어떻게 나오고 왜 이 작업을 수행하는지에 대한 질문이 남아 있음. 데이터베이스 질의에서는 트랜잭션 처리(OLTP)와 분석 목적을 구별했음. OLTP 질의는 소량의 레코드를 조회하는 반면, 분석 질의는 대량의 레코드를 스캔하고 그룹화, 집계 ..
요약 맵리듀스와 분산 파일 시스템에 대해 이해함. 맵리듀스 작업 실행하기에 대한 내용을 이해함. 맵리듀스의 분산실행과 워크플로 리듀스 사이드 조인과 그룹화에 대해 이해함. 정렬 병합 조인 같은 곳으로 연관된 데이터 가져오기 그룹화 쏠림 다루기 맵 사이드 조인에 대해 이해함. 브로드캐스트 해시 조인 파티션 해시 조인 맵 사이드 병합 조인 맵 사이드 조인을 사용하는 맵리듀스 워크플로 메모 맵리듀스와 분산 파일 시스템 맵리듀스는 수천 대의 장비로 분산해서 실행이 가능하다. 이것이 유닉스 도구와의 차이임. 유닉스 도구와 마찬가지로 맵리듀스 작업은 입력을 수정하지 않기 때문에 출력을 생산하는 것 외에 다른 부수 효과가 없음. 유닉스 도구는 stdin, stdout 을 입력과 출력으로 사용하는데, 맵리듀스 작업은 ..
요약 10장 일괄 처리에 대한 내용을 이해함. 서비스 (온라인 시스템) 일괄 처리 시스템 (오프라인 시스템) 스트림 처리 시스템(준실시간 시스템) 유닉스 도구로 일괄처리하는 방법에 대한 내용을 이해함. 단순 로그 분석 유닉스 연쇄 명령 vs 맞춤형 프로그램 유닉스의 철학에 대해 이해함. 유닉스 프로그램 여러개가 유연하게 조립하여 사용할 수 있음. 유닉스 프로그램은 동일 인터페이스를 사용하기 때문 로직과 연결을 분리할 수 있음. 프로그램과 느슨한 결합을 유지하기에 작은 도구로부터 큰 시스템을 구성하기 훨씬 수월함. 유닉스는 진행상황을 보기 편함. 메모 10장. 일괄 처리 웹과 점점 늘어나고 있는 HTTP/REST 기반 API 때문에 요청/응답 방식의 상호작용이 매우 흔해져서 이를 당연히 여김. 하지만 이 ..
요약 일관성과 합의에 대한 내용을 정리함. 파트 3, 파생 데이터에 대한 내용을 이해함. 데이터 저장 시스템은 크게 두분류로 나뉨. 레코드 시스템 파생 데이터 시스템 위 시스템을 구분하면 시스템 전체 데이터플로가 명확해짐. 메모 정리 일관성과 합의에 관한 주제들을 여러 다양한 각도에서 살펴봄. 인기있는 일관성 모델인 선형성을 깊게 알아봄. 선형성은 이해하기 쉬우므로 매력적이지만 느리다는 단점이 있음. 시스템에 발생한 이벤트에 순서를 부과하는 인과성을 살펴봄. 모든 연산을 하나의 전체 순서가 정해진 타임라인에 넣는 선형성과 달리, 인과성은 더 약한 일관성 모델을 제공함. 인과적 일관성은 선형성의 코디네이션 오버헤드가 없고 네트워크 문제에 훨씬 덜 민감함. 위와 같은 인과적 순서를 담아내더라도 어떤 것들은 ..
요약 현실의 분산 트랜잭션에 대한 내용을 이해함. 데이터베이스 내부 분산 트랜잭션 이종 분산 트랜잭션 메시지를 정확히 한번 처리하는 원자적 커밋 지원할 수 있음. XA 트랜잭션을 통해 이종 분산 트랜잭션을 구현함. 장애 발생시 의심스러운 트랜잭션 발생할 수 있음. 코디네이터의 장애를 복구해야함. 이러한 분산 트랜잭션에도 제약이 있음. 코디네이터 자체가 일종의 데이터베이스로 간주해야 하기 때문 내결함성을 지닌 합의에 대한 내용을 이해함. 균일한 동의 무결성 유효성 종료 내결함성을 지닌 합의 알고리즘은 위 형식보다는 전체 순서 브로드캐스트를 구현함. 이 또한 합의의 과정임. 합의의 합의가 필요할 수 있음. (리더 선출과 전체 순서 브로드캐스트) 이 경우 에포크 번호를 붙여 해결할 수 있음. 합의 알고리즘도 ..
요약 분산 트랜잭션과 합의에 대한 내용을 이해함. 분산 컴퓨팅에서 가장 중요하고 근본적인 문제임. 노드간의 동의를 만드는 것임. 원자적 커밋과 2단계 커밋에 대한 내용을 이해함. 단일 노드에서 원자적 커밋은 저장소 엔진에서 구현됨. 다중 노드에서는 위 내용만으로 분산 트랜잭션을 안전하게 구현할 수 없음. 2단계 커밋을 이용한다. 모든 노드가 커밋되거나모든 노드가 어보트되도록 보장하는 알고리즘임. 단점은 코디네이터가 죽으면, 복구될 때까지 기다려야함. 블로킹 원자적 커밋 프로토콜이라고도 부름. 3PC를 대안으로 제시하기도 하지만 신뢰성 있는 장애 감지기 역할을 하지 못함. (네트워크 지연, 프로세스 중단에 대한 제한이 깔려있기 때문) 메모 분산 트랜잭션과 합의 합의는 분산 컴퓨팅에서 가장 중요하고 근본적인..
요약 데이터 순서화 보장에 대한 내용을 알게됨. 순서화는 인과성을 보존하는데 도움을 줌. 인과적 의존성을 보존하기 위해 일련번호를 사용한다. 일련번호의 순서화임. ex) 램포트 타임스탬프 전체 순서 브로드캐스트는 연산의 순서를 보고 전체 순서를 정한다. 메모 순서화 보장 순서화는 이 책에서 되풀이된 주제임. 중요한 근본적 아이디어일 수 있음을 시사함. 순서화, 선형성, 합의 사이에는 깊은 연결 관계가 있음. 이 개념은 시스템이 무엇을 할 수 있고 무엇을 할 수 없는지에 대한 이해를 명확하게 하는데 큰 도움이 됨. 순서화와 인과성 순서화가 인과성을 보존하는 데 도움을 줌. 인과성은 이벤트에 순서를 부과함. 결과가 나타나기 전에 원인이 발생함. 시스템이 인과성에 의해 부과된 순서를 지키면 그 시스템은 인과적..
요약 선형성에서 요구되는 주요 영역을 이해함. 잠금과 리더 선출 제약 조건과 유일성 보장 채널 간 타이밍 의존성 선형성 시스템을 구현하기 위한 복제 방식의 방법을 이해함. 합의 알고리즘을 사용한다. 단일 리더 복제 외에는 비선형으로 볼 수 있다. 선형성의 비용과 그에 따른 트레이드 오프를 고려해야 함. 내결함성 vs 성능 메모 선형성 기대기 시스템이 올바르게 동작하도록 만들기 위해 선형성이 중요한 요구사항이 되는 영역이 몇 가지 있음. 잠금과 리더 선출 단일 리더 복제를 사용하는 시스템은 리더가 여러 개가 아니라 진짜로 하나만 존재하도록 보장해야 함. 리더 선출하는 방법 중 하나로 잠금을 사용한다. 이 잠금을 어떻게 구현하든지 선형적이어야 함. 모든 노드는 어느 노드가 잠금을 소유하는지에 동의해야 함. ..
요약 분산 시스템의 일관성과 합의에 대한 내용을 알게됨. 가능하다와 불가능하다에 대한 범위를 이해해야 함. 일관성 보장에 대한 내용을 이해함. 분산 일관성은 대개 지연과 결함이 있더라도 복제본의 상태를 코디네이션하는 것에 관한 것임. 선형성에 대한 내용을 이해함. 선형성은 최신성 보장이다. 시스템에 데이터 복사본이 하나뿐인 것처럼 보이게 만드는 것이 선형성을 뒷받침하는 기본 아이디어임. 메모 9장. 일관성과 합의 내결함성을 지닌 분산 시스템을 구축하는 데 쓰이는 알고리즘과 프로토콜의 몇가지를 얘기한다. 내결함성을 지닌 시스템을 구축하는 가장 좋은 방법 유용한 보장을 해주는 범용 추상화를 찾아서 구현하고 애플리케이션에서 이 보장에 의존하게 만든다. 7장의 트랜잭션이 다루는 방법과 같음. 분산 시스템의 가장..
요약 분산 시스템에서 일어날 수 있는 내용 (지식과, 신뢰성, 악의 요청)에 대한 생각과 대응에 대해 알게 됨. 정족수를 통해 노드의 문제를 과반수로 정하고 판단할 수 있음. 그럼에도 시스템 문제가 유발할 수 있는데, ex: 리더가 잠금을 획득하는 예시가 있음. 펜싱 토큰을 사용하여 문제를 해결할 수 있음. 비잔틴 결함에 대한 내용을 이해함. 악의적인, 거짓말을 통해 문제가 발생할 수 있음. 클라이언트의 행동이 악의적이므로 그에 대한 대책을 애플리케이션에서도 마련해야 함. 현실에서 시스템 모델은 다양하며, 정의할 수 있어야 함. 알고리즘의 정확성에 대한 내용을 생각할 수 있음. 알고리즘의 속성을 기술할 수 있듯이 분산 시스템의 속성을 기술하여 시스템 모델의 정확도를 체크해볼 수 있음. 어려운 시스템 모델..
요약 신뢰성 없는 네트워크 중, 동기와 비동기 네트워크에 대한 내용을 이해함. 동기 → 제한 있는 지연 / 고정 대역폭 비동기 → 제한 없는 지연 / 전송률 동적 조절 가능 신뢰성 없는 시계에 대한 내용을 이해함. 일 기준 시계 벽 시계 단조 시계 시간으 흐름을 잼 시계 동기화와 정확성에 대한 내용 신뢰가 낮음 동기화된 시계에 의존 이벤트 순서화용 타임스탬프 시계 읽기 신뢰구간 프로세스 중단에 따른 응답 시간처리가 필요 응답 시간 보장 가비지 컬렉션 영향 제어 메모 동기 네트워크 대 비동기 네트워크 동기 네트워크 ex) 전화 네트워크에서 통화 시, 회선(circuit)이 만들어짐. 회선은 통화가 끝날 때까지 유지됨. 데이터가 여러 라우터를 거치더라도 큐 대기 문제를 겪지 않음. 큐 대기가 없기에 네트워크..
요약 분산 시스템의 골칫거리에 대한 내용을 이해함. 결함과 부분장애에 대한 내용을 이해함. 하드웨어 동작은 중간 장애 없이 잘 동작하거나 전체 장애가 발생한다. 분산 시스팀에서는 부분 장애가 발생할 수 있는데, 비결정적임. 인터넷 서비스는 클라우드 컴퓨팅이며, 슈퍼컴퓨팅은 분산 시스템과 거리가 멀다. 신뢰성 없는 네트워크에 대한 내용을 이해함. 분산 시스템은 비공유 시스템이며, 비동기 패킷 네트워크이기에 전송측과 수신측 패킷의 신뢰를 할 수 없음. 현실적으로 네트워크 결함은 피할 수 없음. 결함 감지를 하기 위해서는 응답측에서 응답을 받아야 함. 타임아웃의 트레이드오프를 잘 결정해야 함. 메모 8장. 분산 시스템의 골칫거리 결함과 부분 장애 좋은 소프트웨어가 설치된 각각의 컴퓨터는 완전하게 동작하거나, ..