Transaction

세미·2022년 12월 4일
0

데이터베이스

목록 보기
5/9

1. Atomicty 원자성

  • 비록 여러개의 step으로 나눠져 있지만, 이 스텝이 절대 분해되지 않는다.
  • 6단계중 3단계까지 하다가 다른 트렌젝션이 일어나는 경우는 없음.
  • 총 6단계중 그 전에 실패하면 일관적이지 않은 결과를 초래함. 일관성이 깨지는 문제 발생.
    • leading to an inconsistent database state.
    • Failure could be due to software or hardware
      • software: 버그 or cpu가 처리하는 과정에서 일어나는 이슈.
      • hardware: disk 버그(물리적으로 마모된 문제,고장)
  • 장애요인때문에 끊길 수 있음. 한번에 연산이 되어야하는데. 그럼에도 불구하고 장애가 발생하는걸 고려해야함. 장애발생시에도 처리가 atomicty하게 처리할 수 있도록.
  • 처리가 될거면 다 처리가 되어야함. 아니면 아무것도 처리 되면 안됨.

2. Durability 지속성

  • 트렌젝션의 성공한 결과가 영구적으로 지속되어야함.
  • 대충 그림있다는 뜻.

3. Consistency 일관성

  • 일관성이 있어야 함.
  • 트렌젝션 후에도 그 합이 달라지지 않아야 함.
  • 아토믹하게 이뤄진다면 일관성은 만족됨.
  • explicity integrity constraints
    ex) 이름은 중복이 되면 안된다.
  • 지정한 제약조건이 트렉젝션 전 후가 변하지 않고 만족해야됨.
  • 트렌젝션 연산 중간과정에서는 잠깐 일관성이 깨질 수 있음. 하지만 완료되었을때는 일관성이 유지되어야 한다.

4. Isolation 고립성

  • 트렌젝션 연산 도중 다른 트렌젝션이 들어올 수 있음
  • 중간에 다른 트렌젝션에 영향을 받지 않고 혼자 진행되어야함.
  • 깔끔하게 완료가 된 뒤에 다른 트렌젝션이 수행되어야한다.
  • 여러 트렌젝션중 트렌젝션은 한번에 하나씩 세부연산을 해야한다.
  • 이를 위해 순차적으로 진행되어야 한다.
  • 동시에 시키는게 장점이 존재함. --> 일관성을 해치지 않는 선에서 동시에 처리하는 방법은 나중에...

ACID Properites

  • 그림 보자.
  • 당연히 알고 있어야함.

Transaction State

  • 트렌젝션 상태를 구분할 수 있음.
  1. active

    • 정상적으로 잘 실행되고 있는 상태
    • 별문제없이 실행중
  2. partially committed

    • 마지막 state까지 실행된 상태
    • 최종적으로 끝났다고 선언하기 직전.
  3. failed

    • 트렌젝션 수행 중 더이상 진행이 불가능한 부분을 맞닥뜨렸을 때 ->실패상태로
    • 중간에 실패했으면 처음으로 돌려놔야함. 애초에 실행하지 않은 것처럼. ==> RollBack (아토믹한 연산을 하기위해)
    • 성공적으로 수행되지 않음
  4. aborted (유산된,실패의) 중지

    • rollback을 한 직후의 상황.
    • 애초에 없었던 일로 한거임.
      1. 다시한번 시도.
      1. 트렌젝션 kill. 관련된 문제를 복구하고 다시시도.
  5. commited
    - 성공적으로 수행됨. 완전 완료

  • 트랜젝션이 멀티로 동시에 존재가능하다. (multiple transactions are allow to run concurrently in the system)
    장점1: 프로세서(cpu)와 디스트 유틸라이제이션이 올라감.
    -> one transaction can be using the CPU while another is reading from or writing to the disk
    장점2: 대기시간이 짧아짐 : short transations need not wait behind long ones. 만약에 앞에있는게 100단계고 뒤에있는게 1단계면 순차적으로한다면 1개짜리는 끝날때까지 계속 대기해야 되잖아.
  • 이를 지원하기 위해 Concurrency control schemes 필요.
    -> 고립성을 지원해야함.
    -> isolation을 지원하기위한 제일 심플한건 = 순차적으로 실행
    -> 이런 장점을 취하되 isolation을 보장할 수 있는 방법 필요.

Schedule

  • 트렌젝션의 연산 스텝들의 순서를 스케줄이라고 함.

  • 누가 먼저 실행할건지에 대해서도 스케줄이라고 함.

  • a sequences of instructions that specify(명시하다) of chronological(시간순서대로된) order in which instructions of concurrent transactions are executed

  • 성공적으로 완료된 트렌젝션 = commited

  • 실패한 트렌젝션 = abort

0개의 댓글