KR20130057789A - Storage system and method using double writing based on flash memory - Google Patents

Storage system and method using double writing based on flash memory Download PDF

Info

Publication number
KR20130057789A
KR20130057789A KR1020110123710A KR20110123710A KR20130057789A KR 20130057789 A KR20130057789 A KR 20130057789A KR 1020110123710 A KR1020110123710 A KR 1020110123710A KR 20110123710 A KR20110123710 A KR 20110123710A KR 20130057789 A KR20130057789 A KR 20130057789A
Authority
KR
South Korea
Prior art keywords
storage device
data
write
double
buffer
Prior art date
Application number
KR1020110123710A
Other languages
Korean (ko)
Other versions
KR101341615B1 (en
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 KR1020110123710A priority Critical patent/KR101341615B1/en
Publication of KR20130057789A publication Critical patent/KR20130057789A/en
Application granted granted Critical
Publication of KR101341615B1 publication Critical patent/KR101341615B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Abstract

PURPOSE: A storage system using double writing based on flash memory and a method thereof are provided to process a part which performs synchronous IO by using an SSD(Solid State Drive), thereby reducing response time. CONSTITUTION: A first storage device(420) stores original data received from a host device through a double writing buffer(414). A second storage device(430) interfaces with the first storage device. The second storage device receives the data from the first storage device and stores the same. A control unit includes the double write buffer and controls the first storage device and the second storage device through a data mapping table. When the capacity of the first storage device is full, the control unit overwrites the data stored in the first storage device in the second storage device. When errors are generated in the second storage device, the first storage device performs data recovery by using the stored original data.

Description

플래시 메모리를 기반으로 이중쓰기를 이용하는 저장 시스템 및 방법{STORAGE SYSTEM AND METHOD USING DOUBLE WRITING BASED ON FLASH MEMORY} Storage system and method using dual writing based on flash memory {STORAGE SYSTEM AND METHOD USING DOUBLE WRITING BASED ON FLASH MEMORY}

본 발명은 저장 시스템 및 방법에 관한 것으로, 보다 상세하게는 SSD(플래시 메모리)를 기반으로 하는 이중쓰기를 이용하는 저장 시스템 및 방법에 관한 것이다.
The present invention relates to a storage system and method, and more particularly, to a storage system and method using dual writing based on an SSD (flash memory).

플래시메모리 Solid State Drive(SSD)는 급속한 관련 기술들의 발전을 통해 빠른 읽기/쓰기 속도, 낮은 전력소모 등 기존 저장장치인 HDD 대비 많은 장점을 지녔다. 그러나 여전히 용량대비 비싼 가격과 안정성 검증 문제로 엔터프라이즈 시장에서 HDD를 완전히 대체하지 못하고 있다. 또, 스마트폰과 SNS의 활성화로 인해 콘텐츠 생산속도가 폭발적으로 증가하면서 플래시메모리 SSD와 HDD는 서로 보완하면서 계속 존재할 것으로 예상된다.Flash memory Solid State Drive (SSD) has many advantages over HDD, which is the existing storage device, such as fast read / write speed and low power consumption through rapid development of related technologies. However, due to the high price / capacity and reliability verification, the HDD is not completely replaced in the enterprise market. In addition, with the activation of smartphones and SNSs, the production speed of content is exploding and flash memory SSDs and HDDs are expected to continue to complement each other.

플래시메모리의 읽기/쓰기 단위는 페이지이며, 칩의 페이지크기에 따라 소블록과 대블록으로 나누어지며, 셀이 표현하는 비트의 크기에 따라 다시 단일셀(Single-level cell, SLC)과 다중셀(Multi-level cell, MLC)로 나눌 수 있다. 일반적으로 SLC는 MLC에 비해 수명과 쓰기 속도가 빠르며, 읽기속도는 유사하다.The read / write unit of flash memory is a page, and it is divided into small blocks and large blocks according to the page size of the chip. Single-level cell (SLC) and multicell ( Multi-level cell, MLC). In general, SLC has a shorter lifespan and write speed than MLC, and the read speed is similar.

SSD는 다수의 데이터버스에 여러 칩을 적재하였기 때문에 데이터의 읽기/쓰기 과정에서 내부적인 병렬성을 지니게 된다. 따라서 SSD에 동시에 여러 데이터페이지를 접근할 때 더 높은 성능을 나타낸다. 이는 또한, 순차적 데이터 접근일 경우에, 내부의 SDRAM 버퍼를 활용해 동시에 많은 채널이 활성화(activation)되기 때문에 좋은 성능을 나타낸다. 일반적으로 SSD의 순차읽기 성능은 호스트 인터페이스의 대역폭에 근접하게 되며, 최근 시장에 출시된 여러 모델들은 순차 읽기/쓰기 성능 모두 전체 대역폭에 근접한 성능을 보여준다. SSDs have multiple chips on multiple data buses, so they have internal parallelism during data read / write. This results in higher performance when accessing multiple data pages on an SSD simultaneously. It also shows good performance in the case of sequential data access because many channels are activated at the same time by utilizing the internal SDRAM buffer. In general, SSD's sequential read performance is close to the bandwidth of the host interface, and several models on the market recently show sequential read / write performance close to the full bandwidth.

도 1은 일반적인 2채널 2웨이 플래시 메모리 SSD의 구조를 나타낸 도면이다. 도 1에 도시된 바와 같이, 높은 집적도를 지닌 낸드 플래시 메모리(NAND Flash memoty) 칩은 다수의 블록(block)으로 이루어져 있고, 하나의 블록은 다시 여러 개의 페이지를 가진다. 각 채널은 2개의 웨이를 가지고 있으므로, A-0 웨이에 프로그램을 수행시켜놓고, A-1 웨이에 프로그램을 수행할 수 있으므로 동시에 많은 쓰기 연산을 수행하면, 느린 쓰기 성능을 보완할 수 있게 된다.1 is a diagram illustrating the structure of a typical two-channel two-way flash memory SSD. As shown in FIG. 1, a high-density NAND Flash memory chip consists of a plurality of blocks, and one block again has several pages. Since each channel has two ways, a program can be executed on the A-0 way and a program can be performed on the A-1 way. Therefore, if a large number of write operations are performed at the same time, slow write performance can be compensated for.

하지만, 플래시 메모리 SSD를 데이터 베이스에 활용하는 종래의 연구에서는 SSD의 임의 접근에만 초점을 맞추어 쓰기 성능을 최대로 활용하지 못하는 문제점이 있었다.
However, in the conventional researches that utilize a flash memory SSD in a database, there is a problem in that the write performance is not maximized by focusing only on random access of the SSD.

(특허문허 1) 대한민국 공개 특허 KR 10-2009-0129095 ("이중버퍼를 이용한 고속 데이터 처리 시스템", (주)명정보기술, 2009.12.16 공개)(Patent 1) Republic of Korea open patent KR 10-2009-0129095 ("High-speed data processing system using a double buffer", Myung Information Technology, 2009.12.16 published)

상기한 문제점을 해결하기 위한 본 발명의 목적은 SSD를 메모리와 HDD 사이의 캐시로 활용하여 투자 비용에 비해 높은 효율을 보이는 플래시 메모리를 기반으로 이중쓰기를 이용하는 저장 시스템 및 방법을 제공하는 것이다.An object of the present invention for solving the above problems is to provide a storage system and method using a double write based on the flash memory showing the high efficiency compared to the investment cost by using the SSD as a cache between the memory and the HDD.

본 발명의 다른 목적은 시스템 다운시 부분쓰기 문제를 방지하는 이중쓰기 기능을 변형하여 SSD 캐시에 적용함으로써 기존 이중쓰기 구조를 큰 변형 없이 적용 가능하며 데이터 저장 장치 부하를 분담시키고, 빠른 응답속도가 필요한 부분만 SSD에 포함시키고, 그 외의 작업을 병렬로 처리하게 함으로써 향상된 성능과 안정성을 제공하는 플래시 메모리를 기반으로 이중쓰기를 이용하는 저장 시스템 및 방법을 제공하는 것이다.
Another object of the present invention is to modify the dual write function that prevents the partial write problem when the system is down and apply to the SSD cache, it is possible to apply the existing dual write structure without significant modification, to share the data storage load, and to require a fast response speed The present invention provides a storage system and method using dual writing based on a flash memory that includes only a part of the SSD and allows other tasks to be processed in parallel.

상기한 목적을 달성하기 위한 본 발명의 일 실시예에 따른 이중쓰기를 이용하는 저장 시스템은 이중쓰기 버퍼를 통해 호스트 장치로부터 입력받은 원본 데이터를 저장하는 제 1 저장 장치; 상기 제 1 저장 장치와 인터페이싱하여 상기 제 1 저장 장치로부터 데이터를 입력받아 저장하는 제 2 저장 장치; 및 상기 이중쓰기 버퍼를 포함하고, 데이터 맵핑 테이블을 통해 상기 제 1 저장 장치와 상기 제 2 저장 장치를 제어하며, 상기 제 1 저장 장치의 용량이 다 찬 경우, 상기 제 1 저장 장치에 저장된 데이터를 상기 제 2 저장 장치에 덮어쓰도록 제어하는 제어부를 포함하되, 상기 제 1 저장 장치는 플래시 메모리로서, 상기 제 2 저장 장치에 오류가 발생한 경우, 상기 저장된 원본 데이터를 통해 데이터 복구를 수행하기 위한 것일 수 있다.According to an aspect of the present invention, there is provided a storage system using double writing, comprising: a first storage device storing original data received from a host device through a double writing buffer; A second storage device interfacing with the first storage device to receive and store data from the first storage device; And the dual write buffer, and controls the first storage device and the second storage device through a data mapping table, and when the capacity of the first storage device is full, the data stored in the first storage device is stored. And a control unit for controlling to overwrite the second storage device, wherein the first storage device is a flash memory and performs data recovery through the stored original data when an error occurs in the second storage device. Can be.

상기 제 1 저장 장치의 입출력 패턴은 순차 쓰기(FIFO:First Input First Output) 및 임의(Random) 읽기 형태일 수 있다. 상기 제 1 저장 장치는 1 기가 바이트, 2 기가 바이트 및 4 기가 바이트 중 어느 하나의 용량을 가질 수 있다. 상기 제어부는 데이터 버퍼를 더 포함할 수 있다.The input / output pattern of the first storage device may be in the form of first input first output (FIFO) and random read. The first storage device may have a capacity of one gigabyte, two gigabytes, and four gigabytes. The controller may further include a data buffer.

상기 맵핑 테이블은 상기 제 1 저장 장치에 존재하는 모든 데이터의 정보와 상기 제 1 저장 장치 내부의 위치 정보를 맵핑하고 있을 수 있다. The mapping table may map information of all data existing in the first storage device and location information inside the first storage device.

상기 호스트 장치로부터 데이터 읽기 요청을 수신하는 경우, 먼저 상기 데이터 버퍼에서 요청된 데이터를 검색하여 읽어오고, 상기 데이터 버퍼에 상기 요청된 데이터가 없는 경우, 상기 맵핑 테이블을 통해 상기 제 1 저장 장치에 존재하는 데이터를 읽어올 수 있다.When receiving a data read request from the host device, first, the requested data is retrieved and read from the data buffer, and if there is no requested data in the data buffer, the data is present in the first storage device through the mapping table. Can read data.

상기 맵핑 테이블은 상기 원본 데이터의 데이터 영역 오프셋(offset), 상기 제 1 저장 장치 내에서의 위치 정보 및 해시 체인을 구성하는 포인터로 구성될 수 있다.The mapping table may be composed of a data area offset of the original data, location information in the first storage device, and a pointer configuring a hash chain.

상기 제 2 저장 장치는 자기 하드 디스크일 수 있다.The second storage device may be a magnetic hard disk.

상기한 목적을 달성하기 위한 본 발명의 일 실시예에 따른 이중쓰기를 이용하는 저장 방법은 이중쓰기 버퍼를 통해 호스트 장치로부터 입력받은 원본 데이터를 플래시 메모리인 제 1 저장 장치에 저장하는 단계; 상기 제 1 저장 장치와 인터페이싱하여 상기 제 1 저장 장치로부터 데이터를 입력받아 제 2 저장 장치에 저장하는 단계; 및 제어부가 데이터 맵핑 테이블을 통해 상기 제 1 저장 장치와 상기 제 2 저장 장치를 제어하는 단계를 포함하되, 상기 제어 단계는 상기 제 1 저장 장치의 용량이 다 찬 경우, 상기 제 1 저장 장치에 저장된 데이터를 상기 제 2 저장 장치에 덮어쓰도록 제어하는 단계; 및 상기 제 2 저장 장치에 오류가 발생한 경우, 상기 제 1 저장 장치에 저장된 원본 데이터를 통해 데이터 복구를 수행하는 단계를 포함할 수 있다.According to an aspect of the present invention, there is provided a storage method using double write, comprising: storing original data received from a host device through a double write buffer in a first storage device which is a flash memory; Interfacing with the first storage device and receiving data from the first storage device and storing the data in the second storage device; And controlling, by the controller, the first storage device and the second storage device through a data mapping table, wherein the controlling step is performed when the capacity of the first storage device is full. Controlling to overwrite data on the second storage device; And when an error occurs in the second storage device, performing data recovery through original data stored in the first storage device.

상기 제 1 저장 장치의 입출력 패턴은 순차 쓰기(FIFO:First Input First Output) 및 임의(Random) 읽기 형태일 수 있다. 상기 제 1 저장 장치는 1 기가 바이트, 2 기가 바이트 및 4 기가 바이트 중 어느 하나의 용량을 가질 수 있다. 상기 제어부는 데이터 버퍼를 더 포함할 수 있다. 상기 이중쓰기 버퍼는 상기 제 1 및 제 2 저장 장치에 입력될 데이터를 임시로 보관하고 있을 수 있다.The input / output pattern of the first storage device may be in the form of first input first output (FIFO) and random read. The first storage device may have a capacity of one gigabyte, two gigabytes, and four gigabytes. The controller may further include a data buffer. The double write buffer may temporarily store data to be input to the first and second storage devices.

상기 제어부는 상기 제 1 저장 장치에 존재하는 모든 데이터의 정보와 상기 제 1 저장 장치 내부의 위치 정보를 맵핑하고 있는 맵핑 테이블을 포함할 수 있다.The control unit may include a mapping table that maps information of all data existing in the first storage device and location information inside the first storage device.

상기 제어 단계는 상기 호스트 장치로부터 데이터 읽기 요청을 수신하는 경우, 상기 데이터 버퍼에서 요청된 데이터를 검색하여 읽어오는 단계; 및 상기 데이터 버퍼에 상기 요청된 데이터가 없는 경우, 상기 맵핑 테이블을 통해 상기 제 1 저장 장치에 존재하는 데이터를 읽어오는 단계를 포함할 수 있다.The control step may include: searching for and reading requested data from the data buffer when receiving a data read request from the host device; And reading the data existing in the first storage device through the mapping table when the requested data is not present in the data buffer.

상기 맵핑 테이블은 상기 원본 데이터의 데이터 영역 오프셋(offset), 상기 제 1 저장 장치 내에서의 위치 정보 및 해시 체인을 구성하는 포인터로 구성될 수 있다.The mapping table may be composed of a data area offset of the original data, location information in the first storage device, and a pointer configuring a hash chain.

상기 제 2 저장 장치는 자기 하드 디스크일 수 있다.
The second storage device may be a magnetic hard disk.

본 발명에 따른 플래시 메모리를 기반으로 이중쓰기를 이용하는 저장 시스템 및 방법에 따르면, Synchronous IO를 수행하는 부분을 SSD로 처리함으로써 응답 시간이 줄어드는 효과가 있다.According to the storage system and method using the dual write based on the flash memory according to the present invention, by processing the portion performing the synchronous IO to the SSD, the response time is reduced.

또한, 본 발명에 따른 플래시 메모리를 기반으로 이중쓰기를 이용하는 저장 시스템 및 방법에 따르면, 종래 이중쓰기는 성능을 저하시키지만 안정성을 위해 어쩔 수 없이 시행하는 것인 반면, 이중쓰기를 캐싱으로 활용함으로써 오히려 성능 향상의 수단으로 삼을 수 있고, 데이터에 비해 작은 용량만을 캐시로 사용하였으나, 그에 비해 시스템의 성능을 큰 폭으로 향상시킬 수 있는 효과가 있다. In addition, according to the storage system and method using the double write based on the flash memory according to the present invention, while the conventional double write is to be performed inevitably for the sake of stability, rather than by utilizing the double write as caching It can be used as a means of improving performance, and only a small amount of data is used as a cache, but compared to the data, the performance of the system can be greatly improved.

따라서, DBMS(DataBase Management System) 튜닝 관련 분야에 기여가 있을 것으로 예상된다.
Therefore, it is expected to contribute to DBMS (DataBase Management System) tuning related fields.

도 1은 일반적인 2채널 2웨이 플래시 메모리 SSD의 구조를 나타낸 도면,
도 2는 종래 Inno DB의 이중쓰기 기법을 설명하기 위한 도면,
도 3은 본 발명의 일 실시예에 따른 이중쓰기를 이용하는 저장 시스템의 개념을 설명하기 위한 개념도,
도 4는 본 발명의 일 실시예에 따른 이중쓰기를 이용하는 저장 시스템을 개략적으로 나타낸 블록도,
도 5는 본 발명의 일 실시예에 따른 이중쓰기를 이용하는 저장 시스템의 이중쓰기 영역으로의 쓰기 동작을 설명하기 위한 도면,
도 6은 본 발명의 일 실시예에 따른 이중쓰기를 이용하는 저장 시스템의 이중쓰기 영역으로의 읽기 동작을 설명하기 위한 도면,
도 7은 본 발명의 일 실시예에 따른 이중쓰기를 이용하는 저장 시스템을 개략적으로 나타낸 흐름도,
도 8은 본 발명의 일 실시예에 따른 이중쓰기를 이용하는 저장 방법의 읽기 명령을 수행하는 방법을 나타낸 흐름도,
도 9a는 종래 이중쓰기 기법에서의 이중쓰기 영역의 내용이 교체되기 전에 비동기적 쓰기를 완료하고 나서 내용을 교체하는 모습을 도시한 도면,
도 9b는 본 발명의 일 실시예에 따른 이중쓰기를 이용하는 저장 시스템에서의 이중쓰기 영역의 크기가 확장되어 동기화 주기를 늦추어 입출력 명령을 병렬처리하는 모습을 도시한 도면,
도 10은 본 발명의 일 실시예에 따른 이중쓰기를 이용하는 저장 시스템과 다른 방식을 적용한 저장 시스템과의 동시 사용자 증가에 따른 성능 비교를 수행한 그래프,
도 11은 본 발명의 일 실시예에 따른 이중쓰기를 이용하는 저장 시스템에서 플래시 메모리를 통한 캐시 영역의 크기에 따른 성능 및 적중률의 변화를 나타내는 그래프이다.
1 is a view showing the structure of a typical two-channel two-way flash memory SSD,
2 is a view for explaining a double-write technique of a conventional Inno DB,
3 is a conceptual diagram illustrating a concept of a storage system using dual writing according to an embodiment of the present invention;
4 is a block diagram schematically illustrating a storage system using dual writing according to an embodiment of the present invention;
5 is a view for explaining a write operation to a dual write area of a storage system using dual writes according to an embodiment of the present invention;
6 is a view for explaining a read operation to a dual write area of a storage system using dual writes according to an embodiment of the present invention;
7 is a flowchart schematically illustrating a storage system using dual writing according to an embodiment of the present invention;
8 is a flowchart illustrating a method of performing a read command of a storage method using double writing according to an embodiment of the present invention;
FIG. 9A illustrates a state in which contents are replaced after asynchronous writing is completed before contents of the dual writing region are replaced in the conventional double writing technique. FIG.
FIG. 9B is a diagram illustrating an example of parallel processing of input / output commands by delaying a synchronization period by expanding a size of a double write area in a storage system using double writes according to an embodiment of the present invention; FIG.
FIG. 10 is a graph illustrating performance comparison according to an increase in the number of concurrent users between a storage system using dual writing and a storage system using a different method according to an embodiment of the present invention;
FIG. 11 is a graph illustrating a change in performance and hit ratio according to a size of a cache region through a flash memory in a storage system using dual writes according to an embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다.While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail.

그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.It should be understood, however, that the invention is not intended to be limited to the particular embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention.

제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.Terms such as first and second may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as the second component, and similarly, the second component may also be referred to as the first component. And / or < / RTI > includes any combination of a plurality of related listed items or any of a plurality of related listed items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. When a component is referred to as being "connected" or "connected" to another component, it may be directly connected to or connected to that other component, but it may be understood that other components may be present in between. Should be. On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting of the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this application, the terms "comprise" or "have" are intended to indicate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, and one or more other features. It is to be understood that the present invention does not exclude the possibility of the presence or the addition of numbers, steps, operations, components, components, or a combination thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning in the context of the relevant art and are to be interpreted in an ideal or overly formal sense unless explicitly defined in the present application Do not.

이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.Hereinafter, with reference to the accompanying drawings, it will be described in detail a preferred embodiment of the present invention. In order to facilitate the understanding of the present invention, the same reference numerals are used for the same constituent elements in the drawings and redundant explanations for the same constituent elements are omitted.

도 2는 종래 Inno DB의 이중쓰기 기법을 설명하기 위한 도면이다. 도 2에 도시된 바와 같이, 종래의 MySQL의 InnoDB 스토리지 엔진은 partial-page write 문제를 해결하기 위해, 이중쓰기라고 알려진 쓰기 방식을 사용한다. 2 is a view for explaining a double-write technique of a conventional Inno DB. As shown in FIG. 2, the conventional MySQL InnoDB storage engine uses a write method known as double writing to solve a partial-page write problem.

InnoDB 스토리지 엔진은 RAM(210)과 HDD(220)를 포함할 수 있다. HDD(220)는 데이터 테이블스페이스로서 사용되고, RAM(210)은 버퍼 풀(212)과 이중쓰기 버퍼(214)를 포함할 수 있다. 먼저, InnoDB 스토리지 엔진은 데이터 페이지를 이중쓰기 버퍼(214)라고 불리는 메인 메모리 영역에 복사한다. 이중쓰기 버퍼(214)는 2개의 extents로 이루어져 있으며, 해당 버퍼가 다 차거나 혹은 후에 발생한 버퍼 방출(buffer flush)에 의해 이중쓰기 버퍼(214)의 페이지들은 시스템 테이블 스페이스의 이중쓰기 영역에 동시에 여러 페이지가 순차쓰기로 써진다.The InnoDB storage engine may include a RAM 210 and an HDD 220. The HDD 220 is used as a data table space, and the RAM 210 may include a buffer pool 212 and a double write buffer 214. First, the InnoDB storage engine copies data pages to a main memory area called double write buffer 214. The write buffer 214 is composed of two extents, and the pages of the write buffer 214 are simultaneously written to the write area of the system table space by the buffer flush caused by the buffer being full or later. Is written in sequential writing.

도 2를 참조하면, 이중쓰기 영역은 HDD(220)의 데이터 테이블 스페이스의 앞부분에 있는 것으로, 이중쓰기 영역으로 쓰기 요청이 성공하면, 이중쓰기 버퍼(214)의 모든 페이지들은 IO 쓰레드(IO threads)를 통해 AIO(Asynchronous IO)로 각각의 테이블스페이스로 다시 써진다. 이중쓰기 기법은 교체되는 페이지를 2회씩 쓰게 되므로, IO 부담을 증가시킬 수 있다. Referring to FIG. 2, the double-write area is located at the front of the data table space of the HDD 220. When a write request to the double-write area is successful, all pages of the double-write buffer 214 are IO threads. Is rewritten into each tablespace with Asynchronous IO (AIO). The double-write technique writes the replaced page twice, which can increase the IO burden.

이러한 2단계 쓰기를 통해, InnoDB 스토리지 매니저는 전원 손실(power failure)에 의한 시스템 오류(system crash)에서도 partial-write 페이지들을 복구할 수 있다.With this two-phase write, InnoDB Storage Manager can recover partial-write pages even in the event of a system crash caused by a power failure.

시스템 오류가 발생하면, 시스템 기동시 트랜잭션 로그(transaction log)와 이중쓰기 영역에 존재하는 페이지들의 유효성 검사를 수행한다. 만약, 이중쓰기 영역의 페이지가 partial write된 상태로 존재하고 있다면, 아직 해당 페이지가 속한 데이터 테이블스페이스에 저장되지 않았을 것이므로, 데이터 테이블스페이스에는 변경(update) 이전 상태의 페이지가 남아있다. If a system error occurs, the system checks the validity of pages in the transaction log and double-write area when the system starts. If a page in a double-write area is partially written, it may not have been saved in the data tablespace to which the page belongs. Therefore, the page in the data tablespace remains before the update.

따라서, 시스템 오류 이후 WAL 로그를 이용한 복구과정에서 이중쓰기 영역에 있는 페이지 대신 데이터 테이블스페이스의 원본 페이지를 사용한다. Therefore, the original page of the data tablespace is used instead of the page in the double-write area during the recovery process using the WAL log after a system error.

전술한 바와 같이, InnoDB에서의 이중쓰기는 꼭 필요한 기능이기는 하지만 이중쓰기 페이지를 쓰고 원래 데이터 페이지를 쓰기 때문에 작업량이 두 배가 되어 저장장치에 부하를 주고 전체 시스템 성능에 악영향을 줄 수 있다. 이중쓰기 영역은 모아서 한 번에 내려쓰고, 데이터 영역은 비동기적 쓰기로 나누어 호출하여 부담을 완화하고 있으나 이중쓰기 영역을 덮어 쓰기 전에 비동기적 쓰기의 완료를 기다려야 하는 단점이 있다.As mentioned above, double-write in InnoDB is a necessary feature, but because it writes double-write pages and writes original data pages, it doubles the workload and can adversely affect storage and overall system performance. The double write area is collected and written down at once, and the data area is divided into asynchronous writes to reduce the burden. However, there is a drawback of waiting for the completion of an asynchronous write before overwriting the double write area.

도 3은 본 발명의 일 실시예에 따른 이중쓰기를 이용하는 저장 시스템의 개념을 설명하기 위한 개념도이다. 도 3에 도시된 바와 같이, 본 발명의 일 실시예에 따른 저장 시스템은 SSD(320) 및 HDD(330)를 포함할 수 있다.3 is a conceptual diagram illustrating a concept of a storage system using dual writes according to an embodiment of the present invention. As shown in FIG. 3, a storage system according to an embodiment of the present invention may include an SSD 320 and an HDD 330.

도 3을 참조하면, 종래의 HDD(310)의 데이터 테이블스페이스의 일부 영역에 이중쓰기 영역이 존재하였던 것을 본 발명의 일 실시예에 따른 저장 시스템에서는 SSD(320)에 이중쓰기 테이블스페이스를 따로 구성하고, HDD(330)에는 데이터 테이블스페이스만을 구성하여, 이중쓰기 영역을 분리, 확장하여 SSD(320)에 할당하였다. 따라서, 이중쓰기 영역을 데이터 테이블스페이스에서 분리함으로써 데이터 저장 장치에 가하던 하중을 새로운 저장 장치(SSD : 320)가 분담하게 했다.Referring to FIG. 3, in the storage system according to an embodiment of the present invention, a dual write table space is separately formed in the SSD 320 in a partial region of a data table space of the HDD 310. In addition, only the data table space is configured in the HDD 330, and the dual write area is separated and extended and allocated to the SSD 320. Therefore, the new storage device (SSD: 320) shared the load on the data storage device by separating the dual write area from the data tablespace.

즉, 이중쓰기 영역의 크기를 확장하고, 순차적으로 채워나감으로써 SSD(320)의 빠른 순차쓰기 특성을 활용하고, 덮어쓰는 주기가 길어짐에 따라 동기화 주기를 늦추어 데이터 저장장치의 출력 병력 처리를 향상시킬 수 있다.In other words, by expanding the size of the dual write area and filling it in sequence, the fast sequential write characteristics of the SSD 320 can be utilized, and as the overwriting period becomes longer, the synchronization period can be delayed to improve the output history processing of the data storage device. Can be.

또한, 페이지를 불러오는 경우, 가능하면 확장된 이중쓰기 영역에서 읽어오게 함으로써 HDD(330)보다 뛰어난 SSD(320)의 임의접근 특성을 활용하였고, 따라서, 종래의 저장 시스템의 구조를 크게 변경하지 않고 이중쓰기 영역을 수정/추가 함으로써 시스템 성능을 크게 끌어올릴 수 있다.In addition, when the page is loaded, the random access characteristic of the SSD 320 superior to the HDD 330 is utilized by reading from the extended double write area if possible, and thus, the double structure is not changed significantly without changing the structure of the conventional storage system. By modifying / adding the write area, you can greatly increase system performance.

도 4는 본 발명의 일 실시예에 따른 이중쓰기를 이용하는 저장 시스템을 개략적으로 나타낸 블록도이다. 도 4에 도시된 바와 같이, 본 발명에 일 실시예에 따른 저장 시스템은 RAM(410), 이중쓰기 테이블스페이스(420 : SSD) 및 데이터 테이블스페이스(430: HDD)를 포함할 수 있다.4 is a block diagram schematically illustrating a storage system using dual writing according to an embodiment of the present invention. As illustrated in FIG. 4, a storage system according to an embodiment of the present invention may include a RAM 410, a dual write table space 420 (SSD), and a data table space 430 (HDD).

도 4를 참조하면, 종래 InnoDB 이중쓰기 영역을 플래시 메모리 SSD(420)로 교체하여, SSD(420)에 대한 IO 패턴이 순차쓰기, 임의읽기로 발생하도록 전환하여 성능 향상을 추가하였다.Referring to FIG. 4, the conventional InnoDB dual write area is replaced with the flash memory SSD 420, and the IO pattern for the SSD 420 is converted into sequential writes and random reads, thereby improving performance.

먼저, RAM(410)은 버퍼 풀(412), 이중쓰기 버퍼(414), 이중쓰기 해시(416) 및 이중쓰기 맵핑 테이블(418)을 포함할 수 있다. RAM(410)은 이중쓰기 맵핑 테이블(418)을 통해, 이중쓰기 테이블스페이스(420) 및 데이터 테이블스페이스(430)를 제어할 수 있다. First, the RAM 410 may include a buffer pool 412, a double write buffer 414, a double write hash 416, and a double write mapping table 418. The RAM 410 may control the dual write table space 420 and the data table space 430 through the dual write mapping table 418.

버퍼 풀(412)은 호스트 장치(미도시)로부터 데이터를 수신하였을 때 임시로 보관해 놓는 공간이다. 또한, 이중쓰기 버퍼(414)는 RAM(410)에 의해 복사된 호스트 장치로부터 입력되는 데이터를 임시로 보관할 수 있다.The buffer pool 412 is a space temporarily stored when data is received from a host device (not shown). In addition, the double write buffer 414 may temporarily store data input from the host device copied by the RAM 410.

이중쓰기 해시(416)는 이중쓰기 맵핑 테이블(418)을 구성하는 구성요소로서, 이중쓰기 테이블스페이스(420)에 들어있는 페이지들의 존재 여부를 빠르게 확인하고자 할 때, 사용한다. 해시(416)는 원본 페이지의 데이터 영역 offset, 이중쓰기 영역에서의 위치 정보 dw_offset 및 해시 체인을 구성하는 포인터로 구성될 수 있다.The double-write hash 416 is a component of the double-write mapping table 418 and is used to quickly check the existence of pages included in the double-write table space 420. The hash 416 may be composed of a data area offset of the original page, position information dw_offset in the double-write area, and a pointer constituting the hash chain.

이중쓰기 맵핑 테이블(418)은 이중쓰기 테이블스페이스(420)를 관리하기 위한 테이블로서, 이중쓰기 테이블 스페이스(420)에 저장된 모든 데이터들의 정보와 상기 이중쓰기 테이블 스페이스(420) 내부의 위치 정보를 맵핑하고 있다.The dual write mapping table 418 is a table for managing the dual write table space 420, and maps information of all data stored in the dual write table space 420 with location information inside the dual write table space 420. Doing.

이중쓰기 테이블 스페이스(420)는 상기 이중쓰기 버퍼(414)로부터 호스트 장치로부터 입력받은 데이터를 저장한다. 이중쓰기 테이블 스페이스(420)는 상기 RAM(410)의 제어를 받는다. 따라서, 맵핑 테이블(418)을 기반으로 제어를 받는다. 이중쓰기 테이블 스페이스(420)의 용량이 다 찬 경우, 이중쓰기 테이블 스페이스(420)에 저장된 데이터를 데이터 테이블 스페이스(430)에 덮어쓸 수 있다. 이중쓰기 테이블 스페이스(420)는 시스템 오류시 원본 데이터를 통해 데이터를 복구하기 위한 장치이다. 따라서, RAM(410)은 시스템 오류가 있는 경우, 맵핑 테이블(418)을 기반으로 상기 이중쓰기 테이블 스페이스(420)에 존재하는 데이터 페이지들의 유효성 검사를 수행하고, 검사 결과를 기반으로 데이터를 복구할 수 있다.The double write table space 420 stores data received from the host device from the double write buffer 414. The dual write table space 420 is controlled by the RAM 410. Therefore, control is based on the mapping table 418. When the capacity of the double write table space 420 is full, data stored in the double write table space 420 may be overwritten by the data table space 430. The double write table space 420 is a device for recovering data through original data in the event of a system error. Accordingly, when there is a system error, the RAM 410 may validate data pages existing in the double-write table space 420 based on the mapping table 418 and recover data based on the test result. Can be.

본 발명의 바람직한 실시예에 있어서, 이중쓰기 테이블 스페이스(420)는 플래시 메모리 SSD이다. 또한, 플래시 메모리의 입출력 패턴은 순차쓰기와 임의읽기인 것이 바람직하다. 이중쓰기는 여러 데이터 페이지를 한 번의 동기 IO 명령으로 저장한 후, 해당 페이지의 데이터 테이블 스페이스로 비동기 IO 요청을 한다. 따라서, 이중쓰기 테이블 스페이스(420)와 데이터 테이블 스페이스(430)는 write-through 형태로 동기화되며, 따라서, InnoDB는 다수의 IO 쓰레드를 사용하기 때문에 두 영역의 IO 요청은 중첩될 수 있다.In a preferred embodiment of the present invention, the dual write table space 420 is a flash memory SSD. In addition, the input / output pattern of the flash memory is preferably sequential write and random read. Double write saves multiple data pages in one synchronous IO command and then makes an asynchronous IO request to the data table space for that page. Therefore, the dual write table space 420 and the data table space 430 are synchronized in the form of write-through. Therefore, since InnoDB uses a plurality of IO threads, the IO requests of the two regions may overlap.

더욱이, 이중쓰기 테이블 스페이스(420)의 용량은 1 기가 바이트 이상인 것이 좋다. 이는 데이터 테이블스페이스(430)와의 동기화 주기 측면에서 유리하기 때문이다. Furthermore, the capacity of the double write table space 420 is preferably 1 gigabyte or more. This is because it is advantageous in terms of synchronization period with the data tablespace 430.

데이터 테이블 스페이스(430)는 이중스기 테이블 스페이스(420)를 통해 데이터를 입력받아 저장한다. 데이터 테이블 스페이스(430)도 RAM(410)의 제어를 받아 동작할 수 있다. 데이터 테이블 스페이스(430)는 HDD인 것이 바람직하다. 시스템 오류가 발생한 경우, 데이터 테이블 스페이스(430)에 저장된 데이터에 오류가 발생할 수 있고, 이러한 경우, 이중쓰기 테이블 스페이스(420)의 데이터를 통해 상기 데이터 테이블 스페이스(430)의 오류가 있는 데이터를 복구할 수 있다.The data table space 430 receives and stores data through the double write table space 420. The data table space 430 may also operate under the control of the RAM 410. The data table space 430 is preferably an HDD. When a system error occurs, an error may occur in the data stored in the data table space 430. In this case, the data in the data table space 430 may be recovered through the data in the double-write table space 420. can do.

도 5는 본 발명의 일 실시예에 따른 이중쓰기를 이용하는 저장 시스템의 이중쓰기 영역으로의 쓰기 동작을 설명하기 위한 도면이다. 도 5에 도시된 바와 같이, 호스트 장치(미도시)로부터 입력받은 데이터는 버퍼 풀(512)에서 이중쓰기 버퍼(514)에 임시로 저장되고, 이중쓰기 버퍼(514)로부터 이중쓰기 테이블 스페이스(520)에 저장되고, 상기 이중쓰기 테이블 스페이스(520)에 저장된 데이터는 데이터 테이블스페이스(530)에 이중으로 쓰여진다.FIG. 5 is a diagram illustrating a write operation to a dual write area of a storage system using dual writes according to an embodiment of the present invention. As illustrated in FIG. 5, data received from a host device (not shown) is temporarily stored in the double write buffer 514 in the buffer pool 512, and the double write table space 520 from the double write buffer 514. ) And the data stored in the double write table space 520 is written to the data table space 530 in duplicate.

