Spanner, TrueTime & CAP 정리 , Eric Brewer는 다음과 같이 씁니다.
Spanner에 대한 한 가지 미묘한 점은 잠금에서 직렬 성을 얻지 만
외부 일관성 ( 선형성 ) TrueTime에서 [ 강조 추가 ].
외부 일관성 의 정의는 무엇입니까? 그리고 선형성 과 어떻게 다른가요?
댓글
- 이것은 좋은 질문입니다. Eric이 여기서 조금 자세히 설명했습니다. 선형화 가능합니까? 🙂
Answer
외부 일관성은 고정 된 의미가 없습니다.이 맥락에서 문서의 바로 다음 문장에 나타나는 의미 :
두 거래에 대해 $ T_1 $ 및 $ T_2 $ (양쪽에있는 경우에도 globe) : $ T_1 $가 커밋을 완료 한 후 $ T_2 $가 커밋을 시작하면 $ T_2 $의 타임 스탬프가 $ T_1 $의 타임 스탬프보다 큽니다.
댓글
- 생각할수록 모든 거래가 주문되기 때문에 선형화 가능성과 매우 비슷하게 들립니다. 슬프게도 때때로 이러한 용어는 미묘합니다. .. 동의하지 않는 사람이 있습니까? 내 말은 트랜잭션이 직렬화 가능하고 커밋 시간을 기준으로 전적으로 정렬됩니다. 아마도 2PC가 Spanner에서 구현되는 방식에 미묘한 차이가 있습니까?
- @Bminer Linearizability는 일관성 모델입니다. 트랜잭션이 여러 O를 포함 할 수있는 단일 객체에만 적용됩니다. bjects.
- @LorinHochstein-하! 다듬는 말 냄새가나요. 용어의 요점은 실제 사람들이 특히 거래와 관련하여 어떤 보장을 받는지 개념화하도록 돕는 것입니다. 선형화 가능성 + 직렬화 가능성은 가장 강력한 보증이며, ' Spanner 문서에서 " 외부 일관성이라는 용어를 언급하고 있다고 생각합니다. "하지만 질문을합니다. " 외부 일관성 "이 무엇인지 정말로 아는 사람이 있습니까? 방법? 🙂
답변
트랜잭션 (Tx) 격리 및 주문 관점에서 외부 일관성에 대해 생각할 수 있습니다. . Tx 격리에서 외부 일관성은 엄격한 직렬화 가능 격리와 동일합니다. 여기서 “strict”는 선형화 가능성에서와 같이 실시간 제약 부분입니다.
다시 말하면 시스템 클라이언트가 Tx를 관찰 할 수 있음을 의미합니다. 부작용은 모든 Tx가 동시성없이 분리되어 발생하고 클라이언트가 보는대로 실시간 순서가 유지되는 시스템과 동일합니다. 더 중요한 것은이 동일한 순서가 다른 관련없는 고객에게 표시된다는 것입니다.
이 블로그 에서 차이점에 대해 자세히 알아보세요.
답변
" 외부 일관성 "을 언급 할 때 , Brewer는 B. Liskov를 참조합니다. 분산 시스템에서 동기화 된 클록의 실제 사용 . 분산 컴퓨팅 (PODC)의 ACM 원칙. 1991 년 8 월 캐나다 몬트리올.
Liskov는 용어로 Gifford D.K. 분산 형 컴퓨터 시스템의 정보 저장 . 기술 보고서 CSL-81-8, Xerox Corporation, 1983 년 3 월
다음은 Gifford가 외부 일관성을 정의하는 방법입니다.
외부 일관성은 트랜잭션이 항상 최신 정보를 수신하도록 보장합니다. 방금 소개 한 개념을 사용하여 외적 일관성에 대한 공식적인 정의를 제공 할 수 있습니다. 트랜잭션이 완료되는 실제 시간 순서는 고유 한 일련의 일정을 정의합니다.이 일련의 일정을 외부 일정 . 시스템은 일련의 트랜잭션을 처리하는 데 사용할 일정이 외부 일정과 동일 함을 보장하는 경우 외부 일관성을 제공한다고합니다.
@Oleg가 언급했듯이 이는 엄격한 직렬 성 처럼 들립니다.