KR100951099B1 - Method for storing and managing of data, and record media recoded program for implement thereof - Google Patents
Method for storing and managing of data, and record media recoded program for implement thereof Download PDFInfo
- Publication number
- KR100951099B1 KR100951099B1 KR1020080072022A KR20080072022A KR100951099B1 KR 100951099 B1 KR100951099 B1 KR 100951099B1 KR 1020080072022 A KR1020080072022 A KR 1020080072022A KR 20080072022 A KR20080072022 A KR 20080072022A KR 100951099 B1 KR100951099 B1 KR 100951099B1
- Authority
- KR
- South Korea
- Prior art keywords
- buffer block
- data
- storage
- buffer
- block
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0626—Reducing size or complexity of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
- G06F3/064—Management of blocks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명은 블록 단위 트랜잭션을 이용하여 대량의 데이터를 최소의 저장 공간에 실시간으로 저장하여 관리할 수 있도록 한 데이터 저장 관리 방법 및 그 방법을 수행하기 위한 프로그램이 기록된 기록매체에 관한 것으로, 데이터 저장관리 방법은 클라이언트의 데이터 삽입을 위한 상기 클라이언트의 삽입세션(Insert Session)에 따른 데이터를 실시간으로 수신하는 단계; 상기 수신된 데이터를 버퍼블록에 저장하고, 상기 데이터가 상기 버퍼블록의 저장공간에 모두 채워지거나 상기 버퍼블록의 저장 가능시간이 초과되는 경우 상기 버퍼블록에 저장된 데이터를 이용하여 블록 단위의 삽입 트랜잭션을 생성하는 단계; 및 상기 생성된 삽입 트랜잭션 단위의 데이터를 저장 디스크에 저장하는 단계를 포함하여 이루어지며, 상기 데이터를 저장 디스크에 저장하는 단계는 시간 범위로 로컬 인덱싱이 가능하도록 상기 블록 단위의 삽입 트랜잭션을 주기적으로 압축하여 압축된 버퍼블록을 생성하고, 상기 압축된 버퍼블록의 시간정보 및 위치를 상기 저장 디스크의 로컬 인덱스 영역에 저장함과 아울러 상기 압축된 버퍼블록의 데이터를 상기 저장 디스크의 데이터 영역에 저장하는 것을 특징으로 한다.The present invention relates to a data storage management method for storing and managing a large amount of data in a minimum storage space in real time using a block-by-block transaction, and a recording medium on which a program for executing the method is recorded. The management method may include receiving data in real time according to an insert session of the client for inserting data of the client; When the received data is stored in the buffer block and the data is filled in the storage space of the buffer block or the storage time of the buffer block is exceeded, an insert transaction in block units is performed using the data stored in the buffer block. Generating; And storing the generated insert transaction unit data on a storage disk, wherein storing the data on the storage disk periodically compresses the insert transaction on a block basis to enable local indexing over a time range. Generate a compressed buffer block, store time information and location of the compressed buffer block in a local index area of the storage disk, and store data of the compressed buffer block in a data area of the storage disk. It is done.
삽입세션, 트랜잭션, 버퍼블록, 로컬 인덱스, 디스크 Insert Session, Transaction, Buffer Block, Local Index, Disk
Description
본 발명은 데이터 저장 관리 방법에 관한 것으로, 보다 구체적으로, 블록 단위 트랜잭션을 이용하여 대량의 데이터를 최소의 저장 공간에 실시간으로 저장하여 관리할 수 있도록 한 데이터 저장 관리 방법 및 그 방법을 수행하기 위한 프로그램이 기록된 기록매체에 관한 것이다.The present invention relates to a data storage management method, and more particularly, to a data storage management method and a method for performing a method of storing and managing a large amount of data in a minimum storage space in real time using a block unit transaction. It relates to a recording medium on which a program is recorded.
일반적으로, 반도체 제조공정과 같은 물품 제조공정에서는 공정 진행상태, 수량, 관리 등의 정보와 같은 수 많은 데이터가 발생하고, 이러한 데이터를 관리하기 위한 데이터 관리 시스템이 사용되고 있다.In general, a large number of data such as information on process progress, quantity, management, etc. are generated in an article manufacturing process such as a semiconductor manufacturing process, and a data management system for managing such data is used.
일반적으로 데이터 관리 시스템은 레코드(Record)인 튜플(Tuple)의 삽입/삭제/변경(Insert/Delete/Update) 연산을 하는 트랜잭션 처리를 통해 테이블의 변경사항을 저장 공간에 기록한다. 그리고 트랜잭션 처리 내역을 로그 형태로 저장 공간에 기록한다. 이와 같이 트랜잭션마다 로그를 저장 공간에 기록하는 방식은 로그 저장을 위한 비용이 많이 필요하게 된다. 따라서, 튜플 단위의 트랜잭션 처리 방식은 저장 공간에 인덱스를 재구성하는 인덱스 생성 비용 및 개별 트랜잭션을 위한 로그 기록 비용이 필요하다는 문제점이 있으며, 저장 공간의 한정된 크기로 인해 대용량 데이터의 저장시 매우 많은 비용이 필요하게 되고, 대용량의 데이터를 실시간으로 저장할 수가 없다는 문제점이 있다.In general, a data management system records changes in a table in a storage space through transaction processing of insert / delete / update operations of a tuple, which is a record. The transaction processing history is recorded in the storage space in log form. As such, the method of recording the log in the storage space for each transaction requires a lot of cost for log storage. Therefore, the tuple-based transaction processing method requires the cost of creating an index to reorganize an index into a storage space, and a log writing cost for an individual transaction. Due to the limited size of the storage space, it is very expensive to store a large amount of data. There is a problem that can not be stored in real time, a large amount of data.
본 발명은 상술한 문제점을 해결하기 위한 것으로서, 블록 단위 트랜잭션을 이용하여 대량의 데이터를 최소의 저장 공간에 실시간으로 저장하여 관리할 수 있도록 한 데이터 저장 관리 방법 및 그 방법을 수행하기 위한 프로그램이 기록된 기록매체를 제공하는 것을 기술적 과제로 한다.SUMMARY OF THE INVENTION The present invention has been made to solve the above-described problem, and a data storage management method and a program for executing the method are provided so that a large amount of data can be stored and managed in real time using a block-by-block transaction in real time. It is a technical problem to provide a recorded recording medium.
상술한 목적을 달성하기 위한 본 발명에 따른 데이터 저장관리 방법은 클라이언트의 데이터 삽입을 위한 상기 클라이언트의 삽입세션(Insert Session)에 따른 데이터를 실시간으로 수신하는 단계; 상기 수신된 데이터를 버퍼블록에 저장하고, 상기 데이터가 상기 버퍼블록의 저장공간에 모두 채워지거나 상기 버퍼블록의 저장 가능시간이 초과되는 경우 상기 버퍼블록에 저장된 데이터를 이용하여 블록 단위의 삽입 트랜잭션을 생성하는 단계; 및 상기 생성된 삽입 트랜잭션 단위의 데이터를 저장 디스크에 저장하는 단계를 포함하여 이루어지며, 상기 데이터를 저장 디스크에 저장하는 단계는 시간 범위로 로컬 인덱싱이 가능하도록 상기 블록 단위의 삽입 트랜잭션을 주기적으로 압축하여 압축된 버퍼블록을 생성하고, 상기 압축된 버퍼블록의 시간정보 및 위치를 상기 저장 디스크의 로컬 인덱스 영역에 저장함과 아울러 상기 압축된 버퍼블록의 데이터를 상기 저장 디스크의 데이터 영역에 저장하는 것을 특징으로 한다.Data storage management method according to the present invention for achieving the above object comprises the steps of receiving data in accordance with the Insert Session (Insert Session) of the client for data insertion of the client in real time; When the received data is stored in the buffer block and the data is filled in the storage space of the buffer block or the storage time of the buffer block is exceeded, an insert transaction in block units is performed using the data stored in the buffer block. Generating; And storing the generated insert transaction unit data on a storage disk, wherein storing the data on the storage disk periodically compresses the insert transaction on a block basis to enable local indexing over a time range. Generate a compressed buffer block, store time information and location of the compressed buffer block in a local index area of the storage disk, and store data of the compressed buffer block in a data area of the storage disk. It is done.
상기 블록 단위의 삽입 트랜잭션을 생성하는 단계는 상기 삽입세션을 위해 상기 버퍼블록을 할당하는 단계; 상기 할당된 버퍼블록을 상기 삽입세션에 연결하는 단계; 상기 연결된 삽입세션을 통해 상기 데이터를 입력받는 단계; 상기 입력되는 데이터를 상기 할당된 버퍼블록에 저장하는 단계; 상기 입력되는 데이터가 상기 할당된 버퍼블록의 저장공간에 모두 채워지거나 상기 버퍼블록의 저장 가능시간이 초과되는 경우 상기 할당된 버퍼블록의 데이터 저장을 중지하는 단계; 및 상기 입력된 데이터가 저장된 버퍼블록을 이용하여 상기 삽입 트랜잭션을 생성함과 아울러 상기 삽입 트랜잭션의 저장을 요청하는 단계를 포함하여 이루어지는 것을 특징으로 한다.Generating an insert transaction in block units may include allocating the buffer block for the insert session; Coupling the allocated buffer block to the insertion session; Receiving the data through the connected insertion session; Storing the input data in the allocated buffer block; Stopping data storage of the allocated buffer block when the input data is filled in the storage space of the allocated buffer block or when the storage available time of the buffer block is exceeded; And generating the insertion transaction by using the buffer block in which the input data is stored, and requesting the storage of the insertion transaction.
상기 버퍼블록을 할당하는 단계는 대기 상태인 제 1 워크 플래그, 삽입 트랜잭션 생성중인 제 2 워크 플래그, 및 삽입 트랜잭션 저장중인 제 3 워크 플래그를 가지도록 메모리에 생성된 복수의 상기 버퍼블록을 포함하는 버퍼 풀(Buffer Pool)을 생성하는 단계; 상기 버퍼 풀 내의 버퍼블록 중 상기 제 1 워크 플래그 상태를 가지는 버퍼블록을 제공하는 대기 버퍼블록 리스트 정보, 상기 버퍼 풀 내의 버퍼블록 중 상기 제 2 워크 플래그 상태를 가지는 버퍼블록을 제공하는 삽입 버퍼블록 리스트 정보, 및 상기 버퍼 풀 내의 버퍼블록 중 상기 제 3 워크 플래그 상태를 가지는 버퍼블록을 제공하는 저장 버퍼블록 리스트 정보를 포함하는 버퍼 정보를 생성하는 단계; 상기 버퍼 풀 내의 버퍼블록 중 상기 대기 버퍼 리스트 정보 중 첫 번째 버퍼블록을 상기 삽입세션에 할당하는 단계; 및 상기 할당된 버퍼블록의 상태를 제 2 워크 플래그 상태로 변경하는 단계를 포함하여 이루어지는 것을 특징으로 한다.The allocating of the buffer block may include: a buffer including a plurality of the buffer blocks generated in a memory to have a first walk flag that is in a waiting state, a second walk flag that is generating an insert transaction, and a third walk flag that is storing an insert transaction; Creating a pool; Wait buffer block list information for providing a buffer block having the first walk flag state among the buffer blocks in the buffer pool, and an insert buffer block list for providing a buffer block having the second walk flag state among the buffer blocks in the buffer pool. Generating buffer information including information and storage buffer block list information for providing a buffer block having the third walk flag state among the buffer blocks in the buffer pool; Allocating a first buffer block of the waiting buffer list information among the buffer blocks in the buffer pool to the insertion session; And changing a state of the allocated buffer block to a second walk flag state.
상기 데이터 저장관리 방법은 상기 삽입 트랜잭션의 요청에 응답하여 상기 버퍼블록을 제 3 워크 플래그 상태로 변경하고, 상기 버퍼블록의 위치를 상기 저장 버퍼블록 리스트 정보의 마지막에 추가하는 단계; 및 상기 저장 디스크에 상기 삽입 트랜잭션의 데이터의 저장이 완료되면 상기 저장 완료된 버퍼블록의 위치를 상기 대기 버퍼 리스트 정보의 마지막에 추가하는 단계를 더 포함하여 이루어지는 것을 특징으로 한다.The data storage management method includes changing the buffer block to a third walk flag state in response to a request of the insert transaction, and adding a location of the buffer block to the end of the storage buffer block list information; And when the storing of the data of the insertion transaction is completed on the storage disk, adding the position of the buffer buffer completed at the end of the waiting buffer list information.
상술한 바와 같이 본 발명은 다음과 같은 효과가 있다.As described above, the present invention has the following effects.
첫째, 반도체 제조 공정 등에서 발생되는 대용량 데이터를 일정한 시간 범위를 가지는 블록 단위의 트랜잭션 기법을 이용함으로써 대용량 데이터를 고속으로 처리할 수 있다.First, a large amount of data generated in a semiconductor manufacturing process may be processed at a high speed by using a block-based transaction method having a predetermined time range.
둘째, 블록 단위로 데이터를 압축하여 로그 기록 수와 저장 디스크의 입출력을 감소시킴으로써 대용량 데이터를 빠른 속도로 저장 디스크에 저장할 수 있으며, 저장 디스크의 저장공간을 감소시킬 수 있다.Second, by compressing data in units of blocks to reduce the number of log records and the input / output of the storage disk, large data can be stored in the storage disk at high speed, and the storage space of the storage disk can be reduced.
셋째, 블록 단위의 데이터 압축시 시간 범위의 로컬 인덱싱을 생성하고, 이 로컬 인덱싱을 이용한 필요한 블록의 압축만을 해제하여 데이터 검색이 가능하게 함으로써 데이터 검색의 시간을 감소시킴과 아울러 데이터 검색 성능을 향상시킬 수 있다.Third, when local data is compressed in block units, local indexing in time range is generated, and data retrieval is possible by decompressing only necessary blocks using local indexing, thereby reducing data retrieval time and improving data retrieval performance. Can be.
이하 첨부된 도면을 참조하여 본 발명의 실시 예에 대해 상세히 설명한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명의 실시 예에 따른 데이터 저장 관리 시스템을 설명하기 위한 개념도이고, 도 2는 본 발명의 실시 예에 따른 데이터 저장관리 시스템을 나타내는 블록도이다.1 is a conceptual diagram illustrating a data storage management system according to an embodiment of the present invention, and FIG. 2 is a block diagram illustrating a data storage management system according to an embodiment of the present invention.
도 1 및 도 2를 참조하면, 데이터 저장 관리 시스템(100)은 물품 제조장치(10)에 접속되어 데이터를 수집하는 클라이언트의 삽입세션(Insert Session)에 따른 데이터를 실시간으로 수신하는 데이터 처리부(110); 데이터 처리부(110)에서 수신된 데이터(또는 로그 데이터)를 버퍼블록에 저장하고, 데이터가 버퍼블록의 저장공간을 모두 채우거나 버퍼블록의 저장 가능시간을 초과하는 경우 버퍼블록에 저장된 데이터를 이용하여 블록 단위의 삽입 트랜잭션을 생성하는 버퍼 매니저(Buffer Manager; 120); 시간 기반의 로컬 인덱싱이 가능하도록 블록 단위의 삽입 트랜잭션을 압축하여 압축된 버퍼블록을 생성하는 압축 매니저(Compress Manager; 130); 및 압축된 버퍼블록 단위의 시간정보 및 위치를 저장 디스크의 로컬 인덱스 영역에 저장함과 아울러 압축된 버퍼블록의 데이터를 버퍼블록 단위로 저장 디스크의 데이터 영역에 저장하는 저장 디스크 매니저(Disk Manager; 140)를 포함하여 구성된다.1 and 2, the data
클라이언트(110)는 반도체 제조공정 등과 같은 물품 제조장치(10)의 제조공정에서 발생되는 공정 진행상태, 수량, 관리 등의 데이터를 수집하여 데이터 저장 관리 시스템(100)에 삽입세션을 생성하여 데이터 저장 관리 시스템(100)에 전송한다.The
데이터 처리부(110)는, 스토리지 세션 매니저(Storage Session Manager; 111); 카탈로그 매니저(Catalog Manager; 113); 어드민 세션 매니저(Admin Session Manager; 115); 쿼리 프로세서(Query Processor; 117); 및 리얼 타임 프로세서(Real Time Processor; 119)를 포함하여 구성된다.The
스토리지 세션 매니저(111)는 클라이언트(20)와 연동하여 클라이언트(20)로부터의 삽입세션에 따른 데이터를 수신한다.The
카탈로그 매니저(113)는 저장 디스크에 저장되는 데이터의 유형을 관리한다. 여기서, 데이터 유형은 이름, 종류, 크기, 상태 등이 될 수 있다.The
어드민 세션 매니저(115)는 버퍼블록의 저장공간 및 버퍼블록의 저장 가능시간 등을 설정하거나, 데이터 저장 관리 시스템(100) 내부의 전체적으로 제어 기능을 수행한다.The
쿼리 프로세서(117)는 관리자의 질의에 상응하는 기능을 수행한다. 여기서, 쿼리 처리기(117)는 로컬 인덱스를 이용하여 시간범위를 포함한 질의 내용을 검색하여 검색 결과를 어드민 세션 매니저(115)로 제공할 수 있다.The
리얼 타임 프로세서(119)는 데이터 처리부(110) 내에서의 데이터 처리 및 질의가 실시간으로 이루어질 수 있도록 한다.The
버퍼 매니저(120)는 메모리 상의 블록버퍼에 저장되는 데이터의 관리를 수행한다. 한편, 본 발명의 데이터 저장 관리 시스템(100)은 저장 디스크의 입출력 데이터의 감소를 통한 고속 저장을 위해 튜플(Tuple)의 삽입 요청이 발생할 때 즉시 저장 디스크에 기록하지 않고, 저장되는 튜플을 메모리의 일정 크기의 버퍼블록에 저장하고, 튜플이 버퍼블록의 저장공간에 가득 차거나 특정 주기 마다 동시에 저장 디스크에 기록하는 게으른(Lazy) 저장 방식을 사용한다. 이에, 버퍼 매니저(120)는 이 게으른 저장방식을 지원하는 자료구조를 사용한다. 이러한, 버퍼 매니저(120)는 튜플 별로 트랜잭션의 커밋 롤백을 지원 대신에 버퍼블록 단위의 트랜잭션을 생성하여 커밋 롤백을 지원함으로써 대용량의 데이터를 빠르게 저장할 수 있다.The
이를 위해, 버퍼 매니저(120)는, 도 3에 도시된 바와 같이, 버퍼블록(BF)의 상태에 따른 버퍼블록(BF)의 위치 정보를 제공하는 버퍼 정보(122) 및 메모리 상에 생성된 복수의 버퍼블록(BF)을 가지는 버퍼 풀(Buffer Pool)을 포함하는 자료구조를 갖는다.To this end, the
버퍼블록(BF)은 상태 표시를 위한 워크 플래그(WorkFlag) 영역(210), 시간기반의 로컬 인덱싱 구성을 위한 시간 정보 영역(220), 기타 정보가 저장되는 헤더 정보 영역(230), 및 실제 데이터가 저장되는 데이터 영역(240)을 포함하여 구성될 수 있다.The buffer block BF includes a
워크 플래그 영역(210)에는 버퍼블록(BF)의 상태에 따라 0, 1, 2 중 어느 하나의 상태로 표시될 수 있다. 여기서, 워크 플래그가 0일 경우에는 해당 버퍼블록(BF)이 대기(Wait) 상태인 것을 나타내고, 1일 경우에는 클라이언트(20)의 삽입세션을 통해 삽입 트랜잭션이 생성(Insert)중임을 나타내고, 2일 경우에는 삽입 트랜잭션으로 저장(Flush) 과정을 수행 중임을 나타낸다.The
시간 정보 영역(220)에는 버퍼블록(BF)에 저장된 데이터들 중 발생시간이 가장 늦은 시간 정보(minTime) 및 가장 빠른 시간 정보(maxTime)가 저장된다.The
버퍼 정보(122)는 대기 버퍼블록 리스트 정보, 삽입 버퍼블록 리스트 정보, 저장 버퍼블록 리스트 정보, 및 기타 버퍼블록 리스트 정보를 포함하여 구성될 수 있다.The
대기 버퍼블록 리스트 정보는 버퍼 풀(124) 내의 버퍼블록(BF) 중 워크 플래그 상태가 0인 버퍼블록(BF0) 리스트의 첫번째 위치를 지정한다.The wait buffer block list information designates the first position of the buffer block BF0 list in which the walk flag state is 0 among the buffer blocks BF in the
삽입 버퍼블록 리스트 정보는 버퍼 풀(124) 내의 버퍼블록(BF) 중 워크 플래그 상태가 1인 버퍼블록(BF1) 리스트의 첫 번째 위치를 지정한다.The insertion buffer block list information designates the first position of the buffer block BF1 list in which the walk flag state is 1 among the buffer blocks BF in the
저장 버퍼블록 리스트 정보는 버퍼 풀(124) 내의 버퍼블록(BF) 중 워크 플래그 상태가 2인 버퍼블록(BF0) 리스트의 첫 번째 위치를 지정한다. 즉, 저장 버퍼블록 리스트 정보는 저장 디스크에 저장 작업을 수행하고 있는 삽입 트랜잭션들의 첫 번째 위치를 지정한다.The storage buffer block list information designates the first position of the buffer block BF0 list in which the walk flag state is 2 among the buffer blocks BF in the
버퍼 풀(124)은 메모리 상에 일정한 저장공간을 가지는 상술한 자료 구조의 복수의 버퍼블록(BF)을 생성한다.
이와 같은 버퍼 매니저(120)는 상술한 자료구조를 가지는 버퍼블록(BF)과 삽입 트랜잭션을 이용하여 버퍼 풀(124)의 한정된 버퍼블록(BF)을 관리한다. 즉, 버퍼 매니저(120)는 상술한 버퍼블록(BF)의 워크 플래그 상태 및 상술한 버퍼 정보(122)를 이용하여 버퍼 풀(124) 내에서 버퍼블록(BF)의 교체 정책을 관리한다.The
구체적으로, 버퍼 매니저(120)는, 도 4에 도시된 바와 같이, 새로운 삽입세션에 따라 수신된 데이터를 버퍼블록(BF)에 실시간으로 저장하고, 데이터가 버퍼블록(BF)의 저장공간을 모두 채우거나 버퍼블록(BF)의 저장 가능시간을 초과하는 경 우 버퍼블록(BF)에 저장된 데이터를 이용하여 블록 단위의 삽입 트랜잭션을 생성한다.Specifically, as shown in FIG. 4, the
도 5를 참조하여, 상술한 삽입 트랜잭션을 생성하는 과정을 좀더 구체적으로 설명하면 다음과 같다.Referring to Figure 5, the process of generating the above-described insertion transaction in more detail as follows.
먼저, 도 6에 도시된 바와 같이, 새로운 삽입세션을 위해 버퍼 풀(124) 내의 빈 버퍼블록을 할당하기 위하여 대기 버퍼블록 리스트 정보에 있는 첫 번째 버퍼블록을 삽입세션에 할당하고, 할당된 버퍼블록의 워크 플래그 상태를 1로 변경한다(S1).First, as shown in FIG. 6, in order to allocate an empty buffer block in the
이어, 할당된 버퍼블록을 새로운 삽입세션에 연결한다(S2).Next, the allocated buffer block is connected to a new insertion session (S2).
이어, 연결된 삽입세션을 통해 데이터를 입력받는다(S3).Subsequently, data is input through the connected insertion session (S3).
이어, 할당된 버퍼블록에 입력되는 데이터를 실시간으로 저장한다(S4)Subsequently, data input to the allocated buffer block is stored in real time (S4).
이어, 입력되는 데이터가 할당된 버퍼블록의 저장공간에 모두 채워졌는지를 판단한다(S5).In operation S5, it is determined whether the input data is filled in the storage space of the allocated buffer block.
만약, 입력되는 데이터가 할당된 버퍼블록의 저장공간에 모두 채워지지 않은 경우(S5의 '아니오'), 버퍼블록의 저장 가능시간이 초과되었는지를 판단한다(S6).If the input data is not all filled in the storage space of the allocated buffer block (No in S5), it is determined whether the storage available time of the buffer block has been exceeded (S6).
만약, 버퍼블록의 저장 가능시간이 초과된 경우(S6의 '예'), 입력된 데이터가 저장된 버퍼블록을 이용하여 삽입 트랜잭션을 생성함과 아울러 삽입 트랜잭션의 저장을 요청한다(S7).If the storage available time of the buffer block has been exceeded (YES in S6), an insert transaction is generated using the buffer block in which the input data is stored and the storage of the insert transaction is requested (S7).
만약, 입력되는 데이터가 할당된 버퍼블록의 저장공간에 모두 채워졌을 경우(S5의 '예'), 입력된 데이터가 저장된 버퍼블록을 이용하여 삽입 트랜잭션을 생 성함과 아울러 삽입 트랜잭션의 저장을 요청한다(S7).If the input data is filled in the storage space of the allocated buffer block (YES in S5), the insert data is created using the buffer block in which the input data is stored and the storage of the insert transaction is requested. (S7).
만약, 버퍼블록의 저장 가능시간이 초과하지 않은 경우(S7의 '아니오'), S3 내지 S6 단계를 통해 삽입 트랜잭션을 생성함과 아울러 삽입 트랜잭션의 저장을 요청한다.If the storage available time of the buffer block has not exceeded (No in S7), an insert transaction is generated through the steps S3 to S6 and the storage of the insert transaction is requested.
한편, 버퍼 매니저(120)는, 도 7에 도시된 바와 같이, 생성된 삽입 트랜잭션이 순차적으로 저장 디스크에 저장될 수 있도록 저장 버퍼블록 리스트 정보에 추가한다. 이때, 생성된 삽입 트랜잭션의 위치를 저장 버퍼블록 리스트 정보의 마지막에 추가된다. 그리고, 버퍼 매니저(120)는 저장 버퍼블록 리스트 정보의 첫 번째 버퍼블록(BF)의 데이터가 저장 디스크에 모두 저장되면 이 버퍼블록(BF)의 위치 정보를 대기 버퍼블록 리스트 정보의 마지막에 추가한다.Meanwhile, as shown in FIG. 7, the
상술한 바와 같이, 버퍼 매니저(120)는 대용량 데이터 저장을 지원하기 위해 블록단위의 트랜잭션을 지원하고 이 트랜잭션을 위한 버퍼관리 정책을 지원하게 된다.As described above, the
한편, 본 발명은 버퍼블록(BF)을 압축하여 저장 디스크의 입출력 수를 감소시킴으로써 저장 디스크의 입출력을 감소시켜 대용량 데이터의 저장이 가능하도록 한다. 즉, 데이터 저장 관리 시스템(100)에 저장되는 데이터는 하루에 수 기가 바이트(GB) 이상이기 때문에 데이터를 압축하지 않으면 저장 디스크 비용이 크게 증가하기 때문이다.On the other hand, the present invention by compressing the buffer block (BF) to reduce the number of input and output of the storage disk to reduce the input and output of the storage disk to enable the storage of large data. That is, since the data stored in the data
이에 따라, 압축 매니저(130)는 버퍼 매니저(120)로부터 삽입 트랙잭션에 대한 저장 요청이 발생되면, 시간 범위로 로컬 인덱싱이 가능하도록 저장 디스크에 저장할 버퍼블록(BF)을 주기적으로 압축하여 디스크 매니저(140)에 제공한다. 이때, 압축 매니저(130)는 압축된 버퍼블록(CBF)의 시간 정보가 저장 디스크에 저장되도록 압축된 버퍼블록(CBF)에 저장된 데이터들 중 가장 늦은 시간 정보(minTime) 및 가장 빠른 시간 정보(maxTime)를 디스크 매니저(140)에 제공한다. 또한, 압축 매니저(130)는 쿼리 프로세서(117)에 의해 질의 처리에 응답하여 모든 압축된 버퍼블록(CBF)의 압축을 해제하지 않고 압축된 버퍼블럭(CBF)의 시간 범위를 이용하여 필요한 버퍼블록의 압축을 해제함으로써 일정한 시간 범위를 이용한 데이터 검색이 가능하도록 한다.Accordingly, when a storage request for an insert transaction is generated from the
디스크 매니저(140)는 압축 매니저(130)에 의해 압축된 버퍼블록(CBF) 단위로 저장 디스크에 저장한다. 이때, 저장 디스크에 저장되는 하나의 데이터 파일(300)은, 도 8에 도시된 바와 같이, 헤더 영역(310), 로컬 인덱스 영역(320), 및 데이터 영역(330)으로 나누어진다.The
헤더 영역(310)에는 데이터 파일(300)의 운영정보가 저장된다. 이러한, 헤더 영역(310)에는 파일의 남은 공간, 저장된 블록 수, 파일 내의 마지막 위치 등의 값이 저장된다.In the
로컬 인덱스 영역(320)에는 각 압축 버퍼블록(CBF)의 시간정보(minTime, maxTime)(322, 324)가 저장됨과 아울러, 디스크 내의 오프셋(Offset), 위치(326)가 저장된다.In the
데이터 영역(330)에는 실제로 압축된 압축 버퍼블록(CBF)의 데이터가 저장된다.The
본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.Those skilled in the art to which the present invention pertains will understand that the present invention can be implemented in other specific forms without changing the technical spirit or essential features. Therefore, it is to be understood that the embodiments described above are exemplary in all respects and not restrictive. The scope of the present invention is shown by the following claims rather than the detailed description, and all changes or modifications derived from the meaning and scope of the claims and their equivalent concepts should be construed as being included in the scope of the present invention. do.
도 1은 본 발명의 실시 예에 따른 데이터 저장 관리 시스템을 설명하기 위한 개념도.1 is a conceptual diagram illustrating a data storage management system according to an embodiment of the present invention.
도 2는 본 발명의 실시 예에 따른 데이터 저장관리 시스템을 나타내는 블록도.Figure 2 is a block diagram showing a data storage management system according to an embodiment of the present invention.
도 3은 본 발명의 실시 예에 따른 버퍼 블록의 자료 구조와 버퍼 매니저의 구조를 나타내는 도면.3 is a diagram illustrating a data structure of a buffer block and a structure of a buffer manager according to an embodiment of the present invention.
도 4는 본 발명의 실시 예에 따른 삽입 트랜잭션의 생성을 설명하기 위한 도면.4 is a diagram illustrating generation of an insert transaction according to an embodiment of the present invention.
도 5는 본 발명의 실시 예에 따른 삽입 트랜잭션의 생성 과정을 단계적으로 설명하기 위한 순서도.5 is a flow chart for explaining step by step the creation process of the insert transaction according to an embodiment of the present invention.
도 6은 도 5에 도시된 새로운 삽입세션을 위한 버퍼블록의 할당 과정을 설명하기 위한 도면.FIG. 6 is a view for explaining a process of allocating a buffer block for a new insertion session shown in FIG.
도 7은 본 발명의 실시 예에 따른 삽입 트랜잭션의 저장에 따른 대기 버퍼블록 리스트 정보 및 저장 버퍼블록 리스트 정보의 관리를 설명하기 위한 도면.7 is a diagram illustrating management of waiting buffer block list information and storage buffer block list information according to storage of an insert transaction according to an embodiment of the present invention.
도 8은 본 발명의 실시 예에 따른 저장 디스크에 저장되는 하나의 데이터 파일의 구조를 설명하기 위한 도면.8 is a view for explaining the structure of one data file stored in a storage disk according to an embodiment of the present invention.
< 도면의 주요 부분에 대한 부호설명 ><Explanation of Signs of Major Parts of Drawings>
100: 데이터 저장 관리 시스템 110: 데이터 처리부100: data storage management system 110: data processing unit
111: 스토리지 세션 매니저 113: 카탈로그 매니저111: Storage Session Manager 113: Catalog Manager
115: 어드민 세션 매니저 117: 쿼리 프로세서115: Admin Session Manager 117: Query Processor
119: 리얼 타임 프로세서 120: 버퍼 매니저119: Real Time Processor 120: Buffer Manager
130: 압축 매니저 140: 디스크 매니저130: compression manager 140: disk manager
Claims (5)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080072022A KR100951099B1 (en) | 2008-07-24 | 2008-07-24 | Method for storing and managing of data, and record media recoded program for implement thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080072022A KR100951099B1 (en) | 2008-07-24 | 2008-07-24 | Method for storing and managing of data, and record media recoded program for implement thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100010999A KR20100010999A (en) | 2010-02-03 |
KR100951099B1 true KR100951099B1 (en) | 2010-04-07 |
Family
ID=42085516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020080072022A KR100951099B1 (en) | 2008-07-24 | 2008-07-24 | Method for storing and managing of data, and record media recoded program for implement thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100951099B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101204163B1 (en) | 2010-11-19 | 2012-11-22 | 가부시끼가이샤 도시바 | Semiconductor memory device |
US11150811B2 (en) | 2018-01-03 | 2021-10-19 | SK Hynix Inc. | Data storage apparatus performing flush write operation, operating method thereof, and data processing system including the same |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101144321B1 (en) * | 2010-10-04 | 2012-05-11 | 주식회사 알티베이스 | Methods of managing buffer cache using solid state disk as an extended buffer and apparatuses for using solid state disk as an extended buffer |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5499367A (en) | 1991-11-15 | 1996-03-12 | Oracle Corporation | System for database integrity with multiple logs assigned to client subsets |
KR100507782B1 (en) | 2003-12-04 | 2005-08-17 | 한국전자통신연구원 | Database management system and the method of controlling consistency of system table in DBMS |
-
2008
- 2008-07-24 KR KR1020080072022A patent/KR100951099B1/en not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5499367A (en) | 1991-11-15 | 1996-03-12 | Oracle Corporation | System for database integrity with multiple logs assigned to client subsets |
KR100507782B1 (en) | 2003-12-04 | 2005-08-17 | 한국전자통신연구원 | Database management system and the method of controlling consistency of system table in DBMS |
Non-Patent Citations (1)
Title |
---|
대용량 데이터의 실시간 저장을 위한 블록 단위 삽입 트랜잭션 처리 기법과 압축-합병 저장 기법(2008. 6.) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101204163B1 (en) | 2010-11-19 | 2012-11-22 | 가부시끼가이샤 도시바 | Semiconductor memory device |
US11150811B2 (en) | 2018-01-03 | 2021-10-19 | SK Hynix Inc. | Data storage apparatus performing flush write operation, operating method thereof, and data processing system including the same |
Also Published As
Publication number | Publication date |
---|---|
KR20100010999A (en) | 2010-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230053707A1 (en) | Systems and Methods for Database Management Using Append-Only Storage Devices | |
US9747317B2 (en) | Preserving past states of file system nodes | |
US9569458B2 (en) | Preserving a state using snapshots with selective tuple versioning | |
US20180300350A1 (en) | File table index aggregate statistics | |
JP4249267B2 (en) | Freeing up disk space in the file system | |
US8762674B2 (en) | Storage in tiered environment for colder data segments | |
US7584229B2 (en) | Method and system for priority-based allocation in a storage pool | |
US7496586B1 (en) | Method and apparatus for compressing data in a file system | |
US7716445B2 (en) | Method and system for storing a sparse file using fill counts | |
US8095728B2 (en) | Method and system for power aware I/O scheduling | |
US8775479B2 (en) | Method and system for state maintenance of a large object | |
US20060212495A1 (en) | Method and system for storing data into a database | |
US7577808B1 (en) | Efficient backup data retrieval | |
JP6598996B2 (en) | Signature-based cache optimization for data preparation | |
KR20170068564A (en) | Data processing method, apparatus and system | |
US7415653B1 (en) | Method and apparatus for vectored block-level checksum for file system data integrity | |
US20070005669A1 (en) | Method and system for automated disk i/o optimization of restored databases | |
US7225314B1 (en) | Automatic conversion of all-zero data storage blocks into file holes | |
KR20080029677A (en) | File storage system and file storage and file search method in file storage system | |
CN106570113B (en) | Mass vector slice data cloud storage method and system | |
US20170068697A1 (en) | Managing data records | |
CN111930716A (en) | Database capacity expansion method, device and system | |
CN109086462A (en) | The management method of metadata in a kind of distributed file system | |
KR100951099B1 (en) | Method for storing and managing of data, and record media recoded program for implement thereof | |
JP2018530838A (en) | Cache optimization for data preparation |
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: 20130215 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20131217 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20141204 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20160113 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20161220 Year of fee payment: 8 |
|
LAPS | Lapse due to unpaid annual fee |