본 발명의 일 실시예에 따른 저장 시스템은 파일 스페이스 구조를 통해 데이터를 관리한다. 하나의 스페이스는 다수의 파일 노드와 연결될 수 있고, 기본적으로 0번 스페이스는 시스템 정보와 데이터를 관리하고, 1번 스페이스는 로그 영역을 관리한다. 이중쓰기 테이블 스페이스는 0번 스페이스의 헤더 부분에 들어있는데 이를 별도의 파일 스페이스로 분리한다. 새로운 파일 스페이스 9번을 생성하고 파일 노드를 연결하며 해당 경로는 분리된 저장 장치로 한다. 이후, 이중쓰기 입출력을 9번 파일 스페이스를 통하도록 함으로써 저장 장치의 입출력 하중을 분산시킬 수 있다.A storage system according to an embodiment of the present invention manages data through a file space structure. One space can be connected to multiple file nodes. By default, space 0 manages system information and data, and space 1 manages log areas. Duplicate table spaces are contained in the header part of space 0, and are separated into separate file spaces. Create a new file space number 9, connect the file nodes, and specify the path as a separate storage device. Thereafter, the I / O load of the storage device can be distributed by allowing the dual write I / O to pass through the 9th file space.

이중쓰기 테이블 스페이스(520)는 본래 익스텐트(extent) 2개로 이루어져 있다. 따라서, 매번 첫 익스텐트에 덮어쓰는 방식으로 동작하는데 이중쓰기 테이블 스페이스(520)를 확장하게 됨으로써 접근할 때마다 어느 익스텐트를 참조해야 하는지 결정해야 한다. 이를 관리하는 변수를 두어 순차적으로 다음 익스텐트를 사용하도록 관리한다.The dual write table space 520 is originally composed of two extents. Thus, by overwriting the first extent each time, the double-write table space 520 is extended to determine which extent to refer to each access. Put a variable to manage this and manage to use the next extent sequentially.

