[클라우드컴퓨팅/CloudComputing] 7. Consistency
consistency의 종류
- continuous
- Conit
- 임시 write를 이용하는 방법이다. 일정 deviation이상이면 임시쓰기 그만하고 더많은 연산을 한 쪽의 임시쓰기를 permanent로 바꾸고 선택 안된건 취소함(노트 참고해서 읽기)
- sequential
- 값이 바뀌는 복제들이 동일한 순서로 바뀌게 한다. 딜레이는 발생돼도 같은 순서로 바뀌게 함. b→a , b→a로 바뀌면됨, 만약 a→b고 하나는 b→a면 만족하지 않는것임 three concurrently는 경우의수가 많아짐
- casual
- 순차일치보다 더 약화시킨버전으로 인과관계가 없는 것은 순서가 바뀌어도 상관 없는 것으로 하자는 것.
- client-centric
- 클라이언트 중심. 여기저기서 읽으면 conflict가 발생할 수 있음.
Replica Management(복제 관리)에서 propagate하기 위한 3가지 방법
- Invalidation protocols
- 무효화시키는 방법.
- 다른 L들과 다른 L들이 불일치시 무효화 통지한다.
- 나중에 필요하면 L1에 가서 현재값을 가져와야함. 적게 쓰는 경우 무효화하는게 낫다.
- Write through
- 끝까지 다 쓰는 방법이다.
- 모든 값들에게 write를 해주고 시간이 오래걸리기때문에 read to wirte ratio가 1보다 클때, 즉 write는 적게쓰는데 read를 많이 할 때 이 방법이 좋다.
- active replication
- 오퍼레이션 자체를 전달시켜서 실행해서 카피할 수 있도록 하는 방법
복제 관리에서 pull protocol vs push protocol
- pull은 클라이언트가 서버에게 값을 받아오는 것이고. 쓰는 내용이 더 많을 때 사용하기 좋음
- push는 서버가 클라이언트에게 데이터를 밀어주는 것. 읽는 내용이 더 많을 때 사용하기 좋음.
- push때 replica리스트와 캐시 리스트가 필요하고, client에서는 즉시 받을 수 있다.
- pull때 서버에서는 할일이 없고, 클라이언트가 업데이트해온다.