KR100689762B1 - 데이터베이스 시스템 및 그 데이터베이스 시스템의데이터베이스 컴포넌트를 메인 메모리에 저장하는 시스템및 방법 - Google Patents

데이터베이스 시스템 및 그 데이터베이스 시스템의데이터베이스 컴포넌트를 메인 메모리에 저장하는 시스템및 방법 Download PDF

Info

Publication number
KR100689762B1
KR100689762B1 KR1020050061645A KR20050061645A KR100689762B1 KR 100689762 B1 KR100689762 B1 KR 100689762B1 KR 1020050061645 A KR1020050061645 A KR 1020050061645A KR 20050061645 A KR20050061645 A KR 20050061645A KR 100689762 B1 KR100689762 B1 KR 100689762B1
Authority
KR
South Korea
Prior art keywords
database
pram
dram
main memory
data
Prior art date
Application number
KR1020050061645A
Other languages
English (en)
Other versions
KR20060085899A (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 심상엽
Publication of KR20060085899A publication Critical patent/KR20060085899A/ko
Application granted granted Critical
Publication of KR100689762B1 publication Critical patent/KR100689762B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명의 데이터베이스 시스템은 사용자의 조작에 응답하여 데이터베이스 판독 명령 및 기록 명령을 전송하는 클라이언트 컴퓨터 시스템과, 파일 데이터 및 메타 데이터의 테이블을 연속적으로 저장하고, 메타 데이터를 포함한 데이터를 저장하는 영구 메인 메모리와, 상기 영구 메인 메모리에 직접 접속되어, 상기 클라이언트 컴퓨터 시스템으로부터 데이터베이스 기록 명령을 수신하여 그 해당하는 기록 명령을 상기 영구 메인 메모리로 보내고, 상기 데이터의 일부를 요청하는 데이터베이스 판독 명령을 수신하여 그 요청된 데이터를 상기 영구 메인 메모리로부터 판독하는 프로세서를 포함하며, 상기 파일 데이터 및 메타 데이터의 백업 사본만을 저장하기 위한 디스크 저장 장치를 추가적으로 포함하여 고속 응답 시간 및 많은 트랜잭션 처리량을 제공하고, 페이지를 업데이트하는 프로세스를 시도하는 경우에, 기록시 이동(move-when-write) 동작에 의해 그 페이지를 DRAM으로부터 PRAM으로 복사하여, 업데이트된 페이지들은 PRAM으로 이동되고, 갱신되지 않은 페이지들은 DRAM에 상주시키는 페이지 교체 정책(page replacement policy)을 이용하여 시스템 불량을 복원하는 동안에 갱신된 페이지들의 콘텐츠를 용이하게 복원하는 것이다.

Description

데이터베이스 시스템 및 그 데이터베이스 시스템의 데이터베이스 컴포넌트를 메인 메모리에 저장하는 시스템 및 방법{A DATABASE SYSTEM AND METHOD FOR STORING A PLURALITY OF DATABASE COMPONENTS IN MAIN MEMORY THEREOF}
도 1은 종래의 메인 메모리 상주 데이터베이스 시스템이 동작하는 컴퓨터 시스템 아키텍쳐를 도시하는 블록도이다.
도 2는 종래의 디스크 상주 데이터베이스 시스템이 동작하는 컴퓨터 시스템 아키텍쳐를 도시하는 블록도이다.
도 3은 본 발명의 일 실시예에 따른 PRAM(Persistent Random Access Memory)을 메인 메모리로서 탑재한 데이터베이스 시스템을 도시하는 블록도이다.
도 4는 본 발명이 일 실시예에 따라 데이터베이스 시스템의 메인 메모리를 PRAM 및 DRAM으로 구성한 것을 도시한다.
도 5는 도 4에 도시된 데이터베이스 시스템에서 복수의 데이터베이스 컴포넌트를 PRAM 또는 DRAM에 분할하여 저장하는 프로세서를 도시하는 흐름도이다.
도 6(a) 내지 6(c)는 본 발명의 일 실시예에 따라 기록시 이동(move-when-write) 동작에 의해 DRAM과 PRAM의 페이지 할당 정책을 도시한다.
도 7은 본 발명에 따른 DRAM과 PRAM의 페이지 할당 정책에 따른 기록시 이동 동작의 흐름을 도시하는 흐름도이다.
도 8은 프로그램의 데이터 섹션을 포함하는 페이지를 업데이트하는 방법을 도시하는 흐름도이다.
본 발명은 일반적으로 컴퓨터 데이터 저장 시스템에 관한 것으로써, 보다 구체적으로 말하면, 컴퓨터 데이터베이스 시스템의 성능을 증가시키는 시스템 및 방법에 관한 것이다.
일반적으로, 데이터베이스 시스템은 컴퓨터 시스템의 개발과 전자 데이터의 폭넓은 사용으로 비지니스 인프라를 구축하는데 중요한 요소가 되고 있다. 비지니스는 통상적으로 대용량의 중요한 정보를 안전하게 저장하고 검색할 수 있는 컴퓨터 데이터베이스에 매우 의존한다. 이러한 대용량 및 고속의 데이터베이스에 대한 필요성으로 인하여, 컴퓨터 시스템의 속도 및 저장 용량은 지난 수년에 걸쳐 급격히 성장하고 있다.
최근에는 거대 용량의 데이터를 짧은 시간에 처리할 필요성은 더욱 절실해지고 있다. 예를 들면, 은행, 제조업체 등을 포함하는 많은 산업체에서 데이터 입력이나 거래 조회 등을 위한 트랜잭션을 관리해주는 OLTP(Online Transaction Processing) 어플리케이션은 데이터베이스에 고속으로 액세스하여 그 트랜잭션을 처리하고 보다 빠르게 갱신 정보를 사용자에게 제공할 필요성이 있다. 또한, OLAP(Online Analytical Processing) 어플리케이션은 관련 데이터(data mining)를 이용하여 대용량 ODS(Operational Data Store)를 처리하여 데이터 모델을 만든다.
이러한 종류의 어플리케이션은 매우 짧은 응답 시간 내에 거대하고 복잡한 데이터를 처리할 필요성이 있으며, 그 어플리케이션을 적용한 기존의 데이터베이스 시스템으로는 메모리 상주 데이터베이스로 알려진 메인 메모리 데이터베이스(MMDB : Main memory database)와 디스크 상주 데이터베이스(DRDB : disk resident database)가 있다.
그 메모리 상주 데이터베이스는 메인 메모리에 데이터를 저장하고, 디스크 상주 데이터 베이스는 물리적인 디스크 상에 파일로 데이터를 저장한다. 이와 관련하여 도 1 및 도 2를 참조로 설명한다.
도 1은 종래의 메인 메모리 상주 데이터베이스 시스템이 동작하는 컴퓨터 시스템 아키텍쳐를 도시하는 블록도이다.
이 데이터베이스 시스템(100)은 클라이언트 컴퓨터 시스템(110)과, 휘발성 저장 데이터베이스 시스템(114)과, 영구 저장 장치(113)를 포함할 수 있다. 사용자는 클라이언트 컴퓨터 시스템(110)을 이용하여 데이터베이스 시스템(100)에 엑세스할 수 있다.
클라이언트 컴퓨터 시스템(110)은 사용자 입력에 의해 판독 명령 및 기록 명령을 휘발성 저장 데이터베이스 시스템(114)으로 전송한다.
클라이언트 컴퓨터 시스템(110)의 기록 명령에 응답하여, 휘발성 저장 데이터베이스 시스템(114)에 탑재된 CPU(111)는 디스크 등의 영구 저장 장치(113)에 데이터를 저장하는 동시에 휘발성 저장 데이터베이스 시스템(114)의 메인 메모리 (112)에 고속 검색용 데이터를 저장할 수 있다.
이와 같이, 기존의 메인 메모리 상주 데이터베이스는 속도, 저장 공간 및 엑세스력의 이점에도 불구하고 최근까지 컴퓨터 산업에 많은 영향을 주지 못했다.
도 2는 종래의 디스크 상주 데이터베이스 시스템이 동작하는 컴퓨터 시스템 아키텍쳐를 도시하는 블록도이다.
이 컴퓨터 시스템 아키텍쳐(200)는 클라이언트 컴퓨터 시스템(210)과, 데이터베이스 서버(230)와, 데이터베이스 시스템(250)을 포함할 수 있다. 사용자는 클라이언트 컴퓨터 시스템(210)을 이용하여 데이터베이스 시스템(250)에 엑세스할 수 있다. 데이터는 데이터베이스, 즉 디스크에 저장된다.
데이터베이스 서버(230)는 네트워크(201)를 통하여 클라이언트 컴퓨터 시스템(210)에 의해 전송된 데이터베이스 명령, 즉 판독 명령 및 기록 명령을 수신한다. 또한, 데이터베이스 서버(230)는 데이터베이스 시스템(250)으로 데이터 명령어를 전송할지 여부를 판단한다.
이 데이터베이스 명령어는 클라이언트 컴퓨터 시스템(210) 상에 사용자 입력을 통하여 초기화되거나, 데이터베이스 서버(230) 상에 실행하는 운용 체계에 의해 발생될 수 있다.
클라이언트 컴퓨터 시스템(210)에 의해 전송된 판독 명령을 데이터베이스 서버(230)가 수신하여 데이터베이스 시스템(250)으로 전달하면, 데이터베이스 시스템(250)의 데이터베이스 정보는 캐시 메모리로서 버퍼(240)에 백업된 후에 복수의 클라이언트 컴퓨터 시스템(210)으로 전달된다.
이와 같이, 데이터가 디스크에 상주하기 때문에, 기존의 디스크 상주 데이터베이스 시스템은 클라이언트 컴퓨터 시스템(210)이 데이터베이스 시스템(250)에 액세스하는 시간이 오래 걸리며, 이에 따라 데이터 처리량이 적은 문제점이 있었다.
따라서, 동일한 정도의 데이터 일관성을 갖는 종래의 디스크 상주 데이터베이스에 비하여 응답 시간이 빠르고 트랜잭션 처리량이 많은 데이터베이스 시스템이 필요하였다.
상기한 여러가지 문제점을 해결하기 위한 것으로서, 본 발명의 목적은 데이터베이스 시스템의 메인 메모리로서 영구 RAM(Persistent RAM)을 적용하고 64 비트 프로세서를 탑재하여 고속 응답 시간 및 많은 트랜잭션 처리량을 제공하는 영구 메인 메모리 데이터베이스 시스템을 제공하는 것이다.
이러한 목적들을 달성하기 위하여, 본 발명의 일 실시예에 따른 데이터베이스 시스템은, 파일 데이터 및 메타 데이터의 테이블을 연속적으로 저장하고, 메타 데이터를 포함한 모든 데이터를 저장하는 영구 메인 메모리와, 상기 영구 메인 메모리에 직접 접속되어, 클라이언트 컴퓨터 시스템으로부터 데이터베이스 기록 명령을 수신하여 그 해당하는 기록 명령을 상기 영구 메인 메모리로 보내고, 상기 데이터를 요청하는 데이터베이스 판독 명령을 수신하여 그 요청된 데이터를 상기 영구 메인 메모리로부터 판독하는 프로세서를 포함하는 것을 특징으로 한다.
그 영구 메인 메모리는 PRAM(Persistent Random Access Memory)인 것을 특징 으로 한다. 이 영구 메인 메모리는 가끔 URAM(Unified Random Access Memory) 이라고 칭한다.
본 발명의 일 실시예에 따른 데이터베이스 시스템은 메인 메모리와 프로세서를 구비하는데, 상기 메인 메모리는 휘발성 메모리와 불휘발성 메모리로 구성되고, 여기서 상기 2개의 메모리의 각각에는 사용자 테이블, 사용자 인덱스, 카타로그 테이블, 히스토그램 테이블, 제약 사항, 로그 파일 및 트랜잭션 로그 등의 데이터베이스 컴포넌트가 그 특성에 따라 분할 저장되며, 또한, 상기 프로세서는 상기 메인 메모리에 직접 접속되어, 클라이언트 컴퓨터 시스템으로부터 데이터베이스 기록 명령을 수신하여 그 해당하는 기록 명령을 상기 메인 메모리로 보내고, 상기 데이터를 요청하는 데이터베이스 판독 명령을 수신하여 그 요청된 데이터를 상기 메인 메모리로부터 판독하는데, 바람직하게는, 상기 불휘발성 메모리는 PRAM이고 상기 휘발성 메모리는 DRAM인 것을 특징으로 한다.
본 발명에 따른 파일 데이터 및 메타 데이터의 백업 사본만을 저장하기 위한 디스크 저장 장치를 더 포함하는 것을 특징으로 한다.
본 발명의 일 실시예에 따라 메인 메모리를 PRAM과 DRAM으로 구성한 데이터베이스 시스템에서 데이터베이스 컴포넌트를 분할 저장하는 방법은 데이터베이스 컴포넌트 특성, 예컨대, 데이터베이스 일관성, 크기, 정적/동적 성질, 재생 용이성을 결정하는 단계와, 그 데이터베이스 컴포넌트의 특성을 결정한 후에, 데이터베이스 일관성 및 성실도를 유지하는데 필요한 중요도가 높은 것인지 여부를 판정하는 단계와, 복수의 데이터베이스 컴포넌트 중 일부가 중요도가 높다고 판정되는 경우에, 그 일부의 데이터베이스 컴포넌트를 PRAM으로 전송하는 단계와, 그 PRAM으로 전송된 일부의 데이터베이스 컴포넌트를 PRAM에 저장하는 단계와, 복수의 데이터베이스 컴포넌트 중 일부가 중요도가 낮다고 판정되는 경우에, 그 중요도가 낮은 데이터베이스 컴포넌트는 DRAM으로 전송하는 단계와, 그 중요도가 낮은 데이터베이스 컴포넌트는 DRAM에 저장하고, 그 DRAM에 저장된 데이터베이스 컴포넌트는 압축 파일로 스냅샷(snapshot)으로서 주기적으로 캡쳐되는 단계를 포함하는 것을 특징으로 한다.
본 발명에 따른 데이터베이스 시스템은 프로세서와 통신하고, 사용자의 조작에 응답하여 데이터베이스 판독 명령 및 데이터베이스 기록 명령을 발생시켜 전송하는 클라이언트 컴퓨터 시스템을 더 포함하는 것을 특징으로 한다.
본 발명에 따른 프로세서는 64 비트 프로세서인 것을 특징으로 한다.
본 발명의 일 실시예에 따른 데이터베이스 시스템에서 DRAM과 PRAM의 페이지 할당 방법은 프로세서에 의해 페이지 업데이트 명령을 실행하는 단계와, DRAM에 저장될 업데이터 페이지의 주소를 판정하는 단계와, 그 전체 페이지를 PRAM으로 복사하는 단계와, DRAM의 기존 페이지를 재할당하는 단계와, 그 페이지가 PRAM에 나타내기 위하여 페이지 테이블 비트를 업데이트하는 단계와, PRAM에서 페이지의 업데이트 명령을 실행하는 단계를 포함하는 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대하여 상세히 설명한다.
도 3은 본 발명의 일 실시예에 따른 PRAM(Persistent Randon Access Memory) 을 메인 메모리로서 탑재한 데이터베이스 시스템이 동작하는 컴퓨터 시스템 아키텍쳐를 도시하는 블록도이다.
본 발명의 일 실시예에 따른 데이터베이스 시스템(300)은 클라이언트 컴퓨터 시스템(310)과, 데이터베이스 서버(330)를 포함한다.
클라이언트 컴퓨터 시스템(310)은 복수의 컴퓨터 및 관련 입력 장치일 수 있다. 사용자는 클라이언트 컴퓨터 시스템(310)에 데이터베이스 명령을 입력하여 클라이언트 컴퓨터 시스템 상에서 실행하는 그래픽 사용자 인터페이스(GUI)를 통해 데이터베이스 정보를 볼 수 있다. 클라이언트 컴퓨터 시스템(310)은 스크립팅 언어 파일 또는 명령어 라인 인터페이스 등의 다른 유형의 사용자 인터페이스를 적용할수도 있다.
본 발명의 데이터베이스 서버(330)는 기존의 데이터베이스 시스템에 64 비트 프로세서(331)를 탑재하고, 메인 메모리로서 대용량 PRAM(332)을 탑재하여 고속으로 데이터를 처리할 수 있는 컴퓨터나 컴퓨터 시스템으로 구현될 수 있다. 데이터베이스 서버(330)는 네트워크(320)를 통하여 클라이언트 컴퓨터 시스템(310)에 의해 전송된 데이터베이스 명령, 예를 들면 판독 명령 및 기록 명령을 수신한다.
그 네트워크(320)는 클라이언트 컴퓨터 시스템(310)과 데이터베이스 서버(330)를 간접적으로 접속할 수 있다. 대안으로, 데이터베이스 서버(330)는 클라이언트 컴퓨터 시스템(310)과 직접 접속될 수도 있다.
그 메모리 데이터베이스 서버(330)는 서버 자체에 탑재된 불휘발성 PRAM (332)에 모든 데이터 또는 파일을 저장한다. 따라서, 기존에 대용량의 데이터를 저 장하는 데이터베이스보다 고속으로 조작할 수 있다. 왜냐하면, 64 비트 프로세서가 PRAM(332)에 직접 엑세스하여 데이터나 파일을 처리하기 때문이다. 하지만, 이러한 고속 처리에도 불구하고 디스크와 동일한 안전성을 확보할 수 있다. 또한, 그 데이터베이스 서버(330)는 단지 파일 데이터 및 메타 데이터용 메인 스토리지로서 작용하기 보다는 백업 사본을 캡쳐하는데만 이용되는 디스크도 포함할 수 있다. 상기 파일들은 데이터베이스의 데이터의 일관성 및 성실도를 유지하는데 이용된다.
전술한 바와 같이, PRAM(332)은 디스크에 비하여 고속으로 메모리에 액세스를 가능하게 한다. 다시 말해서, PRAM(332)은 메모리 액세스 속도가 나노초(nano seconds)인 반면에, 디스크의 메모리 엑세스 속도는 밀리초(milliseconds)이다. 즉, PRAM의 응답 시간은 디스크에 비하여 수천배 빠르다. 따라서, PRAM이 메인 메모리 데이터베이스의 메인 스토리지 영역이 된다.
더욱더, PRAM(332)에는 복수의 데이터베이스 컴포넌트, 즉 카탈로그 테이블, 사용자 테이블, 사용자 인덱스, 히스토그램 테이블, 컴파일 문장(Compiled Statements), 제약 사항(Constraints), 저장 절차(Stored Procedures), 잠금 파일(Lock Files), 트랜잭션 로그(Transaction logs), DDL 스크립트(DDL scripts)가 모두 저장된다.
이하에서는 이러한 데이터베이스 컴포넌트를 설명한다. 먼저, 트랜잭션 로그는 데이터베이스 안에 데이터의 성실도를 유지하기 위하여 영구 메인 메모리 데이터베이스(300)에 제공된다. 이 트랜잭션 로그는 메인 메모리가 휘발성인 메인 메모리 데이터베이스와 디스크 상주 데이터베이스에서도 중요하다. 또한, 트랜잭션 로 그는 시스템 감사의 경우에 영구 메인 메모리 데이터베이스에 모든 트랜잭션을 기록하는데 중요하다.
트랜잭션 로그는 트랜잭션을 기록하고, 체크포인트(checkpoint)를 제공하며, 시스템 충돌이나 전원 불량의 경우에 복구를 돕는다. 이 트랜잭션 로그 버퍼는 PRAM에 저장된다. 메인 메모리 데이터베이스 시스템의 2종류의 트랜잭션 로그에는 CRTL(Committed/Roll-backed Transaction Logs)와 ATL(Active Transaction logs)이 있다.
CRTL은 PRAM에 최근에 백업된 후에 커미트(commit) 또는 롤백(roll back)된 모든 트랜잭션을 저장한다. CRTL 로그의 백업이 PRAM에 이루어진 후에, CRTL 로그 파일의 로그들은 퍼지(purge)된다.
CRTL의 구조는 아래의 표 1에 도시된다.
엘리먼트 명칭 기술
트랜잭션 ID 고유의 순차적인 트랜잭션 ID
시스템 ID 트랜잭션 이니시에이터 시스템(미래용)
SQL 상태 C/R(커미트 또는 롤백)
SQL 코드 트랜잭션용 SQL 코드
시스템 에러(선택) 어떤 경우의 시스템 에러(미래용)
SQL 연산[] SQL 연산의 어레이
CRTL의 구조 중 SQL 연산 구조는 아래의 표 2에 도시된다.
엘리먼트 명칭 기술
Juliantimestamp에서 시간 트랜잭션이 로그되는 경우의 시간
연산 타입 S/I/D/U(선택/삽입/삭제/갱신)
오브젝트 명칭 테이블 또는 인덱스의 오브젝트 명칭
SQL 문장 트랜잭션에서 SQL 문장
액티브 트랜잭션 로그는 데이터베이스에 액티브 트랜잭션에 대한 엔트리를 보유한다. 또한, 액티브 트랜잭션 로그는 각각의 액티브 트랜잭션에 대한 잠금 로그의 잠금 포인터를 보유한다. 그 트랜잭션이 종료되는 경우(커미트 또는 롤백), 그 트랜잭션의 엔트리는 커미트/롤백 트랜잭션 로그(CRTL)에 기록되고, 활성 트랜잭션 로그(ATL)로부터 퍼지된다.
잠금 로그(Lock log)는 데이터베이스에 현재 보유되는 잠금 집합을 포함한다. 잠금 로그 안에 각각의 잠금 레코드는 잠금 id, 트랜잭션 id(잠금을 개시), 잠금 타입(판독/기록), 잠금이 생성되는 엘리먼트 명칭, 잠금 단위(레코드/테이블), 레코드 잠금의 경우에 키[테이블 잠금의 경우에 널(null)] 등의 정보를 보유한다. 모든 커미트 또는 롤백 트랜잭션 후에, 잠금 테이블의 엔트리는 그 트랜잭션에 대하여 삭제된다.
도 4는 본 발명의 일 실시예에 따라 데이터베이스 시스템의 메인 메모리를 PRAM 및 DRAM으로 구성한 것을 도시한다.
도 4를 참조하면, 데이터베이스 시스템에 데이터베이스 컴포넌트가 분산 저장되는 것을 보여준다. 전술한 바와 같은 모든 데이터베이스 컴포넌트는 PRAM에 저장될 수 있다. 그러나, 모든 데이터베이스 컴포넌트를 PRAM에 저장하기에 충분하지 않은 경우에, 일부의 컴포넌트는 DRAM에 저장될 수 있다.
일반적으로, 크기는 작지만 이용도가 높은 중요한 컴포넌트는 PRAM에 저장될 수 있다. 예를 들면, 데이터베이스의 성실도 및 일관성을 유지할 때 중요도가 높은 트랜잭션 로그는 PRAM에 저장될 수 있다. 왜냐하면, 기존의 메모리에 저장된 트랜잭션 로그가 전력 공급 정지 또는 시스템 리부팅으로 인하여 손실되는 경우에, 진행중인 트랜잭션 데이터는 손실되어 복원될 수 없기 때문이다.
PRAM에 저장될 데이터베이스 컴포넌트의 판정은 데이터베이스 일관성을 유지하는데 필요한 데이터베이스 컴포넌트의 중요도, 컴포넌트의 크기, 생성/재생의 용이성, 컴포넌트 크기의 팽창, 컴포넌트의 정적 성질(static nature) 및 시스템에서 PRAM의 이용력 등에 따른다. 예를 들면, 테이블 및 인덱스 생성용 DDL 스크립트는 크기가 작고, 쉽게 생성될 수 있으며, 정적인 성질(주기적으로 변하지 않음)이다. 따라서, DDL 스크립트는 DRAM에 저장될 수 있다.
반면에, 사이즈가 작은 카탈로그 테이블 같은 컴포넌트는 쉽게 생성될 수 있지만, 유지 및 재생에 어렵다. 이러한 동적인 성질을 갖는 컴포넌트는 PRAM에 저장될 수 있다.
아래의 표 3에는 복수의 데이터베이스 컴포넌트 특성을 판정한 결과를 도시한다.
컴포넌트 데이터베이스 일관성 크기 성질(정적/동적) 재생 용이성 팽창
카탈로그 테이블 높음 정적 용이 적음
사용자 테이블 보통 매우큼 매우 동적 보통 매우 큼
사용자 인덱스 보통 보통 매우 동적 보통
히스토그램 테이블 낮음 동적 용이 적음
컴파일 문장 낮음 정적 용이 적음
제약 사항 높음 정적 보통 적음
저장 절차 낮음 보통 정적 용이 적음
잠금 파일 높음 보통 매우 동적 비용이 보통
트랜잭션 로그 높음 보통 매우 동적 비용이 보통
DDL 스크립트 낮음 정적 용이 적음
이 도면에 보여준 바와 같이, 영구 메인 메모리 데이터베이스 컴포넌트 특성은 PRAM의 적응력과, 데이터베이스 성실도 및 일관성에 대하여 PRAM에 저장될 중요도에 의하여 측정된다.
도 5는 도 4에 도시된 데이터베이스 시스템에서 데이터베이스 컴포넌트를 PRAM 및 DRAM에 분할하여 저장하는 프로세스를 도시하는 흐름도이다.
본 발명의 일 실시예에 따른 데이터베이스 시스템의 PRAM과 DRAM에 데이터베이스 컴포넌트를 분할 저장하는 방법은 먼저 데이터베이스 컴포넌트 특성, 예컨대, 데이터베이스 일관성, 크기, 성질(정적/동적), 재생 용이성을 결정한다(S501).
단계(S501)에서, 데이터베이스 컴포넌트의 특성을 결정한 후에, 데이터베이스 일관성 및 성실도를 유지하는데 필요한 중요도가 높은 것인지 여부를 판정한다(S502).
복수의 데이터베이스 컴포넌트 중 일부가 중요도가 높다고 판정되는 경우에, 그 일부의 데이터베이스 컴포넌트를 PRAM으로 보낸다(S503).
그 PRAM으로 보내진 일부의 데이터베이스 컴포넌트를 PRAM에 저장한다(S504).
복수의 데이터베이스 컴포넌트 중 일부의 중요도가 낮다고 판정되는 경우에, 그 중요도가 낮은 데이터베이스 컴포넌트는 DRAM으로 보낸다(S505).
그 보내진 중요도가 낮은 데이터베이스 컴포넌트는 DRAM에 저장하고, 그 DRAM에 저장된 데이터베이스 컴포넌트는 압축 파일로 스냅샷으로서 주기적으로 캡쳐된다(S506).
도 6은 본 발명의 일 실시예에 따라 기록시 이동(move-when-write) 동작에 의해 DRAM과 PRAM의 페이지 할당 정책을 도시한다.
도 6을 참조하면, 본 발명에 따른 데이터베이스 시스템에 내장된 PRAM(332)은 전원이 꺼진 경우에도 영구성을 제공한다. 따라서, 프로세스를 시작하는 경우에, 페이지를 DRAM으로 불러온다. 그 페이지들에 기록할 수 있는 경우에, 이들 페이지는 기록시 이동(move-when-write) 페이지로 마킹된다. 이것은 이들 페이지에 기록하는 프로세스인 경우에, 이들 페이지는 자동으로 PRAM으로 이동되어 영구성을 제공한다.
예를 들면, 프로그램의 데이터 섹션을 포함하는 페이지를 업데이트하기 위하여 시도하는 경우에, 그 페이지들이 기록시 이동(move-when-write)으로 설정되면, 오퍼레이팅 시스템은 그 페이지를 DRAM으로부터 PRAM으로 복사할 것이다. 나아가서, 그 페이지들이 자동으로 영구적으로 된다. 기록시 이동 마킹 페이지를 이동하는 경우에, 프로세스에 의해 수정되는 페이지들은 PRAM으로 이동되고, 모든 수정되지 않은 페이지들은 DRAM에 머무른다.
주목할 점은 기록 전용 페이지들이 기록시 이동으로 마킹된다는 것이다. PRAM에는 수정된 페이지들이 유지되기 때문에, 논리적이고 물리적인 맵핑의 식별이 PRAM에 저장됨으로써, 시스템 불량을 복원하는 동안에, 기록시 이동 페이지들의 콘텐츠는 PRAM으로부터 복원될 수 있다. 이러한 할당 정책은 PRAM의 영구성을 이용하여 복원을 용이하게 한다.
이러한 정책은 PRAM을 이용하는 경우에 오프레이팅 시스템 및 데이터베이스 시스템에 폭넓게 적용될 수 있다.
도 6a는 본 발명의 일 실시예에 따른 데이터베이스 시스템에서 DRAM에서 PRAM으로 페이지를 기록시 이동하는 방법을 도시하고, 도 6b는 페이지 3으로 기록 동작 전의 상태를 도시하며, 도 6c는 페이지 3으로 기록 동작 후의 상태를 도시한다.
도 7을 참조하면, 본 발명의 데이터베이스 시스템에서, 프로세서(331)에 의해 페이지 업데이트 명령을 실행한다(S701).
그 다음, DRAM에 저장될 업데이터 페이지의 주소를 판정한다(S702).
그 다음, 그 전체 페이지를 PRAM(332)으로 복사한다(S703).
그 다음, DRAM에서 기존 페이지를 재할당한다(S704).
그 다음, 그 페이지가 PRAM에 나타내기 위하여 페이지 테이블 비트를 업데이트한다(S705).
PRAM(332)에서 페이지의 업데이트 명령을 실행한다(S706).
도 8은 프로그램의 데이터 섹션을 포함하는 페이지를 업데이트하는 방법을 도시하는 흐름도이다.
도 8을 참조하면, 프로그램 데이터 섹션을 포함하는 페이지들이 기록시 이동(move-when-write)으로 설정된다(S801).
오퍼레이팅 시스템은 그 페이지를 DRAM으로부터 PRAM으로 복사하고, 자동으로 영구적으로 된다(S802).
기록시 이동 마킹 페이지를 이동하는 경우에, 프로세스에 의해 수정되는 페이지들은 PRAM으로 이동되고, 모든 수정되지 않은 페이지들은 DRAM에 머무른다(S803).
이상 설명한 바와 같이, 본 발명은 데이터베이스 시스템에 메인 메모리로서 PRAM을 탑재하고 64 비트 프로세서를 탑재하여 고속 응답 시간 및 많은 트랜잭션 처리량을 제공하는 영구 메인 메모리 데이터베이스 시스템을 제공하는 것이다.

Claims (15)

  1. 데이터베이스 시스템으로서,
    사용자의 조작에 응답하여 데이터베이스 판독 명령 및 기록 명령을 전송하는 클라이언트 컴퓨터 시스템;
    메인 메모리로서, 파일 데이터 및 메타 데이터의 테이블을 연속적으로 저장하고, 메타 데이터를 포함한 데이터를 저장할 수 있는 영구 메인 메모리; 및
    상기 영구 메인 메모리에 직접 접속되어, 상기 클라이언트 컴퓨터 시스템으로부터 데이터베이스 기록 명령을 수신하여 그 해당하는 기록 명령을 상기 영구 메인 메모리로 보내고, 상기 데이터 중 일부 데이터를 요청하는 데이터베이스 판독 명령을 수신하여 그 요청된 데이터를 상기 영구 메인 메모리로부터 판독하는 프로세서;를 포함하며,
    상기 영구 메인 메모리는 PRAM인 것을 특징으로 하는 데이터베이스 시스템.
  2. 제1항에 있어서, 상기 프로세서는 64 비트 프로세서인 것을 특징으로 하는 데이터베이스 시스템.
  3. 제1항에 있어서, 상기 파일 데이터 및 메타 데이터의 백업 사본만을 저장하기 위한 디스크 저장 장치를 더 포함하는 것을 특징으로 하는 데이터베이스 시스템.
  4. 제1항에 있어서, 상기 PRAM은 URAM(Unified Random Access Memory)을 포함하는 것을 특징으로 하는 영구 메인 메모리 데이터베이스 시스템.
  5. 데이터베이스 시스템으로서,
    사용자의 조작에 응답하여 데이터베이스 판독 명령 및 기록 명령을 전송하는 클라이언트 컴퓨터 시스템;
    불휘발성 메모리 및 휘발성 메모리를 포함하는 메인 메모리; 및
    상기 메인 메모리에 직접 접속되어, 상기 클라이언트 컴퓨터 시스템으로부터 데이터베이스 기록 명령을 수신하여 그 해당하는 기록 명령을 상기 메인 메모리로 보내고, 상기 데이터의 일부를 요청하는 데이터베이스 판독 명령을 수신하여 그 요청된 데이터를 상기 메인 메모리로부터 판독하는 프로세서;를 포함하며,
    여기서, 상기 메인 메모리의 상기 불휘발성 메모리는 PRAM이고 상기 휘발성 메모리는 DRAM이며,
    상기 PRAM과 DRAM의 각각에는, 사용자 테이블, 사용자 인덱스, 카타로그 테이블, 히스토그램 테이블, 제약 사항, 록 파일 및 트랜잭션 로그 등의 데이터베이스 컴포넌트가 그 특성에 따라 분할 저장되는 것을 특징으로 하는 데이터베이스 시스템.
  6. 제5항에 있어서, 상기 데이터베이스 컴포넌트의 특성은 데이터베이스 일관성, 정적/동적 성질, 재생 용이성, 사이즈를 포함하는 것인 데이터베이스 시스템.
  7. 삭제
  8. 제5항에 있어서, 상기 PRAM에는 상기 데이터베이스 컴포넌트의 특성이 사이즈가 작고 데이터 일관성이 높으며 동적인 성질의 데이터베이스 컴포넌트가 저장되며, 그 저장되는 데이터베이스 컴포넌트에는 카타로그 테이블, 제약 사항, 록 파일 및 트랜잭션 로그를 포함하는 것인 데이터베이스 시스템.
  9. 제5항에 있어서, 상기 DRAM에는 상기 데이터베이스 컴포넌트의 특성이 재생이 용이한 정적인 성질의 데이터베이스 컴포넌트가 저장되며, 그 저장되는 데이터베이스 컴포넌트에는 사용자 테이블, 사용자 인덱스 및 히스토그램 테이블을 포함하는 것인 데이터베이스 시스템.
  10. 제5항에 있어서, 상기 파일 데이터 및 메타 데이터의 백업 사본만을 저장하기 위한 디스크 저장 장치를 더 포함하는 것을 특징으로 하는 데이터베이스 시스템.
  11. 메인 메모리에 불휘발성 메모리 및 휘발성 메모리를 포함하되, 상기 불휘발성 메모리로서 PRAM과 휘발성 메모리로서 DRAM을 적용한 데이터베이스 시스템에서, 복수의 데이터베이스 컴포넌트를 상기 PRAM과 DRAM에 분할 저장하는 방법으로서,
    상기 데이터베이스 컴포넌트의 특성을 결정하는 단계;
    상기 데이터베이스 컴포넌트의 특성을 결정한 후, 상기 데이터베이스 컴포넌트가 데이터베이스 일관성 및 성실도를 유지하는데 중요도가 높은 것인지 여부를 판정하는 단계;
    상기 데이터베이스 컴포넌트 중 중요도가 높다고 판정되는 데이터베이스 컴포넌트를 PRAM으로 전송하는 단계;
    상기 PRAM으로 전송된 데이터베이스 컴포넌트를 PRAM에 저장하는 단계;
    상기 데이터베이스 컴포넌트 중 중요도가 낮다고 판정되는 데이터베이스 컴포넌트를 DRAM으로 전송하는 단계와,
    상기 중요도가 낮은 데이터베이스 컴포넌트를 DRAM에 저장하고, 상기 DRAM에 저장된 데이터베이스 컴포넌트를 압축 파일로 스냅샷으로써 주기적으로 캡쳐하는 단계;
    를 포함하는 것을 특징으로 하는 방법.
  12. 제11항에 있어서, 상기 데이터베이스 컴포넌트의 특성에는 데이터베이스 일관성, 정적/동적 성질, 재생 용이성, 사이즈를 포함하는 것인 방법.
  13. 제11항에 있어서, 상기 PRAM에는 상기 데이터베이스 컴포넌트의 특성이 사이즈가 작고 데이터 일관성이 높으며 동적인 성질의 데이터베이스 컴포넌트가 저장되며, 그 저장되는 데이터베이스 컴포넌트에는 카타로그 테이블, 제약 사항, 록 파일 및 트랜잭션 로그를 포함하는 것인 방법.
  14. 메인 메모리에 불휘발성 메모리 및 휘발성 메모리를 포함하되, 상기 불휘발성메모리로서 PRAM과 휘발성 메모리로서 DRAM을 적용한 데이터베이스 시스템에서, DRAM에서 PRAM으로 페이지를 기록시 이동하는 방법으로서,
    데이터베이스 시스템에서 프로세서에 의해 페이지 업데이트 명령을 실행하는 단계;
    상기 DRAM에 저장될 업데이터 페이지의 주소를 결정하는 단계;
    상기 주소가 결정된 업데이터 페이지를 PRAM으로 복사하는 단계;
    상기 DRAM에서 기존 페이지를 재할당하는 단계;
    상기 페이지를 PRAM에 표시하기 위하여 페이지 테이블 비트를 업데이트하는 단계; 및
    PRAM에서 페이지의 업데이트 명령을 실행하는 단계;
    를 포함하는 것을 특징으로 하는, DRAM에서 PRAM으로 페이지를 기록시 이동하는 방법.
  15. 메인 메모리에 불휘발성 메모리 및 휘발성 메모리를 포함하되, 상기 불휘발성 메모리로서 PRAM과 휘발성 메모리로서 DRAM을 적용한 데이터베이스 시스템에서, 프로그램의 데이터 섹션을 포함하는 페이지를 업데이트하는 방법으로서,
    프로그램 데이터 섹션을 포함하는 페이지들을 기록시 이동(move-when-write)으로 설정하는 단계;
    상기 페이지를 오퍼레이팅 시스템에 의해 DRAM으로부터 PRAM으로 복사하는 단계; 및
    기록시 이동에 의해 페이지를 이동하는 경우에, 프로세스에 의해 수정되는 페이지들은 PRAM으로 이동되고, 수정되지 않은 페이지들은 DRAM에 머무르게 하는 단계;
    를 포함하는 것을 특징으로 하는, 프로그램의 데이터 섹션을 포함하는 페이지를 업데이트하는 방법.
KR1020050061645A 2005-01-25 2005-07-08 데이터베이스 시스템 및 그 데이터베이스 시스템의데이터베이스 컴포넌트를 메인 메모리에 저장하는 시스템및 방법 KR100689762B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020050006532 2005-01-25
KR20050006532 2005-01-25

Publications (2)

Publication Number Publication Date
KR20060085899A KR20060085899A (ko) 2006-07-28
KR100689762B1 true KR100689762B1 (ko) 2007-03-08

Family

ID=36698157

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050061645A KR100689762B1 (ko) 2005-01-25 2005-07-08 데이터베이스 시스템 및 그 데이터베이스 시스템의데이터베이스 컴포넌트를 메인 메모리에 저장하는 시스템및 방법

Country Status (2)

Country Link
US (1) US20060167895A1 (ko)
KR (1) KR100689762B1 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8213412B2 (en) 2005-09-29 2012-07-03 Comcast Cable Holdings, Llc System and method for providing multimedia services utilizing a local proxy
US8566342B2 (en) * 2005-12-07 2013-10-22 Berm Logic Llc In-memory data optimization system
US20110016471A1 (en) * 2009-07-15 2011-01-20 Microsoft Corporation Balancing Resource Allocations Based on Priority
US11086850B2 (en) 2011-04-13 2021-08-10 International Business Machines Corporation Persisting of a low latency in-memory database
US8700563B1 (en) * 2011-07-15 2014-04-15 Yale University Deterministic database systems
KR101825013B1 (ko) 2011-09-23 2018-02-05 삼성전자 주식회사 비휘발성 메모리에 영구 보존 데이터를 저장할 수 있는 시스템에서의 데이터 관리 방법
WO2013147820A1 (en) * 2012-03-29 2013-10-03 Intel Corporation System and method for managing persistence with a multi-level memory hierarchy including non-volatile memory
CN102955845B (zh) * 2012-10-23 2015-11-25 北京亿赞普网络技术有限公司 数据访问方法、装置与分布式数据库系统
CN104346284B (zh) * 2013-08-02 2017-10-24 华为技术有限公司 一种内存管理方法及内存管理设备
US9558229B2 (en) * 2013-11-26 2017-01-31 Sap Se Transaction private log buffering for high performance of transaction processing
CN105786725B (zh) * 2014-12-25 2020-10-27 研祥智能科技股份有限公司 基于异构混合内存的内存管理方法和系统
US9747174B2 (en) 2015-12-11 2017-08-29 Microsoft Technology Licensing, Llc Tail of logs in persistent main memory
US9965538B2 (en) 2016-01-19 2018-05-08 Microsoft Technology Licensing, Llc Early thread return with secondary event writes
US10140150B2 (en) 2016-02-08 2018-11-27 Microsoft Technology Licensing, Llc Thread diversion awaiting log call return
KR101766790B1 (ko) 2016-03-10 2017-08-10 주식회사 티맥스데이터 메인 메모리 데이터 베이스를 관리 하기 위한 방법 및 컴퓨팅 장치
CN110019375A (zh) * 2019-04-18 2019-07-16 哈尔滨汇拓投资中心(有限合伙) 一种基于在线聚合的多版本并行混合处理方法
US11150962B2 (en) * 2019-07-17 2021-10-19 Memverge, Inc. Applying an allocation policy to capture memory calls using a memory allocation capture library

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010055981A (ko) * 1999-12-13 2001-07-04 오길록 안전기억장치를 이용한 주기억장치 상주형 데이터베이스회복 방법
KR100365891B1 (ko) * 2000-12-13 2002-12-27 한국전자통신연구원 주기억장치 상주형 데이터베이스 시스템에서 로그 처리를하지 않는 백업/회복 장치 및 그 방법
JP2003303129A (ja) * 2002-04-02 2003-10-24 Brilliance Semiconductor Inc 知能型多機能複合式メモリ
KR20040050958A (ko) * 2002-12-11 2004-06-18 텔코웨어 주식회사 이중 관리를 통한 메모리 데이터베이스 백업장치 및 그 방법

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3453757B2 (ja) * 1989-05-29 2003-10-06 株式会社日立製作所 バッファ管理方法
US5426747A (en) * 1991-03-22 1995-06-20 Object Design, Inc. Method and apparatus for virtual memory mapping and transaction management in an object-oriented database system
SE500599C2 (sv) * 1992-12-08 1994-07-25 Ellemtel Utvecklings Ab Sätt att optimera minnesutrymme i en databas
KR100204027B1 (ko) * 1996-02-16 1999-06-15 정선종 이중면 비휘발성 메모리를 이용한 데이타베이스 회복 장치 및 그 방법
US5809495A (en) * 1996-06-04 1998-09-15 Oracle Corporation Method for obtaining information regarding the current activity of a database management system from a viritual table in a memory of the database management system
US6105024A (en) * 1998-02-12 2000-08-15 Microsoft Corporation System for memory management during run formation for external sorting in database system
US6185577B1 (en) * 1998-06-23 2001-02-06 Oracle Corporation Method and apparatus for incremental undo
US6304867B1 (en) * 1999-02-25 2001-10-16 Electronic Data Systems Corporation System and method for enhanced performance of a relational database management system through the use of application-specific memory-resident data
US7318076B2 (en) * 2003-01-22 2008-01-08 Intelitrac, Inc. Memory-resident database management system and implementation thereof

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010055981A (ko) * 1999-12-13 2001-07-04 오길록 안전기억장치를 이용한 주기억장치 상주형 데이터베이스회복 방법
KR100365891B1 (ko) * 2000-12-13 2002-12-27 한국전자통신연구원 주기억장치 상주형 데이터베이스 시스템에서 로그 처리를하지 않는 백업/회복 장치 및 그 방법
JP2003303129A (ja) * 2002-04-02 2003-10-24 Brilliance Semiconductor Inc 知能型多機能複合式メモリ
KR20040050958A (ko) * 2002-12-11 2004-06-18 텔코웨어 주식회사 이중 관리를 통한 메모리 데이터베이스 백업장치 및 그 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
1001283040000 *

Also Published As

Publication number Publication date
KR20060085899A (ko) 2006-07-28
US20060167895A1 (en) 2006-07-27

Similar Documents

Publication Publication Date Title
KR100689762B1 (ko) 데이터베이스 시스템 및 그 데이터베이스 시스템의데이터베이스 컴포넌트를 메인 메모리에 저장하는 시스템및 방법
US7200620B2 (en) High availability data replication of smart large objects
US9183236B2 (en) Low level object version tracking using non-volatile memory write generations
US6587933B2 (en) Method, system, and program for discarding data in a storage system where updates to a primary storage device are shadowed in a secondary storage device
US7035881B2 (en) Organization of read-write snapshot copies in a data storage system
US6223269B1 (en) Stacked mapped storage system
CN105843551B (zh) 高性能和大容量储存重复删除中的数据完整性和损耗电阻
US7089385B1 (en) Tracking in-progress writes through use of multi-column bitmaps
US7587562B2 (en) Data duplication system, data duplication method and program
US7698319B2 (en) Database system management method, database system, database device, and backup program
US9009428B2 (en) Data store page recovery
US20030065901A1 (en) System for conserving metadata about data snapshots
US20060224639A1 (en) Backup system, program and backup method
US5504857A (en) Highly available fault tolerant relocation of storage with atomicity
EP1636690B1 (en) Managing a relationship between one target volume and one source volume
US7549029B2 (en) Methods for creating hierarchical copies
KR20200060220A (ko) 비휘발성 메모리 기반 파일 시스템 및 이를 이용한 데이터 갱신 방법
KR102139087B1 (ko) 인덱스 리두 로그를 이용한 인덱스 복구를 위한 방법, 서버 및 컴퓨터 판독가능 저장매체
US8151069B1 (en) Multiprotection for snapsnots
US7047378B2 (en) Method, system, and program for managing information on relationships between target volumes and source volumes when performing adding, withdrawing, and disaster recovery operations for the relationships
US8086580B2 (en) Handling access requests to a page while copying an updated page of data to storage
US7930495B2 (en) Method and system for dirty time log directed resilvering
KR100501414B1 (ko) 파일 시스템의 메타 데이터 회복을 위한 로깅과 회복 방법및 장치
US6910214B1 (en) Method, system, and program for converting an input parameter list into an output parameter list
CN111444114B (zh) 一种非易失性内存中数据的处理方法、装置及系统

Legal Events

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

Payment date: 20120322

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee