KR20100062562A - Database system based on hybrid storage device nand flash memory and non-volatile ram, and method of updating data in the database system - Google Patents
Database system based on hybrid storage device nand flash memory and non-volatile ram, and method of updating data in the database system Download PDFInfo
- Publication number
- KR20100062562A KR20100062562A KR1020080121269A KR20080121269A KR20100062562A KR 20100062562 A KR20100062562 A KR 20100062562A KR 1020080121269 A KR1020080121269 A KR 1020080121269A KR 20080121269 A KR20080121269 A KR 20080121269A KR 20100062562 A KR20100062562 A KR 20100062562A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- flash memory
- stored
- buffer
- nand flash
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/005—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor comprising combined but independently operative RAM-ROM, RAM-PROM, RAM-EPROM cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명은 데이터베이스 시스템에 관한 것이다. 보다 구체적으로는 하이브리드 데이터 저장 시스템을 포함하는 데이터베이스 시스템과 데이터베이스 시스템에서 데이터를 업데이트하는 방법에 관한 것이다. The present invention relates to a database system. More specifically, the present invention relates to a database system including a hybrid data storage system and a method of updating data in the database system.
본 발명의 일 실시예에 따른 데이터베이스 시스템은 데이터가 저장되는 낸드 플래시 메모리, 상기 낸드 플래시 메모리를 상기 데이터의 저장장치로 이용하기 위하여 상기 데이터의 물리 주소와 논리 주소의 대응 관계를 저장하기 위한 플래시 변환 계층 매핑 테이블, 및 상기 데이터의 물리 주소와 논리 주소의 대응 관계를 변환하기 위한 플래시 변환 계층을 포함하는 하이브리드 저장 시스템; 및 상기 데이터를 업데이트하기 위하여 임시로 저장하기 위한 데이터 버퍼, 상기 데이터 중 업데이트된 부분을 임시로 저장하기 위한 로그 버퍼, 및 상기 데이터 버퍼와 상기 로그 버퍼를 관리하기 위한 버퍼 관리부를 포함하는 데이터베이스 관리 시스템을 포함한다.A database system according to an embodiment of the present invention includes a NAND flash memory in which data is stored, and a flash translation for storing a correspondence relationship between a physical address and a logical address of the data in order to use the NAND flash memory as a storage device of the data. A hybrid storage system including a hierarchical mapping table and a flash translation layer for translating a corresponding relationship between a physical address and a logical address of the data; And a data buffer for temporarily storing the data, a log buffer for temporarily storing an updated portion of the data, and a buffer manager for managing the data buffer and the log buffer. It includes.
Description
본 발명은 데이터베이스 시스템에 관한 것이다. 보다 구체적으로는 하이브리드 데이터 저장 시스템을 포함하는 데이터베이스 시스템과 데이터베이스 시스템에서 데이터를 업데이트하는 방법에 관한 것이다. The present invention relates to a database system. More specifically, the present invention relates to a database system including a hybrid data storage system and a method of updating data in the database system.
일반적으로 데이터베이스 시스템은 마그네틱 디스크(magnetic disk) 기반의 저장 시스템을 사용한다. 그러나 마그네틱 디스크는 플래시 메모리 기반의 솔리드 스테이트 디스크(Solid State Disk)에 비해 속도, 전력 소비, 신뢰성 등의 성능에 있어서 약점을 가지고 있다. Generally, a database system uses a magnetic disk based storage system. Magnetic disks, however, have weaknesses in performance, such as speed, power consumption, and reliability, compared to solid state disks based on flash memory.
그러나 플래시 메모리 역시 이전에 기록된 메모리 영역에 데이터의 덮어쓰기가 불가능하기 때문에, 기존의 메모리 영역에 데이터를 쓰기 위해서는 그 부분을 지워주어야 한다. 플래시 메모리에서 지우는 단위가 블록 단위(128KB)이기 때문에, 데이터를 쓰는데 있어서 큰 오버헤드가 생긴다. However, since the flash memory cannot overwrite the previously written memory area, the data must be erased in order to write the data in the existing memory area. Since the unit of erasing from the flash memory is a block unit (128 KB), there is a large overhead in writing data.
이러한 문제를 해결하기 위해 종래 특허출원 제2002-0052349호, 특허출원 제2003-0054076호, 특허출원 제2005-0011292호 등은 플래시 변환 계층 및 플래시 메모리 사용에 관하여 개시하고 있다. 이들 종래 특허출원된 발명들은 메모리의 제약점을 보완해주는 플래시 변환 계층의 사용에 관련된 기술이다. 플래시 변환 계층은 논리 주소를 물리 주소로 변환시켜 줌으로써 새로운 영역에 데이터를 쓸 수 있게 해주기 때문에 기존 데이터에 대한 덮어씀을 없앰으로써 지우기 오버헤드를 없애주는 역할을 하게 된다. In order to solve this problem, Patent Application Nos. 2002-0052349, Patent Application Nos. 2003-0054076, and Patent Application Nos. 2005-0011292 disclose a flash conversion layer and use of a flash memory. These prior patented inventions relate to the use of the flash translation layer to compensate for memory limitations. The Flash translation layer eliminates the overhead of erasing by eliminating overwriting of existing data by converting logical addresses into physical addresses, allowing the data to be written to new areas.
또한 데이터베이스 시스템은 데이터의 신뢰성 및 일관성을 보장해야 하기 때문에 저장 시스템에 로그 영역을 두어서 업데이트 된 데이터를 먼저 로그 영역에 기록한 후에 나중에 데이터 영역의 데이터를 업데이트 하게 된다. 이러한 데이터에 대한 두 번 쓰기는 데이터베이스 시스템에서 신뢰성 및 일관성을 보장하며 빠른 고장 회복을 지원하는 기술이긴 하지만, 시스템의 쓰기 성능을 감소시킨다. In addition, the database system must ensure the reliability and consistency of the data, so that the log area is stored in the storage system so that the updated data is first recorded in the log area and then the data in the data area is updated later. Double writes to this data reduce the write performance of the system, although it is a technology that ensures reliability and consistency in database systems and supports fast fault recovery.
이러한 문제를 해결하기 위해 종래 특허출원 제2007-0016577호는 두 번 쓰기 연산 데이터에 대해서 저널 영역의 논리주소와 연결되는 물리주소를, 홈 영역과 연결된 논리주소로 변환시켜주는 방향선회 방법을 제공한다. 이러한 방향선회 방법은 저널링 파일 시스템의 어떤 작동에도 영향을 끼치지 않음으로써, 컴퓨터 시스템의 쓰기 성능 감소를 막음과 동시에 컴퓨터 시스템의 데이터 일관성 유지, 빠른 고장 회복의 기능을 제공해 줄 수 있게 된다.In order to solve such a problem, the prior patent application 2007-0016577 provides a turning method for converting a physical address connected to a logical address of a journal area to a logical address connected to a home area, for two write operation data. . This turning method does not affect any operation of the journaling file system, thereby preventing the computer system from reducing the write performance, and providing the function of maintaining the data consistency of the computer system and recovering from the fast failure.
따라서, 본 발명은, 낸드 플래시 메모리와 비휘발성 램으로 구성된 하이브리드 저장 장치를 데이터베이스 시스템에 적용함으로써 성능, 신뢰성, 전력 소비 효율이 우수하고, 빠른 고장 회복 기능 및 빠른 부팅 능력을 가진 데이터베이스 관리 시스템을 제공하는 것을 목적으로 한다.Accordingly, the present invention provides a database management system having excellent performance, reliability, power consumption efficiency, fast failure recovery, and fast booting capability by applying a hybrid storage device consisting of NAND flash memory and nonvolatile RAM to a database system. It aims to do it.
또한, 데이터베이스 관리 시스템의 로그 버퍼를 낸드 플래시의 페이지 단위인 2KB 단위로 관리함으로써, 쓰기 성능이 향상되고 데이터의 신뢰성 및 일관성이 향상된 데이터베이스 관리 시스템을 제공하는 것을 목적으로 한다.In addition, the object of the present invention is to provide a database management system in which write performance is improved and data reliability and consistency are improved by managing the log buffer of the database management system in units of 2KB, which is a page unit of NAND flash.
본 발명의 일 실시예에 따른 데이터베이스 시스템은 데이터가 저장되는 낸드 플래시 메모리, 상기 낸드 플래시 메모리를 상기 데이터의 저장장치로 이용하기 위하여 상기 데이터의 물리 주소와 논리 주소의 대응 관계를 저장하기 위한 플래시 변환 계층 매핑 테이블, 및 상기 데이터의 물리 주소와 논리 주소의 대응 관계를 변환하기 위한 플래시 변환 계층을 포함하는 하이브리드 저장 시스템; 및 상기 데이터를 업데이트하기 위하여 임시로 저장하기 위한 데이터 버퍼, 상기 데이터 중 업데이트된 부분을 임시로 저장하기 위한 로그 버퍼, 및 상기 데이터 버퍼와 상기 로그 버퍼를 관리하기 위한 버퍼 관리부를 포함하는 데이터베이스 관리 시스템을 포함한다.A database system according to an embodiment of the present invention includes a NAND flash memory in which data is stored, and a flash translation for storing a correspondence relationship between a physical address and a logical address of the data in order to use the NAND flash memory as a storage device of the data. A hybrid storage system including a hierarchical mapping table and a flash translation layer for translating a corresponding relationship between a physical address and a logical address of the data; And a data buffer for temporarily storing the data, a log buffer for temporarily storing an updated portion of the data, and a buffer manager for managing the data buffer and the log buffer. It includes.
여기서, 상기 낸드 플래시 메모리는 상기 데이터가 저장되어 보존되는 데이터 영역과 상기 데이터가 상기 데이터 영역에 저장되기 전에 임시로 저장되는 로그 영역을 포함하는 것이 바람직하다.The NAND flash memory may include a data area in which the data is stored and preserved, and a log area temporarily stored before the data is stored in the data area.
여기서, 상기 로그 영역에 저장된 데이터는 상기 플래시 변환 계층 매핑 테이블에 저장된 상기 데이터의 물리 주소와 논리 주소의 대응 관계를 변환함으로써 상기 데이터 영역에 저장된 것으로 보이는 것이 바람직하다.Here, it is preferable that the data stored in the log area is stored in the data area by converting a corresponding relationship between a physical address and a logical address of the data stored in the flash translation layer mapping table.
여기서, 상기 하이브리드 저장 시스템은 상기 플래시 변환 계층을 저장하기 위한 비휘발성 램을 더 포함하고, 상기 플래시 변환 계층은 상기 비휘발성 램에 구현되는 것이 바람직하다. The hybrid storage system may further include a nonvolatile RAM for storing the flash translation layer, and the flash translation layer is implemented in the nonvolatile RAM.
본 발명의 일 실시예에 따른 데이터베이스 시스템에 포함된 낸드 플래시 메모리에 저장되어 있는 데이터를 업데이트하는 방법은, 상기 낸드 플래시 메모리에 저장된 데이터를 상기 낸드 플래시 메모리의 페이지 단위로 데이터 버퍼로 복사하는 단계; 상기 데이터 버퍼에 저장된 상기 페이지 단위 데이터를 업데이트하는 단계; 상기 데이터 버퍼에 저장된 페이지 단위 데이터 중 업데이트된 부분을 로그 버퍼로 복사하는 단계; 상기 로그 버퍼에 저장된 상기 업데이트된 부분을 포함하는 업데이트된 페이지 단위 데이터를 상기 낸드 플래시 메모리로 복사하는 단계; 및 상기 낸드 플래시 메모리의 플래시 변환 계층 매핑 테이블의 데이터를 변환하여 데이터의 업데이트를 완료하는 단계를 포함한다.A method of updating data stored in a NAND flash memory included in a database system according to an embodiment of the present invention may include copying data stored in the NAND flash memory into a data buffer in units of pages of the NAND flash memory; Updating the page unit data stored in the data buffer; Copying an updated portion of the page unit data stored in the data buffer to a log buffer; Copying updated page unit data including the updated portion stored in the log buffer to the NAND flash memory; And converting data in the flash translation layer mapping table of the NAND flash memory to complete updating of the data.
본 발명에 의하면, 낸드 플래시 메모리와 비휘발성 램을 사용하는 하이브리드 저장 시스템을 마그네틱 디스크 대신에 데이터베이스 시스템에 적용함으로써 결과적으로 데이터베이스 관리 시스템의 성능, 신뢰성, 전력 소비 효율을 향상시킬 수 있다. 또한, 데이터베이스 관리 시스템의 데이터 스캔 시간을 줄여 빠른 고장 회복 기능과 빠른 부팅을 달성할 수 있다.According to the present invention, by applying a hybrid storage system using NAND flash memory and nonvolatile RAM to a database system instead of a magnetic disk, the performance, reliability, and power consumption efficiency of the database management system can be improved. It also reduces the time required to scan data in the database management system, resulting in faster fault recovery and faster boot.
또한 본 발명에 의하면 데이터베이스 관리 시스템의 로그 버퍼를 낸드 플래시의 페이지 단위(예를 들어 2KB)로 관리함으로써, 중복 쓰기 연산에 대한 성능감소를 막을 수 있고, 데이터의 신뢰성 및 일관성을 향상시킬 수 있다.In addition, according to the present invention, by managing the log buffer of the database management system in NAND flash page units (for example, 2KB), it is possible to prevent the performance decrease for duplicate write operations and to improve the reliability and consistency of data.
이하, 본 발명의 바람직한 실시예를 첨부된 도면을 참조하여 설명한다. 단 이하 설명하는 실시예는 본 발명을 예시하는 것일 뿐 본 발명의 내용이 하기 실시예에 한정되는 것은 아니다. 또한, 본 발명의 요지를 흐릴 수 있는 공지된 구성요소는 설명을 생략하고, 본 발명의 핵심 사상을 이루는 구성요소에 대해서만 설명하도록 한다. 당업자라면 이하의 설명으로부터 본 발명을 이해하고, 본 발명에 따른 데이터베이스 시스템(100)을 용이하게 구현하여 실시할 수 있을 것이다.Hereinafter, exemplary embodiments of the present invention will be described with reference to the accompanying drawings. However, the embodiments described below are merely illustrative of the present invention and the contents of the present invention are not limited to the following examples. In addition, well-known components that may obscure the gist of the present invention will be omitted, and only components that form the core idea of the present invention will be described. Those skilled in the art will understand the present invention from the following description, and can easily implement and implement the database system 100 according to the present invention.
도 1은 본 발명의 일 실시예에 따른 데이터베이스 시스템(100)을 나타낸 도면이다. 데이터베이스 시스템(100)은 데이터베이스 관리 시스템(110) 및 하이브리드 저장 시스템(120)을 포함한다. 데이터베이스 관리 시스템(110)은 버퍼 관리 부(111), 데이터 버퍼(112) 및 로그 버퍼(113)를 포함한다. 하이브리드 저장 시스템(120)은 플래시 변환 계층(121), 플래시 변환 계층 매핑 테이블(122) 및 낸드 플래시 메모리(122)를 포함한다. 낸드 플래시 메모리(122)는 데이터 영역(123) 및 로그 영역(124)을 포함한다.1 is a diagram illustrating a database system 100 according to an embodiment of the present invention. Database system 100 includes a
낸드 플래시 메모리(123)는 데이터베이스 시스템에서 데이터를 주로 저장 및 보존하는 역할을 한다. 플래시 변환 계층(121)은 낸드 플래시 메모리(123)를 데이터의 저장장치로 이용할 수 있도록 데이터의 물리주소와 논리주소의 대응관계를 변환하는 역할을 한다. 데이터의 물리주소와 논리주소의 대응관계는 플래시 변환 계층 매핑 테이블(122)에 저장된다. 플래시 변환 계층(121)은 플래시 변환 계층 매핑 테이블(122)을 참조하여 데이터의 물리주소와 논리주소의 대응관계를 변환한다. The NAND
데이터 버퍼(112)는 데이터베이스 시스템의 주 데이터 저장 영역인 낸드 플래시 메모리(123)에 저장된 데이터를 업데이트하기 위하여 업데이트할 대상 데이터를 임시로 저장하는 역할을 한다. 로그 버퍼(113)는 데이터 버퍼(112)에 저장된 데이터 중 업데이트된 부분만을 임시로 저장하는 역할을 한다. 버퍼 관리부(111)는 데이터 버퍼(112)와 로그 버퍼(113)의 데이터 입출력을 제어하고, 데이터 버퍼(112) 및 로그 버퍼(113)에 저장된 데이터의 메타 데이터를 관리한다. The
낸드 플래시 메모리(123)는 데이터베이스 시스템의 주 데이터 저장소 역할을 하는 데이터 영역(124)과, 데이터 영역(124)에 데이터를 저장하기 전에 데이터를 임시로 기록하는 로그 영역(125)을 포함한다. 데이터 영역(124)과 로그 영역(125)은 낸드 플래시 메모리(123)에서 물리적으로 구분되는 영역이 아니라 플래시 변환 계층(121) 및 플래시 변환 계층 매핑 테이블(122)에 의하여 논리적으로 구분되는 영역이다. 따라서, 낸드 플래시 메모리(123)의 물리적 특정 영역에 어떤 데이터가 저장된 경우, 플래시 변환 계층 매핑 테이블(122)의 논리 주소-물리 주소의 대응 관계에 따라 그 데이터는 데이터 영역(124)에 저장된 것일 수도 있고, 로그 영역(125)에 저장된 것일 수도 있다. 즉, 그 데이터는 데이터 영역(124)과 로그 영역(125) 중 어느 한 곳에 저장된 것으로 볼 수 있다.The NAND
플래시 변환 계층 매핑 테이블(122)은 비휘발성 램에 저장되어 구현되는 것이 바람직하다. 비휘발성 램은 낸드 플래시 메모리와 달리 데이터의 덮어쓰기가 가능하다는 장점이 있으나 가격 대비 용량이 작다는 단점이 있다. 따라서, 본 발명에서는 메타 데이터와 같은 빈번한 업데이트가 일어나는 데이터는 비휘발성 램에 저장하고, 데이터베이스 시스템(100)에 기록되는 주 데이터는 낸드 플래시 메모리(123)에 저장한다. 이렇게 데이터의 종류에 따라 저장 장소를 다르게 함으로써 부팅 혹은 복구 시 스캔 시간을 줄일 수 있기 때문에 빠른 부팅과 빠른 복구를 달성할 수 있다. 본 명세서에서 하이브리드 저장 시스템(120)에서 하이브리드라는 용어는 데이터베이스의 저장 시스템이 낸드 플래시 메모리(123)와 비휘발성 램을 모두 포함하는 것을 의미한다. 그러나, 플래시 변환 계층 매핑 테이블(122)이 반드시 비휘발성 램으로 구현되어야 하는 것은 아니고, 종래의 방법으로 구현될 수도 있다. 또한, 플래시 변환 계층 매핑 테이블(122)을 비휘발성 램에 저장함으로써, 종래의 방법에서 플래시 메모리에 저장하는 경우에 비하여 데이터를 지우고 쓰기 연산을 해야하는 오버헤드를 줄일 수 있다. The flash translation layer mapping table 122 is preferably stored in a nonvolatile RAM and implemented. Non-volatile RAM has the advantage of being able to overwrite data unlike NAND flash memory, but it has the disadvantage of being small in price. Therefore, in the present invention, data in which frequent updates such as metadata are generated is stored in the nonvolatile RAM, and main data recorded in the database system 100 is stored in the
도 2는 본 발명의 일 실시예에 따른 데이터베이스 관리 시스템(110)을 나타낸 도면이다. 앞서 설명한 바와 같이, 데이터베이스 관리 시스템(110)은 버퍼 관리부(111), 데이터 버퍼(112) 및 로그 버퍼(113)를 포함한다.2 is a diagram illustrating a
데이터 버퍼(112)는 데이터베이스 시스템(100)에 저장된 데이터(201)의 업데이트를 위해 데이터(201)를 임시 저장하는 역할을 한다. 데이터베이스 시스템(100)을 사용하는 애플리케이션 프로그램으로부터 데이터베이스 시스템(100)에 저장된 데이터(201)의 업데이트 명령이 데이터베이스 관리 시스템(110)으로 전달되면, 낸드 플래시 메모리(123)의 데이터 영역(124)에 저장된 데이터(201)가 데이터 버퍼(112)로 복사된다. 그 후, 데이터 버퍼(112)에 저장된 데이터(201)가 업데이트된다. 즉, 도 2에서, 데이터(201) 중에서 일부 (202)가 변경됨으로써 데이터(201)가 업데이트된다. 이때, 데이터(201) 중 업데이트된 부분(202)이 로그 버퍼(113)에 저장된다. 버퍼 관리부(111)는 업데이트된 부분(202)을 포함하는 데이터(201)를 낸드 플래시 메모리(123)의 페이지 단위 크기로 관리한다. 예를 들어, 낸드 플래시 메모리(123)의 페이지 단위 크기가 2KB인 경우, 로그 버퍼(113)에 저장되는 업데이트된 부분(202)을 2KB 단위로 관리하고, 낸드 플래시 메모리(123)의 페이지 단위 크기가 4KB인 경우, 로그 버퍼(113)에 저장되는 업데이트된 부분(202)을 4KB 단위로 관리한다. 로그 버퍼(113)에 저장되는 업데이트된 부분(202)을 일정 크기(예를 들어 2KB)로 관리한다고 함은 로그 버퍼(113)에 저장된 업데이트된 부분(202)이 일정 크기(예를 들어 2KB)의 데이터(202) 중 어느 데이터(202)의 어느 부분인지를 버퍼 관 리부(111)가 메타데이터로서 파악하고 있는 것을 의미한다. The
도 3은 본 발명에 따른 플래시 변환 계층 매핑 테이블(122)의 구조와 플래시 변환 계층(121)의 역할을 설명하기 위한 도면이다. 플래시 변환 계층 매핑 테이블(122)은 낸드 플래시 메모리(123)를 데이터베이스 시스템(100)의 데이터 저장 장소로 사용하기 위하여, 낸드 플래시 메모리(123)의 논리 주소와 물리 주소의 대응관계를 저장한다. 플래시 변환 계층(121)은 플래시 변환 계층 매핑 테이블(303)을 참조하여 낸드 플래시 메모리(123)의 물리주소와 데이터의 논리주소를 매핑한다.3 is a view for explaining the structure of the flash translation layer mapping table 122 and the role of the
도 4는 본 발명에 따른 데이터베이스 시스템에서 데이터 트랜잭션 쓰기를 설명하기 위한 도면이다. 4 is a diagram illustrating a data transaction write in the database system according to the present invention.
먼저, 데이터(201)의 업데이트를 위해 데이터(201)가 낸드 플래시 메모리(122)의 데이터 영역(111)로부터 데이터베이스 관리 시스템(110)의 데이터 버퍼(112)로 복사된다 (S401). 이때, 플래시 변환 계층(121)은 데이터의 논리 주소와 물리 주소를 서로 변환하는 역할을 한다. First, the
그 후, 데이터베이스 시스템(100)을 사용하고 있는 애플리케이션에 의하여 데이터 버퍼(112)에 저장된 데이터(201)의 업데이트가 수행된다 (S402). 업데이트된 데이터는 업데이트된 부분(202)을 포함한다. Thereafter, an update of the
그 후, 데이터(201)에서 업데이트된 부분(202)은 로그 버퍼(113)에 저장된다 (S403). Thereafter, the updated
로그 버퍼(113)에 저장된 업데이트된 데이터(202)들은 낸드 플래시 메모리(122)의 페이지 단위(예를 들어, 2KB 또는 4KB)로 관리된다. 즉, 로그 버퍼에 저장된 업데이트된 데이터(202)들이 각각 데이터 버퍼(112)에 저장된 데이터(201)들 중 어느 데이터(201)의 업데이트된 부분인지, 해당 데이터(201)의 어느 위치가 업데이트된 것인지가 버퍼 관리부(111)에 의하여 관리된다.The updated
이후, 로그 버퍼(113)의 업데이트된 데이터(202)들이 낸드 플래시 메모리(122)의 로그 영역(124)으로 로깅(logging)된다 (S404). 이때, 업데이트된 부분(202)만 낸드 플래시 메모리(122)의 로그 영역(124)으로 로깅되는 것이 아니라, 업데이트된 부분(202)과 업데이트된 부분(202)이 속하는 페이지 단위의 데이터(201)의 나머지 부분이 함께 머징(merging)되어 페이지 단위 데이터가 로그 영역(124)으로 로깅된다. 페이지 단위의 데이터(201)의 나머지 부분은 데이터 버퍼(112) 또는 낸드 플래시 메모리(122)로부터 획득할 수 있다. Thereafter, the updated
이와 같이, 본 발명에서는 업데이트된 데이터(202)를 낸드 플래시 메모리로 로깅할 때, 페이지 단위 데이터(201)를 모두 로깅함으로써 데이터 로깅의 효율성을 높일 수 있다. 예를 들어, 데이터 버퍼(112)에 저장된 페이지 단위 크기(예를 들어 2KB)의 데이터 중 50B가 업데이트가 된 경우, 로그 버퍼(113)에는 그 업데이트된 50B만 저장되고, 버퍼 관리부(111)는 이 50B의 업데이트된 부분이 어떤 데이터의 업데이트된 부분인지, 그 데이터의 어떤 위치가 업데이트된 것인지를 파악하고 있다. 그 후 데이터베이스 관리 시스템(110)에서 커밋 신호가 발생하면 로그 버퍼(113)에 저장된 50B의 업데이트 데이터(202)들은 낸드 플래시 메모리(122)의 로 그 영역(124)으로 로깅된다. 이때, 50B의 업데이트된 데이터(202)만 로깅되는 것이 아니라 페이지 단위의 데이터 전체(201)가 낸드 플래시 메모리(122)의 로그 영역(124)으로 복사된다. 만약 본 발명에서 제안하는 방법과 달리 로그 버퍼(113)에서 업데이트된 부분(113)만을 낸드 플래시 메모리(122)로 로깅한다면, 추후 다시 업데이트된 부분(202)과 업데이트되지 않은 부분을 포함하여 전체 페이지 데이터(201)를 다시 한번 낸드 플래시 메모리(122)에 기록해야 하므로, 업데이트된 부분(202)은 중복해서 두 번 기록되게 된다. 따라서, 플래시 메모리에서의 쓰기 횟수의 증가로 데이터베이스 시스템의 성능이 저하된다.As described above, in the present invention, when logging the updated
그 후, 플래시 변환 계층(121)은 플래시 변환 계층 매핑 테이블(122)의 논리 주소와 물리 주소의 매핑 관계를 변환하여, 로그 영역(125)의 데이터를 데이터 영역(124)으로 이동시킨다 (S405). 여기서, 로그 영역(125)의 데이터를 데이터 영역(124)으로 이동시킨다는 것은 로그 영역(125)의 데이터를 물리적으로 데이터 영역(124)으로 이동시킨다는 것이 아리나 플래시 변환 계층 매핑 테이블(122)의 물리 주소와 논리 주소의 관계를 변환시키는 것을 의미한다.Thereafter, the
다음으로 도 5를 참조하여 본 발명에 따른 데이터베이스 시스템에서 데이터를 업데이트하는 방법에 관하여 설명한다. 본 발명에 따른 데이터베이스 시스템에서 데이터를 업데이트하는 방법은 낸드 플래시 메모리에 저장된 데이터를 낸드 플래시 메모리의 페이지 단위로 데이터 버퍼로 복사하는 단계(S401), 데이터 버퍼에 저장된 페이지 단위 데이터를 업데이트하는 단계(S402), 데이터 버퍼에 저장된 페 이지 단위 데이터 중 업데이트된 부분을 로그 버퍼로 복사하는 단계(S403), 로그 버퍼에 저장된 업데이트된 부분을 포함하는 업데이트된 페이지 단위 데이터를 낸드 플래시 메모리로 복사하는 단계(S404) 및 낸드 플래시 메모리의 플래시 변환 계층 매핑 테이블의 데이터를 변환하여 데이터의 업데이트를 완료하는 단계(S405)를 포함한다. 이하, 각 단계에 대하여 상세히 설명한다.Next, a method of updating data in the database system according to the present invention will be described with reference to FIG. 5. The method for updating data in a database system according to the present invention includes the steps of copying data stored in a NAND flash memory to a data buffer in units of pages of a NAND flash memory (S401), and updating page unit data stored in a data buffer (S402). ), Copying the updated portion of the page unit data stored in the data buffer to the log buffer (S403), copying the updated page unit data including the updated portion stored in the log buffer to the NAND flash memory (S404). And converting the data in the flash translation layer mapping table of the NAND flash memory to complete updating of the data (S405). Hereinafter, each step will be described in detail.
먼저, 데이터(201)의 업데이트를 위해 데이터(201)가 낸드 플래시 메모리(122)의 데이터 영역(111)로부터, 플래시 변환 계층(121)을 통해, 데이터베이스 관리 시스템(110)의 데이터 버퍼(112)로 복사된다 (S401). 그 후, 데이터베이스 시스템(100)을 사용하고 있는 애플리케이션에 의하여 데이터 버퍼(112)에 저장된 데이터(201)의 업데이트가 수행된다 (S402). 그 후, 데이터(201)에서 업데이트된 부분(202)은 로그 버퍼(113)에 저장된다 (S403). First, for updating the
로그 버퍼(113)에 저장된 업데이트된 데이터(202)들은 낸드 플래시 메모리(122)의 페이지 단위(예를 들어, 2KB 또는 4KB)로 관리된다. 즉, 로그 버퍼에 저장된 업데이트된 데이터(202)들이 각각 데이터 버퍼(112)에 저장된 데이터(201)들 중 어느 데이터(201)의 업데이트된 부분인지, 해당 데이터(201)의 어느 위치가 업데이트된 것인지가 버퍼 관리부(111)에 의하여 관리된다. 이후, 로그 버퍼(113)의 업데이트된 데이터(202)들이 낸드 플래시 메모리(122)의 로그 영역(124)으로 로깅(logging)된다 (S404). 그 후, 플래시 변환 계층(121)은 플래시 변환 계층 매핑 테이블(122)의 논리 주소와 물리 주소의 매핑 관계를 변환하여, 로그 영역(125)의 데이터를 데이터 영역(124)으로 이동시킨다 (S405).The updated
이상, 본 발명의 바람직한 실시예를 예로 들어 본 발명을 설명하였으나 이러한 실시예는 예시적인 것에 불과하고, 본 발의 권리범위는 이하의 청구범위에 의하여 정하여 진다. 또한, 전술한 실시예뿐만 아니라 본 발명의 사상에 포함되는 어떠한 발명도 본 발명의 권리범위에 포함된다. As mentioned above, although this invention was demonstrated to the preferred embodiment of this invention as an example, such an embodiment is only illustrative, The scope of the present invention is defined by the following claims. In addition, any invention included in the spirit of the present invention as well as the above-described embodiment is included in the scope of the present invention.
도 1은 본 발명에 따른 데이터베이스 시스템(100)을 나타낸 도면.1 illustrates a database system 100 in accordance with the present invention.
도 2는 본 발명의 일 실시예에 따른 데이터베이스 관리 시스템(110)을 나타낸 도면.2 illustrates a
도 3은 본 발명에 따른 플래시 변환 계층 매핑 테이블(122)의 구조와 플래시 변환 계층(121)의 역할을 설명하기 위한 도면.3 is a view for explaining the structure of the flash translation layer mapping table 122 and the role of the
도 4는 본 발명에 따른 데이터베이스 시스템에서 데이터 트랜잭션 쓰기를 설명하기 위한 도면.4 is a diagram illustrating a data transaction write in a database system according to the present invention.
도 5는 본 발명에 따른 데이터베이스 시스템에서 데이터를 업데이트하는 방법의 순서도. 5 is a flow chart of a method of updating data in a database system in accordance with the present invention.
Claims (5)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020080121269A KR100995546B1 (en) | 2008-12-02 | 2008-12-02 | Hybrid storage-based database system using NAND flash memory and nonvolatile RAM and how to update data in database system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020080121269A KR100995546B1 (en) | 2008-12-02 | 2008-12-02 | Hybrid storage-based database system using NAND flash memory and nonvolatile RAM and how to update data in database system |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20100062562A true KR20100062562A (en) | 2010-06-10 |
| KR100995546B1 KR100995546B1 (en) | 2010-11-22 |
Family
ID=42362806
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020080121269A Expired - Fee Related KR100995546B1 (en) | 2008-12-02 | 2008-12-02 | Hybrid storage-based database system using NAND flash memory and nonvolatile RAM and how to update data in database system |
Country Status (1)
| Country | Link |
|---|---|
| KR (1) | KR100995546B1 (en) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR101369592B1 (en) * | 2010-12-28 | 2014-03-06 | 한양대학교 산학협력단 | Method and apparatus for guaranteeing data reliability in falsh memory based storage devices with volatile buffer memory |
| WO2014061847A1 (en) * | 2012-10-17 | 2014-04-24 | 주식회사 리얼타임테크 | Apparatus and method for logging and recovering transaction of database built in mobile environment |
| US9158671B2 (en) | 2011-08-17 | 2015-10-13 | Samsung Electronics Co., Ltd. | Nonvolatile memory system with migration manager |
| WO2017190604A1 (en) * | 2016-05-06 | 2017-11-09 | 华为技术有限公司 | Transaction recovery method in database system and database management system |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR101482013B1 (en) * | 2012-05-30 | 2015-01-14 | 한국외국어대학교 연구산학협력단 | Method and Apparatus for Updating MetaData of Flash-Memory Based Data System |
-
2008
- 2008-12-02 KR KR1020080121269A patent/KR100995546B1/en not_active Expired - Fee Related
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR101369592B1 (en) * | 2010-12-28 | 2014-03-06 | 한양대학교 산학협력단 | Method and apparatus for guaranteeing data reliability in falsh memory based storage devices with volatile buffer memory |
| US9158671B2 (en) | 2011-08-17 | 2015-10-13 | Samsung Electronics Co., Ltd. | Nonvolatile memory system with migration manager |
| WO2014061847A1 (en) * | 2012-10-17 | 2014-04-24 | 주식회사 리얼타임테크 | Apparatus and method for logging and recovering transaction of database built in mobile environment |
| KR101419428B1 (en) * | 2012-10-17 | 2014-07-17 | 주식회사 리얼타임테크 | Apparatus for logging and recovering transactions in database installed in a mobile environment and method thereof |
| WO2017190604A1 (en) * | 2016-05-06 | 2017-11-09 | 华为技术有限公司 | Transaction recovery method in database system and database management system |
Also Published As
| Publication number | Publication date |
|---|---|
| KR100995546B1 (en) | 2010-11-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20230273876A1 (en) | Memory system, data storage device, user device and data management method thereof | |
| US10261913B2 (en) | Persistent memory for key-value storage | |
| CN103577121B (en) | A kind of highly reliable linear file access method based on Nand Flash | |
| KR101303524B1 (en) | Metadata redundancy schemes for non-volatile memories | |
| KR102002830B1 (en) | Segment cleaning apparatus and method thereof | |
| JP5066209B2 (en) | Controller, data storage device, and program | |
| US9323659B2 (en) | Cache management including solid state device virtualization | |
| US9996542B2 (en) | Cache management in a computerized system | |
| KR102252419B1 (en) | System and method for efficient address translation on Flash memory device | |
| CN103577574B (en) | High-reliability linear file system based on nand flash | |
| US20150331624A1 (en) | Host-controlled flash translation layer snapshot | |
| US11030092B2 (en) | Access request processing method and apparatus, and computer system | |
| JPWO2007066720A1 (en) | Nonvolatile storage device, data read method, and management table creation method | |
| CN108431783A (en) | Access request processing method, device and computer system | |
| KR20070096429A (en) | File system applied to NAND flash memory supporting fast mounting | |
| CN103544110A (en) | Block-level continuous data protection method based on solid-state disc | |
| KR20200060220A (en) | NVM-based file system and method for data update using the same | |
| KR100995546B1 (en) | Hybrid storage-based database system using NAND flash memory and nonvolatile RAM and how to update data in database system | |
| CN110515550B (en) | Method and device for separating cold data and hot data of SATA solid state disk | |
| KR101191650B1 (en) | Apparatus and method for mapping the data address in NAND flash memory | |
| CN102323907A (en) | Embedded ARM processor stores and deletes NANDFLASH data | |
| US8850160B2 (en) | Adaptive write behavior for a system having non-volatile memory | |
| KR100866513B1 (en) | Data processing method using flash memory based journaling file system | |
| US9977612B1 (en) | System data management using garbage collection and logs | |
| Lee et al. | RMSS: an efficient recovery management scheme on NAND flash memory based solid state disk |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A201 | Request for examination | ||
| PA0109 | Patent application |
St.27 status event code: A-0-1-A10-A12-nap-PA0109 |
|
| PA0201 | Request for examination |
St.27 status event code: A-1-2-D10-D11-exm-PA0201 |
|
| D13-X000 | Search requested |
St.27 status event code: A-1-2-D10-D13-srh-X000 |
|
| D14-X000 | Search report completed |
St.27 status event code: A-1-2-D10-D14-srh-X000 |
|
| PG1501 | Laying open of application |
St.27 status event code: A-1-1-Q10-Q12-nap-PG1501 |
|
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection |
St.27 status event code: A-1-2-D10-D21-exm-PE0902 |
|
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
St.27 status event code: A-1-2-D10-D22-exm-PE0701 |
|
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment |
St.27 status event code: A-2-4-F10-F11-exm-PR0701 |
|
| PR1002 | Payment of registration fee |
St.27 status event code: A-2-2-U10-U11-oth-PR1002 Fee payment year number: 1 |
|
| PG1601 | Publication of registration |
St.27 status event code: A-4-4-Q10-Q13-nap-PG1601 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-5-5-R10-R18-oth-X000 |
|
| FPAY | Annual fee payment |
Payment date: 20131030 Year of fee payment: 4 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 4 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 5 |
|
| PN2301 | Change of applicant |
St.27 status event code: A-5-5-R10-R13-asn-PN2301 St.27 status event code: A-5-5-R10-R11-asn-PN2301 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-5-5-R10-R18-oth-X000 |
|
| LAPS | Lapse due to unpaid annual fee | ||
| PC1903 | Unpaid annual fee |
St.27 status event code: A-4-4-U10-U13-oth-PC1903 Not in force date: 20151116 Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE |
|
| P22-X000 | Classification modified |
St.27 status event code: A-4-4-P10-P22-nap-X000 |
|
| PC1903 | Unpaid annual fee |
St.27 status event code: N-4-6-H10-H13-oth-PC1903 Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE Not in force date: 20151116 |
|
| P22-X000 | Classification modified |
St.27 status event code: A-4-4-P10-P22-nap-X000 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-5-5-R10-R18-oth-X000 |
|
| PN2301 | Change of applicant |
St.27 status event code: A-5-5-R10-R13-asn-PN2301 St.27 status event code: A-5-5-R10-R11-asn-PN2301 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-5-5-R10-R18-oth-X000 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-5-5-R10-R18-oth-X000 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-5-5-R10-R18-oth-X000 |