오라클 EXADATA

EXADATA Developer - 8

n.han 2017. 2. 14. 16:19


EXADATA Developer - 8
> Exadata Smart Flash Cache Intelligent Caching: Overview
> Flash Cache는 사이즈가 고정되기 때문에, LRU 방식으로 메모리 관리 (Lease Recently Used)
> Using Exadata Smart Flash Cache: Write-Through Cache
  데이터 읽는 순서
  1. DB Buffer Cache
  2. Flash cache
  3. Hard Disk
  Write시 디스크에 먼저 씀
> Usgin Exadata Smart Flash Cache: Write-Back Cache
  Write할 때 Flash에 먼저 씀. LRU 기반이니, 최신 데이터는 Flash Cache에 있음.
  - Primary와 Mirror가 있을 때, Read는 Primary를 읽고, Write는 Primary와 Mirror 모두.
  - 그럼 Write-Back 모드에서 Flash가 깨지면? (하드 디스크가 깨지면 Mirror가 있으니 괜찮음)
  - 따라서 Write-Back일 때는 Mirror가 있는 다른 Cell의 Flash에도 Write.
> free buffer waits
  - DB Buffer 상태
  1. dirty : 데이터를 DB Buffer에 읽었는데, 변경된 상태. (deferred write 때문에 디스크 파일에 변경이 되지 않는 상태)
  2. pinned : 지금 acces 중인 상태
  3. free : free인 상태.
  - free buffer를 확보하기 위해서 db buffer cache에서 dirty 상태인 buffer들을 Disk에 write함. 이 작업을 위해 대기가 일어남 => free buffer waits
> Columnar Flash Caching
> Exadata Smart Flash Log: Overview
  - SGA에 log buffer가 있고, commit이 발생하면 LGW이라는 bgprocess가 redo log file에 write
  - 근데 LGW가 해주는 작업이 SYNC I/O임. (AWK를 받아야 다음꺼 Write)
  - 그래서 동시에 Smart Flash Log라는 것이 있어서, Flash도 같이 write하고, 먼저 Awk 오면 다음꺼 Write함. 그럼 redo log file과 flash log의 차이는 flash가 맞춰줌.
  -> log file sync라는 wait event를 해결하기 위한 방안!

 

  1. Read Request가 발생하면, 먼저 DB Buffer 확인.

  2. 없으면, Flash Memory에 있는 지 확인.

  3. 없으면, Hard Disk에서 Read하고, DB Server로 결과 Return 후, Flash Memory에 해당 Data Write (LRU 방식으로 운영)

 

 

 

1. Read Request가 발생하면, 먼저 DB Buffer 확인

2. 없으면 Flash Memory에 있는 지 확인. 있어서, 결과 Return

 

'오라클 EXADATA' 카테고리의 다른 글

EXADATA Developer - 10  (0) 2017.02.15
EXADATA Developer - 9  (0) 2017.02.15
EXADATA Developer - 7  (0) 2017.02.14
EXADATA Developer - 6  (0) 2017.02.14
EXADATA Developer - 5  (0) 2017.02.13