Transaction

효딩딩·2022년 10월 25일
0

Transaction 이란?

  • Transaction (트랜잭션) 은 다양한 데이터 항목들을 액세스하고 갱신하는 프로그램 수행의 단위
  • 트랜잭션은 begin transaction과 end transaction 형태의 명령문 또는 함수 호출로 구분됨
  • 하나의 트랜잭션은 이 begin transaction과 end transaction 사이에서 실행되는 모든 연산들을 가리킴

트랜잭션(Transaction)의 성질

Atomicity(원자성)

  • 트랜잭션의 연산은 데이터베이스에 모두 반영되든지 아니면 전혀 반영되지 않아야 합니다.
  • 트랜잭션 내의 모든 명령은 반드시 완벽히 수행되어야 하며, 모두가 완벽히 수행되지 않고 어느 하나라도 오류가 발생하면 트랜잭션 전부가 취소되어야 합니다.

Consistency(일관성)

  • 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환합니다.
  • 시스템이 가지고 있는 고정 요소는 트랜잭션 수행 전과 트랜잭션 수행 완료 후의 상태가 같아야 합니다.
    · 트랜잭션은 일관성 있는 데이터베이스 상태를 유지

Isolation(독립성, 격리성)

  • 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행중에 다른 트랜잭션의 연산이 끼어들 수 없습니다.
  • 수행중인 트랜잭션은 완전히 완료될 때가지 다른 트랜잭션에서 수행 결과를 참조할 수 없습니다.

Durablility(영속성, 지속성)

  • 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 합니다.

출처:
https://velog.io/@bernard717/Transaction
https://blog.naver.com/hj_kim97/222716451210
https://blog.naver.com/hj_kim97/222716451210
https://pro-growth.tistory.com/186


(영문 해석)

What is Transactions?

  • A transaction is a set of operations on one or more entities.
  • Each transaction is guaranteed to be atomic, meaning that transactions are never partially applied.
  • Either all of the operations in the transaction are applied, or none of them are applied.

Using transactions

  • Transactions expire after 270 seconds or if idle for 60 seconds.

An operation may fail when:

  • Too many concurrent modifications are attempted on the same entity.
  • The transaction exceeds a resource limit.
  • The Datastore mode database encounters an internal error.

Source:
https://firebase.google.com/docs/reference/js/firestore_.transaction
https://cloud.google.com/datastore/docs/concepts/transactions

profile
어제보다 나은 나의 코딩지식

0개의 댓글