도 5를 참조하면, 호스트 장치로부터 데이터 입력을 받으면, 수신된 데이터는 버퍼 풀(512)에 보관된다. 다음으로, 이중쓰기 버퍼(514)에 수신된 데이터를 보내게 되고, 이중쓰기 버퍼(514)는 상기 버퍼 풀(512)로부터 수신한 데이터를 이중쓰기 테이블 스페이스(520)에 저장한다. 다음으로, 이중쓰기 테이블 스페이스(520)에 저장된 데이터는 데이터 테이블 스페이스(530)에 이중으로 저장된다. 여기서, 이중쓰기 테이블 스페이스(520)에 저장되는 방식은 순차 쓰기(FIFO) 방식이 바람직하다. 이중쓰기 테이블 스페이스(520)에 저장시 이중쓰기 맵핑 테이블(518)에 저장된 위치와 저장된 데이터가 맵핑이 되고, 이는 해시(516) 구조를 형성할 수 있다.Referring to FIG. 5, upon receiving data input from a host device, the received data is stored in the buffer pool 512. Next, the received data is sent to the double write buffer 514, and the double write buffer 514 stores the data received from the buffer pool 512 in the double write table space 520. Next, data stored in the double write table space 520 is stored in the data table space 530 in duplicate. In this case, a sequential write (FIFO) method is preferably used in the double write table space 520. When stored in the double write table space 520, the location stored in the double write mapping table 518 and the stored data are mapped, which may form a hash 516 structure.

