반응형
Transaction
- 데이터베이스 관리 시스템 또는 유사한 시스템에서 상호작용의 단위
- 유사한 시스템이란 트랜잭션이 성공과 실패가 분명하고 상호 독립적이며, 일관되고 믿을 수 있는 시스템을 의미
- 이론적으로 데이터베이스 시스템은 각각의 트랜잭션에 대해 원자성(Atomicity), 일관성(Consistency), 고립성(Isolation), 영구성(Durability)을 보장
- 어떤 시스템들에서는 트랜잭션들은 논리적 작업 단위(LUW, Logical Units of Work)로 부름
ACID
데이터베이스 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 성질
원자성(Atomicity)
트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는 것을 보장하는 능력
일관성(Consistency)
트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 유지하는 것을 의미
고립성(Isolation)
트랜잭션을 수행 시 다른 트랜잭션의 연산 작업이 끼어들지 못하도록 보장하는 것을 의미
지속성(Durability)
성공적으로 수행된 트랜잭션은 영원히 반영되어야 함을 의미한다. 시스템 문제, DB 일관성 체크 등을 하더라도 유지되어야 함
BASE
ACID와 대조적으로 가용성과 성능을 중시하는 특성을 가진 분산 시스템의 특성
- Basically Available
- 가용성을 중시, Optimistic Locking 및 큐 사용
- 다수의 실패에도 가용성을 보장, 다수의 스토리지에 복사본 저장
- Soft-State
- 노드의 상태는 외부에서 전송된 정보를 통해 결정됨
- 분산 노드 간 업데이트는 데이터가 노드에 도달한 시점에 갱신
- Eventually Consistent
- 일시적으로 비일관적인 상태가 되어도 최적으로는 일관성이 있는 상태가 되는 성질
BASE vs ACID
속성 | BASE | ACID |
적용분야 | NOSQL | RDBMS |
범위 | 시스템 전체에 대한 특성 | 트랜잭션에 한정 |
일관성측면 | 약한 일관성 | 강한 일관성 |
중점사항 | Availability | ‘Commit’에 집중 |
시스템측면 | 성능에 초점 | 엄격한 데이터관리 |
효율성 | 쿼리디자인이 중요 | 테이블 디자인이 중요 |
Reference
[2] Ji-Dum (http://www.jidum.com/jidums/view.do?jidumId=906)
반응형
'Computer Science' 카테고리의 다른 글
JVM 메모리 구조 (JVM Memory structure) (0) | 2017.09.30 |
---|---|
OOP(객체 지향 프로그래밍) 5원칙 및 특성 (0) | 2017.09.30 |
Java 자료구조 비교 (0) | 2017.09.30 |
TCP vs UDP (0) | 2017.09.30 |
TCP 3 Way-Handshake & 4 Way-Handshake (0) | 2017.09.30 |
OSI 7 계층 (OSI 7 Layer) (0) | 2017.09.29 |
프로세스와 스레드(Process vs Thread) (0) | 2017.09.29 |
64비트와 32비트의 차이 (0) | 2017.09.29 |
퀵 정렬, 퀵 소트(Quick Sort) (0) | 2017.09.21 |
계수정렬, 카운팅 소트(Counting Sort) (0) | 2017.09.21 |