캡 정리:설명

참고:이 게시물은 구식입니다. 여기에서 가장 최신 버전을 찾을 수 있습니다.

이 게시물은 구식입니다. 여기에서 업데이트 된 버전을 찾으십시오. 나는 의도적으로 이 기사를 여기 남겨두고 있다 그래서 나는 나등을맞댄 연결하는 다른 위치를 혼란시키지 않는다.

몇 년 전,소프트웨어 시스템에 성능을 구축하는 것은 간단했습니다. 오늘날 세 번째 옵션이 있습니다:수평 스케일링(스케일 아웃).

최근 몇 년 동안 컴퓨팅의 글로벌 특성과 응용 프로그램에 대한 성능 요구가 계속 증가함에 따라 소프트웨어 시스템의 수평 적 확장이 필요하게되었습니다. 대부분의 경우 회사 본사에 인접한 단일 데이터 센터에서 단일 데이터베이스로 단일 서버를 실행하는 것이 더 이상 허용되지 않습니다. 우리는 오늘날의 비즈니스 과제를 해결하기 위해 진정으로 분산 된 환경이 필요합니다.

불행하게도,수평적 스케일링이 제공하는 성능상의 이점은 비용-복잡성으로 나타난다. 분산 시스템은 이전에 존재했던 것보다 더 많은 요소를 성능 방정식에 도입합니다. 데이터 레코드는 서로 다른 위치의 클라이언트/노드에 따라 다릅니다. 단일 장애 지점은 시스템 가동 시간을 파괴하고 간헐적 인 네트워크 문제는 최악의 시간에 발생합니다.

이러한 일관성(다),가용성(에이),및 파티션 허용 오차(피)분산 시스템 간~~에릭 브루어~~캡 정리로 만들어진 것을 구성합니다. 간단히 말해서,캡 정리는 분산 시스템이 씨,ㅏ,및 피 동시에,오히려 특정 작업에 필요한 성능 및 가용성 수준을 달성하기 위해 특정 시점에 트레이드 오프가 이루어져야합니다.

일관성-모든 노드가 동일한 데이터를 동시에 볼 수 있습니다.

간단히 말해서,읽기 작업을 수행하면 모든 노드가 동일한 데이터를 반환하는 가장 최근의 쓰기 작업의 값이 반환됩니다. 트랜잭션이 일관된 상태의 시스템으로 시작하고 일관된 상태의 시스템으로 끝나는 경우 시스템은 일관성을 갖습니다. 이 모델에서 시스템은 트랜잭션 중에 일관성없는 상태로 전환 될 수 있지만 프로세스의 모든 단계에서 오류가 발생하면 전체 트랜잭션이 롤백됩니다.

일반적인 관계형 데이터베이스는 일관성이 있습니다.

가용성-모든 요청은 성공/실패에 대한 응답을 가져옵니다.

분산 시스템에서 가용성을 달성하려면 시스템이 100%작동 상태를 유지해야 합니다. 모든 클라이언트는 시스템의 개별 노드 상태에 관계없이 응답을 얻습니다. 이 메트릭은 읽기/쓰기 명령을 제출할 수 있거나 할 수 없습니다.

일반적인 관계형 데이터베이스도 사용할 수 있습니다. 즉,일관성 및 가용성과 같은 관계형 데이터베이스가 캘리포니아 공간에 존재합니다. 그러나,캘리포니아는 관계형 데이터베이스를 위해 예약되지 않습니다-탄성 검색과 같은 일부 문서 지향 도구도 캘리포니아 우산 아래 가을.

파티션 허용-메시지 손실 또는 부분 오류에도 불구하고 시스템이 계속 작동합니다.

대부분의 사람들은 데이터 저장소를 네트워크의 단일 노드로 생각합니다. “이것은 우리의 프로덕션 서버 인스턴스입니다.” 프로덕션 인스턴스를 4 분 이상 실행한 사람은 누구나 단일 실패 지점이 생성된다는 것을 빠르게 알 수 있습니다. 파티션 허용 시스템은 전체 네트워크의 실패를 초래하지 않는 네트워크 오류의 양을 유지할 수 있습니다. 데이터 레코드는 노드와 네트워크의 조합을 통해 충분히 복제되어 간헐적 인 정전을 통해 시스템을 유지합니다.파티션 허용 오차에 해당하는 스토리지 시스템. 모든 클라이언트가 동일한 데이터를 얻고 시스템이 네트워크 경계를 넘어 분할되기 때문에 분산 캐시가 우수합니다.파티션 허용 오차에 해당하는 스토리지 시스템은 다음과 같습니다.

오래된 캡 프레임 워크-사용하지 않음

결론

분산 시스템을 통해 작년에는 사용할 수 없었던 수준의 컴퓨팅 성능과 가용성을 달성 할 수 있습니다. 당사의 시스템은 전 세계에 걸쳐 있는 데이터 센터에서 더 높은 성능,더 낮은 대기 시간 및 거의 100%가동 시간을 제공합니다. 무엇보다도,오늘날의 시스템은 쉽게 얻을 수 있고 비용이$0 에 접근하여 구성 할 수있는 상용 하드웨어에서 실행됩니다.

이 모든 컴퓨팅 성능과 이점은 가격에 제공됩니다. 분산 시스템은 단일 네트워크 대응 시스템보다 더 복잡합니다. 정말 오를 수 있는,고성능 체계를 창조하기 위하여 취득된것을 필요로 하는 특기 및 더욱 많은 공구 있는다. 분산 시스템에서 발생하는 복잡성을 이해하고,당면한 작업에 적합한 트레이드오프를 만들고,작업에 적합한 도구를 선택하는 것은 컴퓨팅 시스템이 위가 아닌 밖으로 이동하는 세계에서 모두 중요한 기술입니다.



+