데이터 일관성은 일반적으로 관련 데이터 간의 논리적 관계가 정확하고 완전한지 여부를 말하며, 데이터 저장의 일관성 모델은 스토리지 시스템과 데이터 사용자 간의 합의로 간주될 수 있습니다. 이 규칙을 따르면 시스템에서 약속한 액세스 결과를 얻을 수 있습니다.
일반적으로 사용되는 일관성 모델은 다음과 같습니다.
a 엄격한 일관성:
읽어낸 데이터는 항상 가장 최근에 작성된 데이터입니다. 이러한 일관성은 글로벌 시계가 존재할 때만 가능하며, 분산 네트워크 환경에서는 불가능합니다.
b. 순차 일관성:
모든 사용자는 동일한 데이터에 대한 작업을 동일한 순서로 볼 수 있지만 순서가 반드시 실시간일 필요는 없습니다.
c. 인과 관계가 있는 쓰기 작업만 모든 사용자에게 동일한 순서로 표시되어야 하며, 인과 관계가 없는 쓰기는 병렬로 수행되며 순서는 보장되지 않습니다. 인과적 일관성은 순차적 일관성 성능의 최적화로 볼 수 있지만 구현 중에 인과적 종속성 그래프를 설정하고 유지하는 것은 상당히 어렵습니다.
d. 파이프라인 일관성:
은 인과 일관성 모델을 더욱 약화시켜 특정 사용자가 완료한 쓰기 작업을 다른 모든 사용자가 순차적으로 인식할 수 있도록 요구하며, 다른 사용자의 경우 이를 보장할 필요가 없습니다. 파이프처럼 하나씩 쓰기 작업의 순서를 지정합니다. 구현하기가 상대적으로 쉽습니다.
e, 약한 일관성:
순차 일관성을 보장하기 위해 공유 데이터 구조에만 액세스하면 됩니다. 동기화 변수에 대한 작업은 순차 일관성을 갖고 전역적으로 표시되며 처리 대기 중인 쓰기 작업이 없는 경우에만 수행될 수 있으므로 중요한 영역에 대한 순차적 액세스가 보장됩니다. 동기화 시 모든 사용자는 동일한 데이터를 볼 수 있습니다.
f. 릴리스 일관성:
약한 일관성은 사용자가 중요 섹션에 들어가고 싶은지 또는 중요한 섹션을 떠나기를 원하는지 구분할 수 없습니다. 쓰기가 필요한 경우 사용자는 객체를 획득하고 쓰기 후 해제합니다. 획득과 해제 사이에 임계 영역이 형성됩니다. 해제 일관성을 제공한다는 것은 해제 작업이 발생하면 모든 사용자가 해당 작업을 볼 수 있어야 함을 의미합니다.
g, 최종 일관성:
새로운 업데이트가 없을 때 업데이트는 결국 네트워크를 통해 모든 복제 지점에 전파되고 모든 복제 지점은 결국 일관성을 갖게 됩니다. 즉, 사용자는 이전에 일관성을 유지하게 됩니다. 중간 프로세스 중에 새로 작성된 데이터가 표시된다는 보장은 없습니다. 최종적으로 일관된 모델을 채택하려면 한 가지 주요 요구 사항이 있습니다. 즉, 오래된 데이터를 읽어도 괜찮다는 것입니다.
h, 증분 일관성:
시스템은 델타 시간 내에 일관성에 도달합니다. 이 기간 동안에는 로그 전달 프로세스로 인해 일관성이 없는 기간이 발생합니다.
위 내용은 이 글의 전체 내용입니다. 모든 분들의 공부에 도움이 되었으면 좋겠습니다. 더 흥미로운 내용을 보려면 PHP 중국어 웹사이트의 관련 튜토리얼 열을 주의 깊게 살펴보세요! ! !위 내용은 데이터 일관성이란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!