도 6은 본 발명의 일 실시예에 따른 이중쓰기를 이용하는 저장 시스템의 이중쓰기 영역으로의 읽기 동작을 설명하기 위한 도면이다. 도 6에 도시된 바와 같이, 호스트 장치(미도시)로부터 읽기 요청을 수신하는 경우, 먼저 버퍼 풀(612)에서 요청된 데이터를 찾아보고, 데이터가 없는 경우, 이중쓰기 해시(616)를 이용하여 이중쓰기 맵핑 테이블(618)을 통해 이중쓰기 테이블 스페이스(620)에서 데이터를 찾아서 인출한다.FIG. 6 is a diagram illustrating a read operation of a dual write area of a storage system using dual writes according to an embodiment of the present invention. As shown in FIG. 6, when receiving a read request from a host device (not shown), first, the requested data is looked up in the buffer pool 612, and if there is no data, a double write hash 616 is used. The data is found and retrieved from the double write table space 620 through the double write mapping table 618.

도 6을 참조하면, 원하는 데이터 페이지 요청시 요청된 데이터가 버퍼 풀(612)에 있는지 살펴본다. 버퍼 풀(612)에 요청된 데이터가 존재하면 데이터를 인출하고 읽기 요청 관련 동작을 완료한다. 하지만, 버퍼 풀(612)에 원하는 데이터가 없는 경우, 이중쓰기 데이터 스페이스(620)에서 데이터를 인출하는 단계를 수행한다. 즉, 이중쓰기 해시(616)를 이용하여 맵핑 테이블(618)을 참조한다. 맵핑 테이블(618)에는 이중쓰기 테이블 스페이스(620)에 있는 모든 데이터와 이중쓰기 테이블 스페이스(620) 내부의 저장 위치의 맵핑 관계가 있으므로, 이를 참조하여 요청된 데이터가 있는지 탐색한다. 탐색 결과, 데이터가 있으면, 이를 이중쓰기 테이블 스페이스(620)로부터 인출하여 읽기 요청 관련 동작을 완료한다. 데이터가 없는 경우, 데이터 테이블 스페이스(630)를 탐색하여 요청된 데이터를 인출한다. Referring to FIG. 6, it is checked whether the requested data is in the buffer pool 612 when a desired data page request is made. If the requested data exists in the buffer pool 612, the data is fetched and the read request related operation is completed. However, if there is no desired data in the buffer pool 612, the data is fetched from the double-write data space 620. That is, the mapping table 618 is referred to using the double-write hash 616. Since the mapping table 618 has a mapping relationship between all data in the write table space 620 and a storage location in the write table space 620, the mapping table 618 searches for the requested data. As a result of the search, if there is data, it is withdrawn from the double-write table space 620 to complete the read request related operation. If there is no data, the data table space 630 is searched to retrieve the requested data.

