Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

귤귤나무 일지

ACID 특성, Reliability, Availability 본문

Data/Database Systems

ACID 특성, Reliability, Availability

귤귤나무 2024. 11. 17. 20:58

데이터베이스 특징을 공부하다가 개념이 헷갈려서 정리해두고자 글을 쓴다.

RDBMS는 ACID 특성을 가진다.

 

ChatGPT가 정리해준 표

특성 의미 보장 방법
Atomicity(원자성) 트랜잭션이 전부 실행되거나 전혀 실행되지 않음을 보장 로그 기반 복구(WAL)
Consistency(일관성) 트랜잭션 전후 데이터베이스의 무결성 상태 유지 무결성 제약 조건, 스키마
Isolation(격리성) 트랜잭션 간의 독립성 보장, 동시에 실행해도 결과가 독립적으로 유지됨 잠금, MVCC, 격리 수준 설정
Durability(지속성) 커밋된 데이터는 영구적으로 저장되고 시스템 장애에도 유지 디스크 기록, 복제, 백업

 

근데 DB 운영을 하다보면, Availability(가용성)에 대한 얘기를 많이 듣는다.

가용성은 Durability와도 연관되어 있는 거 아닌가?

 

그리고 논문을 읽다가 DB의 Reliability(신뢰성)에 대해서도 다뤘다.

 

Availability, Reliability, Consistency, Durability의 차이가 뭘까.

 

또 ChatGPT에게 물어봤다.

특성 초점 주요 목표 보장 방법
Reliability(신뢰성) 시스템이 안정적으로 작동 장애 및 오류 발생 방지, 복구 가능 장애 복구 메커니즘, 이중화 시스템, 정기적인 백업
Availability(가용성) 시스템의 사용 가능성 장애 상황에서도 요청에 대한 응답 보장 고가용성 설계, 분산 데이터베이스, 복제 시스템
Consistency(일관성) 데이터 상태의 무결성 무결성 제약 조건 유지, 트랜잭션 실행 전후 데이터 일관성 보장 트랜잭션 관리, ACID의 "C", 데이터 무결성 제약 조건 구현
Durability(지속성) 데이터의 영구적 저장 트랜잭션 성공 시 데이터가 영구적으로 저장됨 로그 기반 복구, 디스크에 데이터 기록, WAL(Write-Ahead Logging) 사용

 

결국, 다 서로 연관이 있지만 보는 주요 관점이 살짝 다른 느낌이다.

신뢰성은 장애 발생하면 복구가 가능해야 하기에, "시스템의 안정적인 동작" 측면에서 본 특성이고,

가용성은 장애가 발생해도 계속해서 사용이 가능한 DB여야되는 것이기에, "사용 가능성" 측면에서 본 특성이고,

일관성은 데이터의 일관성을 보장하는, "데이터 상태"에서의 무결성을 본 특성이고,

지속성은 데이터가 손실되지 않도록 "데이터를 저장하는 측면"에서 본 특성이다.