[JAVA] 배치와 트랜잭션[1]

박형석·2023년 5월 30일
0

트랜잭션

트랜잭션이란, 데이터베이스의 상태를 변화시키기 위해서 수행하는 작업의 단위를 뜻한다.

특징

  • 원자성: 트랜잭션이 DB에 모두 반영되던가, 전혀 반영되지 않아야 한다.
  • 일관성: 트랜잭션의 작업 처리 결과가 한상 일관성이 있어야 한다.
  • 독립성: 둘 이상의 트랜잭션이 동시에 실행되고 있을 경우 어떤 하나의 트랜잭션이라도, 다른 트랜잭션의 연산에 끼어들 수 없다는 점을 가리킨다.
  • 지속성: 트랜잭션이 성공적으로 완료됐을 경우, 결과는 영구적으로 반영되어야 한다.

Commit

Commit이란 하나의 트랜잭션이 성공적으로 끝났고, 데이터베이스가 일관성있는 상태에 있을때 하나의 트랜잭션이 끝났다는 것을 알려주기 위해 사용하는 연산.

Rollback


Rollback이란 하나의 트랜잭션 처리가 비정상적으로 종료되어 트랜잭션의 원자성이 깨진경우, 트랜잭션을 처음부터 다시 시작하거나, 트랜잭션의 부분적으로만 연산된 결과를 취소 시킨다.

트랜잭션의 상태


  • 활동(Active) : 트랜잭션이 실행중인 상태
  • 실패(Failed) : 트랜잭션 실행에 오류가 발생하여 중단된 상태
  • 철회(Aborted) : 트랜잭션이 비정상적으로 종료되어 Rollback 연산을 수행한 상태
  • 부분 완료(Partially Committed) : 트랜잭션의 마지막 연산까지 실행했지만, Commit 연산이 실행되기 직전의 상태
  • 완료(Committed) : 트랜잭션이 성공적으로 종료되어 Commit 연산을 실행한 후의 상태

배치

Batch는 data를 실시간으로 처리하는 것이 아닌 일괄적으로 모아서 처리하는 작업을 의미한다.
ex> 몇시간 동안 쌓인 데이터를 Batch 작업을 통해 특정 시간에 한꺼번에 처리하는 경우

특징

  • 대량 데이터를 일괄적으로 처리 하거나, 특정 시간에 일괄적으로 프로그램 process를 실행 하는 것.
  • 주된 사용 이유는 업무의 효율성
  • 비효율적인 시스테므이 과부하를 중리고, 시스템 부하가 많이 발생할 수 있는 시간대를 피해 지속적으로 실행되기만 하면 되는 Process나 Data를 묶어 처리하는 것.
profile
Better Than Yesterday

0개의 댓글