KR100281586B1 - 로컬 페이지 버퍼를 이용한 테이블 스캐닝 방법 - Google Patents

로컬 페이지 버퍼를 이용한 테이블 스캐닝 방법 Download PDF

Info

Publication number
KR100281586B1
KR100281586B1 KR1019980012113A KR19980012113A KR100281586B1 KR 100281586 B1 KR100281586 B1 KR 100281586B1 KR 1019980012113 A KR1019980012113 A KR 1019980012113A KR 19980012113 A KR19980012113 A KR 19980012113A KR 100281586 B1 KR100281586 B1 KR 100281586B1
Authority
KR
South Korea
Prior art keywords
page
accessed
page buffer
pages
scanning
Prior art date
Application number
KR1019980012113A
Other languages
English (en)
Other versions
KR19990079478A (ko
Inventor
권영식
이종원
송주원
허문행
Original Assignee
이계철
한국전기통신공사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 이계철, 한국전기통신공사 filed Critical 이계철
Priority to KR1019980012113A priority Critical patent/KR100281586B1/ko
Publication of KR19990079478A publication Critical patent/KR19990079478A/ko
Application granted granted Critical
Publication of KR100281586B1 publication Critical patent/KR100281586B1/ko

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

1. 청구범위에 기재된 발명이 속한 기술분야
본 발명은 로컬 페이지 버퍼를 이용한 테이블 스캐닝 방법에 관한 것임.
2. 발명이 해결하려고 하는 기술적 과제
본 발명은 한 트랜잭션이 특정 조건을 만족하는 테이블 스캐닝 과정에 대하여 로컬 페이지 버퍼를 사용하여 글로벌 페이지 버퍼에 대한 경합 과정을 피함과 동시에 사전 등록한 페이지들에 대하여 메모리 버퍼내에 존재함을 보장받으므로써 시스템의 성능을 향상시킬 수 있는 테이블 스캐닝 방법을 제공하는데 그 목적이 있음.
3. 발명의 해결방법의 요지
본 발명은, 테이블 스캐닝이 시작되면, 로컬 페이지 버퍼로 사용될 메모리 영역을 할당받은 후에 액세스될 페이지가 있는지를 판단하는 제 1 단계; 액세스될 페이지가 있으면 테이블을 구성하는 액세스될 디스크 페이지를 상기 로컬 페이지 버퍼로 읽어들이면서 액세스하는 과정을 모든 액세스될 페이지에 대하여 반복 수행하는 제 2 단계; 및 모든 페이지들을 액세스하여 액세스될 페이지가 더 이상 없으면 상기 할당받은 로컬 페이지 버퍼를 반환하는 제 3 단계를 포함한다.
4. 발명의 중요한 용도
본 발명은 데이터베이스 관리시스템 등에 이용됨.

Description

로컬 페이지 버퍼를 이용한 테이블 스캐닝 방법
본 발명은 데이터베이스 관리시스템 등에서의 테이블 스캐닝 방법에 관한 것으로, 보다 상세하게는 하나의 테이블 스캐닝시 소규모의 로컬 페이지 버퍼를 사용하여 기존의 글로벌 페이지 버퍼 관리 과정의 임계 영역(critical section)에서 발생하는 경합을 줄일 수 있는 테이블 스캐닝 방법에 관한 것이다.
다사용자용 데이터베이스 관리시스템에서는 데이터를 여러 트랜잭션들이 동시에 액세스한다. 이러한 경우에 각 트랜잭션이 공유 데이터를 액세스하는 작업을 제어하지 않으면 일관성이 결여된 데이터가 생겨나게 된다.
따라서, 동시에 수행되는 트랜잭션들이 데이터의 일관성을 파괴하지 않도록 트랜잭션간의 상호작용을 제어하여야 하며, 이러한 작업을 동시성 제어라고 한다. 종래에 제안된 여러 가지의 동시성 제어 기법들중에서 로킹(locking) 기법은 구현의 단순성으로 인하여 널리 사용되고 있는 기법이다.
로크는 공유되는 데이터에 대한 일관성을 보장하는 추상 자료 구조(abstract data type)이며, 트랜잭션은 자신이 수행하는 작업에 따라 작업 수행전에 해당하는 로크를 획득한 후에 작업을 수행하고, 작업이 완료된 이후에는 로크를 풀어주므로써 다른 트랜잭션이 공유된 자료 구조를 사용하도록 한다.
트랜잭션의 행위에 따른 로크의 종류로는 읽기 로크와 쓰기 로크가 있다. 읽기 로크는 여러 트랜잭션에 대하여 허용될 수 있느나, 쓰기 로크는 한 트랜잭션에 대해서만 배타적으로 허용된다. 트랜잭션이 요청한 로크가 허가될 수 없는 경우에 그 트랜잭션은 로크의 요청이 허가될 때까지 대기 상태에 들어가게 되고, 요청한 로크를 가지고 있는 트랜잭션이 로크를 반환하여야 해당 로크를 획득할 수 있다.
로크 획득 지속 시간에 따른 로크의 종류로는 장기간(Long-Duration) 로크, 단기간(Short-Duration) 로크가 있다. 트랜잭션은 데이터베이스의 상태변화를 야기하는 행위들의 순차적인 리스트로서, 일관성을 유지하는 데이터베이스 상태를 또다른 데이터베이스 상태로 변화시키며, 트랜잭션이 완료된 이후의 데이터베이스 상태 또한 일관성을 유지한다. 이를 트랜잭션의 일관성이라 한다. 장기간(Long-Duration) 로크 및 단기간(Short-Duration) 로크는 트랜잭션의 일관성과 같은 논리적인 일관성을 유지하는데 사용되는 로크이다.
이와는 달리 데이터베이스 관리시스템에서 다사용자에게 공유되는 물리적인 자원에 대한 동시성 제어를 위해 사용되는 로크를 매뉴얼(Manual) 로크 또는 래치(latch)라 한다. 데이터베이스 관리시스템에서 사용되는 물리적인 자원의 종류로는 페이지 버퍼, 로그 버퍼 및 트랜잭션 리스트 등과 같이 메모리에서 관리되는 자료들로서, 모든 트랜잭션의 수행 과정에서 서로 공유되어 액세스되어야 하는 부분이다.
물리적인 자원중에서 페이지 버퍼는 메모리의 특정 영역으로서, 디스크에 존재하는 데이터베이스 페이지들중에서 액세스 패턴에 따라 액세스될 가능성이 높은 페이지들을 관리하는데 사용된다. 데이터베이스 응용은 디스크와 같은 저장 매체에서 관리되는 데이터를 액세스하므로, 이때 발생하는 디스크 입/출력(I/O)에서 처리시간이 많이 지연된다. 따라서, 효율적인 버퍼 관리 방법은 데이터베이스 관리시스템의 성능을 결정짓는 주요 요인으로 작용한다.
데이터베이스 관리시스템에서 관리되는 모든 데이터들은 데이터들이 갖는 속성들의 리스트로 표현되며, 이 리스트를 튜플(tuple)이라고 한다. 또한, 같은 형태를 갖는 튜플들의 집합을 테이블이라 하며, 대부분의 상용 데이터베이스 관리시스템에서 하나의 테이블은 디스크 페이지들의 리스트로서 관리된다. 따라서, 테이블내에서 사용자의 질의 조건(속성들이 만족해야 하는 조건)을 만족하는 튜플을 찾는 과정을 테이블 스캐닝이라고 하며, 테이블 스캐닝 과정에서는 테이블을 구성하는 해당 디스크 페이지를 액세스하기 위해 디스크 입/출력(I/O)이 발생한다. 이때, 페이지 버퍼는 테이블 스캐닝시 디스크 입/출력(I/O)을 최적화하기 위하여 사용된다.
기존의 상용 데이터베이스 관리시스템에서는 데이터베이스의 일관성 및 내부 연산의 효율적인 처리를 위해 하나의 페이지 버퍼를 두고 다사용자들에게 공유되도록 하고 있다. 그러나, 페이지 버퍼 관리 과정에서는 페이지 버퍼의 관리 구조를 변경시키는 연산이 발생하므로 동시성 제어를 통하여 페이지 버퍼의 물리적인 일관성을 유지시켜 주어야 한다. 페이지 버퍼의 관리 구조를 변경시키는 연산으로는 사용되지 않는 버퍼 페이지들의 리스크 관리, 버퍼 페이지 등록/삭제에 따른 해쉬 구조관리 및 체크포인트 과정 등이 있으며, 이러한 연산들이 수행중인 경우에 다른 트랜잭션들의 페이지 버퍼에 대한 읽기/쓰기 연산은 일관성이 유지되지 않는 버퍼 페이지를 액세스할 수 있으므로 전술한 바와 같이 래치를 통한 동시성 제어가 필요하게 된다.
다사용자용 데이터베이스 관리시스템에서는 여러 사용자들의 요청을 동시성 제어 방법을 통하여 처리한다. 그러나, 여러 사용자들의 테이블 스캐닝 요청을 처리하는 스캔 처리기는 서로 자신이 사용하고자 하는 디스크 페이지들을 페이지 버퍼에 등록시키는 과정에서 래치에 대한 경합을 통하여 순서화된다. 따라서, 스캔 처리기들간의 경합 과정에서 발생하는 대기 시간으로 인하여 데이터베이스 관리시스템의 성능이 저하된다.
도 1 은 일반적으로 다사용자용 데이터베이스 관리시스템에서 여러개의 트랜잭션들이 각자 테이블 스캐닝을 수행하는 절차를 설명하는 도면이다.
도 1 을 참조하여 일반적인 다사용자용 데이터베이스 관리시스템에서 여러 사용자로부터의 요청을 처리하기 위하여 테이블을 동시에 스캐닝하는 트랜잭션들간의 수행 절차에 대해 설명하면, 트랜잭션 T1은 트랜잭션 처리를 시작한 후에(11) 하나의 테이블 TB1에 대한 스캐닝을 시작한다(12). 테이블 TB1에 대한 스캐닝 과정은 테이블을 구성하는 페이지에 대하여 액세스해야 하므로 해당하는 페이지들을 페이지 버퍼에 등록시키는 과정을 필요로 한다. 따라서, 테이블 TB1을 구성하는 페이지 P[1,1] 내지 P[1,N]들을 래치를 이용한 동시성 제어 방법을 통하여 페이지 버퍼로 읽어들인다(13,14).
그리고, 트랜잭션 T2는 트랜잭션 T1과 동일한 방법으로 또다른 테이블 TB2에 대한 스캐닝을 수행한다(16,17). 여기서, 트랜잭션 T2가 테이블 TB2를 구성하는 페이지 P[2,1] 내지 P[2,N]을 페이지 버퍼로 읽어오기 위해서 래치를 이용한 동시성 제어 방법이 사용된다. 이때, 트랜잭션 T1과 트랜잭션 T2간에 페이지 버퍼에 대한 래치를 획득하기 위한 경합이 발생한다. 그 결과로 도 1 의 점선과 같이 트랜잭션 T1이 먼저 페이지 버퍼에 대한 래치를 획득한 후에(13) 트랜잭션 T2(18), 트랜잭션 T1(14) 및 트랜잭션 T2(19)의 순서로 페이지 버퍼에 대한 래치를 획득한다.
도 2 는 종래의 데이터베이스 관리시스템의 페이지 버퍼 연산 과정에서 동시성 제어로 테이블 스캐닝을 수행하는 트랜잭션들간의 수행 절차를 설명하는 도면이다.
트랜잭션 T1은 과정 23에서 액세스될 페이지 P[1,1]을 먼저 페이지 버퍼로 이동시킨 후에, 메모리에 존재하는 페이지에 대하여 액세스를 수행한다. 페이지 버퍼에 새로운 디스크 페이지를 등록시키는 작업은 사용되지 않는 페이지 리스트 및 키를 통한 페이지를 찾는 해쉬(hash) 색인 등에 따라 페이지 버퍼 관리 구조를 변경해야 하므로 래치를 통한 동시성 제어를 필요로 한다. 페이지가 성공적으로 페이지 버퍼에 등록된 이후에는 획득된 래치를 풀어주어 다른 트랜잭션 T2가 래치를 획득할 수 있도록 한다. 도 2 에서 처럼 트랜잭션 T2의 과정 28은 트랜잭션 T1의 과정 23에서 페이지 버퍼에 대한 래치가 풀리는 시점까지 기다린 후에, 그 래치를 획득하므로써 수행된다. 과정 28과 과정 24, 과정 24와 과정 29에서도 페이지 버퍼에 대한 래치로 인하여 해당하는 페이지를 페이지 버퍼로 등록시키는 행위는 순서화되므로 테이블 스캐닝의 성능이 저하되게 된다.
또한, 데이터베이스 관리시스템에 사용되는 페이지 버퍼는 다수의 트랜잭션에 의해 공유되어 디스크 입/출력(I/O)의 발생을 줄이도록 설계되어 있으나, 각 트랜잭션은 자신이 액세스할 페이지를 페이지 버퍼로 이동시킴과 동시에 앞으로 사용될 가능성이 있는 페이지들을 사전에 페이지 버퍼로 등록시키는 작업을 수행한다. 이를 페이지의 사전 등록(Pre-fetch)이라 한다. 데이터베이스 관리시스템에서는 페이지 버퍼의 크기가 정해져 있으므로, 다수의 트랜잭션에 의한 페이지 요청이 있는 경우에 사용 가능한 버퍼 페이지가 존재하지 않으면 기존에 있는 버퍼 페이지의 내용을 디스크에 쓴 후에 그 버퍼 페이지에 요청된 디스크 페이지를 읽는 작업을 수행한다. 이 경우에 트랜잭션들간에 사용 가능한 버퍼 페이지에 대한 경합 과정이 발생하므로, 한 트랜잭션에 의해 사전 등록된 버퍼 페이지들이 다른 트랜잭션이 등록한 페이지들을 미등록 상태로 만드는 경우가 발생한다. 따라서, 모든 트랜잭션들은 자신이 등록한 모든 페이지들에 대하여 실제 페이지 버퍼에 존재하고 있음을 보장받지 못하므로, 실제 액세스하고자 하는 시점에서 페이지 버퍼에 액세스할 페이지가 존재하는지를 다시 검사해야 하는 작업을 필요로 한다.
상기 문제점을 해결하기 위하여 안출된 본 발명은, 한 트랜잭션이 특정 조건을 만족하는 테이블 스캐닝 과정에 대하여 로컬 페이지 버퍼를 사용하여 글로벌 페이지 버퍼에 대한 경합 과정을 피함과 동시에 사전 등록한 페이지들에 대하여 메모리 버퍼내에 존재함을 보장받으므로써 시스템의 성능을 향상시킬 수 있는 테이블 스캐닝 방법을 제공하는데 그 목적이 있다.
도 1 은 일반적으로 다사용자용 데이터베이스 관리시스템에서 여러개의 트랜잭션들이 각자 테이블 스캐닝을 수행하는 절차를 설명하는 도면.
도 2 는 종래의 데이터베이스 관리시스템의 페이지 버퍼 연산 과정에서 동시성 제어로 테이블 스캐닝을 수행하는 트랜잭션들간의 수행 절차를 설명하는 도면.
도 3 은 본 발명이 적용되는 데이터베이스 관리시스템의 구성예시도.
도 4 는 본 발명의 일실시예에 따른 데이터베이스 관리시스템에서 로컬 페이지 버퍼를 이용하여 테이블 스캐닝을 수행하는 트랜잭션들간의 수행 절차를 설명하는 도면.
도 5 는 본 발명에 따른 테이블 스캐닝 방법의 일실시예 흐름도.
* 도면의 주요 부분에 대한 부호의 설명
31 : 컴퓨터 시스템 32 : 중앙처리장치(CPU)
33 : 메모리 34a 내지 34n : 트랜잭션
35a 내지 35n : 테이블 스캐닝 처리기 36 : 데이터베이스 저장시스템
37 : 페이지 버퍼 38 : 데이터베이스
상기 목적을 달성하기 위한 본 발명의 방법은, 테이블 스캐닝 처리기를 구비하는 컴퓨팅 환경에서 읽기 로크를 획득한 후에 테이블을 스캐닝하는 테이블 스캐닝 방법에 있어서, 테이블 스캐닝이 시작되면 글로벌 페이지 버퍼를 사용하여 테이블 스캐닝을 수행할 것인지 또는 로컬 페이지 버퍼를 사용하여 테이블 스캐닝을 수행할 것인지를 결정하는 제 1 단계; 상기 제 1 단계의 결정 결과, 상기 로컬 페이지 버퍼를 사용하여 테이블 스캐닝을 수행하는 경우에는, 상기 글로벌 페이지 버퍼에 존재하는 테이블의 수정된 페이지들을 데이터베이스에 반영한 후에 상기 로컬 페이지 버퍼로 사용될 메모리 영역을 할당받아 액세스될 페이지들을 상기 로컬 페이지 버퍼로 읽어들이면서 액세스한 다음에 상기 할당받은 로컬 페이지 버퍼를 반환하는 제 2 단계; 및 상기 제 1 단계의 결정 결과, 상기 글로벌 페이지 버퍼를 사용하여 테이블 스캐닝을 수행하는 경우에는, 상기 글로벌 페이지 버퍼에 존재하는 액세스될 페이지에 대하여 래치를 획득한 후에 페이지를 액세스하거나, 액세스될 페이지를 상기 래치를 이용하여 상기 글로벌 페이지 버퍼로 이동시킨 후에 액세스될 페이지에 대하여 상기 래치를 획득한 다음에 페이지를 액세스하는 제 3 단계를 포함한다.
또한, 본 발명의 다른 방법은, 테이블 스캐닝 처리기를 구비하는 컴퓨팅 환경에서 읽기 로크를 획득한 후에 테이블을 스캐닝하는 테이블 스캐닝 방법에 있어서, 테이블 스캐닝이 시작되면, 로컬 페이지 버퍼로 사용될 메모리 영역을 할당받은 후에 액세스될 페이지가 있는지를 판단하는 제 1 단계; 상기 제 1 단계의 판단 결과, 액세스될 페이지가 있으면 테이블을 구성하는 액세스될 디스크 페이지를 상기 로컬 페이지 버퍼로 읽어들이면서 액세스하는 과정을 모든 액세스될 페이지에 대하여 반복 수행하는 제 2 단계; 및 상기 제 1 단계의 판단 결과, 모든 페이지들을 액세스하여 액세스될 페이지가 더 이상 없으면 상기 할당받은 로컬 페이지 버퍼를 반환하는 제 3 단계를 포함한다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명한다.
먼저, 본 발명의 기술적인 원리를 개략적으로 살펴보면 다음과 같다.
다수 사용자의 요청을 처리하는 데이터베이스 관리시스템 등에서 하나의 트랜잭션이 테이블 전체에 대한 읽기 로크를 필요로 하는 테이블 스캐닝을 수행하는 경우에, 로크를 사용한 동시성 제어 방법에 의해 테이블을 구성하는 페이지들은 다른 트랜잭션들에 의해 수정되지 않는다. 따라서, 다른 트랜잭션들과 공유되어 액세스되지 않는 소규모의 로컬 페이지 버퍼를 할당받아 테이블 스캐닝에 이용하는 경우에는 래치를 이용하여 로컬 페이지 버퍼에 대한 동시성 제어를 할 필요가 없을 뿐만아니라 사전 등록된 페이지들은 메모리 버퍼에 존재함을 보장받을 수 있다.
상기와 같은 본 발명의 바람직한 일실시예에 따르면, 다수 사용자의 요청을 처리하는 데이터베이스 관리시스템에 있어서, 하나의 트랜잭션이 테이블 전체에 대한 읽기 로크를 필요로 하는 테이블 스캐닝을 수행하는 경우에, 테이블을 구성하는 디스크 페이지들을 로컬 페이지 버퍼를 이용하여 관리하므로써 글로벌 페이지 버퍼를 사용함에 따른 경합을 줄임과 동시에 사전 등록된 페이지들에 대하여 메모리 버퍼에 존재함을 보장하므로써 테이블 스캐닝의 성능을 향상시킬 수 있다.
다음으로 도 3 내지 도 5 를 참조하여 본 발명에 따른 일실시예를 상세히 설명하면 다음과 같다.
도 3 은 본 발명이 적용되는 데이터베이스 관리시스템의 구성예시도이다.
본 발명이 적용되는 데이터베이스 관리시스템은 컴퓨터 시스템(31)으로 구성되는데, 상기 컴퓨터 시스템(31)내에는 컴퓨터 시스템(31)의 전체적인 동작에 대한 연산 제어를 수행하는 중앙처리장치(CPU)(32)와 메모리(33)를 구비한다.
상기 메모리(33)는 다수개의 트랜잭션(34a 내지 34n) 및 외부의 데이터베이스(38)(예 : 디스크)와 상호 유기적인 데이터 교류를 수행하면서 상기 각각의 트랜잭션(34a 내지 34n)이 수행될 때 데이터베이스(38)의 상태변화를 일으키게 하는 데이터베이스 저장시스템(36)을 구비한다.
상기 데이터베이스 저장시스템(36)은 다수의 테이블 스캐닝 처리기(35a 내지 35n) 및 페이지 버퍼(37)를 구비하며, 상기 각각의 테이블 스캐닝 처리기(35a 내지 35n)는 데이터베이스(38)에 존재하고 있는 디스크 페이지를 액세스하기 위하여 그 페이지들을 메모리로 읽어오는데 필요한 페이지 버퍼(37)를 메모리의 특정 영역으로써 관리한다.
도 4 는 본 발명의 일실시예에 따른 데이터베이스 관리시스템에서 로컬 페이지 버퍼를 이용하여 테이블 스캐닝을 수행하는 트랜잭션들간의 수행 절차를 설명하는 도면이다.
트랜잭션 T1,T2는 테이블 TB1,TB2 전체를 스캐닝하므로 테이블에 대한 읽기 로크를 획득해야 한다. 각 테이블 스캐닝 과정에서는 로컬 페이지 버퍼를 사용하여 디스크 페이지를 메모리 버퍼로 읽어온 후에 액세스하므로, 래치를 이용한 글로벌 페이지 버퍼에 대한 동시성 제어 방법을 거치지 않는다. 따라서, 트랜잭션 T1의 페이지 액세스 연산 과정(43,44)과 트랜잭션 T2의 페이지 액세스 연산 과정(48,49)은 서로 독립적으로 수행될 수 있다. 따라서, 종래의 래치를 이용한 글로벌 페이지 버퍼에 대한 동시성 제어 방법으로 인한 기다림을 방지할 수 있으므로 테이블 스캐닝의 성능을 향상시킬 수 있다.
또한, 데이터베이스 관리시스템은 테이블 액세스 상황에 따라 기존의 글로벌 페이지 버퍼를 이용한 테이블 스캐닝 방법과 본 발명에 따른 로컬 페이지 버퍼를 이용한 테이블 스캔 방법을 혼용하여 사용할 수도 있다. 그 일예가 도 5 에 도시되어 있다.
도 5 는 본 발명에 따른 테이블 스캐닝 방법의 일실시예 흐름도이다.
트랜잭션은 테이블 스캐닝을 시작하면(51), 먼저 데이터베이스 관리시스템의 페이지 버퍼 상황 및 테이블 액세스 상황에 따라 글로벌 페이지 버퍼를 사용한 테이블 스캐닝을 수행할 것인지 또는 로컬 페이지 버퍼를 사용한 테이블 스캐닝을 수행할 것인지를 결정한다(52).
본 발명에 따른 로컬 페이지 버퍼를 사용하여 테이블 스캐닝을 수행하는 경우에는, 먼저 글로벌 페이지 버퍼에 존재하는 스캐닝될 테이블의 수정된 페이지들을 디스크의 데이터베이스에 반영함으로써 최근의 테이블 상태를 디스크에 반영해 둔다(53). 다음으로 로컬 페이지 버퍼로 사용될 메모리 영역을 할당받은 후에(54), 액세스될 페이지가 있는지를 판단하여(55) 있으면 테이블을 구성하는 액세스될 디스크 페이지를 로컬 페이지 버퍼로 읽어들이면서 액세스하는 과정(56)을 모든 액세스될 페이지에 대하여 반복 수행한다. 이 과정에서는 래치를 이용한 동시성 제어 방법이 필요하지 않으므로 래치 경합으로 인한 오버헤드를 피할 수 있다. 모든 페이지들을 액세스한 이후에는 할당받은 로컬 페이지 버퍼를 반환한 후에(57) 테이블 스캐닝을 종료한다(58).
기존의 글로벌 페이지 버퍼를 사용하여 테이블 스캐닝을 수행하는 경우에는, 먼저 액세스될 페이지가 있는지를 검사하여(59) 없으면 바로 테이블 스캐닝을 종료하고(58) 액세스될 페이지가 있으면 액세스될 모든 페이지에 대하여 래치를 이용한 동시성 제어 방법에 따라 글로벌 페이지 버퍼에 존재하고 있는지를 검사한다(60).
검사 결과, 글로벌 페이지 버퍼에 해당하는 액세스될 페이지가 존재하는 경우에는 페이지에 대한 래치를 획득하여 페이지를 액세스한 다음에(62) 상기 액세스될 페이지가 있는지를 검사하는 과정(59)부터 반복 수행하고, 글로벌 페이지 버퍼에 해당하는 액세스될 페이지가 존재하지 않는 경우에는 래치를 이용하여 디스크에서 해당하는 페이지를 글로벌 페이지 버퍼로 이동시켜 등록한 후에(61) 페이지에 대한 래치를 획득하여 페이지를 액세스한 다음에(62) 상기 액세스될 페이지가 있는지를 검사하는 과정(59)부터 반복 수행한다. 이때, 페이지 등록 과정은 래치를 이용한 동시성 제어를 수행해야 하므로 다른 트랜잭션과 경합 과정으로 인한 오버페드가 발생한다.
한편, 본 발명에 따른 로컬 페이지 버퍼만을 이용해서도 테이블 스캔을 수행할 수 있는데, 그 한 방법은 상기 도 5 에서 로컬 페이지 버퍼를 할당받는 과정(54) 이후의 과정과 동일하다
이상에서 설명한 본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것이 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.
상기와 같은 본 발명은, 이미 읽기 로크가 획득된 테이블을 스캐닝하는 경우에, 액세스될 디스크 페이지들을 로컬 페이지 버퍼를 사용하여 관리하면서 테이블을 스캐닝하므로써, 데이터베이스 관리시스템에서 제공하는 글로벌 페이지 버퍼에 대한 동시성 제어 방법으로 인한 경합 과정을 피할 수 있어 오버헤드를 감소시킬 수 있을 뿐만아니라, 사전 등록된 페이지들이 메모리 버퍼에 존재함을 보장할 수 있으므로 테이블 스캐닝의 성능을 향상시킬 수 있는 효과가 있다.

Claims (5)

  1. 테이블 스캐닝 처리기를 구비하는 컴퓨팅 환경에서 읽기 로크를 획득한 후에 테이블을 스캐닝하는 테이블 스캐닝 방법에 있어서,
    테이블 스캐닝이 시작되면 글로벌 페이지 버퍼를 사용하여 테이블 스캐닝을 수행할 것인지 또는 로컬 페이지 버퍼를 사용하여 테이블 스캐닝을 수행할 것인지를 결정하는 제 1 단계;
    상기 제 1 단계의 결정 결과, 상기 로컬 페이지 버퍼를 사용하여 테이블 스캐닝을 수행하는 경우에는, 상기 글로벌 페이지 버퍼에 존재하는 테이블의 수정된 페이지들을 데이터베이스에 반영한 후에 상기 로컬 페이지 버퍼로 사용될 메모리 영역을 할당받아 액세스될 페이지들을 상기 로컬 페이지 버퍼로 읽어들이면서 액세스한 다음에 상기 할당받은 로컬 페이지 버퍼를 반환하는 제 2 단계; 및
    상기 제 1 단계의 결정 결과, 상기 글로벌 페이지 버퍼를 사용하여 테이블 스캐닝을 수행하는 경우에는, 상기 글로벌 페이지 버퍼에 존재하는 액세스될 페이지에 대하여 래치를 획득한 후에 페이지를 액세스하거나, 액세스될 페이지를 상기 래치를 이용하여 상기 글로벌 페이지 버퍼로 이동시킨 후에 액세스될 페이지에 대하여 상기 래치를 획득한 다음에 페이지를 액세스하는 제 3 단계
    를 포함하는 테이블 스캐닝 방법.
  2. 제 1 항에 있어서,
    상기 제 2 단계는,
    상기 글로벌 페이지 버퍼에 존재하는 스캐닝될 테이블의 수정된 페이지들을 디스크의 상기 데이터베이스에 반영한 후에 상기 로컬 페이지 버퍼로 사용될 메모리 영역을 할당받은 다음에 액세스될 페이지가 있는지를 판단하는 제 4 단계;
    상기 제 4 단계의 판단 결과, 액세스될 페이지가 있으면 테이블을 구성하는 액세스될 디스크 페이지를 상기 로컬 페이지 버퍼로 읽어들이면서 액세스하는 과정을 모든 액세스될 페이지에 대하여 반복 수행하는 제 5 단계; 및
    상기 제 4 단계의 판단 결과, 모든 페이지들을 액세스하여 액세스될 페이지가 더 이상 없으면 상기 할당받은 로컬 페이지 버퍼를 반환한 후에 테이블 스캐닝을 종료하는 제 6 단계
    를 포함하는 테이블 스캐닝 방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 제 3 단계는,
    액세스될 페이지가 있는지를 검사하여 없으면 바로 테이블 스캐닝을 종료하고, 액세스될 페이지가 있으면 액세스될 페이지가 상기 글로벌 페이지 버퍼에 존재하는지를 검사하는 제 7 단계;
    상기 제 7 단계의 검사 결과, 상기 글로벌 페이지 버퍼에 액세스될 페이지가 존재하는 경우에는 액세스될 페이지에 대한 상기 래치를 획득하여 페이지를 액세스한 다음에 상기 제 7 단계로 넘어가는 제 8 단계; 및
    상기 제 7 단계의 검사 결과, 상기 글로벌 페이지 버퍼에 액세스될 페이지가 존재하지 않는 경우에는 상기 래치를 이용하여 디스크에서 액세스될 페이지를 상기 글로벌 페이지 버퍼로 이동시켜 등록한 후에 액세스될 페이지에 대한 상기 래치를 획득하여 페이지를 액세스한 다음에 상기 제 7 단계로 넘어가는 제 9 단계
    를 포함하는 테이블 스캐닝 방법.
  4. 제 3 항에 있어서,
    상기 제 1 단계는,
    테이블 스캐닝이 시작되면, 트랜잭션은 상기 글로벌 페이지 버퍼를 사용한 테이블 스캐닝을 수행할 것인지 또는 상기 로컬 페이지 버퍼를 사용한 테이블 스캐닝을 수행할 것인지를 페이지 버퍼 상황 및 테이블 액세스 상황에 따라 결정하는 것을 특징으로 하는 테이블 스캐닝 방법.
  5. 테이블 스캐닝 처리기를 구비하는 컴퓨팅 환경에서 읽기 로크를 획득한 후에 테이블을 스캐닝하는 테이블 스캐닝 방법에 있어서,
    테이블 스캐닝이 시작되면, 로컬 페이지 버퍼로 사용될 메모리 영역을 할당받은 후에 액세스될 페이지가 있는지를 판단하는 제 1 단계;
    상기 제 1 단계의 판단 결과, 액세스될 페이지가 있으면 테이블을 구성하는 액세스될 디스크 페이지를 상기 로컬 페이지 버퍼로 읽어들이면서 액세스하는 과정을 모든 액세스될 페이지에 대하여 반복 수행하는 제 2 단계; 및
    상기 제 1 단계의 판단 결과, 모든 페이지들을 액세스하여 액세스될 페이지가 더 이상 없으면 상기 할당받은 로컬 페이지 버퍼를 반환하는 제 3 단계
    를 포함하는 테이블 스캐닝 방법.
KR1019980012113A 1998-04-06 1998-04-06 로컬 페이지 버퍼를 이용한 테이블 스캐닝 방법 KR100281586B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980012113A KR100281586B1 (ko) 1998-04-06 1998-04-06 로컬 페이지 버퍼를 이용한 테이블 스캐닝 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980012113A KR100281586B1 (ko) 1998-04-06 1998-04-06 로컬 페이지 버퍼를 이용한 테이블 스캐닝 방법

Publications (2)

Publication Number Publication Date
KR19990079478A KR19990079478A (ko) 1999-11-05
KR100281586B1 true KR100281586B1 (ko) 2001-02-15

Family

ID=65860656

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980012113A KR100281586B1 (ko) 1998-04-06 1998-04-06 로컬 페이지 버퍼를 이용한 테이블 스캐닝 방법

Country Status (1)

Country Link
KR (1) KR100281586B1 (ko)

Also Published As

Publication number Publication date
KR19990079478A (ko) 1999-11-05

Similar Documents

Publication Publication Date Title
US6389420B1 (en) File manager providing distributed locking and metadata management for shared data access by clients relinquishing locks after time period expiration
JP5137971B2 (ja) スピン・ロックによりロッキング公平性及びロッキング性能の両方を達成する方法及びシステム
US7243088B2 (en) Database management system with efficient version control
US5226143A (en) Multiprocessor system includes operating system for notifying only those cache managers who are holders of shared locks on a designated page by global lock manager
US7010554B2 (en) Delegation of metadata management in a storage system by leasing of free file system blocks and i-nodes from a file system owner
US20140040218A1 (en) Methods and systems for an intent lock engine
US7447786B2 (en) Efficient locking of shared data that is accessed for reads in a cluster database
US5668958A (en) Heterogeneous filing system with common API and reconciled file management rules
US6321235B1 (en) Global caching and sharing of SQL statements in a heterogeneous application environment
US20170277655A1 (en) Memory sharing for working data using rdma
US5193188A (en) Centralized and distributed wait depth limited concurrency control methods and apparatus
WO2018001135A1 (zh) 处理数据库事务的方法、客户端和服务器
US20140040220A1 (en) Methods and systems for deadlock detection
Franklin Caching and memory management in client-server database systems
JPH03161859A (ja) リクエスト管理方法及びアクセス制御システム
US10248471B2 (en) Lockless execution in read-mostly workloads for efficient concurrent process execution on shared resources
US20120124106A1 (en) Garbage collection of interned strings
Ren et al. VLL: a lock manager redesign for main memory database systems
US20140040219A1 (en) Methods and systems for a deadlock resolution engine
KR100281586B1 (ko) 로컬 페이지 버퍼를 이용한 테이블 스캐닝 방법
KR0152714B1 (ko) 다중 사용자 환경의 저장시스템에서 버퍼 잠금기법을 이용한 버퍼 관리방법
Cho et al. Maintaining cache coherency in a multisystem data sharing environment
Herman et al. The case for orderly sharing
JP3747477B2 (ja) 排他制御方法及びこれを実現するシステム
KR100312910B1 (ko) 데이터베이스관리시스템에서트랜잭션고립단계의확장방법

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20091109

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee