본문 바로가기
Data/Data Engineering

[예정] 객체스토리지와 NoSQL스토리지의 차이점 /CAP정리

by 카프리썬 2021. 6. 27.
728x90

ACID특성 

트랜잭션 처리에 요구되는 4가지 성질 

원시성(Automicity)

일관성(Consistency)

독립성(Isolation)

내구성(Durability) 

일반적인 RDB는 ACID특성을 충족하고 있어 신뢰성 있는 트랜잭션 처리를 실현한다. 

 

하지만 ACID특성을 만족하면서 분산시스템을 구축하는 것은 어렵다.

그래서 이러한 한계를 고려해서 다시 만들어진 것이 CAP정리.

CAP정리

일관성(Consistency)

가용성(Availabilty)

분단내성(Partition-tolerance) 

일반적인 분산시스템에서는 CAP정리를 동시에 충족시킬 수 없어 어느하나가 희생될 수 있다.

NoSQL에서는 RDB처럼 반드시 신뢰성 있는 트랜잭션 처리를 수행할 수 있다고는 할 수 없다. 

 

NoSQL데이터베이스의 일부는 CAP정리의 일관성이나 가용성 중 하나를 선택한다. 

즉, 일관성을 우선하고 가용성을 포기하거나, 가용성을 우선하고 일관성을 포기하는 선택이다. 

그중에서 써넣은 데이터를 바로 읽을 수 있다고는 말할 수 없다는 것이 결과일관성이다. 

결과일관성 

DynamoDB는 결과일관성을 보장한다. 

시간이 지나면 언젠가 최신데이터를 읽을 순 있지만, 그게 언제가 될지는 알 수 없다. 

S3에서도 결과일관성을 보장한다. 

기존객체를 덮어쓰거나 삭제하는 경우 그 변경이 언제 반영되는지 보장되지 않아 지연이 발생할 수 있다. 

 

반응형