KR100900189B1 - 비휘발성 메모리 기반의 데이터베이스 관리 시스템 및 방법 - Google Patents

비휘발성 메모리 기반의 데이터베이스 관리 시스템 및 방법 Download PDF

Info

Publication number
KR100900189B1
KR100900189B1 KR1020070042220A KR20070042220A KR100900189B1 KR 100900189 B1 KR100900189 B1 KR 100900189B1 KR 1020070042220 A KR1020070042220 A KR 1020070042220A KR 20070042220 A KR20070042220 A KR 20070042220A KR 100900189 B1 KR100900189 B1 KR 100900189B1
Authority
KR
South Korea
Prior art keywords
data
storage space
original data
database management
database
Prior art date
Application number
KR1020070042220A
Other languages
English (en)
Other versions
KR20080097078A (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 KR1020070042220A priority Critical patent/KR100900189B1/ko
Priority to PCT/KR2007/003626 priority patent/WO2008133373A1/en
Publication of KR20080097078A publication Critical patent/KR20080097078A/ko
Application granted granted Critical
Publication of KR100900189B1 publication Critical patent/KR100900189B1/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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

비휘발성 메모리 기반의 데이터베이스 관리 시스템 및 방법이 제공된다. 본 발명의 데이터베이스 관리 시스템은 복수의 비휘발성 메모리 소거 유닛(erase unit)들을 포함하는 데이터베이스, 및 상기 소거 유닛들 각각에 대하여 데이터 저장 공간 및 로그 저장 공간을 할당하고, 상기 데이터 저장 공간의 원본 데이터와 관련된 변화 기록을 상기 데이터 저장 공간과 동일한 소거 유닛 내의 상기 로그 저장 공간에 저장하는 데이터베이스 관리부를 포함하는 것을 특징으로 하며, 이로 인해 비휘발성 메모리 기반의 데이터베이스 억세스 타임을 단축할 수 있다.
비휘발성 메모리, 데이터베이스 관리 시스템, 소거 유닛

Description

비휘발성 메모리 기반의 데이터베이스 관리 시스템 및 방법 {DATABASE MANAGEMENT SYSTEM BASED ON NON-VOLATILE MEMORY AND METHOD USING THE SYSTEM}
도 1은 본 발명의 일 실시예에 따른 데이터베이스 관리 시스템의 데이터베이스를 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 데이터베이스 관리 시스템의 데이터베이스 및 데이터베이스 버퍼의 데이터 흐름을 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 데이터베이스 관리 시스템을 나타낸 블록도이다.
도 4는 본 발명의 일 실시예에 따른 데이터베이스 관리 방법을 나타낸 동작 흐름도이다.
도 5는 본 발명의 일 실시예에 따른 데이터베이스 관리 방법이 제공하는 병합 과정을 나타낸 동작 흐름도이다.
<도면의 주요 부분에 대한 부호의 설명>
310: 데이터베이스 320: 데이터베이스 관리부
330: 데이터베이스 버퍼 340: 버퍼 관리부
본 발명은 데이터베이스 관리 시스템에 관한 것으로서, 특히 플래시 메모리(flash memory)로 대표되는 비휘발성(nom-volatile) 메모리에 기반한 데이터베이스 관리 시스템에 관한 것이다.
본 발명은 정보통신부 및 정보통신연구진흥원의 IT신성장동력핵심기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2006-S-040-01, 과제명: Flash memory 기반 임베디드 멀티미디어 소프트웨어 기술개발].
데이터베이스란 자기 디스크(magnetic disk), 반도체 메모리 등 데이터를 저장할 수 있는 일체의 데이터 저장 장치(storage)를 의미하는 것으로, 데이터 저장 장치는 종류 별로 서로 다른 물리적 특성을 가지기 때문에 상기 물리적 특성에 상응하는 데이터베이스 관리 시스템이 필요하다.
종래의 데이터베이스로는 자기 디스크가 널리 사용되어 왔다. 자기 디스크는 평균적으로 킬로바이트(kilobyte) 당 수 밀리초(millisecond)의 읽기/쓰기 시간을 특성으로 가진다. 또한, 자기 디스크는 데이터가 저장된 물리적 위치에 따라 암(arm)이 도달하는 시간이 다르기 때문에 읽기/쓰기 시간이 달라지는 특성을 가진다.
최근에는 자기 디스크에 비하여 읽기/쓰기 시간이 짧고 작은 전력을 소모하며 작은 부피를 차지하는 비휘발성 메모리 장치가 급속하게 자기 디스크를 대체하고 있다. 이는 비휘발성 메모리 장치의 대용량화가 이루어졌기 때문에 가능한 결과이다.
비휘발성 메모리 장치는 전기적으로 읽기(reading), 쓰기(writing) 및 소거(erase)가 가능하며, 공급 전원이 없는 상태에서도 프로그래밍된 데이터를 유지할 수 있는 반도체 메모리 장치이다. 비휘발성 메모리 장치에 대한 데이터의 저장 과정은 쓰기 외에도 프로그래밍(programming)이라고 불리기도 한다.
비휘발성 메모리 장치는 디지털 카메라, 셀룰라 폰(cellular phone), 개인용 데이터 단말기(Personal Data Assistants, PDA), 랩탑 컴퓨터(lap-top computer) 등에 널리 이용되며, 반도체 칩 상의 작은 면적에 많은 양의 데이터를 저장할 수 있다.
비휘발성 메모리 장치 가운데 최근 대용량 저장 장치로 널리 사용되는 것으로 낸드(NAND) 플래시 메모리가 있다. 낸드 플래시 메모리는 킬로바이트 당 수십 마이크로초(microsecond)의 읽기 시간 및 수백 마이크로초의 쓰기 시간을 특성으로 가진다. 또한, 낸드 플래시 메모리는 쓰기 시간과 다른 소거 시간을 가지는 것이 일반적인데, 소거 시간은 수 밀리초에 이르기 때문에 전체 데이터에 대한 소거 시간을 단축하기 위해 복수의 메모리 셀들을 동시에 소거하는 방법이 널리 사용된다. 이 때, 동시에 소거되는 복수의 메모리 셀들의 단위를 소거 유닛(erase unit)이라 한다.
이처럼 낸드 플래시 메모리를 포함한 비휘발성 메모리는 읽기/쓰기/소거에 필요한 시간이 모두 다른 비대칭적 읽기/쓰기/소거 특성을 가지는 점이 종래의 자기 디스크와 크게 다른 점이다. 또한, 비휘발성 메모리는 전기적으로 데이터에 억세스하므로 데이터가 저장된 위치는 읽기/쓰기/소거 특성에 거의 영향을 미치지 않는 점도 종래의 자기 디스크와 크게 다른 점이다.
종래의 자기 디스크에서는 데이터를 소거하는 과정이 데이터 쓰기 과정에 포함되어 별도의 시간이 필요하지 않았으므로 데이터를 업데이트할 필요가 있으면 업데이트된 데이터를 이전의 데이터의 위치에 오버라이트(overwrite)하면 되었다.
그러나, 비휘발성 메모리에서는 데이터를 소거하는 과정과 데이터 쓰기 과정이 분리되어 데이터를 소거하는 과정에 별도의 긴 시간이 필요하므로, 종래의 자기 디스크에 적용되었던 방법을 비휘발성 메모리에 적용하면 데이터를 업데이트할 때에 긴 시간이 소요된다. 특히, 랜덤하게 데이터에 억세스하고 랜덤하게 데이터를 업데이트하는 경우에는 더욱 업데이트 시간이 길어진다는 점이 알려져 있다.
따라서, 비휘발성 메모리 기반의 데이터베이스에 있어서, 보다 효율적인 데이터베이스 관리 시스템의 개발은 매우 중요한 문제이다.
본 발명은 상술한 바와 같은 종래 기술의 문제점을 해결하기 위해 안출된 것으로서, 비휘발성 메모리 기반의 데이터베이스에서 랜덤한 데이터 억세스에도 짧은 업데이트 시간만이 소요되는 데이터베이스 관리 시스템 및 방법을 제안하는 것을 목적으로 한다.
또한, 본 발명은 별도의 오버헤드 없이 트랜잭션의 승인 및 거부에 대응할 수 있는 비휘발성 메모리 기반의 데이터베이스 관리 시스템 및 방법을 제안하는 것을 목적으로 한다.
또한, 본 발명은 작은 전력을 소모하여 모바일 관련 제품에도 적용될 수 있는 비휘발성 메모리 기반의 데이터베이스 관리 시스템 및 방법을 제안하는 것을 목적으로 한다.
상기의 목적을 달성하고 종래 기술의 문제점을 해결하기 위하여, 본 발명의 데이터베이스 관리 시스템은 복수의 비휘발성 메모리 소거 유닛(erase unit)들을 포함하는 데이터베이스, 및 상기 소거 유닛들 각각에 대하여 데이터 저장 공간 및 로그 저장 공간을 할당(allocate)하고, 상기 데이터 저장 공간의 원본 데이터와 관련된 변화 기록(change log)을 상기 데이터 저장 공간과 동일한 소거 유닛 내의 상기 로그 저장 공간에 저장하는 데이터베이스 관리부(database manager)를 포함하는 것을 특징으로 한다.
또한, 본 발명의 일 실시예에 따른 데이터베이스 관리 방법은 복수의 비휘발성 메모리 소거 유닛(erase unit)들을 포함하는 데이터베이스의 상기 소거 유닛들 각각에 대하여 데이터 저장 공간과 로그 저장 공간을 할당하는 단계, 및 상기 데이터 저장 공간의 원본 데이터와 관련된 변화 기록을 상기 데이터 저장 공간과 동일한 소거 유닛 내의 상기 로그 저장 공간에 저장하는 단계를 포함하는 것을 특징으로 한다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 데이터베이스 관리 시스템의 데이터베이스를 나타내는 도면이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 데이터베이스 관리 시스템의 데이터베이스(100)는 4개의 소거 유닛들(erase unit, 110, 120, 130, 140)을 포함하고, 소거 유닛들 각각에 대하여 데이터 저장 공간 및 로그 저장 공간이 할당된 다.
첫 번째 소거 유닛(110)을 예로 들면, 상기 첫 번째 소거 유닛(110)내에 3개의 페이지로 이루어진 데이터 저장 공간들(111, 112, 113) 및 4개의 섹터로 이루어진 로그 저장 공간들(114, 115, 116,117)이 존재한다.
일반적으로 비휘발성 메모리에서는 소거 시 복수의 메모리 셀들이 동시에 소거되는데, 이 때 동시에 소거되는 복수의 메모리 셀들의 최소 집합을 소거 유닛이라 한다. 즉, 소거 유닛 내의 메모리 셀들은 동시에 소거된다.
상기 첫 번째 소거 유닛(110) 내의 두 번째 데이터 저장 공간(112)에 저장된 원본 데이터의 내용을 업데이트하도록 하는 연산 장치(functional unit)의 업데이트 요구가 있으면, 상기 원본 데이터는 그대로 유지되고, 상기 원본 데이터와 관련된 변화 기록이 상기 첫 번째 소거 유닛(110) 내의 첫 번째 로그 저장 공간(114)에 저장된다.
이 때, 상기 원본 데이터에 대한 상기 연산 장치의 억세스 시도가 있으면, 상기 첫 번째 로그 저장 공간(114)에 저장된 상기 원본 데이터와 관련된 변화 기록 및 상기 원본 데이터의 내용에 기초하여 현재 데이터가 계산된다. 상기 계산된 현재 데이터는 상기 연산 장치로 출력된다.
본 발명의 데이터베이스 관리 시스템이 제공하는, 동일한 소거 유닛 내에 데이터 저장 공간 및 로그 저장 공간이 존재하는 데이터베이스 관리 방법을 본 명세서에서는 인 페이지 기록 방법(In-page logging)이라 명명한다.
상기 변화 기록은 상기 로그 저장 공간 가운데 저장 가능한(free) 영역에 순차적으로 저장된다. 상기 변화 기록은 상기 변화 기록에 상응하는 원본 데이터의 주소 정보를 포함한다.
만일 상기 첫 번째 소거 유닛(110) 내에 상기 변화 기록을 저장할 로그 저장 공간이 부족하게 되면, 다른 소거 유닛(120, 130, 140) 가운데 저장 가능한 하나의 소거 유닛이 할당되고, 상기 할당된 소거 유닛에 상기 첫 번째 소거 유닛(110)의 원본 데이터에 상응하는 현재 데이터를 저장한 뒤 상기 첫 번째 소거 유닛(110)을 소거한다. 이 때, 상기 소거된 첫 번째 소거 유닛(110)은 저장 가능한 상태가 된다. 이 같은 과정을 본 명세서에서는 병합(merge operation)이라 명명한다.
일반적으로 비휘발성 메모리는, 읽어 내려는 데이터가 저장된 주소에 관계 없이 균일한 랜덤 억세스 스피드(uniform random access speed)를 특성으로 가진다.
따라서, 본 발명의 데이터베이스 관리 시스템이 제공하는 바와 같이, 집중된 로그 저장 공간을 가지지 않고 전체 비휘발성 메모리 영역에 산포된(scattered) 로그 저장 공간을 가지고 있더라도 데이터 억세스 스피드에는 크게 영향을 미치지 않는다.
또한, 비휘발성 메모리는 데이터를 읽어 내는 시간에 비해 데이터를 저장하는 시간이 매우 긴 비대칭적 읽기/쓰기 스피드(asymmetric read/write speed)를 특성으로 가지며, 데이터를 소거하는 시간은 데이터를 저장하는 시간보다 더욱 긴 것이 일반적이다.
따라서, 일반적인 비휘발성 메모리 관리 시스템은 저장된 데이터를 업데이트하기 위해서 상기 저장된 데이터를 소거하고, 상기 소거된 저장 공간에 업데이트될 데이터를 저장하는 과정에 매우 긴 시간이 소요되는 문제점이 있다. 본 발명의 데이터베이스 관리 시스템에 의하면, 저장된 데이터를 업데이트함에 있어 상기 저장된 데이터를 직접 업데이트하는 것이 아니라, 그 업데이트에 필요한 정보를 상기 저장된 데이터와 동일한 소거 유닛 내의 로그 저장 공간에 순차적으로 저장하므로, 데이터의 소거 과정이 필요하지 않아 데이터의 업데이트 시간을 단축할 수 있다.
또한, 본 발명이 제공하는 상기 인 페이지 기록 방법은 상기 병합 과정을 가능하게 하며, 상기 병합 과정에 의하여 데이터 저장 공간 및 로그 저장 공간에 대한 개별적인 소거 과정이 필요하지 않고 단 한 번의 소거 과정에 의하여 데이터의 업데이트가 가능하다. 따라서, 로그 저장 공간이 부족하게 되는 경우에도 소요되는 시간 오버헤드가 최소화될 수 있다.
상기 병합 과정에 소요되는 시간은 하기 수학식 1과 같이 계산된다.
[수학식 1]
Cmerge = ( Kd + Kl ) x Cread + Kd x Cwrite + Cerase
여기서 Cmerge는 상기 병합 과정에 소요되는 시간, Kd는 상기 첫 번째 소거 유닛(110) 내의 데이터 저장 공간의 섹터의 수, Kl은 상기 첫 번째 소거 유닛(110) 내의 로그 저장 공간의 섹터의 수, Cread는 한 번의 읽기에 걸리는 시간, Cwrite는 한 번의 저장에 걸리는 시간, Cerase는 한 번의 소거에 걸리는 시간을 의미한다.
일반적으로, 상기 데이터베이스(100)의 원본 데이터에 대한 업데이트 요구인 트랜잭션(transaction)은 승인(commit)되거나 거부(abort)될 수 있다.
상기 트랜잭션이 승인되는 경우에는 상기 트랜잭션은 확정되고, 상기 트랜잭션의 결과가 그대로 유지된다. 반면, 상기 트랜잭션이 거부되면 상기 트랜잭션의 결과는 상기 트랜잭션 이전의 상태로 복원되어야 한다.
상기 트랜잭션에 대한 승인 또는 거부가 정해지지 않은 경우를 활성화된(active) 트랜잭션이라 한다.
본 발명이 제공하는 상기 인 페이지 기록 방법은 상기 트랜잭션이 승인되거나 거부되는 경우에도 최소화된 오버헤드로 상기 트랜잭션의 결과를 적용할 수 있다. 상기 트랜잭션이 승인되는 경우에는 추가적인 과정 없이 상기 트랜잭션의 결과가 인정된다. 상기 트랜잭션이 거부되는 경우에는 상기 거부된 트랜잭션에 대응하는 변화 기록을 무시하도록 표시하면 된다.
도 2는 본 발명의 일 실시예에 따른 데이터베이스 관리 시스템의 데이터베이스 및 데이터베이스 버퍼 간의 동작을 나타내는 도면이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 데이터베이스 관리 시스템의 데이터베이스 버퍼(220)는 복수의 데이터 저장 공간들(221) 및 복수의 로그 저장 공간들(222)을 포함한다.
데이터베이스 내의 하나의 소거 유닛(210)은 복수의 데이터 저장 공간 들(211) 및 복수의 로그 저장 공간들(212)을 포함한다.
데이터베이스 버퍼(220)는 상기 데이터베이스에 저장된 원본 데이터 가운데 연산 장치(functional unit)에 의해 억세스된 원본 데이터를 인 메모리(in-memory) 데이터로 데이터 저장 공간들(221)에 저장한다.
데이터베이스 관리 시스템은 상기 인 메모리 데이터에 대한 상기 연산 장치의 업데이트 요구가 있을 때에는, 상기 인 메모리 데이터를 상기 인 메모리 데이터의 위치에 오버라이트(overwrite)하는 인 플레이스 업데이트(in-place update)를 수행한다. 또한, 데이터베이스 관리 시스템은 상기 업데이트된 인 메모리 데이터에 관한 업데이트 기록을 상기 데이터베이스 버퍼(220)의 로그 저장 공간들(222)에 저장한다.
상기 데이터베이스 내의 또 다른 원본 데이터가 상기 연산 장치에 의해 억세스되면, 상기 억세스된 원본 데이터를 상기 데이터베이스 버퍼(220)의 데이터 저장 공간들(221)에 저장한다. 상기 데이터 저장 공간들(221)에 더 이상 저장 가능한(free) 영역이 없으면, 이전에 상기 데이터 저장 공간들(221)에 저장되어 있던 인 메모리 데이터 가운데 어느 하나가 상기 억세스된 원본 데이터 대신 상기 데이터베이스로 방출(evict)되고, 상기 방출되는 인 메모리 데이터가 저장되어 있던 영역에 상기 억세스된 원본 데이터가 새로운 인 메모리 데이터로 저장된다.
상기 방출되는 데이터에 대응하는 상기 데이터베이스의 원본 데이터가 상기 소거 유닛(210) 내에 저장되어 있다고 가정하면, 상기 데이터베이스 버퍼(220)의 상기 로그 저장 공간들(222)에 저장되어 있던 상기 방출되는 데이터에 관련된 업데이트 기록을 반영하여 상기 소거 유닛(210)의 로그 저장 공간(212)에 변화 로그를 저장한다. 상기 데이터베이스에는 상기 변화 로그가 저장되기 때문에 상기 방출되는 데이터가 상기 데이터베이스에 직접 저장될 필요는 없다.
상기 소거 유닛(210) 내의 로그 저장 공간(212)에는 상기 데이터베이스 버퍼(220)로부터 방출되는 데이터가 있을 때에만 변화 로그가 저장되므로, 본 발명의 데이터베이스 관리 시스템에 의하면 상기 데이터베이스에 대한 저장 동작(storing operation) 횟수를 줄일 수 있다. 일반적으로 비휘발성 메모리에 대한 저장 동작은 큰 전력을 필요로 하므로 이를 개선한 본 발명의 데이터베이스 관리 시스템은 휴대용 어플리케이션에도 사용되기 쉬운 장점을 가진다.
또한, 상기 인 메모리 데이터에 대한 상기 연산 장치의 업데이트 요구가 있고, 상기 데이터베이스 버퍼(220)의 로그 저장 공간(222)에 더 이상의 업데이트 기록의 저장 가능한 공간이 없을 때, 상기 인 메모리 데이터에 대응하는 상기 데이터베이스의 원본 데이터가 상기 소거 유닛(210)내에 저장되어 있다고 가정하면, 상기 인 메모리 데이터와 관련된 업데이트 기록을 반영하여 상기 소거 유닛(210)의 로그 저장 공간(212)에 변화 로그를 저장한다. 상기 데이터베이스 버퍼(220)의 로그 저장 공간(222)에는 유한한 개수의 업데이트 기록만이 저장될 수 밖에 없으므로 상기 인 메모리 데이터에 대하여 업데이트가 빈번하게 발생하면 상기 업데이트 기록은 상기 데이터베이스에 저장되어야 한다.
상기 소거 유닛(210) 내의 로그 저장 공간(212)에는 상기 데이터베이스 버퍼(220)의 로그 저장 공간(222)에 더 이상의 업데이트 기록의 저장 가능한 공간이 없을 때에만 변화 로그가 저장되므로, 본 발명의 데이터베이스 관리 시스템에 의하면 상기 데이터베이스에 대한 저장 동작(storing operation) 횟수를 줄일 수 있다. 이 경우에도, 본 발명의 데이터베이스 관리 시스템은 비휘발성 메모리에 대한 저장 동작 횟수를 줄이고 소모 전력을 줄일 수 있으므로, 휴대용 어플리케이션에도 사용되기 쉬운 장점을 가진다.
도 3은 본 발명의 일 실시예에 따른 데이터베이스 관리 시스템을 나타낸 블록도이다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 데이터베이스 관리 시스템은 데이터베이스(310), 데이터베이스 관리부(320), 데이터베이스 버퍼(330), 버퍼 관리부(340)를 포함한다.
데이터베이스(310)는 복수의 소거 유닛(erase unit)들을 포함한다.
비휘발성 메모리에서 소거 유닛이라 함은, 동시에 소거되는 메모리 셀들의 최소 집합을 의미한다.
데이터베이스 관리부(320)는 상기 소거 유닛들 각각에 대하여 데이터 저장 공간 및 로그 저장 공간을 할당하고, 상기 데이터 저장 공간의 원본 데이터와 관련된 변화 기록을 상기 데이터 저장 공간과 동일한 소거 유닛 내의 상기 로그 저장 공간에 저장한다.
이 때, 상기 데이터베이스 관리부(320)는 상기 원본 데이터에 대한 상기 연산 장치의 업데이트 요구가 있으면 상기 원본 데이터는 그대로 유지하고, 상기 업데이트 요구에 따라 상기 원본 데이터와 관련된 변화 기록을 생성한다. 상기 데 이터베이스 관리부(320)는 상기 생성된 변화 기록을 상기 원본 데이터가 저장된 상기 데이터 저장 공간과 동일한 상기 소거 유닛 내의 상기 로그 저장 공간에 저장할 수 있다.
이 때, 상기 데이터베이스 관리 시스템은 상기 원본 데이터에 대한 연산 장치의 억세스 시도가 있으면, 상기 원본 데이터와 관련된 변화 기록 및 상기 원본 데이터에 기초하여 현재 데이터를 계산하여 상기 연산 장치로 출력할 수 있다. 상기 현재 데이터를 계산하여 상기 연산 장치로 출력하는 과정은 상기 데이터베이스 관리부(320)에 의하여 수행될 수 있다.
이 때, 상기 데이터베이스 관리부(320)는 상기 변화 기록을 저장할 상기 로그 저장 공간이 부족하면, 다른 저장 가능한(free) 소거 유닛을 할당하고 상기 할당된 소거 유닛에 이전의 소거 유닛의 원본 데이터에 상응하는 현재 데이터를 저장한 뒤, 이전의 소거 유닛을 소거할 수 있다.
이 때, 상기 데이터베이스 관리부(320)는 상기 다른 저장 가능한 소거 유닛을 할당함에 있어, 각 소거 유닛의 사용 횟수에 기초하여 상기 다른 저장 가능한 소거 유닛을 선택할 수 있다.
일반적으로 비휘발성 메모리는 그 사용 수명(life span)을 연장하기 위해 웨어 레벨링(wear-leveling)이라 불리는 과정을 이용한다. 비휘발성 메모리의 메모리 셀은 저장 및 소거를 반복하면 상기 메모리 셀의 특성(characteristic)이 열화(degrade)되어 더 이상 사용 불가능한 상태가 되므로, 상기 메모리 셀의 저장 및 소거 횟수를 관리하는 과정이 필요하다. 이상적으로는 비휘발성 메모리의 메모리 셀 각각이 동일한 횟수만큼 저장 및 소거를 반복하게 되는 것이 바람직하다.
따라서, 상기 데이터베이스 관리부(320)가 상기 다른 저장 가능한 소거 유닛을 할당함에 있어 소거 유닛들 각각이 사용된 횟수에 기초하여 상기 다른 저장 가능한 소거 유닛을 선택함으로써 상기 데이터베이스(310) 내의 모든 메모리 셀의 사용 횟수를 균일하게 할 수 있고, 상기 데이터베이스의 사용 수명을 연장할 수 있다.
이 때, 상기 데이터베이스 관리부(320)는 상기 이전의 소거 유닛의 원본 데이터와 관련된 변화 기록 가운데 활성화된 트랜잭션에 대응하는 활성 변화 기록을 제외하고 현재 데이터를 생성할 수 있다.
상기 데이터베이스 관리부(320)는 상기 변화 기록 가운데 승인된 트랜잭션에 대응하는 변화 기록은 현재 데이터를 계산하는데 적용하고, 거부된 트랜잭션에 대응하는 변화 기록은 무시한다. 상기 활성화된 트랜잭션에 대응하는 변화 기록에 대하여는 승인 여부가 불확실하므로 상기 데이터베이스 관리부(320)는 상기 활성화된 트랜잭션에 대응하는 변화 기록 이전의 변화 기록에 대하여만 현재 데이터에 적용 여부를 결정한다.
이 때, 상기 데이터베이스 관리부(320)는 상기 변화 기록을 저장할 상기 로그 저장 공간이 부족하고, 상기 변화 기록 가운데 활성화된 트랜잭션에 대응하는 활성 변화 기록이 기설정된 기준 비율을 초과하면 다른 저장 가능한 소거 유닛을 오버플로우 소거 유닛으로 할당하고 상기 오버플로우 소거 유닛에 상기 변화 기록을 추가적으로 저장할 수 있다.
상기 활성화된 트랜잭션이 상기 기준 비율을 초과하여 존재하면 병합 과정의 효율이 높지 않으므로 병합 과정 대신에 다른 저장 가능한 소거 유닛을 오버플로우 소거 유닛으로 할당하고, 상기 오버플로우 소거 유닛에 이후의 변화 기록을 추가적으로 저장한다.
데이터베이스 버퍼(330)는 상기 원본 데이터 가운데 연산 장치에 의해 억세스된 원본 데이터를 인 메모리(in-memory) 데이터로 저장한다.
이 때, 상기 데이터베이스 버퍼(330)는 상기 데이터베이스(310)과 비교하여 억세스 타임(access time)이 짧은 휘발성 메모리일 수 있다. 예를 들어, 상기 데이터베이스 버퍼(330)는 다이나믹 램(Dynamic RAM) 또는 스태틱 램(Static RAM)일 수 있다.
버퍼 관리부(340)는 상기 인 메모리 데이터에 대한 상기 연산 장치의 업데이트 요구가 있으면 상기 인 메모리 데이터를 업데이트하여 상기 데이터베이스 버퍼(330)에 저장하고, 상기 업데이트된 인 메모리 데이터에 관한 업데이트 기록을 상기 데이터베이스 버퍼(330)의 다른 부분에 저장한다.
이 때, 상기 데이터베이스 관리부(320)는 상기 인 메모리 데이터가 상기 데이터베이스 버퍼(330)로부터 방출될 때에만, 상기 인 메모리 데이터와 관련된 변화 기록을 상기 인 메모리 데이터에 대응하는 상기 원본 데이터가 저장된 데이터 저장 공간과 동일한 상기 소거 유닛 내의 상기 로그 저장 공간에 저장할 수 있다.
이 때, 상기 데이터베이스 관리부(320)는 상기 인 메모리 데이터에 대한 상기 연산 장치의 업데이트 요구가 있고, 상기 데이터베이스 버퍼(330)에 더 이상 의 상기 업데이트 기록의 저장 가능한 공간이 없을 때, 상기 인 메모리 데이터와 관련된 변화 기록을 상기 인 메모리 데이터에 대응하는 상기 원본 데이터가 저장된 데이터 저장 공간과 동일한 상기 소거 유닛 내의 상기 로그 저장 공간에 저장할 수 있다.
도 4는 본 발명의 일 실시예에 따른 데이터베이스 관리 방법을 나타내는 동작 흐름도이다.
도 4를 참조하면, 본 발명의 일 실시예에 따른 데이터베이스 관리 방법은 복수의 비휘발성 메모리 소거 유닛(erase unit)들을 포함하는 데이터베이스의 상기 소거 유닛들 각각에 대하여 데이터 저장 공간과 로그 저장 공간을 할당한다(S410).
상기 데이터베이스 관리 방법은 상기 데이터 저장 공간의 원본 데이터와 관련된 변화 기록을 상기 데이터 저장 공간과 동일한 소거 유닛 내의 상기 로그 저장 공간에 저장한다(S420).
이 때, 상기 데이터베이스 관리 방법은 상기 원본 데이터에 대한 상기 연산 장치의 업데이트 요구가 있으면, 상기 원본 데이터는 그대로 유지하고 상기 원본 데이터와 관련된 변화 기록을 상기 원본 데이터가 저장된 상기 데이터 저장 공간과 동일한 상기 소거 유닛 내의 상기 로그 저장 공간에 저장할 수 있다.
상기 데이터베이스 관리 방법은 상기 원본 데이터에 대한 연산 장치의 억세스 시도가 있으면, 상기 원본 데이터와 관련된 변화 기록 및 상기 원본 데이터에 기초하여 현재 데이터를 계산한다(S430).
상기 데이터베이스 관리 방법은 상기 계산된 현재 데이터를 상기 연산 장 치로 출력한다(S440).
본 발명의 다른 실시예에 따른 데이터베이스 관리 방법은 상기 변화 기록을 저장할 상기 로그 저장 공간이 부족하면, 다른 저장 가능한 소거 유닛을 할당하고 상기 할당된 소거 유닛에 이전의 소거 유닛의 원본 데이터에 상응하는 현재 데이터를 저장한 뒤, 이전의 소거 유닛을 소거할 수 있다.
이 때, 상기 데이터베이스 관리 방법은 상기 다른 저장 가능한 소거 유닛을 할당함에 있어, 소거 유닛들 각각의 사용 횟수에 기초하여 상기 다른 저장 가능한 소거 유닛을 선택할 수 있다.
도 5는 본 발명의 일 실시예에 따른 데이터베이스 관리 방법이 제공하는 병합 과정을 나타낸 동작 흐름도이다.
도 5를 참조하면, 본 발명의 일 실시예에 따른 데이터베이스 관리 방법은 상기 변화 기록을 저장할 상기 로그 저장 공간이 부족하면, 다른 저장 가능한 소거 유닛을 할당한다(S510).
이 때, 상기 데이터베이스 관리 방법은 상기 다른 저장 가능한 소거 유닛을 할당함에 있어, 소거 유닛들 각각의 사용 횟수에 기초하여 상기 다른 저장 가능한 소거 유닛을 선택할 수 있다.
상기 데이터베이스 관리 방법은 이전의 소거 유닛의 원본 데이터와 관련된 변화 기록이 존재하는지 여부를 판단한다(S520).
상기 데이터베이스 관리 방법은 상기 원본 데이터와 관련된 변화 기록이 있으면, 상기 할당된 소거 유닛에 상기 원본 데이터 및 상기 변화 기록에 기초하여 현재 데이터를 계산한다(S530).
이 때, 상기 데이터베이스 관리 방법은 상기 이전의 소거 유닛의 원본 데이터와 관련된 변화 기록 가운데 활성화된 트랜잭션에 대응하는 활성 변화 기록을 제외하고 현재 데이터를 생성할 수 있다.
상기 데이터베이스 관리 방법은 상기 계산된 현재 데이터를 상기 할당된 소거 유닛에 저장한다(S540).
상기 데이터베이스 관리 방법은 상기 원본 데이터와 관련된 변화 기록이 없으면, 상기 원본 데이터를 상기 할당된 소거 유닛에 저장한다.
상기 데이터베이스 관리 방법은 상기 할당된 소거 유닛에 상기 현재 데이터를 저장한 뒤 상기 이전의 소거 유닛을 소거한다(S550).
본 발명의 다른 실시예에 따른 데이터베이스 관리 방법은 상기 원본 데이터 가운데 연산 장치에 의해 억세스된 데이터를 인 메모리(in-memory) 데이터로 데이터베이스 버퍼에 저장한다.
상기 데이터베이스 관리 방법은 상기 인 메모리 데이터에 대한 상기 연산 장치의 업데이트 요구가 있으면 상기 인 메모리 데이터를 업데이트하여 상기 데이터베이스 버퍼에 저장하고, 상기 업데이트된 인 메모리 데이터에 관한 업데이트 기록을 상기 데이터베이스 버퍼의 다른 부분에 저장한다.
이 때, 상기 데이터베이스 관리 방법은 상기 인 메모리 데이터가 상기 데이터베이스 버퍼로부터 방출될 때에만, 상기 인 메모리 데이터와 관련된 변화 기록을 상기 인 메모리 데이터에 대응하는 상기 원본 데이터가 저장된 데이터 저장 공 간과 동일한 상기 소거 유닛 내의 상기 로그 저장 공간에 저장한다.
이 때, 상기 데이터베이스 관리 방법은 상기 인 메모리 데이터에 대한 상기 연산 장치의 업데이트 요구가 있고, 상기 데이터베이스 버퍼에 더 이상의 상기 업데이트 기록의 저장 가능한 공간이 없을 때, 상기 인 메모리 데이터와 관련된 변화 기록을 상기 인 메모리 데이터에 대응하는 상기 원본 데이터가 저장된 데이터 저장 공간과 동일한 상기 소거 유닛 내의 상기 로그 저장 공간에 저장한다.
본 발명의 다른 실시예에 따른 데이터베이스 관리 방법은 상기 변화 기록을 저장할 상기 로그 저장 공간이 부족하고, 상기 변화 기록 가운데 활성화된 트랜잭션에 대응하는 활성 변화 기록이 기설정된 기준 비율을 초과하면 다른 저장 가능한 소거 유닛을 오버플로우 소거 유닛으로 할당하고 상기 오버플로우 소거 유닛에 상기 변화 기록을 추가적으로 저장한다.
본 발명에 따른 데이터베이스 관리 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 상기 매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
본 발명에 따르면 비휘발성 메모리 기반의 데이터베이스에서 랜덤한 데이터 억세스에도 짧은 업데이트 시간만이 소요되는 데이터베이스 관리 시스템 및 방법의 구현이 가능하다.
또한, 본 발명에 따르면 별도의 오버헤드 없이 트랜잭션의 승인 및 거부에 대응할 수 있는 비휘발성 메모리 기반의 데이터베이스 관리 시스템 및 방법의 구현 이 가능하다.
또한, 본 발명에 따르면 작은 전력을 소모하여 모바일 관련 제품에도 적용될 수 있는 비휘발성 메모리 기반의 데이터베이스 관리 시스템 및 방법의 구현이 가능하다.