전술한 바와 같이, 이중쓰기 테이블 스페이스(620)는 SSD, 즉 플래시 메모리로 구성되어 있는 빠른 인출이 가능하기 때문에 먼저 이중쓰기 테이블 스페이스(620)의 데이터 존재 여부를 파악하는 것이 효율적이다.As described above, since the double write table space 620 may be quickly fetched by the SSD, that is, the flash memory, it is efficient to first determine whether data exists in the double write table space 620.

도 7은 본 발명의 일 실시예에 따른 이중쓰기를 이용하는 저장 방법을 개략적으로 나타낸 흐름도이다. 도 7에 도시된 바와 같이, 본 발명의 일 실시예에 따른 저장 방법은 이중쓰기 버퍼를 통해 입력받은 원본 데이터를 플래시 메모리인 이중쓰기 테이블 스페이스에 저장하는 단계(710), 이중쓰기 테이블 스페이스로부터 데이터를 입력받아 데이터 테이블 스페이스에 저장하는 단계(720) 및 데이터 맵핑 테이블을 통해 이중쓰기 테이블 스페이스와 데이터 테이블 스페이스를 제어하는 단계(730)를 포함할 수 있다.7 is a flowchart schematically illustrating a storage method using double writing according to an embodiment of the present invention. As shown in FIG. 7, the storage method according to an embodiment of the present invention includes storing the original data received through the double write buffer in a double write table space that is a flash memory (710), and data from the double write table space. The method may include receiving 720 and storing the data table space in the data table space and controlling the double-write table space and the data table space through the data mapping table 730.

