[정의] 시스템에서 생성하는 고유 번호인 시간 스탬프를 트랜잭션에 부여하는 것으로 트랜잭션간의 순서를 미리 선택하는 방법

 

[종류] 시스템 시계, 논리적 계수기


[구성]
1) read_TS(X): 항목 X 의 읽기 타임스탬프(read timestamp)로서 항목 X 를 성공적으로 읽은 트랜잭션들의 타임스탬프 중 가장 큰 값. 즉, read_TS(X) = TS(T)이고 여기서 T 는 X 를 성공적으로 읽은 가장 최근의(youngest) 트랜잭션.
2) write_TS(X): 항목 X 의 쓰기 타임스탬프(write timestamp)로서 항목 X 를 성공적으로 기록한 트랜잭션들의 타임스탬프 중 가장 큰 값. 즉, write_TS(X) = TS(T)이고 여기서 T 는 X 를 성공적으로 기록한 가장 최근의 트랜잭션.

 

 

 

 

 

 

 


[기본적 타임스탬프 순서(Basic Timestamp Ordering)]
- 트랜잭션 T 가 write_item(X) 연산을 수행하려고 할경우:
1) read_TS(X) > TS(T) 또는 write_TS(X) > TS(T)이면 T 를 철회하고 복귀시키고 그 연산을 거부(reject)한다. => 해당 트랜잭션 순서가 이미 지남
2) a 의 조건이 발생하지 않으면 T 는 write_item(X) 연산을 수행하고 write_TS(X)를 TS(T)로 설정한다.
- 트랜잭션 T 가 read_item(X) 연산을 수행하려고 할 경우:
1) write_TS(X) > TS(T)이면 T 를 철회하고 복귀시키고 그 연산을 거부한다. => 해당 트랜잭션 순서가 이미 지나서 다른 값이 있을수도 있음.
2) write_TS(X) ≤ TS(T)이면 T 의 read_item(X) 연산을 수행하고 read_TS(X)를 TS(T)와 현재의 read_TS(X) 중 큰 값으로 설정한다. => read_TS(X)는 가장 큰값.
※ Cascade rollback이 발생할 수 있음. ==> Strict timestamp(해당 순번TS(T)까지 Read_TS, Write_TS가 올때까지 대기하는 방식)

 

 

 

 

 

 

 

 

'ITPE > DB' 카테고리의 다른 글

데이터 모델링  (0) 2021.03.06
ARIES (Algorithms for Recovery and Isolation Exploiting Semantics)  (0) 2021.03.06
MVCC (MultiVersion concurrency control)  (0) 2021.03.06
낙관적 검증(Validation)  (0) 2021.03.06
무결성  (0) 2018.03.03

 

[정의] 트랜잭션 수행중 어떠한 검증도 수행하지 않고, 트랜잭션 종료시 검증을 수행하여 데이터베이스에 반영하는 기법

 

[기법] 사용자들이 같은 데이터를 동시에 수정하지 않을 것이라고 가정하는 낙관적 동시성 제어 기법에 기반


[처리단계]  판독 → 확인 → 실행(기록/철회)
- 판독(Read phase, R) : 트랜잭션의 모든 갱신은 사본에 대해서만 수행, 실제 DB 수행하지 않음
- 확인(Validation phase, V) : 판독단계에서 사본에 반영된 트랜잭션의 실행결과를 DB반영전 직렬 가능성의 위반여부를 확인
- 기록(Write phase, W) : 확인 통과시 실행결과를 DB에 반영, 실패시 결과 취소후 트랙잭션 복귀


[확인 단계의 확인 검사 조건]
- 타임스탬프 :
  1) Start(Ti) : 판독 시작시간
  2) Validation(Ti) : 판독 끝나고 확인 시작한 시간
  3) Finish(Ti) : 최종 기록 단계를 완료한 시간
- 판독 및 기록 집합 :  확인 작업 위해 트랜잭션의 판독집합 (read set) 과 기록집합(write set)을 유지.
  1) 판독집합(read set): Ti가 판독한 데이터 아이템의 집합
  2) 기록집합(write set): Ti가 기록한 데이터 아이템의 집합

 

 

 


[직렬성 검사 조건]
① Finish(Ti) < Start(Tj)
② Start(Tj) < Finish(Ti) <Validation(Tj) 이고 Write-Set(Ti) ∩ Read-Set(Tj) = F
③ Validation(Ti) < Validation(Tj) 이고 Write-Set(Ti) ∩ Read-Set(Tj) = F 이며 Write-Set(Ti) ∩ Write-Set(Tj) = F
- TS(Ti)<TS(Tj)의 관계에 있는 모든 트랜잭션 Ti 에 대해 위 3가지 조건 중 하나만 만족하면 트랜잭션들 간에 간섭이 없는 것으로 보고 확인을 성공
- 하나라도 만족하지 못하면 트랜잭션 간의 간섭이 일어났을 가능성이 있기 때문에 실패

 

 

 

 

 

'ITPE > DB' 카테고리의 다른 글

데이터 모델링  (0) 2021.03.06
ARIES (Algorithms for Recovery and Isolation Exploiting Semantics)  (0) 2021.03.06
MVCC (MultiVersion concurrency control)  (0) 2021.03.06
Timestamp Ordering  (0) 2021.03.06
무결성  (0) 2018.03.03

 

 

 

 

 - 최초 제안은 4개의 파트로 시작

 - 2013년 키워드 주도 테스팅이 독립파트로 구성 (2016.07 최종 국제표준안 완료)

 

 

 

 - ISO29119의 핵심은 part2 테스트 프로세스

 - part3 : 테스트 프로세스의 결과를 기술하는 문서

 - part4 : 테스트 프로세스에 따라 테스트 기법 결정

 

 

 

 

 

[각 파트별 주요 내용]

 

 

 

 

[키워드 주도 테스팅]

테스트 데이터와 예상 결과뿐만 아니라, 테스트 대상 어플리케이션과 관련된 키워드를 포함한, 데이터 파일을 사용하는 스크립트 기법. 제어 스크립트가 테스트하기 위한 목적으로 호출한 특별 지원 스크립트로 키워드를 해석.

 

 

 

 

 

※ 참고 : 소프트웨어 테스팅 국제표준 (임태형 / TTA SW시험인증연구소)

 

 

 

'ITPE > SE' 카테고리의 다른 글

CCM(Critical Chain Method)  (0) 2025.03.04
CMMI  (0) 2018.04.12
TOC-Thinking Process  (0) 2018.04.06
단위 테스트 및 통합테스트  (0) 2018.02.22

+ Recent posts