트랜잭션

· Database
Naver D2의 트랜잭션 관련 아티클을 정리해보려 한다. 프레임워크 레벨에서만 적용하던 트랜잭션의 내부 동작 방식을 자세히 공부할 수 있는 좋은 기회였다. 트랜잭션 종료의 3가지 상태 - 문제 없이 정상적으로 커밋 - 롤백(철회) - 시스템 문제로 인한 DBMS 서버의 재시작 트랜잭션 관리를 위한 DBMS의 전략 위의 사진처럼 DBMS는 크게 질의 처리기와 저장 시스템으로 구성되어있다. MySQL을 예로 든다면 MySQL 엔진과 스토리지 엔진을 말한다. DBMS는 대부분의 데이터를 디스크에 저장하지만 데이터의 일부는 메인 메모리에 유지한다. 이 메인 메모리 영역을 페이지 버퍼라고 하고, MySQL에서는 InnoDB 버퍼 풀을 지칭한다. 페이지 버퍼를 관리하는 모듈을 버퍼 관리자라고 하는데, 이 모듈의 ..
· Database
트랜잭션이란? 트랜젝션은 데이터베이스의 상태를 변화시키기 위한 작업 수행의 논리적 단위를 의미한다. 우리는 데이터베이스로 SQL 쿼리를 보냄으로써 데이터베이스의 상태를 변화시킨다. 그렇다면 작업 단위라는 것은 무엇을 말하는 것일까? 작업 단위는 사용자가 특정 기능의 수행을 위해 SQL 작업을 묶은 단위를 의미한다. 송금 서비스를 예로 들어보자. 송금 서비스는 1. A가 돈을 보내고, 2. B가 그 돈을 안전하게 받았을때 완전히 실행이 됐다고 할 수 있다. 두 과정이 다른 트랜젝션, 즉 다른 작업으로 분리되었다고 생각해보자. A가 돈을 10000원 송금하면 A의 돈 데이터에서 10000원이 차감될 것이다. 그에 맞춰서 B의 잔고는 10000원이 추가 될 것이다. 만약 A의 로직에서 오류가 발생해 트랜젝션 ..
Jemlog
'트랜잭션' 태그의 글 목록