Claims (21)

  1. 복수의 비휘발성 메모리 소거 유닛(erase unit)들을 포함하는 데이터베이스; 및
    상기 소거 유닛들 각각에 대하여 데이터 저장 공간 및 로그 저장 공간을 할당하고, 상기 데이터 저장 공간의 원본 데이터를 업데이트하도록 하는 연산 장치의 업데이트 요구에 대한 상기 원본 데이터와 관련된 변화 기록을 상기 데이터 저장 공간과 동일한 소거 유닛 내의 상기 로그 저장 공간에 저장하는 데이터베이스 관리부
    를 포함하는 데이터베이스 관리 시스템.
  2. 제1항에 있어서,
    상기 데이터베이스 관리 시스템은
    상기 원본 데이터에 대한 연산 장치의 억세스 시도가 있으면, 상기 원본 데이터와 관련된 변화 기록 및 상기 원본 데이터에 기초하여 현재 데이터를 계산하여 상기 연산 장치로 출력하는 것을 특징으로 하는 데이터베이스 관리 시스템.
  3. 제1항에 있어서,
    상기 데이터베이스 관리부는
    상기 원본 데이터에 대한 상기 연산 장치의 업데이트 요구가 있으면, 상기 원본 데이터는 그대로 유지하고 상기 원본 데이터와 관련된 변화 기록을 상기 원본 데이터가 저장된 상기 데이터 저장 공간과 동일한 상기 소거 유닛 내의 상기 로그 저장 공간에 저장하는 것을 특징으로 하는 데이터베이스 관리 시스템.
  4. 제1항에 있어서,
    상기 데이터베이스 관리 시스템은
    상기 원본 데이터 가운데 연산 장치에 의해 억세스된 원본 데이터를 인 메모리(in-memory) 데이터로 저장하는 데이터베이스 버퍼; 및
    상기 인 메모리 데이터에 대한 상기 연산 장치의 업데이트 요구가 있으면 상기 인 메모리 데이터를 업데이트하여 상기 데이터베이스 버퍼에 저장하고, 상기 업데이트된 인 메모리 데이터에 관한 업데이트 기록을 상기 데이터베이스 버퍼의 다른 부분에 저장하는 버퍼 관리부
    를 더 포함하는 것을 특징으로 하는 데이터베이스 관리 시스템.
  5. 제4항에 있어서,
    상기 데이터베이스 관리부는
    상기 인 메모리 데이터가 상기 데이터베이스 버퍼로부터 방출될 때에만, 상기 연산 장치의 업데이트 요구에 대한 상기 인 메모리 데이터와 관련된 변화 기록을 상기 인 메모리 데이터에 대응하는 상기 원본 데이터가 저장된 데이터 저장 공간과 동일한 상기 소거 유닛 내의 상기 로그 저장 공간에 저장하는 것을 특징으로 하는 데이터베이스 관리 시스템.
  6. 제4항에 있어서,
    상기 데이터베이스 관리부는
    상기 인 메모리 데이터에 대한 상기 연산 장치의 업데이트 요구가 있고, 상기 데이터베이스 버퍼에 더 이상의 상기 업데이트 기록의 저장 가능한 공간이 없을 때, 상기 연산 장치의 업데이트 요구에 대한 상기 인 메모리 데이터와 관련된 변화 기록을 상기 인 메모리 데이터에 대응하는 상기 원본 데이터가 저장된 데이터 저장 공간과 동일한 상기 소거 유닛 내의 상기 로그 저장 공간에 저장하는 것을 특징으로 하는 데이터베이스 관리 시스템.
  7. 제1항에 있어서,
    상기 데이터베이스 관리부는
    상기 원본 데이터와 관련된 변화 기록을 저장할 상기 로그 저장 공간이 부족하면, 다른 저장 가능한 소거 유닛을 할당하고 상기 할당된 소거 유닛에 이전의 소거 유닛의 원본 데이터에 상응하는 현재 데이터를 저장한 뒤, 이전의 소거 유닛을 소거하는 것을 특징으로 하는 데이터베이스 관리 시스템.
  8. 제7항에 있어서,
    상기 데이터베이스 관리부는
    상기 다른 저장 가능한 소거 유닛을 할당함에 있어, 소거 유닛들 각각의 사용 횟수에 기초하여 상기 다른 저장 가능한 소거 유닛을 선택하는 것을 특징으로 하는 데이터베이스 관리 시스템.
  9. 제7항에 있어서,
    상기 데이터베이스 관리부는
    상기 이전의 소거 유닛의 원본 데이터와 관련된 변화 기록 가운데 활성화된 트랜잭션에 대응하는 상기 이전의 소거 유닛의 원본 데이터와 관련된 변화 기록인 활성 변화 기록을 제외하고 현재 데이터를 생성하는 것을 특징으로 하는 데이터베이스 관리 시스템.
  10. 제1항에 있어서,
    상기 데이터베이스 관리부는
    상기 원본 데이터와 관련된 변화 기록을 저장할 상기 로그 저장 공간이 부족하고, 상기 원본 데이터와 관련된 변화 기록 가운데 활성화된 트랜잭션에 대응하는 상기 원본 데이터와 관련된 변화 기록인 활성 변화 기록이 기설정된 기준 비율을 초과하면 다른 저장 가능한 소거 유닛을 오버플로우 소거 유닛으로 할당하고 상기 오버플로우 소거 유닛에 상기 변화 기록을 추가적으로 저장하는 것을 특징으로 하는 데이터베이스 관리 시스템.
  11. 복수의 비휘발성 메모리 소거 유닛(erase unit)들을 포함하는 데이터베이스의 상기 소거 유닛들 각각에 대하여 데이터 저장 공간과 로그 저장 공간을 할당하는 단계; 및
    상기 데이터 저장 공간의 원본 데이터를 업데이트하도록 하는 연산 장치의 업데이트 요구에 대한 상기 원본 데이터와 관련된 변화 기록을 상기 데이터 저장 공간과 동일한 소거 유닛 내의 상기 로그 저장 공간에 저장하는 단계
    를 포함하는 데이터베이스 관리 방법.
  12. 제11항에 있어서,
    상기 데이터베이스 관리 방법은
    상기 원본 데이터에 대한 연산 장치의 억세스 시도가 있으면, 상기 원본 데이터와 관련된 변화 기록 및 상기 원본 데이터에 기초하여 현재 데이터를 계산하여 상기 연산 장치로 출력하는 것을 특징으로 하는 데이터베이스 관리 방법.
  13. 제11항에 있어서,
    상기 데이터베이스 관리 방법은
    상기 원본 데이터에 대한 상기 연산 장치의 업데이트 요구가 있으면, 상기 원본 데이터는 그대로 유지하고 상기 원본 데이터와 관련된 변화 기록을 상기 원본 데이터가 저장된 상기 데이터 저장 공간과 동일한 상기 소거 유닛 내의 상기 로그 저장 공간에 저장하는 것을 특징으로 하는 데이터베이스 관리 방법.
  14. 제11항에 있어서,
    상기 데이터베이스 관리 방법은
    상기 원본 데이터 가운데 연산 장치에 의해 억세스된 데이터를 인 메모리(in-memory) 데이터로 데이터베이스 버퍼에 저장하는 단계; 및
    상기 인 메모리 데이터에 대한 상기 연산 장치의 업데이트 요구가 있으면 상기 인 메모리 데이터를 업데이트하여 상기 데이터베이스 버퍼에 저장하고, 상기 업데이트된 인 메모리 데이터에 관한 업데이트 기록을 상기 데이터베이스 버퍼의 다른 부분에 저장하는 단계
    를 더 포함하는 것을 특징으로 하는 데이터베이스 관리 방법.
  15. 제14항에 있어서,
    상기 데이터베이스 관리 방법은
    상기 인 메모리 데이터가 상기 데이터베이스 버퍼로부터 방출될 때에만, 상기 연산 장치의 업데이트 요구에 대한 상기 인 메모리 데이터와 관련된 변화 기록을 상기 인 메모리 데이터에 대응하는 상기 원본 데이터가 저장된 데이터 저장 공간과 동일한 상기 소거 유닛 내의 상기 로그 저장 공간에 저장하는 것을 특징으로 하는 데이터베이스 관리 방법.
  16. 제14항에 있어서,
    상기 데이터베이스 관리 방법은
    상기 인 메모리 데이터에 대한 상기 연산 장치의 업데이트 요구가 있고, 상기 데이터베이스 버퍼에 더 이상의 상기 업데이트 기록의 저장 가능한 공간이 없을 때, 상기 연산 장치의 업데이트 요구에 대한 상기 인 메모리 데이터와 관련된 변화 기록을 상기 인 메모리 데이터에 대응하는 상기 원본 데이터가 저장된 데이터 저장 공간과 동일한 상기 소거 유닛 내의 상기 로그 저장 공간에 저장하는 것을 특징으로 하는 데이터베이스 관리 방법.
  17. 제11항에 있어서,
    상기 데이터베이스 관리 방법은
    상기 원본 데이터와 관련된 변화 기록을 저장할 상기 로그 저장 공간이 부족하면, 다른 저장 가능한 소거 유닛을 할당하고 상기 할당된 소거 유닛에 이전의 소거 유닛의 원본 데이터에 상응하는 현재 데이터를 저장한 뒤, 이전의 소거 유닛을 소거하는 것을 특징으로 하는 데이터베이스 관리 방법.
  18. 제17항에 있어서,
    상기 데이터베이스 관리 방법은
    상기 다른 저장 가능한 소거 유닛을 할당함에 있어, 소거 유닛들 각각의 사용 횟수에 기초하여 상기 다른 저장 가능한 소거 유닛을 선택하는 것을 특징으로 하는 데이터베이스 관리 방법.
  19. 제17항에 있어서,
    상기 데이터베이스 관리 방법은
    상기 이전의 소거 유닛의 원본 데이터와 관련된 변화 기록 가운데 활성화된 트랜잭션에 대응하는 상기 이전의 소거 유닛의 원본 데이터와 관련된 변화 기록인 활성 변화 기록을 제외하고 현재 데이터를 생성하는 것을 특징으로 하는 데이터베이스 관리 방법.
  20. 제11항에 있어서,
    상기 데이터베이스 관리 방법은
    상기 원본 데이터와 관련된 변화 기록을 저장할 상기 로그 저장 공간이 부족하고, 상기 원본 데이터와 관련된 변화 기록 가운데 활성화된 트랜잭션에 대응하는 상기 원본 데이터와 관련된 변화 기록인 활성 변화 기록이 기설정된 기준 비율을 초과하면 다른 저장 가능한 소거 유닛을 오버플로우 소거 유닛으로 할당하고 상기 오버플로우 소거 유닛에 상기 변화 기록을 추가적으로 저장하는 것을 특징으로 하는 데이터베이스 관리 방법.
  21. 제11항 내지 제20항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록 매체.