도 7을 참조하면, 제 1 저장 장치는 이중쓰기 테이블 스페이스일 수 있고, 제 2 저장 장치는 데이터 테이블 스페이스일 수 있다. 따라서, 호스트 장치(미도시)로부터 입력받은 데이터를 먼저, 이중쓰기 테이블 스페이스에 저장한다(710). 이는 시스템 오류시 데이터 복구를 위해 사용될 수 있다. 다음으로, 이중쓰기 테이블 스페이스에 저장된 데이터를 데이터 테이블 스페이스에 이중으로 저장한다(720). 제어부는 데이터 맵핑 테이블을 통해 이중쓰기 테이블 스페이스와 데이터 테이블 스페이스를 제어할 수 있다(730). 제어 단계(730)는 이중쓰기 테이블 스페이스의 용량이 다 찬 경우, 상기 이중쓰기 테이블 스페이스에 저장된 데이터를 상기 데이터 테이블 스페이스에 덮어쓰도록 제어하는 단계 및 데이터 테이블 스페이스에 오류가 발생한 경우, 상기 이중쓰기 테이블 스페이스에 저장된 원본 데이터를 통해 데이터 복구를 수행하는 단계를 포함할 수 있다.Referring to FIG. 7, the first storage device may be a dual-write table space, and the second storage device may be a data table space. Therefore, the data input from the host device (not shown) is first stored in the double write table space (710). It can be used for data recovery in case of system failure. Next, in operation 720, data stored in the double-write table space is stored in the data table space. The controller may control the dual write table space and the data table space through the data mapping table (730). The control step 730 may include controlling to overwrite the data table space with data stored in the double write table space when the capacity of the double write table space is full, and when the error occurs in the data table space. The method may include performing data recovery through the original data stored in the table space.

여기서, 이중쓰기 테이블 스페이스를 위한 장치는 플래시 메모리인 것이 바람직하다. 왜냐하면, 플래시 메모리의 빠른 액세스가 이중쓰기 테이블 스페이스에 효과적이기 때문이다. Here, it is preferable that the device for the double-write table space is a flash memory. This is because fast access to flash memory is effective for double-write table spaces.

도 8은 본 발명의 일 실시예에 따른 이중쓰기를 이용하는 저장 방법의 읽기 명령을 수행하는 방법을 나타낸 흐름도이다. 도 8에 도시된 바와 같이, 본 발명의 일 실시예에 따른 저장 방법의 읽기 명령에 따른 동작 단계는 데이터 버퍼(미도시)에서 요청된 데이터를 검색하여 읽어오는 단계(810) 및 맵핑 테이블을 통해 이중쓰기 테이블 스페이스에 존재하는 데이터를 검색하여 읽어오는 단계(820)를 포함할 수 있다.8 is a flowchart illustrating a method of performing a read command of a storage method using double writing according to an embodiment of the present invention. As shown in FIG. 8, an operation according to a read command of a storage method according to an exemplary embodiment of the present invention may be performed by retrieving and reading requested data from a data buffer (not shown) (810) and a mapping table. The method may include searching for and reading data existing in the double-write table space (820).

도 8을 참조하면, 원하는 데이터 페이지 요청시 요청된 데이터가 데이터 버퍼(미도시)에 있는지 살펴본다(810). 데이터 버퍼에 요청된 데이터가 존재하면 데이터를 인출하고 읽기 요청 관련 동작을 완료한다. 하지만, 데이터 버퍼에 원하는 데이터가 없는 경우, 이중쓰기 데이터 스페이스에서 데이터를 인출하는 단계(820)를 수행한다. 즉, 이중쓰기 해시를 이용하여 맵핑 테이블을 참조한다. 맵핑 테이블에는 이중쓰기 테이블 스페이스에 있는 모든 데이터와 이중쓰기 테이블 스페이스 내부의 저장 위치의 맵핑 관계가 있으므로, 이를 참조하여 요청된 데이터가 있는지 탐색한다. 탐색 결과, 데이터가 있으면, 이를 이중쓰기 테이블 스페이스로부터 인출하여 읽기 요청 관련 동작을 완료한다. 데이터가 없는 경우, 데이터 테이블 스페이스를 탐색하여 요청된 데이터를 인출한다. Referring to FIG. 8, the method checks whether data requested in a data page request is in a data buffer (not shown) (810). If the requested data exists in the data buffer, the data is fetched and the read request related operation is completed. However, if there is no desired data in the data buffer, step 820 of extracting data from the double-write data space is performed. In other words, the mapping table is referenced using a double-write hash. The mapping table has a mapping relationship between all data in the double-write table space and the storage location inside the double-write table space, so look up it to see if the requested data exists. As a result of the search, if there is data, it is fetched from the double-write table space to complete the operation related to the read request. If there is no data, the data table space is searched and the requested data is retrieved.

도 9a는 종래 이중쓰기 기법에서의 이중쓰기 영역의 내용이 교체되기 전에 비동기적 쓰기를 완료하고 나서 내용을 교체하는 모습을 도시한 도면이다. 도 9a에 도시된 바와 같이, 이중쓰기를 이용한 저장 장치(910)는 앞쪽에 이중쓰기 영역을 하나의 저장 장치에 가지고 있는 방식을 사용하여 이중쓰기 영역에 데이터를 저장하고, 저장된 데이터를 다시 데이터 영역에 이중으로 덮어쓰는 방식을 사용하였다. FIG. 9A is a diagram illustrating a state in which contents are replaced after asynchronous writing is completed before contents of the dual writing region are replaced in the conventional double writing technique. As shown in FIG. 9A, the storage device 910 using double writing stores data in the double writing area by using a double writing area in one storage device, and stores the stored data again in the data area. Double overwriting was used.

도 9a를 참조하면, 도면에서의 한 칸은 다수의 페이지를 상징적으로 나타낸 것으로 버퍼 안의 페이지 수는 512개가 들어 있을 수 있다. 이를 데이터의 크기로 환산할 때, 이중쓰기 영역은 2MB의 데이터가 이중쓰기 영역에 저장되어 있는 경우, 이중쓰기 영역이 꽉 차 있게 된다(920). 따라서, 다음의 데이터는 기존 이중쓰기 영역에 있던 데이터를 데이터 영역에 다 덮어쓰고 나서 다음의 새로운 이중쓰기 영역을 생성하고, 새로 생성된 이중쓰기 영역에 다시 데이터를 저장하는 형식이 된다(930). 이러한 경우, 2MB마다 동기화를 수행해야 하고 동기화 쓰기 요청을 빈번하게 할수록 연산량이 많아져서 저장 효율이 떨어지게 되는 문제점이 있다.Referring to FIG. 9A, one column in the drawing symbolically represents a plurality of pages, and the number of pages in the buffer may include 512 pages. When converting the data into the size of the data, the double-write area becomes full when the 2MB data is stored in the double-write area (920). Accordingly, the next data is in the form of overwriting the data in the existing double write area with the data area, generating the next new double write area, and storing the data again in the newly created double write area (930). In this case, the synchronization needs to be performed every 2MB, and the more frequently the write write request is, the more the calculation amount is and the storage efficiency is lowered.

도 9b는 본 발명의 일 실시예에 따른 이중쓰기를 이용하는 저장 시스템에서의 이중쓰기 영역의 크기가 확장되어 동기화 주기를 늦추어 입출력 명령을 병렬처리하는 모습을 도시한 도면이다.FIG. 9B is a diagram illustrating an example of parallel processing of an input / output command by delaying a synchronization period by expanding a size of a double write area in a storage system using double writes according to an embodiment of the present invention.

