일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- OS
- Make
- MySQL Architecture
- oracle architecture
- C
- Architecture
- Linux
- oracle
- rac
- PostgreSQL
- db
- cmake
- signal
- install
- grafana
- influxdb
- unix
- mysql
- Oracle GoldenGate
- ASM
- Today
- Total
목록DB (25)
Blog
Visibility Check Rules Visibility Check Rules(가시성 확인 규칙)은 Tuple의 t_xmin, t_xmax, clog, 획득한 Tx Snapshot을 모두 사용해 각 Tuple이 표시되는지(보이는지)의 여부를 결정하는 Rule 집합 t_xmin Status == ABORTED Rule 1: IF t_xmin status is 'ABORTED' THEN RETURN 'Invisible' END IF t_xmin의 Status가 ABORTED인 Tuple은 Tuple을 INSERT한 Tx가 ABORT되어 항상 보이지 않음 t_xmin Status == IN_PROGRESS t_xmin의 Status가 IN_PROGRESS인 Tuple은 한 조건을 제외하고 본질적으로 보이지..
Tx Snapshot개별 Tx의 특정 시점에 모든 Tx이 활성 상태인지 여부에 대한 정보를 저장한 Data Set활성 Tx는 IN_PROGRESS이거나 아직 시작되지 않은 Tx를 의미PostgreSQL은 내부적으로 Tx Snapshot의 Text 표현 형식을 100:100:으로 정의ex) 100:100:: 99보다 작은 txid는 활성화되지 않고 100보다 크거나 같은 txid를 활성화ℹ️내장 함수 txid_current_snapshot() & 해당 Text 표현 형식txid_current_snapshot()은 현재 Tx의 Snapshot을 보여줌SELECT txid_current_snapshot(); txid_current_snapshot ----------------------- 100:104:100..

ClogPostgreSQL은 clog에 Tx Status를 저장종종 clog라고 하는 Commit Log는 Shared Memory에 할당되며 Tx Processing 전반에 걸쳐 사용Transaction StatusPostgreSQL은 IN_PROGRESS, COMMITTED, ABORTED, SUB_COMMITTED의 Tx Status를 정의함SUB_COMMITTED는 Sub Tx를 위한 StatusClog의 성능Clog는 Shared Memory에 하나 이상의 Page로 구성(8KB)논리적으로 Array를 형성함Array의 Index는 각 txid에 해당하고 Array의 각 항목은 해당 Tx의 상태Clog의 동작 방식의 예T1: txid 200 COMMIT; txid 200의 Status가 IN_P..

Tuple INSERT, DELETE, UPDATETuple에 초점을 맞추기 위해 Page Header와 Line Pointer를 표시하지 않은 Tuple의 표현INSERTINSERT문을 통해 새 Tuple이 대상 Table의 Page에 직접 INSERTTuple INSERTtxid가 99인 Tx에 의해 Page에 Tuple이 INSERT된 상황 가정시 INSERT된 Tuple의 Header FieldTuple_1이 Tuple은 txid 99에 의해 INSERT되어 t_xmin=99이 Tuple이 DELETE, UPDATE되지 않아 t_xmax=0이 Tuple이 txid 99에 의해 INSERT된 첫번째 Tuple이라서 t_cid=0이 Tuple이 최신 Tuple이기 때문에 t_ctid=(0,1)(자신을..

Tuple StructureData Page의 Heap Tuple은 일반 Data Tuple과 TOAST Tuple로 분류됨Heap Tuple은 HeapTupleHeaderData 구조, NULL Bitmap 및 User Data로 구성Heap Tuple 중 일반 Data Tuplet_xmin: 이 Tuple을 삽입한 Tx의 txid를 보유t_xmax: 이 Tuple을 DELETE, UPDATE한 Tx의 txid 보유 DELETE, UPDATE되지 않은 경우 t_xmax = 0(INVALID)t_cid: 현재 Tx 내에서 이 Command가 실행되기 전 몇 개의 SQL Command가 실행된 수를 표시 0 에서부터 증가ex) BEGIN; INSERT; INSERT; INSERT; COMMIT; 시 cid..