Hekaton DBMS의 MVCC 기능 구현
프로그램의 의미는 '_project_report.pdf' 파일에 설명되어 있습니다.
master
브랜치에는 단일 스레드로 (원래) 트랜잭션 newOrder를 실행하는 프로그램이 포함되어 있습니다. 다른 분기는 정확성 및 성능 테스트에 사용됩니다.
- 분기 'test-visibility-validation': 읽기 안정성을 테스트합니다.
- 'test-phantom-avoidance' 분기: 팬텀 감지를 테스트합니다.
- 'test-cascaded-aborts' 분기: 커밋 종속성의 맥락에서 계단식 중단을 테스트합니다.
- '테스트 스캔' 분기: OrderLine 테이블을 여러 번 스캔하여 프로그램의 스캔 속도를 테스트합니다.
- '읽기 전용' 분기: 읽기 전용 트랜잭션의 성능을 테스트합니다.
- '업데이트 전용' 분기: 업데이트 전용 트랜잭션의 성능을 테스트합니다.
극단적인 경우 트랜잭션은 다음과 같이 동작합니다.
- SELECT: 필요한 튜플이 존재하지 않으면 이 SELECT 문의 변수가 아래에 필요하기 때문에 트랜잭션을 중단하고 롤백해야 합니다.
- INSERT: 중복된 PK를 테이블에 삽입하는 경우 트랜잭션을 중단하고 롤백해야 합니다.
- UPDATE 및 DELETE: 존재하지 않는 튜플을 업데이트/삭제하는 경우 명령문은 무시됩니다.