KR1020070042220A 2007-04-30 2007-04-30 비휘발성 메모리 기반의 데이터베이스 관리 시스템 및 방법 KR100900189B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020070042220A KR100900189B1 (ko) 2007-04-30 2007-04-30 비휘발성 메모리 기반의 데이터베이스 관리 시스템 및 방법
PCT/KR2007/003626 WO2008133373A1 (en) 2007-04-30 2007-07-27 Database management system based on in-page logging and method using the system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070042220A KR100900189B1 (ko) 2007-04-30 2007-04-30 비휘발성 메모리 기반의 데이터베이스 관리 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20080097078A KR20080097078A (ko) 2008-11-04
KR100900189B1 true KR100900189B1 (ko) 2009-06-02

Family

ID=39925807

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070042220A KR100900189B1 (ko) 2007-04-30 2007-04-30 비휘발성 메모리 기반의 데이터베이스 관리 시스템 및 방법

Country Status (2)

Country Link
KR (1) KR100900189B1 (ko)
WO (1) WO2008133373A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101020781B1 (ko) * 2009-03-04 2011-03-09 한국과학기술원 플래시 메모리를 기반으로 한 데이터베이스 시스템에 대한 로그 관리 방법
KR101644125B1 (ko) 2009-09-22 2016-07-29 삼성전자주식회사 비휘발성 메모리를 이용한 로깅 최적화 장치 및 방법
WO2011098118A1 (en) * 2010-02-09 2011-08-18 Telefonaktiebolaget Lm Ericsson (Publ) Data storage method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050271377A1 (en) 2004-06-04 2005-12-08 Seong-Jun Hong Apparatus for processing multimedia data in portable device having NAND flash memory and method thereof
US7139199B2 (en) 2004-06-28 2006-11-21 Intel Corporation Flash memory file system with transacted operations

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050271377A1 (en) 2004-06-04 2005-12-08 Seong-Jun Hong Apparatus for processing multimedia data in portable device having NAND flash memory and method thereof
US7139199B2 (en) 2004-06-28 2006-11-21 Intel Corporation Flash memory file system with transacted operations

