ACID vs BASE 비교
개념 | ACID | BASE |
가용성 | 낮음 (일관성을 우선) | 높음 (가용성을 우선) |
일관성 | 높음 (즉각적인 일관성) | 낮음 (최종적인 일관성) |
상태 | 단단한 상태 (변경 불가능한 상태) | 부드러운 상태 (변경 가능한 상태) |
트랜잭션 격리 | 강한 격리성 | 약한 격리성 |
시스템 설계 목표 | 안정성과 신뢰성 | 확장성과 가용성 |
ACID 트랜잭션은 금융 거래와 같이 높은 일관성과 신뢰성이 요구되는 시스템에 적합하며, BASE 속성은 대규모 분산 시스템에서 높은 가용성과 확장성을 필요로 하는 시스템에 적합하다
ACID 트랜잭션
RDBMS에서 트랜잭션의 신뢰성과 일관성을 보장하는 속성
Atomicity (원자성)
트랜잭션의 모든 작업이 완전히 수행되거나 전혀 수행되지 않아야 함을 보장
트랜잭션 중 일부 작업만 수행되거나 실패하는 경우, 시스템은 트랜잭션 이전 상태로 복구되어야 한다
Consistency (일관성)
트랜잭션이 성공적으로 완료되면 데이터베이스는 일관된 상태를 유지해야 한다
트랜잭션이 실행되기 전과 후의 데이터베이스 상태가 시스템의 모든 규칙을 만족해야 한다
Isolation (격리성)
각 트랜잭션은 독립적으로 실행되며, 다른 트랜잭션의 중간 상태를 볼 수 없다
트랜잭션이 동시에 실행될 때, 서로 간섭하지 않도록 보장합니다.
Durability (지속성)
트랜잭션이 완료되면 그 결과는 영구적으로 저장된다
시스템 장애가 발생하더라도 트랜잭션의 결과는 손실되지 않는다
BASE 속성
BASE 속성은 NoSQL 데이터베이스 시스템에서 자주 사용되는 개념
ACID 속성보다 유연하고 확장성 있는 데이터 관리 방식을 제공한다
BA : Basically Available (기본적으로 가용)
시스템은 항상 응답할 수 있어야 하며, 가용성을 우선한다
데이터 일관성이 다소 떨어지더라도 시스템은 가용성을 유지하고 요청에 응답한다
Soft State (부드러운 상태)
시스템의 상태는 언제든지 변경될 수 있으며, 반드시 영구적이지는 않다
데이터는 시간이 지나면서 일관성을 가질 수 있고, 중간 상태는 일관되지 않을 수 있다
Eventual Consistency (최종적 일관성)
시스템은 최종적으로 일관된 상태가 된다
일시적으로 데이터 불일치가 발생할 수 있지만, 모든 업데이트가 완료되면 데이터는 일관성을 갖게 된다
'TIL(CS)' 카테고리의 다른 글
웹소켓이란? (feat.Spring,STOMP,SockJS) (1) | 2024.10.26 |
---|---|
OOP의 SOLID 원칙 (2) | 2024.05.28 |
NoSQL의 CAP 이론(The CAP theorem) (0) | 2024.05.28 |
클러스터링과 샤딩의 차이점 (0) | 2024.05.28 |
NoSQL과 RDBMS의 차이 (0) | 2024.05.28 |