Part 2. 분산 데이터 냉혹한 현실 세계에서 데이터 시스템은 여러 가지 문제가 생길 수 있다. 데이터베이스 소프트웨어나 하드웨어는 언제라도 실패할 수 있다. 애플리케이션은 언제라도 죽을 수 있다. 네트워크가 끊기면 애플리케이션 데이터베이스의 연결이 갑자기 끊기거나 데이터베이스 노드 사이의 통신이 안 될 수 있다. 여러 클라이언트가 동시가 동시에 데이터베이스에 쓰기를 실행해서 다른 클라이언트가 쓴 내용을 덮어쓸 수 있다. 클라이언트가 부분적으로만 갱신돼서 비정상적인 데이터를 읽을 수 있다. 클라이언트 사이의 경쟁 조건은 예측하지 못한 버그를 유발할 수 있다. 시스템이 신뢰성을 지니려면 이런 결함을 처리해서 전체 시스템의 치명적인 장애로 이어지는 것을 막아야 한다. 그러나 내결함성을 갖춘 시스템을 구현하..