cubrid icon indicating copy to clipboard operation
cubrid copied to clipboard

[CBRD-26124] Problem with LRU moving excessively when temporary file page is unfixed

Open shparkcubrid opened this issue 10 months ago • 1 comments

http://jira.cubrid.org/browse/CBRD-26124

Purpose

임시 파일 page가 unfix 되었을 때 과도하게 LRU ZONE을 이동하면서 부하가 발생한다. 이것은 일반 질의의 경우 필요 없는 부하를 발생시키며, 병렬 질의의 경우 LRU mutex로 인해 전체 쓰레드가 시리얼하게 처리될 수 있는 상황을 만든다. 임시 파일 page는 재 FIX 되더라도 LRU 이동을 금지하고, 생성 순서에 따라 victimize 한다. 이는 기존의 vaccum thread의 동작과 유사하다.

Implementation

vaccum thread의 동작과 유사하게 UNFIX시 임시파일의 page는 LRU이동을 금지한다. 임시파일의 특성을 고려하여 몇가지 케이스는 일반 쓰레드와 동일하게 동작하도록 수정한다.

  • VOID ZONE : 일반 THREAD 기준 임시 page를 새로 할당받고 작성 후 unfix 되는 경우이다. 이후 해당 page는 읽기 위해 다시 fix될 가능성이 높다. VACCUM은 direct victim을 진행하고 있으나, 임시파일에 이것은 비효율적이기 때문에 일반쓰레드와 동일하게 처리한다.
  • LRU_1_ZONE, LRU_2_ZONE : vaccum THREAD기준 LRU boost 없음
  • LRU_3_ZONE : vaccum THREAD기준 direct victim 진행, LRU boost 없음

% direct victim : unfix시 기다리고 있는 다른 쓰레드에게 해당 BCB를 직접 할당하는 로직

Remarks

N/A

shparkcubrid avatar Jun 16 '25 06:06 shparkcubrid

/run shell

shparkcubrid avatar Jul 10 '25 08:07 shparkcubrid