4 DATABASE [OS-study]
메모리의 종류 및 동작 과정
[ 1. RDB vs NoSQL ]
- RDB : record - table - database
- NoSQL : document - collection - database
[ 2. 관계 ]
관계 화살표
- 의미: A ↔ B 가 0 또는 1 관계 (최대 1개)
A ────O<─ B :
- 의미: A ↔ B 가 0..N 관계 (선택적 다수 관계)
키
- 기본키 (Primary key) : 유일성 + 최소성
- 외래키 (Foreign key) : 기본키 참조 - 유일X
- 후보키 (Candidate key) : 기본키 후보 (유일성 + 최소성)
- 대체키 (Alternate key) : (Candidate - Primary)
- 우선순위 (SJF에 가중치 부여)
⇒ 시행 시간이 짧은거 먼저 실행하되, 오래된 작업에 우선순위를 높게 설정
답
예측 데이터 이용 (like EMA)
τ[n] = α * T[n-1] + (1 - α) * τ[n-1]
- τ[n] : 이번에 예측한 실행 시간
- T[n-1] : 직전에 실제로 측정된 실행 시간
- τ[n-1] : 직전에 예측했던 실행 시간
- α : 새 데이터에 얼마나 민감하게 반응할지 결정하는 가중치(0~1)
[ 3. 트랜잭션과 무결성 ]
트랜잭션의 특징 : ACID
- Atomicity(원자성) : 모두 수행 또는 수행되지 않음 ⇒ 0/1
⇒ 하나의 트랜잭션 단위에서는 외부 호출이 일어나서는 안되고, 만약 피할 수 없다면, 롤백과정을 설계 해야함
@Transcatonal 의 의미- 트랜잭션 전파 : 트랜잭션은 커넥션 단위로 수행하기 때문에 커넥션 객체를 매번 넘기는 방식으로 행햐하는데 이와 관련된 메소드 호출을 하나로 묶어서 해결하는 방법
Spring Annotation Transcational은 해당 어노테이션이 붙은 쿼리 작업 메소드들을 하나의 트렌잭션으로 처리 (Spring AOP가 자동적으로 처리)
- Consistency(일관성) : 허용된 방식만
- Isolation(격리성) : 서로 다른 트랜잭션 간의 격리 단계
- SERIALIZABLE : 무조건 순차적
- REPEATABLE READ : 이미 수정한 행을 다른 트랜잭션이 수정 불가 (행 자체의 추가는 가능)
- READ COMMITTED : 완료된 커밋에 대해서는 모든 접근 허용
- READ UNCOMMITTED : 커밋 이전에도 다른 트랜잭션에 노출 ⇒ “대략적” 집계
격리 수준
- Durability(지속성) : 성공한 트랜잭션은 영원히 반영 (롤백 가능
- 체크섬 : 중복검사를 통한 오류정정
- 저널링 : 커밋하기전에 로깅
- 팬텀리드 : 트랜잭션 내에서 동일한 쿼리가 다른 결과 (아예 다른 Row를 조회)
- 반복 불가능 조회 : 트랜잭션 내에서 같은 행을 여러변 조회시 다른 데이터 (Row의 값이 다름)
- 더티리드 : 커밋되지 않아도 변경 내역이 조회
현상
무결성
- 개체 : 기본키는 notNull
- 참조 : 서로 참조 관계일 경우 일관된 값
- 고유 : 특정 속성에 대해 고유성
- Null : notNull 제약 조건
⇒ 각 프로세스에 동일한 시간 할당 / 끝
(N-1) * q 시간이 지나면, 다시 자기 차례
- SRF (Shortest Remaining Time First)
⇒ SJF 과정 중 더 짧은 실행 시간을 가지는 작업이 들어오면 스위칭
- 다단계 큐
- BurstTime : 작업때 까지 걸리는 시간
- WastingTime = 대기시간
- 0초 : P1 arrive & P1 start (대기시간 0)
- 2초~7초 : P1 작업 중 & 2초부터 P2 대기 (대기시간 5초)
⇒ 예시 일 뿐 실제 과정은 다를 수 있음
⇒ 우선 순위에 따라 준비 큐를 여러개 사용하고, 각 큐마다 스케줄링 알고리즘 적용
(단, SRF에서의 ContextSwitching에 소모되는 시간은 고려하지 않는다.)
Ex) P1 → P2 (SJF)의 대기시간은
답
SJF ⇒ P1 → P3 → p2 → p4
P1 대기시간 : 0
P2 대기시간 : 2~(7+1) = (P1 & P3) = 6
P3 대기시간 : 4~7 = 3
P4 대기시간 : 5~(7+1+4) = (P1 & P3 & P2) = 7
평균 대기시간 (SJF) (0+6+3+7)/4 = 4
SRF
0초 ~2초 p1(7-2, w=0)
2초 ~ 4초 p2(4-2, w=0) , p1(5, w=2)
4초 ~ 5초 P3(1-1, w=0), P2(2, w=1), P1(5, w=3)
5초 ~ 7초 P2(2-2, w=1), P1(5, w=5), P4(4, w=2)
7초~ 11초 P4(4-4, w=2), P1(5, w=9)
11초 ~ 16초 P1(5-5, w=9)
평균 대기시간 (SㄲF) (9+1+0+2)/4 = 3