1 |
1
프로세서, 메모리를 구비하여 적어도 하나의 데이터베이스에 저장되는 데이터 페이지를 관리하는 데이터베이스 관리 시스템 (DBMS)의 버퍼 플러싱 자동 조정 방법에 있어서, 버퍼 관리자가 실행되는 상기 프로세서가 상기 메모리에 기설정된 크기의 용량으로 할당되는 버퍼 풀을 플러싱하기 위해 이전 설정된 스캔 페이지 수(Pscan) 및 입출력 용량(Pio)을 획득하고, 이전 수행된 버퍼 플러싱 작업 시간이 기설정된 기준 플러싱 시간을 초과하는지 판별하는 단계; 상기 버퍼 플러싱 작업 시간이 상기 기준 플러싱 시간을 초과하면, 상기 프로세서가 상기 DBMS의 상태를 입출력 과부하 상태인 것으로 판정하여, 상기 스캔 페이지 수(Pscan) 또는 상기 입출력 용량(Pio)을 감소시키는 입출력 부하 조절 단계; 및 상기 버퍼 플러싱 작업 시간이 상기 기준 플러싱 시간을 이하이면, 상기 프로세서가 동기식 쓰기 발생 여부 및 이전 설정된 상기 스캔 페이지 수(Pscan) 또는 상기 입출력 용량(Pio) 중 적어도 하나의 크기에 따라 상기 스캔 페이지 수(Pscan) 또는 상기 입출력 용량(Pio)을 조절하는 단계; 를 포함하고,상기 기준 플러싱 시간을 초과하는지 판별하는 단계는,이전 설정된 상기 스캔 페이지 수(Pscan) 및 상기 입출력 용량(Pio)에 따라 상기 버퍼 풀을 플러싱하는 단계; 및 이전 수행된 상기 버퍼 풀을 플러싱하는데 소요된 상기 버퍼 플러싱 작업 시간이 상기 기준 플러싱 시간을 초과하는지 판별하는 단계; 를 포함하는 것을 특징으로 하는 버퍼 플러싱 자동 조정 방법
|
2 |
2
삭제
|
3 |
3
제1 항에 있어서, 상기 입출력 부하 조절 단계는 상기 버퍼 풀에 구비되는 최저 사용 빈도(이하 LRU) 리스트와 플러시 리스트 중 상기 LRU 리스트에서 플러시된 페이지 수를 나타내는 LRU 리스트 플러시 페이지 수(NPLRU)가 상기 플러시 리스트에서 플러시된 페이지 수를 나타내는 플러시 리스트 플러시 페이지 수(NPflush)보다 큰지 판별하는 단계; 상기 LRU 리스트 플러시 페이지 수(NPLRU)가 상기 플러시 리스트 플러시 페이지 수(NPflush)보다 큰 것으로 판별되면, 이전 상기 스캔 페이지 수(Pscan)가 변경되지 않는 것으로 판단된 가장 최근 LRU 리스트 플러싱 안정 상태에서의 LRU 리스트 플러시 페이지 수(NPLRUstable)를 기반으로 상기 스캔 페이지 수(Pscan)를 감소시키는 단계; 및 상기 LRU 리스트 플러시 페이지 수(NPLRU)가 상기 플러시 리스트 플러시 페이지 수(NPflush) 이하인 것으로 판별되면, 이전 상기 입출력 용량(Pio)이 변경되지 않는 것으로 판단된 가장 최근 플러시 리스트 플러싱 안정 상태에서의 플러시 리스트 플러시 페이지 수(NPflushstable)를 기반으로 상기 입출력 용량(Pio)을 감소시키는 단계; 를 포함하는 것을 특징으로 하는 버퍼 플러싱 자동 조정 방법
|
4 |
4
제3 항에 있어서, 상기 스캔 페이지 수(Pscan)를 감소시키는 단계는 상기 LRU 리스트 플러시 페이지 수(NPLRU)가 상기 가장 최근 LRU 리스트 플러싱 안정 상태에서의 LRU 리스트 플러시 페이지 수(NPLRUstable)를 초과하는지 판별하는 단계; 상기 LRU 리스트 플러시 페이지 수(NPLRU)가 상기 가장 최근 LRU 리스트 플러싱 안정 상태에서의 LRU 리스트 플러시 페이지 수(NPLRUstable)를 초과하면, 상기 스캔 페이지 수(Pscan)를 상기 최근 LRU 리스트 플러싱 안정 상태에서의 LRU 리스트 플러시 페이지 수(NPLRUstable)를 상기 LRU 리스트 플러시 페이지 수(NPLRU)로 나눈 값(NPLRUstable / NPLRU)을 구한 다음, 상기 나눈 값을 상기 스캔 페이지 수(Pscan)에 곱한 값(Pscan * (NPLRUstable / NPLRU))을 구하는 단계; 및상기 곱한 값(Pscan * (NPLRUstable / NPLRU))과 스캔 페이지 수의 최소값(PscanMIN) 중에서 큰 값으로 스캔 페이지 수(Pscan)를 설정하는 단계; 를 포함하는 것을 특징으로 하는 버퍼 플러싱 자동 조정 방법
|
5 |
5
제3 항에 있어서, 상기 입출력 용량(Pio)을 감소시키는 단계는 상기 플러시 리스트 플러시 페이지 수(NPflush)가 상기 가장 최근 플러시 리스트 플러싱 안정 상태에서의 플러시 리스트 플러시 페이지 수(NPflushstable)를 초과하는지 판별하는 단계; 및 상기 플러시 리스트 플러시 페이지 수(NPflush)가 상기 가장 최근 플러시 리스트 플러싱 안정 상태에서의 플러시 리스트 플러시 페이지 수(NPflushstable)를 초과하면, 상기 입출력 용량(Pio)을 상기 최근 플러시 리스트 플러싱 안정 상태에서의 플러시 리스트 플러시 페이지 수(NPflushstable)를 상기 플러시 리스트 플러시 페이지 수(NPflush)로 나눈 값(NPflushstable / NPflush)을 구한 다음 상기 나눈 값을 상기 입출력 용량(Pio)에 곱한 값(Pio * NPflushstable / NPflush)을 구하는 단계; 및상기 곱한 값(Pio * (NPflushstable / NPflush))과 입출력 용량의 최소값(PioMIN) 중에서 큰 값으로 입출력 용량(Pio)을 설정하는 단계; 를 포함하는 것을 특징으로 하는 버퍼 플러싱 자동 조정 방법
|
6 |
6
제1 항에 있어서, 상기 스캔 페이지 수(Pscan) 또는 상기 입출력 용량(Pio)을 조절하는 단계는 상기 동기식 쓰기 중 동기식 교체 쓰기 발생 여부 및 이전 설정된 상기 스캔 페이지 수(Pscan)의 크기에 따라 상기 스캔 페이지 수(Pscan)를 조절하는 단계; 및 상기 동기식 쓰기 중 동기식 회복 쓰기 발생 여부 및 이전 설정된 상기 입출력 용량(Pio)의 크기에 따라 상기 입출력 용량(Pio)을 조절하는 단계; 를 포함하는 것을 특징으로 하는 버퍼 플러싱 자동 조정 방법
|
7 |
7
제6 항에 있어서, 상기 스캔 페이지 수(Pscan)를 조절하는 단계는 상기 동기식 교체 쓰기가 발생하였는지 판별하고, 상기 동기식 교체 쓰기가 발생된 것으로 판별되면, 상기 스캔 페이지 수(Pscan)를 증가 설정하는 단계; 상기 동기식 교체 쓰기가 발생되지 않은 것으로 판별되면, 상기 버퍼 풀에 구비되는 LRU 리스트와 플러시 리스트 및 프리 리스트 중 상기 프리 리스트의 크기(|free|)를 기반으로, 상기 스캔 페이지 수(Pscan)가 상기 DBMS의 요구 레벨보다 큰지 판별하여, 상기 스캔 페이지 수(Pscan)를 감소 설정하는 단계; 및 상기 동기식 교체 쓰기가 발생되지 않고, 상기 스캔 페이지 수(Pscan)가 상기 DBMS의 요구 레벨 이하인 것으로 판별되면, 상기 스캔 페이지 수(Pscan)가 변경되지 않는 LRU 리스트 플러싱 안정 상태를 설정하는 단계; 를 포함하는 것을 특징으로 하는 버퍼 플러싱 자동 조정 방법
|
8 |
8
제7 항에 있어서, 상기 스캔 페이지 수(Pscan)를 증가 설정하는 단계는 상기 LRU 리스트에서 제거되어야 할 더티 페이지를 찾기 위해 스캔되는 페이지의 수를 의미하는 더티 페이지 스캔 수(NPdirty)가 0보다 큰지 판별하여, 상기 동기식 교체 쓰기가 발생하였는지 판별하는 단계; 및 상기 동기식 교체 쓰기가 발생된 것으로 판별되면, 상기 스캔 페이지 수(Pscan)를 상기 더티 페이지 스캔 수(NPdirty)만큼 증가시키는 단계; 를 포함하는 것을 특징으로 하는 버퍼 플러싱 자동 조정 방법
|
9 |
9
제7 항에 있어서, 상기 스캔 페이지 수(Pscan)를 감소 설정하는 단계는상기 프리 리스트 크기(|free|)가 0보다 크고, 상기 LRU 리스트에서 제거되어야 할 클린 페이지를 찾기 위해 스캔되는 페이지의 수를 의미하는 클린 페이지 스캔 수(NPclean)가 0인지 판별하는 단계; 및 상기 프리 리스트 크기(|free|)가 0보다 크고, 클린 페이지 스캔 수(NPclean)가 0이면, 상기 스캔 페이지 수(Pscan)를 상기 프리 리스트 크기(|free|)만큼 감소시키는 단계; 를 포함하는 것을 특징으로 하는 버퍼 플러싱 자동 조정 방법
|
10 |
10
제7 항에 있어서, 상기 LRU 리스트 플러싱 안정 상태를 설정하는 단계는상기 LRU 리스트에서 플러시된 페이지 수를 나타내는 LRU 리스트 플러시 페이지 수(NPLRU)가 0보다 큰지 판별하는 단계; 및 LRU 리스트 플러시 페이지 수(NPLRU)가 0보다 큰 것으로 판별되면, 상기 LRU 리스트 플러시 페이지 수(NPLRU)를 LRU 리스트 플러싱 안정 상태에서의 LRU 리스트 플러시 페이지 수(NPLRUstable)로 설정하는 단계; 를 포함하는 것을 특징으로 하는 버퍼 플러싱 자동 조정 방법
|
11 |
11
제6 항에 있어서, 상기 입출력 용량(Pio)을 조절하는 단계는 상기 동기식 회복 쓰기가 발생하였는지 판별하고, 상기 동기식 회복 쓰기가 발생된 것으로 판별되면, 상기 입출력 용량(Pio)을 증가 설정하는 단계; 상기 동기식 회복 쓰기가 발생되지 않은 것으로 판별되면, 상기 버퍼 풀에 구비되는 LRU 리스트와 플러시 리스트 및 프리 리스트 중 상기 플러시 리스트로부터 플러시가 요구되는 페이지의 수를 기반으로, 상기 입출력 용량(Pio)이 상기 DBMS의 요구 레벨보다 큰지 판별하여, 상기 입출력 용량(Pio)을 감소 설정하는 단계; 및 상기 동기식 회복 쓰기가 발생되지 않고, 상기 입출력 용량(Pio)이 상기 DBMS의 요구 레벨 이하인 것으로 판별되면, 상기 입출력 용량(Pio)이 변경되지 않는 플러시 리스트 플러싱 안정 상태를 설정하는 단계; 를 포함하는 것을 특징으로 하는 버퍼 플러싱 자동 조정 방법
|
12 |
12
제11 항에 있어서, 상기 입출력 용량(Pio)을 증가 설정하는 단계는 동기식 회복 쓰기 페이지의 수(NPsync_rec)가 0보다 큰지 판별하여, 상기 동기식 회복 쓰기가 발생하였는지 판별하는 단계; 및 상기 동기식 회복 쓰기가 발생된 것으로 판별되면, 상기 입출력 용량(Pio)을 상기 동기식 회복 쓰기 페이지의 수(NPsync_rec)만큼 증가시키는 단계; 를 포함하는 것을 특징으로 하는 버퍼 플러싱 자동 조정 방법
|
13 |
13
제11 항에 있어서, 상기 스캔 페이지 수(Pscan)를 감소 설정하는 단계는이전 설정된 상기 입출력 용량(Pio)이 상기 프로세서에 의해 상기 동기식 회복 쓰기를 막기 위해 상기 플러시 리스트에서 플러싱이 필요하다고 미리 예측된 페이지의 개수인 플러시 리스트 플러시 요구 페이지 수(NPreq_flush)보다 큰지 판별하는 단계; 및 상기 입출력 용량(Pio)이 상기 플러시 리스트 플러시 요구 페이지 수(NPreq_flush)보다 큰것으로 판별되면, 상기 플러시 리스트 플러시 요구 페이지 수(NPreq_flush)를 상기 입출력 용량(Pio)으로 설정하는 단계; 를 포함하는 것을 특징으로 하는 버퍼 플러싱 자동 조정 방법
|
14 |
14
제11 항에 있어서, 상기 플러시 리스트 플러싱 안정 상태를 설정하는 단계는상기 플러시 리스트에서 플러시된 페이지 수를 나타내는 플러시 리스트 플러시 페이지 수(NPflush)가 0보다 큰지 판별하는 단계; 및 플러시 리스트 플러시 페이지 수(NPflush)가 0보다 큰 것으로 판별되면, 상기 플러시 리스트 플러시 페이지 수(NPflush)를 플러시 리스트 플러싱 안정 상태에서의 플러시 리스트 플러시 페이지 수(NPflushstable)로 설정하는 단계; 를 포함하는 것을 특징으로 하는 버퍼 플러싱 자동 조정 방법
|