도 9b를 참조하면, 이중쓰기 영역(950)을 플래시 메모리로 따로 확보하였기 때문에 최초 4칸의 데이터 즉, 1MB의 데이터를 데이터 영역(960)에 저장하는 경우는 종래의 방식과 동일할 수 있으나, 2MB 이상의 데이터를 저장하는 경우, 본 발명의 일 실시예에 따른 저장 시스템의 경우에는 이중쓰기 영역(970)에 저장 공간의 여유가 있어 데이터를 저장할 수 있고, 또한, 이중쓰기 영역의 동기화 요청 없이도 데이터 영역(980)에 데이터를 저장할 수 있다. 실제로, 이중쓰기 영역(970)은 플래시 메모리의 용량으로 1GB마다 동기화되도록 수정하여 병렬성을 높일 수 있다. 더욱이, 플래시 메모리의 용량은 1GB 이상일 수도 있다. 2GB 또는 4GB의 용량을 갖는 플래시 메모리를 사용할 수도 있다. 이러한 경우, 이중쓰기 영역의 동기화 주기를 늘려, 출력 병렬성을 보다 강화할 수 있다.Referring to FIG. 9B, since the dual write area 950 is separately secured as a flash memory, the first 4 spaces, that is, 1 MB of data, may be stored in the data area 960 in the same manner as the conventional method. In the case of storing data of 2MB or more, in the case of a storage system according to an exemplary embodiment of the present invention, there is a storage space in the dual-write area 970 so that data can be stored, and the data can be stored without requesting synchronization of the dual-write area. Data may be stored in the area 980. In fact, the dual write area 970 may be modified to be synchronized with each 1GB according to the capacity of the flash memory to increase parallelism. Moreover, the capacity of the flash memory may be 1 GB or more. You can also use flash memory with a capacity of 2GB or 4GB. In this case, the output parallelism can be further enhanced by increasing the synchronization period of the dual write area.

도 10은 본 발명의 일 실시예에 따른 이중쓰기를 이용하는 저장 시스템과 다른 방식을 적용한 저장 시스템과의 동시 사용자 증가에 따른 성능 비교를 수행한 그래프이다. 여기서, Read Cache는 플래시 메모리 SSD를 캐시로서 사용하는 경우를 말하고, DW-seperate는 이중쓰기 영역을 확장시키지는 않고, 종래와 다르게 분리시킨 경우를 말하며, Original은 종래의 이중쓰기 방식을 이용하는 저장 장치를 말한다. 가로축은 동시 접속 사용자를 가리키고, 세로축은 수행시간 동안의 평균 TPS(Transaction Per Second)를 가리킨다. 이중쓰기 영역을 다른 저장장치로 분리하니 전체적으로 3% 가량의 성능 향상을 보였다. 여기에 읽기 캐시 기능이 적용되자 성능이 크게 증가하였다. 기본적으로 임의 읽기 성능이 SSD가 실험에 사용한 HDD보다 10배나 우수하며, 데이터 페이지 쓰기의 병렬성이 높아졌기 때문이다.FIG. 10 is a graph illustrating performance comparison according to an increase in the number of concurrent users between a storage system using dual writing and a storage system using a different method according to an embodiment of the present invention. Here, Read Cache refers to a case in which a flash memory SSD is used as a cache, and DW-seperate refers to a case in which the double-write area is not expanded but is separated from the conventional one, and Original refers to a storage device using a conventional double-write method. Say. The horizontal axis indicates concurrent users, and the vertical axis shows the average Transaction Per Second (TPS) during execution time. By separating the dual write area into other storage devices, the overall performance improved by about 3%. When the read cache function is applied, the performance is greatly increased. This is because the random read performance is basically 10 times better than the HDD used in the experiment, and the parallelism of data page writing is increased.

도 11은 본 발명의 일 실시예에 따른 이중쓰기를 이용하는 저장 시스템에서 플래시 메모리를 통한 캐시 영역의 크기에 따른 성능 및 적중률의 변화를 나타내는 그래프이다. 도 11에 도시된 바와 같이, 동시 사용자 수를 16명으로 고정하고, 캐시 영역의 크기를 1GB~4GB로 증가시키면서 벤치마크를 수행한 결과, 캐시 영역의 크기가 증가할수록 TPS와 적중률이 증가하는 것을 볼 수 있다. 캐시를 사용하지 않은 결과와 비교하면 30GB 데이터에서 1GB 캐시는 평균 47%에서 최대 54% 가량 성능이 향상된 것을 확인할 수 있다.FIG. 11 is a graph illustrating a change in performance and hit ratio according to a size of a cache region through a flash memory in a storage system using dual writes according to an embodiment of the present invention. As shown in FIG. 11, as the number of concurrent users is fixed to 16, and benchmarking is performed while increasing the size of the cache area from 1 GB to 4 GB, the TPS and the hit ratio increase as the size of the cache area increases. can see. Compared with the result of not using the cache, we can see that the performance of 1GB cache is improved from 47% up to 54% on 30GB data.

이상 도면 및 실시예를 참조하여 설명하였지만, 본 발명의 보호범위가 상기 도면 또는 실시예에 의해 한정되는 것을 의미하지는 않으며 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the inventions as defined by the following claims It will be understood that various modifications and changes may be made thereto without departing from the spirit and scope of the invention.

Claims (17)

