일관성 보장
- 복제 데이터베이스 대부분 최소한 최종적 일관성을 제공한다
- 트랜잭션 격리 동시에 실행되는 트랜잭션 경쟁조건 회피
- 분산 일관성, 지연과 결함이 있더라도 복제본의 상태 조정
선형성
- 기본 아이디어 : 시스템에 데이터 복사본이 하나만 있고, 그 데이터를 대상으로 수행하는 모든 연산은 원자적인 것처럼 보이게 만드는 것
- 선형성은 최신성 보장해아한다
- 쓰기 시 compare and set
- 값이 갱신되면 그 다음 읽기는 갱신된 값을 return 해야함
- 모든 요청과 응답 시점 기록하고, 유요한 순차 순서로 배열되는 지 확인함으로 시스템 동작이 선형적인지 테스트 할 수 있다
- 선형성 경쟁 조건 회피 → 부가적인 통신 채널을 제어하는 방법 사용할 수 있다.
- 선형성 중요한 요구사항
- 잠금과 리더 선출
- 제약 조건과 유일성 보장
- 채널 간 타이밍 의존성
- 선형성 비용
- 선형성은 정확성을 높이는대신, 성능이 떨어진다.
- (선형적) 네트워크 순단이 일어날 경우, 리더와 연결되지 못한 어플리케이션 장애
- (비선형적) 네트워크 순단이 일어나도, 장애나지 않음, 비동기로 데이터 동기화
*직렬, 선형
- 직렬 : 트랜잭션이 어떤 순서에 따라 실행되는 것 처럼 동작 보장, 그 순서가 트랜잭션이 실제로 실행되는 순서와 달라도 상관없다. 일고 쓸 수 있는 상황에서 트랜잭션 격리 속성
- 선형 : 읽기와 쓰기에 대한 최신성 보장, 트랜잭션으로 묶지 않는다
CAP 정리
- 일관성, 가용성, 분단내성
- 분단내성은 어디에나 발생할 수 있음, 따라서 CAP은 네트워크 분단이 생겼을 때 일관성과 가용성중 어떤것을 중점으로 볼 것인지 선택하라는 의미로 보는 것이 좋다.
순서화