Also Published As

Publication number Publication date
KR20080097078A (ko) 2008-11-04
WO2008133373A1 (en) 2008-11-06

Similar Documents

Publication Publication Date Title
US8862855B2 (en) Reading/writing control method and system for nonvolatile memory storage device
US8117374B2 (en) Flash memory control devices that support multiple memory mapping schemes and methods of operating same
US8738882B2 (en) Pre-organization of data
KR101297563B1 (ko) 스토리지 관리 방법 및 관리 시스템
KR101477047B1 (ko) 메모리 시스템 및 그것의 블록 병합 방법
US8140746B2 (en) Intelligent memory data management
US7689761B2 (en) Data storage system with complex memory and method of operating the same
KR101391270B1 (ko) Mram을 이용하는 비휘발성 메모리 시스템
US10991422B2 (en) Data storage device using a host memory buffer for single-level cell storage and control method for non-volatile memory
US20140129758A1 (en) Wear leveling in flash memory devices with trim commands
US20090235015A1 (en) Memory system
US20170228191A1 (en) Systems and methods for suppressing latency in non-volatile solid state devices
US9176866B2 (en) Active recycling for solid state drive
KR101403922B1 (ko) 접근 빈도에 따라 데이터를 할당하는 저장장치 및 저장방법
US20100161890A1 (en) Cache management method and cache device using sector set
US11106576B2 (en) Data storage device for managing memory resources by using flash translation layer with condensed mapping information
KR100963009B1 (ko) 파일 관리 시스템 및 방법
US11138104B2 (en) Selection of mass storage device streams for garbage collection based on logical saturation
KR100900189B1 (ko) 비휘발성 메모리 기반의 데이터베이스 관리 시스템 및 방법
KR20140109689A (ko) 하이브리드 플래시 메모리의 성능과 수명 최적화 장치 및 방법
CN108664217B (zh) 一种降低固态盘存储系统写性能抖动的缓存方法及系统
KR101026634B1 (ko) 하이브리드 플래시 메모리의 데이터 저장 방법
KR20090047880A (ko) 비휘발성 메모리의 관리 방법 및 관리 시스템
KR20090093265A (ko) 비휘발성 랜덤 액세스 메모리를 이용한 스토리지 시스템,파일 시스템 및 데이터 관리 방법 그리고 기억장치
CN112559384B (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: 20130508

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140507

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150430

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160128

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20170421

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20180425

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20190429

Year of fee payment: 11