이중쓰기 버퍼를 통해 호스트 장치로부터 입력받은 원본 데이터를 저장하는 제 1 저장 장치;
상기 제 1 저장 장치와 인터페이싱하여 상기 제 1 저장 장치로부터 데이터를 입력받아 저장하는 제 2 저장 장치; 및
상기 이중쓰기 버퍼를 포함하고, 데이터 맵핑 테이블을 통해 상기 제 1 저장 장치와 상기 제 2 저장 장치를 제어하며, 상기 제 1 저장 장치의 용량이 다 찬 경우, 상기 제 1 저장 장치에 저장된 데이터를 상기 제 2 저장 장치에 덮어쓰도록 제어하는 제어부를 포함하되,
상기 제 1 저장 장치는 플래시 메모리로서, 상기 제 2 저장 장치에 오류가 발생한 경우, 상기 저장된 원본 데이터를 통해 데이터 복구를 수행하기 위한 것을 특징으로 하는 플래시 메모리를 통한 이중쓰기를 이용하는 저장 시스템.
A first storage device storing original data received from a host device through a double write buffer;
A second storage device interfacing with the first storage device to receive and store data from the first storage device; And
The first storage device and the second storage device are controlled through the data mapping table, and when the capacity of the first storage device is full, the data stored in the first storage device is stored. A control unit for controlling to overwrite the second storage device,
The first storage device is a flash memory, and when an error occurs in the second storage device, a storage system using double write through the flash memory, characterized in that for performing data recovery through the stored original data.
제 1 항에 있어서,
상기 제 1 저장 장치의 입출력 패턴은 순차 쓰기(FIFO:First Input First Output) 및 임의(Random) 읽기 형태인 것을 특징으로 하는 플래시 메모리를 통한 이중쓰기를 이용하는 저장 시스템.
The method of claim 1,
The input / output pattern of the first storage device has a first write first output (FIFO) and random (Random) read form, the storage system using dual write through the flash memory.
제 1 항에 있어서,
상기 제 1 저장 장치는 1 기가 바이트, 2 기가 바이트 및 4 기가 바이트 중 어느 하나의 용량을 갖는 것을 특징으로 하는 플래시 메모리를 통한 이중쓰기를 이용하는 저장 시스템.
The method of claim 1,
The first storage device has a capacity of any one of 1 gigabyte, 2 gigabyte, and 4 gigabyte.
제 1 항에 있어서,
상기 제어부는 데이터 버퍼를 더 포함하는 것을 특징으로 하는 플래시 메모리를 통한 이중쓰기를 이용하는 저장 시스템.
The method of claim 1,
And the control unit further comprises a data buffer.
제 1 항에 있어서,
상기 맵핑 테이블은 상기 제 1 저장 장치에 존재하는 모든 데이터의 정보와 상기 제 1 저장 장치 내부의 위치 정보를 맵핑하고 있는 것을 특징으로 하는 플래시 메모리를 통한 이중쓰기를 이용하는 저장 시스템.
The method of claim 1,
And the mapping table maps information of all data existing in the first storage device and location information inside the first storage device.
제 1 항에 있어서,
상기 호스트 장치로부터 데이터 읽기 요청을 수신하는 경우, 먼저 상기 데이터 버퍼에서 요청된 데이터를 검색하여 읽어오고,
상기 데이터 버퍼에 상기 요청된 데이터가 없는 경우, 상기 맵핑 테이블을 통해 상기 제 1 저장 장치에 존재하는 데이터를 읽어오는 것을 특징으로 하는 플래시 메모리를 통한 이중쓰기를 이용하는 저장 시스템.
The method of claim 1,
When receiving a data read request from the host device, first, the requested data is retrieved and read from the data buffer,
And when the requested data is not in the data buffer, reading data existing in the first storage device through the mapping table.
제 1 항에 있어서,
상기 맵핑 테이블은 상기 원본 데이터의 데이터 영역 오프셋(offset), 상기 제 1 저장 장치 내에서의 위치 정보 및 해시 체인을 구성하는 포인터로 구성되는 것을 특징으로 하는 플래시 메모리를 통한 이중쓰기를 이용하는 저장 시스템.
The method of claim 1,
And the mapping table comprises a data area offset of the original data, location information in the first storage device, and a pointer constituting a hash chain.
제 1 항에 있어서,
상기 제 2 저장 장치는 자기 하드 디스크인 것을 특징으로 하는 플래시 메모리를 통한 이중쓰기를 이용하는 저장 시스템.
The method of claim 1,
And said second storage device is a magnetic hard disk.
이중쓰기 버퍼를 통해 호스트 장치로부터 입력받은 원본 데이터를 플래시 메모리인 제 1 저장 장치에 저장하는 단계;
상기 제 1 저장 장치와 인터페이싱하여 상기 제 1 저장 장치로부터 데이터를 입력받아 제 2 저장 장치에 저장하는 단계; 및
제어부가 데이터 맵핑 테이블을 통해 상기 제 1 저장 장치와 상기 제 2 저장 장치를 제어하는 단계를 포함하되,
상기 제어 단계는 상기 제 1 저장 장치의 용량이 다 찬 경우, 상기 제 1 저장 장치에 저장된 데이터를 상기 제 2 저장 장치에 덮어쓰도록 제어하는 단계; 및
상기 제 2 저장 장치에 오류가 발생한 경우, 상기 제 1 저장 장치에 저장된 원본 데이터를 통해 데이터 복구를 수행하는 단계를 포함하는 것을 특징으로 하는 플래시 메모리를 통한 이중쓰기를 이용하는 저장 방법.
Storing original data received from the host device through a double write buffer in a first storage device which is a flash memory;
Interfacing with the first storage device and receiving data from the first storage device and storing the data in the second storage device; And
And controlling the controller to control the first storage device and the second storage device through a data mapping table.
The controlling may include controlling to overwrite data stored in the first storage device with the second storage device when the capacity of the first storage device is full; And
And performing data recovery through original data stored in the first storage device when an error occurs in the second storage device.
제 9 항에 있어서,
상기 제 1 저장 장치의 입출력 패턴은 순차 쓰기(FIFO:First Input First Output) 및 임의(Random) 읽기 형태인 것을 특징으로 하는 플래시 메모리를 통한 이중쓰기를 이용하는 저장 방법.
The method of claim 9,
The input / output pattern of the first storage device is a first write first output (FIFO) and random (random) read form, characterized in that the dual write through the flash memory.
제 9 항에 있어서,
상기 제 1 저장 장치는 1 기가 바이트, 2 기가 바이트 및 4 기가 바이트 중 어느 하나의 용량을 갖는 것을 특징으로 하는 플래시 메모리를 통한 이중쓰기를 이용하는 저장 방법.
The method of claim 9,
The first storage device has a capacity of any one of 1 gigabyte, 2 gigabyte, and 4 gigabyte.
제 9 항에 있어서,
상기 제어부는 데이터 버퍼를 더 포함하는 것을 특징으로 하는 플래시 메모리를 통한 이중쓰기를 이용하는 저장 방법.
The method of claim 9,
And the control unit further comprises a data buffer.
제 9 항에 있어서,
상기 이중쓰기 버퍼는 상기 제 1 및 제 2 저장 장치에 입력될 데이터를 임시로 보관하고 있는 것을 특징으로 하는 플래시 메모리를 통한 이중쓰기를 이용하는 저장 방법.
The method of claim 9,
And the double write buffer temporarily stores data to be input to the first and second storage devices.
제 9 항에 있어서,
상기 제어부는 상기 제 1 저장 장치에 존재하는 모든 데이터의 정보와 상기 제 1 저장 장치 내부의 위치 정보를 맵핑하고 있는 맵핑 테이블을 포함하는 것을 특징으로 하는 플래시 메모리를 통한 이중쓰기를 이용하는 저장 방법.
The method of claim 9,
And the control unit includes a mapping table that maps information of all data existing in the first storage device and location information in the first storage device.
제 14 항에 있어서, 상기 제어 단계는,
상기 호스트 장치로부터 데이터 읽기 요청을 수신하는 경우, 상기 데이터 버퍼에서 요청된 데이터를 검색하여 읽어오는 단계; 및
상기 데이터 버퍼에 상기 요청된 데이터가 없는 경우, 상기 맵핑 테이블을 통해 상기 제 1 저장 장치에 존재하는 데이터를 읽어오는 단계를 포함하는 것을 특징으로 하는 플래시 메모리를 통한 이중쓰기를 이용하는 저장 방법.
The method of claim 14, wherein the controlling step,
Retrieving the requested data from the data buffer when receiving a data read request from the host device; And
And reading data existing in the first storage device through the mapping table when the requested data is not present in the data buffer.
제 14 항에 있어서,
상기 맵핑 테이블은 상기 원본 데이터의 데이터 영역 오프셋(offset), 상기 제 1 저장 장치 내에서의 위치 정보 및 해시 체인을 구성하는 포인터로 구성되는 것을 특징으로 하는 플래시 메모리를 통한 이중쓰기를 이용하는 저장 방법.
15. The method of claim 14,
And the mapping table comprises a data area offset of the original data, location information in the first storage device, and a pointer constituting a hash chain.
제 9 항에 있어서,
상기 제 2 저장 장치는 자기 하드 디스크인 것을 특징으로 하는 플래시 메모리를 통한 이중쓰기를 이용하는 저장 방법.
The method of claim 9,
And the second storage device is a magnetic hard disk.
KR1020110123710A 2011-11-24 2011-11-24 Storage system and method using double writing based on flash memory KR101341615B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110123710A KR101341615B1 (en) 2011-11-24 2011-11-24 Storage system and method using double writing based on flash memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110123710A KR101341615B1 (en) 2011-11-24 2011-11-24 Storage system and method using double writing based on flash memory

Publications (2)

Publication Number Publication Date
KR20130057789A true KR20130057789A (en) 2013-06-03
KR101341615B1 KR101341615B1 (en) 2013-12-13

Family

ID=48857282

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110123710A KR101341615B1 (en) 2011-11-24 2011-11-24 Storage system and method using double writing based on flash memory

Country Status (1)

Country Link
KR (1) KR101341615B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101654709B1 (en) * 2015-11-02 2016-09-06 재단법인대구경북과학기술원 Apparatus and Method for writing and reading a data on flash memory

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000055939A (en) * 1999-02-11 2000-09-15 김영환 Write apparatus and method for flash memory
US9104315B2 (en) * 2005-02-04 2015-08-11 Sandisk Technologies Inc. Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101654709B1 (en) * 2015-11-02 2016-09-06 재단법인대구경북과학기술원 Apparatus and Method for writing and reading a data on flash memory

Also Published As

Publication number Publication date
KR101341615B1 (en) 2013-12-13

Similar Documents

Publication Publication Date Title
Ouyang et al. Beyond block I/O: Rethinking traditional storage primitives
US11055230B2 (en) Logical to physical mapping
US9449005B2 (en) Metadata storage system and management method for cluster file system
JP6224253B2 (en) Speculative prefetching of data stored in flash memory
CN107784121B (en) Lowercase optimization method of log file system based on nonvolatile memory
US8280858B2 (en) Storage pool scrubbing with concurrent snapshots
Lee et al. Shortcut-JFS: A write efficient journaling file system for phase change memory
KR102275563B1 (en) Host-managed non-volatile memory
US8984247B1 (en) Storing and reconstructing mapping table data in a data storage system
US10956071B2 (en) Container key value store for data storage devices
US9170932B1 (en) System data storage mechanism providing coherency and segmented data loading
US10740246B2 (en) Storage of an inverted index in non-volatile memory
US20130024618A1 (en) Log structure array
KR20140094278A (en) Semiconductor apparatus and method of operating the same
US20170017405A1 (en) Systems and methods for improving flash-oriented file system garbage collection
CN110659248A (en) User mode file system design method and system based on nonvolatile memory
US20170017406A1 (en) Systems and methods for improving flash-oriented file system garbage collection
KR101341615B1 (en) Storage system and method using double writing based on flash memory
Lee et al. TLSM: Tiered log-structured merge-tree utilizing non-volatile memory
CN111026678B (en) Cache design method and device based on solid state disk and computer equipment
Lee et al. DTFS: exploiting the similarity of data versions to design a write-efficient file system in phase-change memory
KR101270777B1 (en) System and method for writing data using a PRAM in a device based on input-output of block unit
Zhang et al. Optimizing CoW-based file systems on open-channel SSDs with persistent memory
Wang Tags: A Unifying Primitive for the Storage Data Path
Karim Supplementing a Modern Storage Engine with Non-volatile Memory

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: 20160928

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee