KR100753831B1 - Object data storage system and method to enhance IO performance in object storage system - Google Patents

Object data storage system and method to enhance IO performance in object storage system Download PDF

Info

Publication number
KR100753831B1
KR100753831B1 KR1020060033204A KR20060033204A KR100753831B1 KR 100753831 B1 KR100753831 B1 KR 100753831B1 KR 1020060033204 A KR1020060033204 A KR 1020060033204A KR 20060033204 A KR20060033204 A KR 20060033204A KR 100753831 B1 KR100753831 B1 KR 100753831B1
Authority
KR
South Korea
Prior art keywords
data
window
client
object prefetch
prefetch window
Prior art date
Application number
KR1020060033204A
Other languages
Korean (ko)
Other versions
KR20070061022A (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 한국전자통신연구원
Publication of KR20070061022A publication Critical patent/KR20070061022A/en
Application granted granted Critical
Publication of KR100753831B1 publication Critical patent/KR100753831B1/en

Links

Images

Classifications

    • 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명은 객체 기반 스토리지 시스템에서 고속의 객체 입출력 처리 장치 및 방법에 관한 것으로, 메모리에 일정 영역의 객체 프리페치 윈도우를 생성하는 윈도우 생성부와 클라이언트의 데이터 접근 요청에 해당하는 디스크 상의 데이터 크기가 상기 객체 프리페치 윈도우보다 크면 상기 객체 프리페치 윈도우의 영역을 확장하는 윈도우 제어부 및 상기 확장 전의 객체 프리페치 윈도우의 크기에 해당하는 상기 디스크 상의 데이터의 일부분을 상기 확장 전의 객체 프리페치 윈도우에 적재하고, 상기 확장 전의 객체 프리페치 윈도우에 적재된 데이터의 일부분을 상기 클라이언트에 제공중에 상기 객체 프리페치 윈도우의 확장된 영역에 상기 디스크 상의 데이터의 나머지 부분을 적재하는 데이터 적재부로 구성되어, 객체 기반 스토리지 환경에서 고속의 데이터 입출력을 제공한다.The present invention relates to a fast object input and output processing apparatus and method in an object-based storage system, the window generation unit for generating an object prefetch window of a certain area in the memory and the data size on the disk corresponding to the data access request of the client If larger than an object prefetch window, a window controller for expanding an area of the object prefetch window and a portion of data on the disk corresponding to the size of the object prefetch window before expansion are loaded into the object prefetch window before expansion. A data loader which loads the rest of the data on the disk in the extended area of the object prefetch window while providing a portion of the data loaded in the object prefetch window before expansion to the client, thereby providing a high speed in the object-based storage environment. Provide data input and output.

객체 프리페치 윈도우, 클라이언트, 고속의 데이터 입출력 Object Prefetch Window, Client, Fast Data I / O

Description

객체 기반 스토리지 시스템에서 고속의 객체 입출력 처리 장치 및 방법{Object data storage system and method to enhance IO performance in object storage system}Object data storage system and method to enhance IO performance in object storage system

도 1 은 객체 기반 스토리지 환경을 구성하는 시스템 구성요소의 실시 예이다.1 is an embodiment of a system component constituting an object-based storage environment.

도 2 은 본 발명의 바람직한 실시예에 따른 객체 저장 관리 시스템을 구성하는 시스템 구성요소를 나타내는 도면이다.2 is a diagram showing system components constituting the object storage management system according to a preferred embodiment of the present invention.

도 3 은 본 발명의 바람직한 실시예에 따른 객체 프리페치 윈도우의 구성요서를 나타내는 도면이다.3 is a diagram illustrating a configuration of an object prefetch window according to a preferred embodiment of the present invention.

도 4 는 본 발명의 바람직한 실시예에 따른 객체 프리페치 윈도우의 상태변화에 따른 흐름도이다. 4 is a flowchart illustrating a state change of an object prefetch window according to an exemplary embodiment of the present invention.

도 5 는 본 발명의 바람직한 실시예에 따른 객체 프리페치 윈도우 영역의 블럭들을 객체 캐쉬에 적재하기 위한 방법을 나타내는 도면이다.5 is a diagram illustrating a method for loading blocks of an object prefetch window area into an object cache according to an exemplary embodiment of the present invention.

도 6 은 본 발명의 바람직한 실시예에 따른 클라이언트의 객체 데이터 요청에 대해 객체 프리페치 윈도우를 통해서 관리하는 흐름도이다.6 is a flowchart of managing an object data request of a client through an object prefetch window according to a preferred embodiment of the present invention.

도 7 은 본 발명의 바람직한 실시예에 따른 객체 저장 관리 시스템의 블록도이다.7 is a block diagram of an object storage management system according to a preferred embodiment of the present invention.

도 8 은 본 발명에 따른 객체 프리페치 윈도우를 통하여 클라이언트에게 객체 데이터를 제공하는 방법에 대한 흐름도의 일 예이다.8 is an example of a flowchart of a method for providing object data to a client through an object prefetch window according to the present invention.

도 9 는 본 발명에 따른 객체 프리페치 윈도우를 관리하는 방법에 대한 흐름도의 일 예이다.9 is an example of a flowchart of a method of managing an object prefetch window according to the present invention.

도 10 는 객체 프리페치 윈도우의 상태변화에 대한 흐름도의 일 예이다.10 is an example of a flowchart for a state change of an object prefetch window.

본 발명은 객체 기반 스토리지 시스템에서 고속의 데이터 입출력을 제공하는 방법에 관한 것으로, 보다 상세하게는 객체 프리페치 윈도우를 생성, 확장, 축소, 병합, 제거하는 과정을 통하여 디스크 상의 객체 데이터를 메모리로 적재하여 네트워크 환경에서 고속의 데이터 입출력을 지원하는 객체 저장 관리 장치 및 방법에 관한 것이다.The present invention relates to a method for providing high-speed data input / output in an object-based storage system, and more particularly, to load object data on a disk into a memory by creating, expanding, reducing, merging, and removing an object prefetch window. An object storage management apparatus and method for supporting high-speed data input and output in a network environment.

대부분의 인터넷 서비스 환경에서는 이러한 대량의 데이터를 효율적으로 처리하기 위해 DAS, NAS, SAN과 같은 스토리지 환경을 구성하여 사용하고 있다.Most Internet service environments use storage environments such as DAS, NAS, and SAN to efficiently process such a large amount of data.

DAS는 블록기반의 스토리지 디바이스를 호스트 컴퓨터의 입출력 버스에 SCSI 혹은 IDE를 통하여 직접 연결한 구조이며, 고성능 및 강력한 데이터 보호 기능을 제공하지만 스토리지 디바이스의 확장에는 제약이 존재한다.DAS connects block-based storage devices directly to the host computer's input and output buses via SCSI or IDE, and provides high performance and robust data protection, but there are limitations to the expansion of storage devices.

NAS는 상이한 플랫폼을 갖는 호스트들에서 데이터 공유가 가능하도록 파일 서비스를 제공하기 위하여, 파일이 스토리지 디바이스에 어떻게 저장되었는지를 기 술하는 메타데이터를 하나의 서버에서 모두 관리하는 구조이며, 모든 파일에 대한 입출력이 하나의 서버를 통하기 때문에 파일 서버에 병목 현상이 발생하는 문제가 있다. NAS is a structure that manages all metadata in one server, which describes how files are stored in the storage device in order to provide file services to enable data sharing among hosts with different platforms. Since I / O passes through one server, there is a problem that the file server is a bottleneck.

SAN은 스토리지 디바이스 연결성 제약과 스토리지 디바이스의 공유 문제를 해결하기 위한 구조이며, 보다 많은 클라이언트 호스트와 스토리지 디바이스를 지원하기 위한 빠르고, 확장성이 높은 상호 연결을 지원하는 구조이다. 그러나, SAN은 파일 시스템과 같은 스토리지 응용이 데이터를 공유하기 위해 서로 다른 플랫폼들에서 파일 시스템의 메타데이터를 이해할 수 있어야 하며, 별도의 고가 장비들이 필요로 하기 때문에 스토리지 확장성에 제한을 받는다. SANs are designed to address storage device connectivity constraints and storage device sharing issues, and to support fast, scalable interconnects to support more client hosts and storage devices. However, SANs must be able to understand the file system's metadata on different platforms in order for storage applications such as file systems to share data, and are limited by storage scalability because separate expensive devices are required.

이러한 문제를 해결하기 위해 최근에 이슈화되고 있는 객체 기반 스토리지 기술은 앞서 언급된 기존의 스토리지 시스템이 갖는 문제점을 해결할 수 있는 방법을 제시하고 있다. 즉, 객체 기반 스토리지 기술은 기존의 NAS와 SAN이 갖는 개념들을 객체 인터페이스를 통해 통합시키고, 고성능, 높은 확장성, 플랫폼간 데이터 공유 등을 만족시킨다. Recently, the object-based storage technology, which has been recently issued to solve this problem, suggests a method to solve the problems of the aforementioned storage system. In other words, object-based storage technology integrates existing NAS and SAN concepts through object interfaces, and satisfies high performance, high scalability, and cross-platform data sharing.

그러나, 객체 기반 스토리지 환경에 최적화된 객체 기반 저장 시스템의 경우에도 객체의 데이터가 물리적인 디스크에 저장되기 때문에, 메모리에 비해서 상대적으로 느린 속도의 디스크 접근으로 인해 성능 저하가 불가피한 문제점이 있다.However, even in an object-based storage system optimized for an object-based storage environment, since data of an object is stored on a physical disk, performance degradation is inevitable due to a relatively slow disk access compared to memory.

본 발명이 이루고자 하는 기술적 과제는, 객체 기반 스토리지 환경에서 객체 저장 서버에 저장된 객체 데이터를 효과적으로 프리페치하여 고속의 데이터의 입출 력을 제공하는 객체 저장 관리 장치 및 방법을 제공하는데 있다.An object of the present invention is to provide an object storage management apparatus and method for providing a high-speed data input and output by effectively prefetching the object data stored in the object storage server in the object-based storage environment.

본 발명이 이루고자 하는 기술적 과제는, 객체 저장 관리 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는데 있다.SUMMARY OF THE INVENTION The present invention has been made in an effort to provide a computer-readable recording medium having recorded thereon a program for executing an object storage management method on a computer.

상기 기술적 과제를 해결하기 위한 본 발명에 따른 객체 저장 관 리 시스템의 일 실시예로, 클라이언트의 데이터 접근 요청을 접수하고 상기 클라이언트가 요청한 데이터를 상기 클라이언트에게 전송하는 통신관리기; 상기 클라이언트가 요청하는 데이터를 디스크 상에 저장, 삭제 및 검색하는 객체 저장 관리기; 상기 클라이언트가 요청한 데이터가 메모리 상에 기적재된 경우 상기 적재된 데이터를 상기 클라이언트에게 전송하는 객체 캐쉬 관리기; 상기 클라이언트가 요청한 데이터의 일부분을 상기 메모리에 적재되도록 영역을 할당하고 상기 메모리 상에 적재된 데이터를 상기 클라이언트에게 제공 중에 상기 메모리의 영역을 확장하여 상기 데이터의 나머지 부분을 적재하는 객체 프리페치 관리기; 및 상기 디스크 상에 저장된 상기 데이터를 상기 객체 프리페치 관리기가 요청하는 상기 메모리 영역에 따른 상기 데이터를 전송하는 객체 입출력 관리기를 포함한다.In one embodiment of the object storage management system according to the present invention for solving the technical problem, a communication manager for receiving a data access request of the client and transmits the data requested by the client to the client; An object storage manager for storing, deleting, and retrieving data requested by the client on a disk; An object cache manager which transmits the loaded data to the client when the data requested by the client is loaded on the memory; An object prefetch manager for allocating an area so that a portion of data requested by the client is loaded into the memory, and expanding the area of the memory to load the remaining portion of the data while providing the data loaded on the memory to the client; And an object input / output manager configured to transmit the data according to the memory area in which the object prefetch manager requests the data stored on the disk.

상기 기술적 과제를 해결하기 위한 본 발명에 따른 객체 저장 관리 장치의 일 실시예로, 메모리에 일정 영역의 객체 프리페치 윈도우를 생성하는 윈도우 생성부; 클라이언트의 데이터 접근 요청에 해당하는 디스크 상의 데이터 크기가 상기 객체 프리페치 윈도우보다 크면 상기 객체 프리페치 윈도우의 영역을 확장하는 윈 도우 제어부; 및 상기 확장 전의 객체 프리페치 윈도우의 크기에 해당하는 상기 디스크 상의 데이터의 일부분을 상기 확장 전의 객체 프리페치 윈도우에 적재하고, 상기 확장 전의 객체 프리페치 윈도우에 적재된 데이터의 일부분을 상기 클라이언트에 제공중에 상기 객체 프리페치 윈도우의 확장된 영역에 상기 디스크 상의 데이터의 나머지 부분을 적재하는 데이터 적재부를 포함한다.According to an embodiment of the present invention, there is provided an apparatus for managing object storage, comprising: a window generating unit generating an object prefetch window of a predetermined area in a memory; A window controller configured to expand an area of the object prefetch window when a data size on a disk corresponding to a data access request of a client is larger than the object prefetch window; And loading a portion of data on the disk corresponding to the size of the object prefetch window before expansion into the object prefetch window before expansion and providing the client with a portion of data loaded in the object prefetch window before expansion. And a data loader for loading the rest of the data on the disk in the extended area of the object prefetch window.

상기의 기술적 과제를 해결하기 위한 본 발명에 따른 객체 저장 관리 방법의 일 실시예로, 메모리에 일정 영역의 객체 프리페치 윈도우를 생성하는 단계; 클라이언트의 데이터 접근 요청에 해당하는 디스크 상의 데이터 크기가 상기 객체 프리페치 윈도우보다 크면 상기 객체 프리페치 윈도우의 영역을 확장하는 단계; 및 상기 확장 전의 객체 프리페치 윈도우의 크기에 해당하는 상기 디스크 상의 데이터의 일부분을 상기 확장 전의 객체 프리페치 윈도우에 적재하고, 상기 확장 전의 객체 프리페치 윈도우에 적재된 데이터의 일부분을 상기 클라이언트에 제공중에 상기 객체 프리페치 윈도우의 확장된 영역에 상기 디스크 상의 데이터의 나머지 부분을 적재하는 단계를 포함한다.According to an embodiment of the present invention, there is provided a method of managing object storage, the method including: generating an object prefetch window of a predetermined area in a memory; Expanding an area of the object prefetch window if the data size on the disk corresponding to the data access request of the client is larger than the object prefetch window; And loading a portion of data on the disk corresponding to the size of the object prefetch window before expansion into the object prefetch window before expansion and providing the client with a portion of data loaded in the object prefetch window before expansion. Loading the remaining portion of data on the disk into an extended area of the object prefetch window.

또한, 본 발명에 의한 객체 기반 스토리지 시스템에서 고속의 데이터 입출력을 제공하는 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 포함한다.The present invention also includes a computer-readable recording medium having recorded thereon a program for executing a method of providing a high speed data input / output in a computer in an object-based storage system according to the present invention.

이하에서, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대하여 상세히 설명한다.Hereinafter, with reference to the accompanying drawings will be described in detail a preferred embodiment of the present invention.

도 1 은 객체 기반 스토리지 환경을 구성하는 시스템 구성요소의 실시 예이 다. 도 1를 참조하면, 객체 기반 스토리지 시스템은 클라이언트 파일 시스템(110), 메타데이터 서버(120) 및 객체 저장 서버(130)을 포함하여 구성된다.1 is an embodiment of a system component constituting an object-based storage environment. Referring to FIG. 1, an object-based storage system includes a client file system 110, a metadata server 120, and an object storage server 130.

객체 기반 스토리지 환경에서는 클라이언트 파일 시스템(110), 메타데이터 서버(120), 객체 저장 서버(130)들이 네트워크를 통해 교신하면서 데이터의 입출력을 제공한다.In the object-based storage environment, the client file system 110, the metadata server 120, and the object storage server 130 communicate with each other through a network to provide input / output of data.

객체 저장 서버(130)는 스토리지 장치에 저장된 객체의 데이터를 읽어 클라이언트 파일 시스템(110)에게 반환한다. The object storage server 130 reads data of the object stored in the storage device and returns the data to the client file system 110.

객체 저장 서버(130)는 객체를 스토리지 공간에 효율적으로 저장 및 관리하기 위해 전용의 객체 기반 저장 시스템을 제공한다. The object storage server 130 provides a dedicated object-based storage system for efficiently storing and managing objects in a storage space.

도 2 는 본 발명의 바람직한 실시예에 따른 객체 저장 관리 시스템을 구성하는 시스템 구성요소를 나타내는 도면이다. 도 2를 참조하면, 본 발명에 따른 객체 저장 관리 장치는 통신 관리기(231), 객체 저장 관리기(232), 객체 캐쉬 관리기(233), 객체 프리페치 관리기(234), 객체 입출력 관리기(235) 및 디스크 장치(240)를 포함하여 구성된다.2 is a diagram illustrating system components constituting an object storage management system according to a preferred embodiment of the present invention. 2, the object storage management apparatus according to the present invention includes a communication manager 231, an object storage manager 232, an object cache manager 233, an object prefetch manager 234, an object input / output manager 235, and It is configured to include a disk device 240.

통신 관리기(231)는 클라이언트 파일시스템(110)에서 객체에 접근하기 위한 네트워크 채널을 관리하고 상호간 데이터 송수신을 수행한다. 즉, 객체 접근을 요청하면 통신 관리기(231)에서 클라이언트의 요청을 접수하여 객체 저장 관리기(232)로 전달한다. The communication manager 231 manages a network channel for accessing an object in the client file system 110 and performs data transmission and reception with each other. That is, when the object access request is requested, the communication manager 231 receives the client's request and delivers it to the object storage manager 232.

객체 저장 관리기(232)는 클라이언트가 요청한 객체의 생성/삭제/기록/검색/속성설정/속성변경 등의 객체 입출력 연산을 관리한다. 클라이언트의 객체 접근 요 청을 해석하여 어떤 연산에 해당하는지 분석하고 각 연산에 대한 처리를 담당한다. The object storage manager 232 manages object input / output operations such as creation / deletion / recording / retrieval / property setting / property change of an object requested by a client. It analyzes client's object access request and analyzes which operation corresponds to and handles each operation.

객체 캐쉬 관리기(233)는 객체 데이터 접근에 대한 비용을 줄이기 위하여 메모리상에 객체의 데이터를 관리한다. 클라이언트가 요청한 객체의 데이터 블럭이 캐쉬에 존재하는 경우 디스크 접근 없이 곧바로 캐쉬의 데이터를 반환하고, 캐쉬에 존재하지 않는 경우 디스크상의 블럭을 읽어 캐쉬에 적재 후 클라이언트에게 반환한다. The object cache manager 233 manages the object's data on memory to reduce the cost of accessing the object data. If the data block of the object requested by the client exists in the cache, the cache data is returned immediately without disk access. If the data block does not exist in the cache, the block on the disk is read, loaded into the cache, and returned to the client.

객체 프리페치 관리기(234)는 디스크 입출력 회수를 최소화 하여 고속의 데이터 입출력을 관리한다. 객체 프리페치 윈도우를 정의하고 객체 프리페치 윈도우 영역 내에 존재하는 블럭들을 사전에 디스크에서 읽어 캐쉬에 적재함으로써 클라이언트가 요청한 객체 데이터에 대해 디스크 접근 빈도를 최소화 한다. The object prefetch manager 234 manages high-speed data input / output by minimizing the number of disk input / output. By defining the object prefetch window and loading blocks into the cache in advance, blocks existing in the object prefetch window area can be minimized for disk access to the object data requested by the client.

객체 입출력 관리기(235)는 물리적인 디스크 장치와의 입출력을 담당한다. 기본적으로 디스크상의 한 블럭 단위로 입출력이 이루어지며, 만약 객체 프리페치 관리기에 의해서 객체 프리페치 윈도우 영역 만큼의 입출력 요청이 있을 경우 입출력 단위를 객체 프리페치 윈도우 영역으로 확장함으로써 입출력 비용을 최소화 한다. The object input / output manager 235 is responsible for input / output with a physical disk device. Basically, I / O is done by one block unit on disk. If there is an I / O request as much as object prefetch window area by object prefetch manager, I / O unit is minimized by extending I / O unit to object prefetch window area.

디스크 장치(240)는 IDE 또는 SCSI 장치와 연결된 디스크 장치로서 객체들을 저장하기 위한 공간을 제공한다. Disk device 240 is a disk device connected with an IDE or SCSI device to provide space for storing objects.

도 3 은 본 발명의 바람직한 실시예에 따른 객체 프리페치 윈도우의 구성요서를 나타내는 도면이다. 도 3을 참조하면, 객체 프리페치 윈도우의 구성요소는 객체 윈도우 식별자(311), 객체 식별자(312), 객체 크기(313), 객체 윈도우 생성시 간(314), 객체 윈도우 시작위치(315), 객체 윈도우 끝 위치(316), 객체 윈도우 내에서 데이터 접근 분포 (317), 객체 윈도우 참조 회수(318) 및 객체 윈도우 변경 회수(319)로 이루어진다. 3 is a diagram illustrating a configuration of an object prefetch window according to a preferred embodiment of the present invention. Referring to FIG. 3, the components of the object prefetch window include an object window identifier 311, an object identifier 312, an object size 313, an object window creation time 314, an object window start position 315, An object window end position 316, a data access distribution 317 within the object window, an object window reference count 318, and an object window change count 319.

객체 윈도우 식별자(311)는 객체 프리페치 윈도우가 생성될 때마다 부여되는 값으로 각 객체 프리페치 윈도우를 구분하기 위하여 사용된다.The object window identifier 311 is a value assigned every time an object prefetch window is generated and used to distinguish each object prefetch window.

객체 식별자(312)는 객체 프리페치 윈도우가 담당하는 객체의 식별자이다. The object identifier 312 is an identifier of an object that the object prefetch window is responsible for.

객체 크기(313)는 객체 식별자가 가리키는 객체의 전체 크기로서 객체 프리페치 윈도우 영역이 확장될 수 있는 최대 값이다.The object size 313 is the total size of the object indicated by the object identifier, which is the maximum value to which the object prefetch window area can be expanded.

객체 윈도우 생성시간(314)은 객체 프리페치 윈도우가 생성된 시간으로 오랜동안 사용하지 않는 객체 프리페치 윈도우를 제거하기 위하여 사용된다.The object window creation time 314 is a time at which the object prefetch window is created and is used to remove an object prefetch window that has not been used for a long time.

객체 윈도우 시작위치(315)는 객체 프리페치 윈도우 영역의 시작 위치이며 객체 내에서의 위치를 가리킨다.The object window start position 315 is the start position of the object prefetch window region and indicates a position within the object.

객체 윈도우 끝 위치(316)는 객체 프리페치 윈도우 영역의 끝 위치이며 객체 내에서의 위치를 가리킨다.The object window end position 316 is the end position of the object prefetch window region and indicates a position within the object.

객체 윈도우 내에서 데이터 접근 분포(317)는 객체 프리페치 윈도우 영역 내에서 클라이언트가 요청한 위치의 접근 분포를 의미하는 값으로 접근 분포가 객체 프리페치 윈도우 영역의 시작 부분에서 빈번하게 이루어질 경우 객체 프리페치 윈도우의 끝위치를 축소하고, 객체 프리페치 윈도우 영역의 끝 부분에서 빈번하게 이루어질 경우 객체 프리페치 윈도우의 시작 위치를 증가하는 등 클라이언트의 접근 분포에 따라 객체 프리페치 윈도우 영역을 조정하기 위하여 사용된다.The data access distribution 317 within the object window is a value representing the access distribution of the location requested by the client in the object prefetch window area. When the access distribution is frequently made at the beginning of the object prefetch window area, the object prefetch window It is used to adjust the object prefetch window area according to the client's access distribution, such as reducing the end position of and increasing the start position of the object prefetch window if frequently made at the end of the object prefetch window area.

객체 윈도우 참조 회수(318)와 객체 윈도우 변경 회수(319)는 객체 프리페치 윈도우 영역에 접근이 발생할 때마다 갱신되는 값으로 객체 프리페치 윈도우의 재조정 또는 제거를 위하여 사용된다.The object window reference count 318 and the object window change count 319 are values that are updated whenever an access to the object prefetch window area occurs, and are used for resizing or removing the object prefetch window.

도 4 는 본 발명의 바람직한 실시예에 따른 객체 프리페치 윈도우의 상태변화에 따른 흐름도이다. 도 4를 참조하면, 객체 프리페치 윈도우는 크게 CREAT(410), EXPAND(420), SHRINK(430), MERGE(440), DESTROY(450)의 상태를 가진다.4 is a flowchart illustrating a state change of an object prefetch window according to an exemplary embodiment of the present invention. Referring to FIG. 4, the object prefetch window has a state of CREAT 410, EXPAND 420, SHRINK 430, MERGE 440, and DESTROY 450.

CREATE(410) 상태는 객체 프리페치 윈도우가 처음 생성될 때의 상태로서, 클라이언트가 요청한 데이터 블럭이 기존에 존재하는 객체 프리페치 윈도우들의 영역에 속하지 않을 때 새로운 객체 프리페치 윈도우를 생성한다.The CREATE 410 state is a state when the object prefetch window is first created, and creates a new object prefetch window when the data block requested by the client does not belong to the area of existing object prefetch windows.

EXPAND(420) 상태는 클라이언트가 접근하는 객체의 위치가 객체 프리페치 윈도우 영역을 벗어날 것으로 예상되는 시점에 천이된다. 즉, 클라이언트가 객체 프리페치 윈도우 영역을 벗어나는 것으로 판단되면 객체 프리페치 윈도우의 크기를 확장하고, 확장된 영역의 데이터를 디스크로부터 읽어 객체 캐쉬 공간에 적재한다.The EXPAND 420 state transitions at a time when the location of the object that the client accesses is expected to leave the object prefetch window area. That is, when it is determined that the client is out of the object prefetch window area, the client extends the size of the object prefetch window and reads the data of the extended area from the disk and loads the data in the object cache space.

SHRINK(430) 상태는 이미 생성된 객체 프리페치 윈도우 영역에 대해 클라이언트의 접근 빈도가 작을 경우 객체 프리페치 윈도우의 크기를 축소할 때 천이된다. 즉, 최근 사용되지 않는 객체 프리페치 윈도우의 경우 클라이언트가 접근할 빈도가 적기 때문에 불필요한 메모리 공간의 낭비를 피하기 위해 객체 프리페치 윈도우 사이즈를 축소한다. 축소된 객체 프리페치 윈도우 영역에 해당하는 캐쉬 공간의 블럭들은 캐쉬 메모리 정책에 따라 메모리 공간이 부족할 경우 캐쉬 영역에서 제거 하고, 캐쉬 공간이 충분할 경우 향후 클라이언트의 접근시 디스크 접근을 피하기 위하여 캐쉬 공간에 남겨둔다.The SHRINK 430 state transitions when the size of the object prefetch window is reduced when the client access frequency is small for the already created object prefetch window area. In other words, the object prefetch window that is not used recently is less frequently accessed by the client, so the object prefetch window size is reduced to avoid wasting unnecessary memory space. Blocks in the cache space corresponding to the reduced object prefetch window area are removed from the cache area when the memory space is insufficient according to the cache memory policy, and left in the cache space to avoid disk access when the client accesses it in the future if there is enough cache space. .

MERGE(440) 상태는 이미 존재하는 객체 프리페치 윈도우가 확장 또는 축소되는 과정에서 서로 인접하게 될 경우 불필요한 연산을 줄이기 위해 하나의 객체 프리페치 윈도우로 병합할 때 천이된다. MERGE(440) 상태는 클라이언트가 접근하는 객체 위치 변화에 따라 EXPAND(420), SHRINK(430) 상태로 천이하고, 사용 빈도가 적을 경우 DESTROY(450) 상태로 천이한다. The MERGE 440 state transitions when merging into one object prefetch window to reduce unnecessary computation when existing object prefetch windows are adjacent to each other in the process of expanding or contracting. The MERGE 440 transitions to the EXPAND 420 and SHRINK 430 states according to the change in the position of the object approached by the client. The MERGE 440 transitions to the DESTROY 450 state when the frequency of use is small.

DESTROY(450) 상태는 객체 프리페치 윈도우에 대해 클라이언트의 접근 빈도가 적을 경우 해당 객체 프리페치 윈도우를 삭제할 때 천이된다. 삭제된 객체 프리페치 윈도우 영역에 해당하는 캐쉬 공간의 블럭들은 캐쉬 메모리 정책에 따라 메모리 공간이 부족할 경우 캐쉬 영역에서 제거하고, 캐쉬 공간이 충분할 경우 향후 클라이언트의 접근시 디스크 접근을 피하기 위하여 캐쉬 공간에 남겨둔다. The DESTROY 450 state transitions when deleting the object prefetch window if the client has less access to the object prefetch window. Blocks of cache space corresponding to the deleted object prefetch window area are removed from the cache area when there is insufficient memory space according to the cache memory policy, and if there is enough cache space, it is left in the cache space to avoid disk access for future client access. .

도 5 는 본 발명의 바람직한 실시예에 따른 객체 프리페치 윈도우 영역의 블럭들을 객체 캐쉬에 적재하기 위한 방법을 나타내는 도면이다. 도 5를 참조하면, 본 발명에 따른 객체 프리페치 윈도우 영역의 블럭들을 객체 캐쉬에 적재하는 방법에 따라, 객체 프리페치 윈도우 영역(510)의 상태가 객체 프리페치 윈도우 시작 위치는 80 이고 마지막 위치가 102인 상태에서, 클라이언트가 100 위치의 블럭을 요청한 경우 객체 프리페치 윈도우의 확장 과정과 이에 따른 데이터 적재 과정을 도 5와 함께 설명한다. 5 is a diagram illustrating a method for loading blocks of an object prefetch window area into an object cache according to an exemplary embodiment of the present invention. Referring to FIG. 5, according to the method of loading blocks of the object prefetch window area according to the present invention, the state of the object prefetch window area 510 has an object prefetch window start position of 80 and a last position of In the state of 102, when the client requests a block of 100 positions, the process of expanding the object prefetch window and the process of loading the data will be described with reference to FIG. 5.

클라이언트가 100 위치의 블럭을 요청하면①, 객체 저장 관리기는 객체 캐쉬 공간에 있는 100위치의 블럭을 찾아② 캐쉬 공간에 존재할 경우 캐쉬상의 데이터를 반환하고 캐쉬 공간에 존재하지 않는 경우 디스크에서 읽어 캐쉬에 적재 후 클라이언트에게 반환하고③④⑤ 객체 프리페치 관리기에 읽은 블럭의 정보를 전달하여 객체 프리페치 윈도우에 반영할 것을 요구한다.When the client requests a block at position 100, the object storage manager finds a block at position 100 in the object cache space and returns the data on the cache if it exists in the cache space, and reads from the disk if it does not exist in the cache space. After loading, it returns to the client and sends the information of the block read to ③④⑤ object prefetch manager to be reflected in the object prefetch window.

클라이언트가 요청한 100 블럭에 대해 객체 프리페치 윈도우를 반영하지 않고 곧바로 객체 캐쉬 공간의 블럭을 반환하기 때문에 객체 프리페치 윈도우를 관리하기 위한 비용에 따른 클라이언트의 성능 저하는 발생하지 않는다. Because the 100 blocks requested by the client do not reflect the object prefetch window and return a block of the object cache space immediately, the performance degradation of the client does not occur due to the cost of managing the object prefetch window.

객체 프리페치 관리기는 100위치의 블럭이 속하는 객체 프리페치 윈도우를 검사하여 윈도우 영역의 확장 여부를 결정한다.⑥The object prefetch manager determines whether the window area is expanded by examining the object prefetch window to which the block at position 100 belongs.

현재 객체 프리페치 윈도우의 마지막 위치가 102 이고 클라이언트의 객체 프리페치 윈도우 영역에 대한 접근 분포가 98이기 때문에 이 다음 클라이언트의 접근 위치는 객체 프리페치 윈도우 영역을 벗어날 확률이 높아지게 되어 객체 프리페치 윈도우 영역을 109 까지 확장하고 확장된 영역의 데이터 블럭들을 디스크에서 읽어 객체 캐쉬 공간에 적재한다.⑦⑧Because the last position of the current object prefetch window is 102 and the client's distribution of access to the object prefetch window area is 98, this next client's access position is more likely to leave the object prefetch window area, thus increasing the object prefetch window area. It extends up to 109 and reads the data blocks of the extended area from disk and loads them into the object cache space.

클라이언트가 확장된 객체 프리페치 윈도우 영역에 속하는 블럭에 대한 요청에 대해 디스크 접근 없이 객체 캐쉬 공간의 블럭을 곧바로 반환할 수 있다.A client can immediately return a block of object cache space without disk access for a request for a block belonging to the extended object prefetch window area.

그러나, 도 5에 도시된 수치들은 예시를 위한 것이며 실제 본 발명을 적용할 때는 클라이언트의 응용 환경 또는 시스템 구성 등을 고려하여 적용하여야 한다.However, the numerical values shown in FIG. 5 are for illustrative purposes and should be applied in consideration of the application environment or system configuration of the client when applying the present invention.

도 6 은 본 발명의 바람직한 실시예에 따른 클라이언트의 객체 데이터 요청에 대해 객체 프리페치 윈도우를 통해서 관리하는 흐름도이다. 도 6을 참조하면, 클라이언트가 요청한 블럭에 대해 우선적으로 객체 캐쉬 관리기에 데이터 블럭을 요청하여 반환하고(S610), 객체 프리페치 관리기에 클라이언트가 요청한 블럭에 대한 정보를 전달한다.6 is a flowchart of managing an object data request of a client through an object prefetch window according to a preferred embodiment of the present invention. Referring to FIG. 6, a block of data requested by the client is first requested and returned to the object cache manager (S610), and information about the block requested by the client is transferred to the object prefetch manager.

객체 프리페치 관리기는 전달 받은 블럭이 기존에 존재하는 객체 프리페치 윈도우들에 속하는지를 검사한다(S620).The object prefetch manager checks whether the received block belongs to existing object prefetch windows (S620).

기존의 존재하는 어느 객체 프리페치 윈도우에도 속하지 않는 경우 새로운 객체 프리페치 윈도우를 생성하고(S630) 객체 캐쉬 관리기에게 새로운 객체 프리페치 윈도우 영역에 해당하는 데이터 블럭들을 디스크로부터 적재하도록 요청한다(S640).If it does not belong to any existing object prefetch window, a new object prefetch window is generated (S630) and the object cache manager is requested to load data blocks corresponding to the new object prefetch window area from the disk (S640).

데이터 블럭이 기존의 객체 프리페치 윈도우에 속하는 경우 window_pin_offset, reference_counter, modify_counter 와 같은 정보들을 수정하고(S650), 객체 프리페치 윈도우 테이블에 존재하는 값을을 이용하여 객체 프리페치 윈도우의 상태 변경 여부를 결정한다(S660).If the data block belongs to an existing object prefetch window, information such as window_pin_offset, reference_counter, and modify_counter is modified (S650), and the value of the object prefetch window table is used to determine whether to change the state of the object prefetch window. (S660).

객체 프리페치 윈도우 크기를 늘려야 하는 경우 증가된 객체 프리페치 윈도우 영역에 속하는 데이터 블럭들을 디스크에서 읽어 객체 캐쉬 공간에 적재하고(S671) 객체 프리페치 윈도우를 변경한다(S672).If the object prefetch window size needs to be increased, data blocks belonging to the increased object prefetch window area are read from the disk, loaded into the object cache space (S671), and the object prefetch window is changed (S672).

객체 프리페치 윈도우 크기를 줄여야 하는 경우는 줄어든 객체 프리페치 윈도우 영역의 데이터 블럭들을 객체 캐쉬 관리기에게 통보한다(S681).If the size of the object prefetch window needs to be reduced, the object cache manager is notified of data blocks of the reduced object prefetch window area (S681).

감소한 영역의 데이터 블럭 정보를 전달받은 객체 캐쉬 관리기는 캐쉬 공간의 상태에 따라 계속 캐쉬 공간에 보관하거나 또는 제거할 수 있다. The object cache manager receiving the data block information of the reduced area can keep or remove the cache space according to the state of the cache space.

도 7 은 본 발명의 바람직한 실시예에 따른 객체 저장 관리 시스템의 블록도이다. 도 7을 참조하면, 본 발명에 따른 객체 저장 관리 장치는 수신부(700), 윈도우 존재 여부 판단부(710), 윈도우 생성부(720), 윈도우 크기 판단부(730), 윈도우 제어부(740), 데이터 적재부(750), 데이터 접근 빈도 판단부(760), 윈도우 관리부(761), 윈도우 제거부(762) 및 데이터 전송부(770)를 포함하여 구성된다.7 is a block diagram of an object storage management system according to a preferred embodiment of the present invention. Referring to FIG. 7, the apparatus for managing object storage according to the present invention includes a receiver 700, a window existence determiner 710, a window generator 720, a window size determiner 730, a window controller 740, The data stacker 750 includes a data access frequency determiner 760, a window manager 761, a window remover 762, and a data transmitter 770.

수신부(700)는 클라이언트의 데이터에 대한 접근 요청을 접수하여 윈도우 존재여부 판단부(710)는 클라이언트가 요청한 데이터가 해당하는 객체 프리페치 윈도우가 존재하는지 판단한다.The receiving unit 700 receives a request for access to data of the client, and the existence of a window determines whether the window exists. The determining unit 710 determines whether an object prefetch window corresponding to the data requested by the client exists.

윈도우 존재여부 판단부(710)는 판단한 결과 만약 존재하지 않는다면 윈도우 생성부(720)에서 클라이언트가 요청한 데이터가 적재되도록 하는 객체 프리페치 윈도우를 생성한다.As a result of the determination, if there is no window, the window generation unit 710 generates an object prefetch window for loading the data requested by the client.

생성된 객체 프리페치 윈도우는 클라이언트가 요청한 데이터를 적재할만한 크기의 영역을 보유하고 있는지 윈도우 크기 판단부(730)가 판단하여 윈도우 제어부(740)를 통하여 적절한 크기로 확장하게 된다.The generated object prefetch window is determined by the window size determining unit 730 to have an area of a size enough to load the data requested by the client, and is expanded to an appropriate size through the window control unit 740.

데이터 적재부(750)는 생성된 객체 프리페치 윈도우에 클라이언트가 요청한 데이터를 적재하여 데이터 전송부(770)가 클라이언트에게 요청한 데이터를 제공하게 된다.The data loader 750 loads the data requested by the client in the generated object prefetch window, and provides the data requested by the data transmitter 770 to the client.

생성된 객체 프리페치 윈도우는 데이터 접근 빈도 판단부(760)의 판단을 통하여 객체 프리페치 윈도우에 대한 접근요청 빈도가 일정횟수 이상 될 경우에 윈도우 관리부(761)가 객체 프리페치 윈도우의 크기를 조절하여 관리한다.The generated object prefetch window is determined by the data access frequency determining unit 760, when the access request frequency for the object prefetch window is more than a predetermined number of times, the window manager 761 adjusts the size of the object prefetch window. Manage.

일정기간 동안 접근요청이 없을 경우에는 윈도우 제거부(762)에서 객체 프리페치 윈도우를 제거하게 된다.If there is no access request for a certain period of time, the window removing unit 762 removes the object prefetch window.

도 8 은 본 발명에 따른 객체 프리페치 윈도우를 통하여 클라이언트에게 객체 데이터를 제공하는 방법에 대한 흐름도의 일 예이다. 도 1을 참조하면, 클라이언트의 데이터에 대한 접근 요청이 들어오면(S810) 클라이언트가 요청한 데이터를 이미 생성된 객체 프리페치 윈도우에 적재할 수 있는가를 판단한다(S820).8 is an example of a flowchart of a method for providing object data to a client through an object prefetch window according to the present invention. Referring to FIG. 1, when an access request for data of a client is received (S810), it is determined whether the client may load the requested data into an already created object prefetch window (S820).

S820 과정에서 판단한 결과 적재할 수 없다면 새로운 객체 프리페치 윈도우를 생성하고(S830) 클라이언트가 요청한 데이터를 객체 프리페치 윈도우에 적재하고 클라이언트에게 제공한다(S840).If it can not be loaded as a result of the determination in step S820 generates a new object prefetch window (S830) and loads the data requested by the client in the object prefetch window and provides to the client (S840).

S840 과정에서 제공받은 데이터에 대한 클라이언트의 접근요청이 일정시간 이상 유지되는지를 카운팅하여(S850) 유지되는 경우에는 다시 객체 프리페치 윈도우에 클라이언트가 요청한 데이터의 적재되지 못한 부분이 존재하는지 판단한다(S860).If it is maintained by counting whether the client's access request for the data provided in step S840 is maintained for a predetermined time (S850), it is again determined whether there is an unloaded portion of the data requested by the client in the object prefetch window (S860). ).

S860 과정에서 판단한 결과 존재할 경우에는 객체 프리페치 윈도우의 크기를 확장하여(S870) 적재되지 못한 부분을 확장된 객체 프리페치 윈도우에 적재하도록 하고(S880) 적재된 데이터를 클라이언트에게 제공하도록 한다(S890). As a result of the determination in step S860, the size of the object prefetch window is expanded (S870) to load the unloaded portion into the expanded object prefetch window (S880) and to provide the loaded data to the client (S890). .

S850 단계에서 유지되지 않는 것으로 판단된 경우나 S860 단계에서 존재하지 않는 것으로 판단된 경우에는 S840 단계에서 클라이언트에게 제공하는 데이터에 대한 전송만 완료하면 된다. When it is determined in step S850 that it is not maintained or when it is determined that it does not exist in step S860 it is only necessary to complete the transmission for the data provided to the client in step S840.

도 9 는 본 발명에 따른 객체 프리페치 윈도우를 관리하는 방법에 대한 흐름 도의 일 예이다. 도 9를 참조하면, 이미 존재하는 객체 프리페치 윈도우에 대한 클라이언트의 접근 요청 빈도를 측정하여(S910) 접근 요청이 있은 후 일정시간 지속되는 경우에는 객체 프리페치 윈도우의 크기를 확장한다(S920).9 is an example of a flow diagram for a method for managing an object prefetch window according to the present invention. Referring to FIG. 9, when the access request frequency of the client for the existing object prefetch window is measured (S910), if the access request continues for a predetermined time, the size of the object prefetch window is expanded (S920).

접근 요청 빈도가 일정 횟수 미만인 경우에는 객체 프리페치 윈도우의 크기를 축소하고(S930) 접근 요청이 일정 기간동안 전혀 없는 경우에는 객체 프리페치 윈도우를 제거한다(S940).If the access request frequency is less than a certain number of times, the size of the object prefetch window is reduced (S930). If there is no access request for a predetermined period of time, the object prefetch window is removed (S940).

확장(S920) 또는 축소(S930)되는 동안 이미 생성된 객체 프리페치 윈도우가 인접하게 되었는가를 판단하여(S950) 객체 프리페치 윈도우의 영역이 서로 인접한 경우에는 객체 프리페치 윈도우들을 병합한다(S960).During expansion (S920) or reduction (S930), it is determined whether already created object prefetch windows are adjacent (S950). If the regions of the object prefetch windows are adjacent to each other, the object prefetch windows are merged (S960).

도 10 는 객체 프리페치 윈도우의 상태변화에 대한 흐름도의 일 예이다. 도 10를 참조하면, 클라이언트가 요청한 데이터를 이미 생성된 객체 프리페치 윈도우에 적재할 수 없으면(S1000) 새로운 객체 프리페치 윈도우를 생성하게 된다(S1010).10 is an example of a flowchart for a state change of an object prefetch window. Referring to FIG. 10, if the client cannot load data requested in the already created object prefetch window (S1000), a new object prefetch window is generated (S1010).

클라이언트가 요청한 데이터의 일부가 객체 프리페치 윈도우 영역을 벗어난 것으로 판단한 경우에 객체 프리페치 윈도우의 크기를 확장한다(S1030).If the client determines that a part of the requested data is out of the object prefetch window area, the size of the object prefetch window is extended (S1030).

객체 프리페치 윈도우에 대한 클라이언트의 접근요청 빈도가 일정횟수 이상 되지 않으면(S1040) 클라이언트의 접근요청이 일정기간 동안 없는 경우가 아니면 객체 프리페치 윈도우의 크기를 축소한다(S1060).If the frequency of the client's access request for the object prefetch window does not exceed a certain number of times (S1040), the size of the object prefetch window is reduced (S1060), unless the client's access request is absent for a certain period of time (S1060).

접근요청이 일정기간 동안 없는 경우에는 객체 프리페치 윈도우를 제거한다(S1090).If there is no access request for a certain period of time, the object prefetch window is removed (S1090).

확장(S1030)되거나 축소(S1060)된 객체 프리페치 윈도우가 서로 인접한 영역에 속하게 되면(S1070) 객체 프리페치 윈도우들을 병합하여(S1080) 하나의 객체 프리페치 윈도우로 만들어 관리하게 된다.If the expanded object prefetch window belongs to an area adjacent to each other (S1070), the object prefetch windows are merged (S1080) to manage one object prefetch window.

본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD_ROM, 자기테이프, 플로피디스크 및 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드로 저장되고 실행될 수 있다.The invention can also be embodied as computer readable code on a computer readable recording medium. The computer-readable recording medium includes all kinds of recording devices in which data that can be read by a computer system is stored. Examples of computer-readable recording media include ROM, RAM, CD_ROM, magnetic tape, floppy disks, and optical data storage, and may also include those implemented in the form of carrier waves (e.g., transmission over the Internet). . The computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.

이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.As described above, optimal embodiments have been disclosed in the drawings and the specification. Although specific terms have been used herein, they are used only for the purpose of describing the present invention and are not intended to limit the scope of the present invention as defined in the claims or the claims. Therefore, those skilled in the art will understand that various modifications and equivalent other embodiments are possible from this. Therefore, the true technical protection scope of the present invention will be defined by the technical spirit of the appended claims.

본 발명은 객체 기반 스토리지 환경에서 객체 저장 서버에 저장된 객체 데이 터를 효율적으로 프리페치 하는 방법을 통하여 고속의 데이터 입출력을 제공함으로써, 다양한 응용 소프트웨어가 운영되는 서버, VoD서버 또는 스토리지 임대 서비스와 같은 대량의 데이터 전송이 필요한 운영환경, 고성능의 데이터 입출력이 요구되는 클러스터링 컴퓨터 등의 스토리지 플랫폼으로 활용되어 안정적이고 빠른 데이터 서비스를 제공할 수 있다.The present invention provides a high-speed data input and output through a method of efficiently prefetching object data stored in an object storage server in an object-based storage environment, thereby providing a large amount of data such as a server, a VoD server, or a storage leasing service running various application software. It can be used as a storage platform such as an operating environment that requires data transfer, clustering computers that require high-performance data input and output, and can provide stable and fast data services.

Claims (14)

클라이언트의 데이터 접근 요청을 접수하고 상기 클라이언트가 요청한 데이터를 상기 클라이언트에게 전송하는 통신관리기;A communication manager which receives a data access request of a client and transmits the data requested by the client to the client; 상기 클라이언트가 요청하는 데이터를 디스크 상에 저장, 삭제 및 검색하는 객체 저장 관리기;An object storage manager for storing, deleting, and retrieving data requested by the client on a disk; 상기 클라이언트가 요청한 데이터가 메모리 상에 기적재된 경우 상기 적재된 데이터를 상기 클라이언트에게 전송하는 객체 캐쉬 관리기;An object cache manager which transmits the loaded data to the client when the data requested by the client is loaded on the memory; 상기 클라이언트가 요청한 데이터의 일부분을 상기 메모리에 적재되도록 영역을 할당하고 상기 메모리 상에 적재된 데이터를 상기 클라이언트에게 제공 중에 상기 메모리의 영역을 확장하여 상기 데이터의 나머지 부분을 적재하는 객체 프리페치 관리기; 및An object prefetch manager for allocating an area so that a portion of data requested by the client is loaded into the memory, and expanding the area of the memory to load the remaining portion of the data while providing the data loaded on the memory to the client; And 상기 디스크 상에 저장된 상기 데이터를 상기 객체 프리페치 관리기가 요청하는 상기 메모리 영역에 따른 상기 데이터를 전송하는 객체 입출력 관리기를 포함하는 것을 특징으로 하는 객체 입출력 처리 장치.And an object input / output manager configured to transmit the data according to the memory area requested by the object prefetch manager to the data stored on the disk. 제 1 항에 있어서, 상기 객체 프리페치 관리기는The method of claim 1, wherein the object prefetch manager 상기 디스크로부터 상기 메모리에 적재되지 못한 상기 데이터의 나머지 부분을 상기 클라이언트가 요청한 데이터 전체가 적재될 때까지 상기 메모리의 영역을 일정단위로 확장하는 것을 특징으로 하는 객체 입출력 처리 장치.And extending an area of the memory by a predetermined unit until the entire data requested by the client is loaded in the remaining portion of the data which is not loaded from the disk into the memory. 메모리에 일정 영역의 객체 프리페치 윈도우를 생성하는 윈도우 생성부;A window generator generating an object prefetch window of a predetermined area in a memory; 클라이언트의 데이터 접근 요청에 해당하는 디스크 상의 데이터 크기가 상기 객체 프리페치 윈도우보다 크면 상기 객체 프리페치 윈도우의 영역을 확장하는 윈도우 제어부; 및A window controller configured to expand an area of the object prefetch window when a data size on a disk corresponding to a data access request of a client is larger than the object prefetch window; And 상기 확장 전의 객체 프리페치 윈도우의 크기에 해당하는 상기 디스크 상의 데이터의 일부분을 상기 확장 전의 객체 프리페치 윈도우에 적재하고, 상기 확장 전의 객체 프리페치 윈도우에 적재된 데이터의 일부분을 상기 클라이언트에 제공중에 상기 객체 프리페치 윈도우의 확장된 영역에 상기 디스크 상의 데이터의 나머지 부분을 적재하는 데이터 적재부를 포함하는 것을 특징으로 하는 객체 입출력 처리 장치.Loading a portion of data on the disk corresponding to the size of the object prefetch window before expansion into the object prefetch window before expansion and providing the client with a portion of data loaded in the object prefetch window before expansion And a data loader for loading the rest of the data on the disk in the extended area of the object prefetch window. 제 3 항에 있어서, 상기 윈도우 생성부는The method of claim 3, wherein the window generating unit 상기 클라이언트의 접근요청에 해당하는 데이터가 이미 생성된 객체 프리페치 윈도우상에 적재되지 않은 경우 새로운 객체 프리페치 윈도우를 생성하는 것을 특징으로 하는 객체 입출력 처리 장치.And a new object prefetch window is generated when data corresponding to the access request of the client is not loaded on the already created object prefetch window. 제 3 항에 있어서, 상기 윈도우 제어부는The method of claim 3, wherein the window control unit 상기 디스크로부터 상기 객체 프리페치 윈도우에 적재되지 못한 상기 데이터의 나머지 부분을 상기 클라이언트가 요청한 데이터 전체가 적재될 때까지 상기 객 체 프리페치 윈도우의 크기를 일정 단위로 확장하는 것을 특징으로 하는 객체 입출력 처리 장치.The size of the object prefetch window is extended by a predetermined unit until the entire data requested by the client is loaded in the remaining portion of the data which is not loaded from the disk into the object prefetch window. Device. 제 3 항에 있어서, 상기 윈도우 제어부는The method of claim 3, wherein the window control unit 상기 객체 프리페치 윈도우에 적재된 데이터에 대한 클라이언트의 접근요청이 종료되면 상기 객체 프리페치 윈도우의 확장된 영역을 제거하는 것을 특징으로 하는 객체 입출력 처리 장치.And removing the extended area of the object prefetch window when the client access request for the data loaded in the object prefetch window ends. 제 3 항에 있어서,The method of claim 3, wherein 이미 생성된 객체 프리페치 윈도우에 해당하는 데이터에 대한 상기 클라이언트의 접근요청 빈도가 적을 때에는 해당 객체 프리페치 윈도우의 크기를 축소하고, 상기 축소되는 과정에서 이미 생성된 객체 프리페치 윈도우가 서로 인접할 때에는 하나의 객체 프리페치 윈도우로 병합하는 윈도우 관리부를 더 포함하는 것을 특징으로 하는 객체 입출력 처리 장치.When the client access request frequency for the data corresponding to the already created object prefetch window is small, the size of the object prefetch window is reduced, and when the object prefetch windows that are already generated during the reduction process are adjacent to each other. And an window manager for merging into one object prefetch window. 제 3 항에 있어서,The method of claim 3, wherein 이미 생성된 객체 프리페치 윈도우에 해당하는 데이터에 대한 상기 클라이언트의 접근이 이루어지지 않는 때에는 해당 객체 프리페치 윈도우를 제거하는 윈도우 제거부를 더 포함하는 것을 특징으로 하는 객체 입출력 처리 장치.And a window removing unit which removes the object prefetch window when the client does not access data corresponding to the object prefetch window that has already been created. 제 8 항에 있어서, 상기 윈도우 제거부는The method of claim 8, wherein the window removing unit 상기 제거되는 객체 프리페치 윈도우에 해당하는 데이터에 대해서 메모리 공간이 부족할 경우에는 메모리 영역에서 제거하고, 메모리 공간이 충분할 경우 메모리 영역에 남겨두는 것을 특징으로 하는 객체 입출력 처리 장치.And when the memory space is insufficient for the data corresponding to the object prefetch window to be removed, remove the memory space from the memory area, and if the memory space is sufficient, the object input / output processing device. 메모리에 일정 영역의 객체 프리페치 윈도우를 생성하는 단계;Generating an object prefetch window of a predetermined area in a memory; 클라이언트의 데이터 접근 요청에 해당하는 디스크 상의 데이터 크기가 상기 객체 프리페치 윈도우보다 크면 상기 객체 프리페치 윈도우의 영역을 확장하는 단계; 및Expanding an area of the object prefetch window if the data size on the disk corresponding to the data access request of the client is larger than the object prefetch window; And 상기 확장 전의 객체 프리페치 윈도우의 크기에 해당하는 상기 디스크 상의 데이터의 일부분을 상기 확장 전의 객체 프리페치 윈도우에 적재하고, 상기 확장 전의 객체 프리페치 윈도우에 적재된 데이터의 일부분을 상기 클라이언트에 제공중에 상기 객체 프리페치 윈도우의 확장된 영역에 상기 디스크 상의 데이터의 나머지 부분을 적재하는 단계를 포함하는 것을 특징으로 하는 객체 입출력 처리 방법.Loading a portion of data on the disk corresponding to the size of the object prefetch window before expansion into the object prefetch window before expansion and providing the client with a portion of data loaded in the object prefetch window before expansion Loading the remaining portion of data on the disk in an extended area of an object prefetch window. 제 10 항에 있어서, 상기 윈도우를 생성하는 단계는The method of claim 10, wherein generating the window 상기 클라이언트의 접근요청에 해당하는 데이터가 이미 생성된 객체 프리페치 윈도우상에 적재되지 않은 경우 새로운 객체 프리페치 윈도우를 생성하는 것을 특징으로 하는 객체 입출력 처리 방법.And generating a new object prefetch window when data corresponding to the access request of the client is not loaded on the already created object prefetch window. 제 10 항에 있어서, 상기 윈도우 영역을 확장하는 단계는The method of claim 10, wherein expanding the window area 상기 디스크로부터 상기 객체 프리페치 윈도우에 적재되지 못한 상기 데이터의 나머지 부분을 상기 클라이언트가 요청한 데이터 전체가 적재될 때까지 상기 객체 프리페치 윈도우의 크기를 일정 단위로 확장하는 것을 특징으로 하는 객체 입출력 처리 방법.An object input / output processing method characterized in that the size of the object prefetch window is extended by a predetermined unit until the entire data requested by the client is loaded in the remaining portion of the data which is not loaded in the object prefetch window from the disk. . 제 10 항에 있어서,The method of claim 10, 상기 클라이언트의 접근요청 빈도가 적을 때에는 이미 생성된 객체 프리페치 윈도우에 대해서 상기 객체 프리페치 윈도우의 크기를 축소하는 단계;Reducing the size of the object prefetch window with respect to an already created object prefetch window when the access request frequency of the client is small; 상기 축소하는 단계에 의하여 두 개의 객체 프리페치 윈도우가 인접하게 될 경우 두 개의 객체 프리페치 윈도우를 병합하여 하나의 객체 프리페치 윈도우로 만드는 단계;Merging the two object prefetch windows into two object prefetch windows when the two object prefetch windows are adjacent by the reducing; 상기 클라이언트의 접근 요청이 이루어지지 않는 이미 생성된 객체 프리페치 윈도우에 대해서 상기 객체 프리페치 윈도우를 제거하는 단계를 더 포함하는 것을 특징으로 하는 객체 입출력 처리 방법.And removing the object prefetch window for an object prefetch window that has not been made by the client. 제 10 항 내지 제 13 항 중 어느 한 항에 있어서,The method according to any one of claims 10 to 13, 상기 객체 입출력 처리 방법을 수행하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.A computer-readable recording medium having recorded thereon a program for performing the object input / output processing method.
KR1020060033204A 2005-12-08 2006-04-12 Object data storage system and method to enhance IO performance in object storage system KR100753831B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20050120080 2005-12-08
KR1020050120080 2005-12-08

Publications (2)

Publication Number Publication Date
KR20070061022A KR20070061022A (en) 2007-06-13
KR100753831B1 true KR100753831B1 (en) 2007-08-31

Family

ID=38356960

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060033204A KR100753831B1 (en) 2005-12-08 2006-04-12 Object data storage system and method to enhance IO performance in object storage system

Country Status (1)

Country Link
KR (1) KR100753831B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100974514B1 (en) * 2008-04-07 2010-08-10 한국과학기술원 A sequential prefetching method in computer system

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10795760B2 (en) * 2017-03-20 2020-10-06 Samsung Electronics Co., Ltd. Key value SSD

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0981455A (en) * 1995-09-11 1997-03-28 Toshiba Corp Client device server device and storage device controlling method
KR19990032182A (en) * 1997-10-16 1999-05-06 정선종 Buffer management device for variable length files and its method
US6049891A (en) 1997-10-20 2000-04-11 Fujitsu Limited Data access control system and computer-readable medium storing data access control program
KR20040054978A (en) * 2002-12-20 2004-06-26 삼성에스디에스 주식회사 Prefetch scheduling method of streaming server and system thereof

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0981455A (en) * 1995-09-11 1997-03-28 Toshiba Corp Client device server device and storage device controlling method
KR19990032182A (en) * 1997-10-16 1999-05-06 정선종 Buffer management device for variable length files and its method
US6049891A (en) 1997-10-20 2000-04-11 Fujitsu Limited Data access control system and computer-readable medium storing data access control program
KR20040054978A (en) * 2002-12-20 2004-06-26 삼성에스디에스 주식회사 Prefetch scheduling method of streaming server and system thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100974514B1 (en) * 2008-04-07 2010-08-10 한국과학기술원 A sequential prefetching method in computer system

Also Published As

Publication number Publication date
KR20070061022A (en) 2007-06-13

Similar Documents

Publication Publication Date Title
US10853339B2 (en) Peer to peer ownership negotiation
US20230409473A1 (en) Namespace change propagation in non-volatile memory devices
US11593272B2 (en) Method, apparatus and computer program product for managing data access
US8131927B2 (en) Fast accessible compressed thin provisioning volume
US6836819B2 (en) Automated on-line capacity expansion method for storage device
US7707337B2 (en) Object-based storage device with low process load and control method thereof
US7979631B2 (en) Method of prefetching data in hard disk drive, recording medium including program to execute the method, and apparatus to perform the method
US9268711B1 (en) System and method for improving cache performance
JP2004326162A (en) Network system, server, data processing method, and program
US10970254B2 (en) Utilization of tail portions of a fixed size block in a deduplication environment by deduplication chunk virtualization
US7640588B2 (en) Data processing system and method
US9268696B1 (en) System and method for improving cache performance
CN107203480B (en) Data prefetching method and device
US10719240B2 (en) Method and device for managing a storage system having a multi-layer storage structure
US7549152B2 (en) Method and system for maintaining buffer registrations in a system area network
US11474750B2 (en) Storage control apparatus and storage medium
JP4461089B2 (en) Storage control apparatus and storage control method
KR100753831B1 (en) Object data storage system and method to enhance IO performance in object storage system
CN111124302B (en) SAN shared file storage and archiving method and system
US20040088288A1 (en) Implementing a distributed file system that can use direct connections from client to disk
US10671525B2 (en) Space reclamation in data deduplication storage systems
KR20030055482A (en) Method of managing a cache selectively and apparatus
KR100785774B1 (en) Obeject based file system and method for inputting and outputting
WO2021249141A1 (en) Method for processing metadata in storage device and related device
KR100541530B1 (en) Method of processing snapshot introducing snapshot status table based on memory for shared storage supporting large capacity

Legal Events

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

Payment date: 20100802

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee