정의
일단 트랜잭션의 의미를 알아야 하는데
트랜잭션이란?
데이터베이스의 상태를 변화시키기 위해서 수행하는 작업의 단위
간단하게 말해 질의어(SQL)을 이용해 데이터베이스를 접근 하는 것을 의미한다.
- SELECT (READ)
- INSERT (CREATE)
- DELETE (DELETE)
- UPDATE (UPDATE)
작업의 단위가 질의어 한문장이 아니라는 것을 주의해야 한다.
그렇다면 분산 트랜잭션 (Distributed Transaction) 이란 무엇일까?
분산 트랜잭션은 여러 대의 컴퓨터 노드에 걸쳐 수행되는 트랜잭션입니다. 각 노드는 자체적으로 데이터를 저장하고 있으며, 이러한 분산된 데이터 저장소에서 트랜잭션이 수행됩니다. 분산 트랜잭션은 분산 시스템에서 중요한 개념 중 하나이며, 다수의 사용자가 동시에 작업을 수행하고 결과를 공유하는 경우 사용됩니다.
ACID가 여러 데이터베이스에 걸쳐서 보장됨.
장단점
장점
- 고가용성 : 여러 대의 노드가 동시에 작업을 수행하기 때문에, 하나의 노드에서 장애가 발생해도 다른 노드에서 작업을 계속할 수 있습니다.
- 성능 향상 : 분산 시스템을 사용하면 작업을 여러 노드에서 병렬로 처리할 수 있기 때문에 전반적인 성능이 향상됩니다.
- 확장성 : 분산 시스템은 노드를 추가하거나 제거함으로써 확장 가능합니다.
단점
- 복잡성 : 여러 대의 노드를 사용하면 시스템의 복잡성이 증가할 수 있습니다.
- 일관성 유지 : 여러 노드에서 작업을 수행하는 경우, 데이터 일관성을 유지하는 것이 어렵습니다.
- 오버헤드 : 분산 시스템은 데이터 복제 및 동기화를 위해 더 많은 네트워크 오버헤드를 필요로 합니다.
어떻게 작동하는 지?
분산 트랜잭션은 노드 간의 통신을 통해 작동합니다. 각 노드는 로컬 트랜잭션을 수행하고, 그 결과를 다른 노드와 공유합니다. 이 때, 다른 노드에서 수행된 트랜잭션과 충돌이 발생할 수 있으므로, 충돌을 해결하기 위해 분산 트랜잭션 관리자가 필요합니다. 분산 트랜잭션 관리자는 모든 노드에서 수행된 트랜잭션을 감시하고, 충돌이 발생하면 해결 방법을 찾아 작업을 수행합니다.
왜 사용하는 지?
분산 트랜잭션은 다수의 사용자가 동시에 작업을 수행하고 결과를 공유해야 하는 분산 시스템에서 주로 사용됩니다. 예를 들어 대규모 웹 서비스, 은행 시스템, 재고 관리 시스템 등에서 여러 사용자가 동시에 데이터를 읽고 쓰기 때문에 분산 트랜잭션이 필요합니다. 분산 트랜잭션을 사용하면 데이터 일관성과 무결성을 유지하면서 여러 사용자가 동시에 데이터를 처리할 수 있습니다. 또한, 분산 시스템에서는 노드를 추가하거나 제거하는 등의 작업을 통해 시스템의 확장성을 높일 수 있기 때문에 분산 트랜잭션을 사용합니다.
3줄요약
분산 트랜잭션이란 다수의 사용자가 동시에 DB에 SQL 이용해 작업을 수행 하는 것 (Git 과 유사하다고 생각이 든다.) 고가용성을 확보하고 병렬처리로 성능 향상이 된다. 하지만 복잡성이 올라가고 데이터의 일관성을 관리 해 줘야 함
[참조] :
https://manhyuk.github.io/transaction/
https://m.blog.naver.com/angelkum/130068321825
chatGPT
'CS 지식' 카테고리의 다른 글
Swagger란? (0) | 2023.05.15 |
---|---|
Jar 파일이란? (0) | 2023.05.05 |
DPU란? (0) | 2023.04.30 |
API 쓰로틀링이란 무엇인가? (0) | 2023.04.30 |
SQL과 NoSQL이란? (0) | 2022.07.31 |