• Cache Fusion

    2025. 12. 31. 13:23

    by. 위지원

    Oracle에는 DB Buffer Cache가 있다.

    Buffer Cache는 SQL 수행을 위해 필요한 Data Block을 Memory로 올려 저장하는 곳이다.

     

    RAC(Real Application Clusters)란 ?

    여러 서버가 하나의 DB를 동시에 붙잡고 쓰는 구조

    Cache Fusion은 서로 다른 Instance의 DB Buffer Cache에서 Block을 이동시키면서 발생한다. Cache Fusion은 블록 핑퐁이 발생 할 수 있어 UPDATE 사용 에는 위험. SELECT는 괜찮다. (* 블록 핑퐁: 같은 블록을 계속 뺏고 뺏김)

     

    Cache Fusion의 등장 배경은 ?

    1. 노드마다 DB Cache를 따로 씀
    2. 다른 노드가 가진 Block이 필요해지면 디스크에 w/r 해서 얻어야했음

    그 결과, I/O 발생과 확장성이 좋지 못함. 디스크를 거치지 말자! -> Cache Fusion 등장

    • 메모리 <> 메모리 직접 전송
      • 어떻게? 인터커넥트 사용
    • 디스크는 최후 수단

     

    Cache Fusion의 발생 흐름

    ① Node 1에서 SQL 실행: 필요한 데이터 블록이 로컬 DB Cache에 없음

    ② Global Cache(GCS)에 블록 위치 문의: Node 1이 Global Cache Service에 질의

    ③ Node 2가 블록 소유 중: GCS 판단 결과 👉 해당 블록은 Node 2 DB Cache에 (메모리에 있음 )

    ④ Cache Fusion 발생 (핵심) 인터커넥트 통해 메모리 블록 직접 전송

    ⑤ 블록 상태 / 소유권 조정

    • 읽기 요청 → CR 블록
    • 쓰기 요청 → Current 블록
    • GCS/GES(Global Enqueu Service:RAC LOCK 담당)가 글로벌 락 & 소유권 재조정

    ⑥ Node 1 DB Cache 적재 후 SQL 계속: 전달받은 블록을 Node 1 DB Cache에 적재

     

     

    Cache Fusion 구성요소

    1. GCS (Global Cache Service)

    • 데이터 블록 관리자
    • CR / Current 블록 판별
    • 블록 이동 트리거

    2. GES (Global Enqueue Service)

    • 락 관리자
    • TX / TM / DDL / Dictionary 락

    3. 인터커넥트 (Interconnect)

    • 노드 간 초고속 전용 네트워크
    • Cache Fusion 블록 전송 통로
    • 보통 InfiniBand / 10~25GbE

    4. DB Cache (각 인스턴스)

    • 실제 데이터 블록이 존재하는 곳
    • 블록은 디스크보다 먼저 여기서 이동

    5. Global Resource Directory (GRD)

    • 블록 소유권 메타정보
    • 어떤 노드가 어떤 상태로 갖는지 기록

    6. CR / Current 블록 메커니즘

    • CR: 읽기 전용 일관성 블록
    • Current: 쓰기 가능한 최신 블록 

     

    RAC의 튜닝요소: GC 대기 이벤트 줄이기

    • gc cr block busy: 읽기(cr) 요청 했는데 상대 노드가 바쁘거나 못 줌
    • gc buffer busy: 쓰기(current) 요청 했는데 블록 소유권 이동 중 충돌
    • gc current grant busy: UPDATE/DELETE 경합

     

     

    '✎ 2025년' 카테고리의 다른 글

    LangChain - LCEL  (0) 2025.12.24
    LangChain 기본 알아보기  (0) 2025.12.24
    PQ와 QC  (4) 2025.06.27
    CDC(Change Data Capture)  (0) 2025.04.05
    프로젝트 성패를 결정짓는 데이터 모델링 이야기  (3) 2025.03.03