No sql 5장 일관성

Preview:

Citation preview

NoSQLPart 5. Consistency

업데이트 일관성트랜잭션 수행이 성공적으로 완료되면 언제나 일관성 있는 데이터베이스 상태로 변환한다 .

NoSQLPart 5. Consistency업데이트 일관성

일관성을 유지하는 방법은 ..?

NoSQLPart 5. Consistency업데이트 일관성

.. 에이 그냥 냅두자 ..

그래도 오류인데 고쳐야 하지 않나 ..?

NoSQLPart 5. Consistency업데이트 일관성

.. 에이 그냥 냅두자 ..

그래도 오류인데 고쳐야 하지 않나 ..?

- 낙관적 방법 . 충돌 발생 시 적절한 조취를 취함 .

NoSQLPart 5. Consistency업데이트 일관성

Data……..

1 2

- 낙관적 방법 . 충돌 발생 시 적절한 조취를 취함 .

어떠한 방법으로든 충돌이 발생하면조치를 취한다 .

NoSQLPart 5. Consistency업데이트 일관성

.. 에이 그냥 냅두자 ..

그래도 오류인데 고쳐야 하지 않나 ..?- 비관적 방법 . 충돌이 발생하는 것을 미연에 방지한다 .

NoSQLPart 5. Consistency업데이트 일관성

Data……..

1 2

x- 비관적 방법 . 충돌이 발생하는 것을 미연에 방지한다 .

Lock!!

읽기 일관성사용자가 보거나 변경하는 데이터는 사용자의 데이터에 의한 작업이 끝날 때 까지는 다른 사용자에 의해 변경되지 않도록 한다 .

NoSQLPart 5. Consistency읽기 일관성

Data……..

Data……..

Data……..

Data……..

1

2

Update

1

Update

2 ????????

트랜잭션의 부재로 나중에 대참사가 일어남 .

비일관적 읽기

NoSQLPart 5. Consistency읽기 일관성 비일관적

읽기

작업을 집합으로 묶어버리자 !

NoSQLPart 5. Consistency읽기 일관성 복제

일관성

난 OK, 넌 어때 ?클러스터링을 구성하는 DB 에서 데이터를 복제 할 때 생길 수 있는 일종의 Lag Time

( 비 일관성 윈도 )

NoSQLPart 5. Consistency읽기 일관성 복제

일관성

Master혹은Peer

Slave혹은Peer

Slave혹은Peer

O

X

비일관적

읽기

NoSQLPart 5. Consistency읽기 일관성 복제

일관성

일관성이 꼭 필요한 경우에만 일관성의 수준을 높힌다 .

NoSQLPart 5. Consistency읽기 일관성 복제

일관성

또는일관성이 꼭 필요한 경우에만 일관성의 수준을 높힌다 .

스티키 세션을 사용한다 .

NoSQLPart 5. Consistency읽기 일관성 복제

일관성

스티키 세션 ?서버 노드가 몇 개이든 사용자의 세션을 가지고 있는 서버와 통신한다 .

일관성 완화일관성이 서버 성능의 저하를 초래할 경우 일관성을 포기한다 .

CAP 정리Consistency( 일관성 ), Availability( 가용성 ), Partition tolerance( 분단 허용성 ) 중 두 가지만 취할 수 있다 .

NoSQLPart 5. ConsistencyCAP 정리

트랜잭션 수행이 성공적으로 완료되면 언제나 일관성 있는 데이터베이스 상태로 변환한다 .

사용자가 보거나 변경하는 데이터는 사용자의 데이터에 의한 작업이 끝날 때 까지는 다른 사용자에 의해 변경되지 않도록 한다 .

NoSQLPart 5. ConsistencyCAP 정리

트랜잭션 수행이 성공적으로 완료되면 언제나 일관성 있는 데이터베이스 상태로 변환한다 .

사용자가 보거나 변경하는 데이터는 사용자의 데이터에 의한 작업이 끝날 때 까지는 다른 사용자에 의해 변경되지 않도록 한다 .

클러스터의 한 노드와 통신할 수 있으면 그 노드에서 읽기와 쓰기가 가능해야 한다 .

NoSQLPart 5. ConsistencyCAP 정리

트랜잭션 수행이 성공적으로 완료되면 언제나 일관성 있는 데이터베이스 상태로 변환한다 .

사용자가 보거나 변경하는 데이터는 사용자의 데이터에 의한 작업이 끝날 때 까지는 다른 사용자에 의해 변경되지 않도록 한다 .

클러스터의 한 노드와 통신할 수 있으면 그 노드에서 읽기와 쓰기가 가능해야 한다 .

클러스터 내의 통신 두절로 클러스터가 여러 조각으로 나뉘어 지더라도 클러스터가 잘 동작 해야한다 .

지속성 완화성공적으로 수행된 트랜잭션은 영원히 반영되어야 한다 .

그러나 서버의 높은 성능을 위해 지속성을 어느 정도 포기한다 .

NoSQLPart 5. Consistency지속성 완화

Ses-sionOr

Cache

Master혹은Peer

Slave혹은Peer

Slave혹은Peer

Client

일정한 주기로 복제를 수행한다 .

Recommended