KR100974514B1 - A sequential prefetching method in computer system - Google Patents

A sequential prefetching method in computer system Download PDF

Info

Publication number
KR100974514B1
KR100974514B1 KR1020080032201A KR20080032201A KR100974514B1 KR 100974514 B1 KR100974514 B1 KR 100974514B1 KR 1020080032201 A KR1020080032201 A KR 1020080032201A KR 20080032201 A KR20080032201 A KR 20080032201A KR 100974514 B1 KR100974514 B1 KR 100974514B1
Authority
KR
South Korea
Prior art keywords
prefetching
strip
disk
blocks
sequential
Prior art date
Application number
KR1020080032201A
Other languages
Korean (ko)
Other versions
KR20090106829A (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 KR1020080032201A priority Critical patent/KR100974514B1/en
Publication of KR20090106829A publication Critical patent/KR20090106829A/en
Application granted granted Critical
Publication of KR100974514B1 publication Critical patent/KR100974514B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • 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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks

Abstract

본 발명은 레이드와 같이 스트라이핑 기법으로 다수개의 디스크로 구성된 디스크어레이에서의 순차적 프리페칭 방법에 관한 것으로, 본 발명은 프로세스로부터 읽기 명령을 수신하는 제1 과정과, 상기 수신된 읽기 명령이 지시하는 초기 프리페칭 크기와 프리페칭할 연속된 블록들을 결정하는 제2 과정과, 상기 연속된 블록들이 서로 다른 스트립에 포함되는지를 확인하는 제3 과정과, 상기 연속된 블록들이 서로 다른 스트립에 포함되면, 상기 연속된 블록들 중 시작 블록이 속해있는 스트립에 포함된 블록들의 수만큼 상기 초기 프리페칭 크기를 줄이는 제4 과정과, 상기 줄어든 초기 프리페칭 크기에 따라 하나의 디스크 명령을 생성하는 제5 과정을 포함을 포함함을 특징으로 한다. 상술한 본 발명은 스트라이핑 기법을 사용하는 디스크 저장장치에서 독립성 손실로 인한 성능 저하를 방지할 수 있는 효과가 있다.The present invention relates to a sequential prefetching method in a disk array composed of a plurality of disks by a striping technique such as a RAID. The present invention relates to a first process of receiving a read command from a process, and an initial step indicated by the received read command. A second process of determining a prefetching size and successive blocks to be prefetched, a third process of checking whether the successive blocks are included in different strips, and if the successive blocks are included in different strips, A fourth process of reducing the initial prefetching size by the number of blocks included in the strip to which the start block belongs among consecutive blocks; and a fifth process of generating one disk command according to the reduced initial prefetching size. Characterized in that it comprises a. The present invention described above has the effect of preventing performance degradation due to loss of independence in a disk storage device using a striping technique.

저장장치 관리, 프리페칭, 디스크어레이 Storage Management, Prefetching, Disk Arrays

Description

컴퓨터 시스템에서의 순차적 프리페칭 방법{A SEQUENTIAL PREFETCHING METHOD IN COMPUTER SYSTEM}Sequential prefetching method in computer system {A SEQUENTIAL PREFETCHING METHOD IN COMPUTER SYSTEM}

본 발명은 컴퓨터 시스템에서의 프리페칭 방법에 관한 것으로, 특히 레이드(Redundant Array of Independent Disks : RAID)와 같이 스트라이핑 기법으로 다수개의 디스크로 구성된 디스크어레이에서의 순차적 프리페칭 방법에 관한 것이다.The present invention relates to a prefetching method in a computer system, and more particularly, to a sequential prefetching method in a disk array composed of a plurality of disks by a striping technique such as a RAID (Redundant Array of Independent Disks).

프리페칭 기술은 프로세서(Processor)와 메인 메모리간의 지연 시간을 감소하기 위해 필요한 것으로, 1960년대를 거슬러 올라가 프로세서가 캐시(Cache) 라인 단위로 다수의 워드들을 미리 읽는 것으로 시작되었다. 그리고 현재 프로세서에서의 프리페칭 기술이 많이 개발되었으며, 이러한 프리페칭 기술은 디스크에서 메모리로 미리 읽는 디스크 프리페칭에도 다소 적용되었다. 프로세서에서의 프리페칭과 디스크 저장장치의 다른 특징으로 디스크만을 위한 프리페칭 기술이 많이 연구되었다. 디스크 프리페칭은 디스크의 읽기 비용을 낮추어 디스크 성능을 높이거나 연산동작과 디스크 입출력을 서로 겹치게 하여 시스템의 전체적인 성능을 높인다.Prefetching technology is needed to reduce the latency between the processor and main memory, which dates back to the 1960s when the processor reads a number of words per cache line in advance. In addition, many prefetching techniques have been developed in current processors, and this prefetching technique has been applied to disk prefetching, which is read in advance from disk to memory. As a pre-fetching technique in the processor and other features of disk storage, many prefetching techniques have been studied. Disk prefetching increases disk performance by lowering disk read costs or increases overall system performance by overlapping operations and disk I / O.

일반적으로 디스크 시스템에서 가장 널리 사용되는 프리페칭 기법은 순차적 프리페칭이다. 이러한 순차적 프리페칭 방법은 많은 디스크 읽기는 용량이 큰 파일 읽기나 순차적인 읽기가 큰 부분을 차지하고 있다는 것에 기반하고 있다. 하지만 이러한 순차적 프리페칭 방법은 단일 디스크를 위하여 설계되었고, 다수의 디스크를 사용하는 디스크 어레이에 특화되어 변화된 순차적 프리페칭 방법이 존재하지 않고 있다. 또한 종래의 기술들은 디스크 어레이의 프리페칭에 있어서 병렬성과 로드의 균형만을 중요시 할 뿐 디스크들의 독립성은 고려하지 않고 있었다.In general, the most widely used prefetching technique in disk systems is sequential prefetching. This sequential prefetching method is based on the fact that many disk reads occupy a large portion of a large file read or a sequential read. However, such a sequential prefetching method is designed for a single disk, and there is no changed sequential prefetching method specialized for a disk array using a plurality of disks. In addition, the prior arts only consider the parallelism and the load balance in prefetching the disk array, but do not consider the independence of the disks.

예컨대, 종래의 순차적 프리페칭 방법에서는 파일 수준의 프리페칭시 물리적 디스크의 위치를 전혀 고려하지 않았다. 즉, 하나의 프리페칭으로 읽어야할 블록들의 위치가 두 개 이상의 스트립에 포함되는 경우, 하나의 디스크 명령으로 수행할 수 있는 경우를 두 개의 명령을 생성함으로써, 실질적인 로드 부담 및 처리 속도가 느려지는 문제점이 발생한다.For example, the conventional sequential prefetching method does not consider the position of a physical disk at the file level prefetching. That is, when the positions of blocks to be read by one prefetching are included in two or more strips, the actual load burden and the processing speed are slowed down by generating two instructions when they can be performed by one disk instruction. This happens.

따라서 본 발명의 목적은 다수 개의 디스크를 사용하는 컴퓨터 저장장치에서 프리페칭시 독립성을 고려함으로써, 성능 저하를 방지할 수 있는 순차적 프리페칭 방법을 제안함에 있다.Accordingly, an object of the present invention is to propose a sequential prefetching method that can prevent performance degradation by considering independence in prefetching in a computer storage device using a plurality of disks.

상술한 바를 달성하기 위한 본 발명은 다수개의 디스크를 사용하는 컴퓨터 저장 장치에서의 순차적 프리페칭 방법에 있어서, 소정 프로세스에 따른 읽기 명령을 생성하는 제1 과정과, 상기 읽기 명령에 따라 파일 수준에서 프리페칭할 연속된 블록들의 시작과 프리페칭 크기를 결정하는 제2 과정과, 상기 연속된 블록들이 두개 이상의 스트립에 포함되는지 확인하는 제3 과정과, 상기 블록들이 두개 이상의 스트립에 포함되는 경우, 하나의 프리페칭 요구에 속한 블록들이 하나의 스트립에만 포함되도록 프리페칭 크기를 줄이는 제4 과정과, 상기 프리페칭할 연속된 블록들의 시작과 상기 줄어든 프리페칭 크기에 따라 디스크 명령을 생성하는 제5 과정을 포함함을 특징으로 한다.In order to achieve the above, the present invention provides a sequential prefetching method in a computer storage device using a plurality of disks, the method comprising: a first step of generating a read command according to a predetermined process; A second process of determining the start and prefetching sizes of consecutive blocks to fetch, a third process of checking whether the consecutive blocks are included in two or more strips, and if the blocks are included in two or more strips, A fourth step of reducing the prefetching size such that blocks belonging to the prefetching request are included in only one strip; and a fifth step of generating a disk command according to the start of the contiguous blocks to be prefetched and the reduced prefetching size. It is characterized by.

상기 제4 과정은 상기 파일 수준의 프리페칭 데이터의 시작 블록 번호(S)와 끝 블록 번호(E)를 설정하는 제6 과정과, 변수 'P'에 'S+1'를 대입하는 제7 과정과, 상기 시작 블록 번호가 포함되어 있는 스트립 번호를 결정하는 제8 과정과, 상기 파일의 현재 블록이 저장된 스트립의 번호가 상기 스트립 번호와 동일하며, 상기 'P'가 상기 끝 블록 번호(E)이하 인지 확인하는 제9 과정과, 상기 제9 과정의 조건이 거짓이면, 상기 프리페칭할 블록의 끝을 'P-1'로 설정하고, 상기 설정된 프리페칭의 크기를 'P-S'로 결정하는 제10 과정을 포함함을 특징으로 한다.The fourth process is a sixth process of setting a start block number (S) and an end block number (E) of the file level prefetching data, and a seventh process of assigning 'S + 1' to the variable 'P'. And an eighth process of determining a strip number including the start block number, and a strip number in which the current block of the file is stored is the same as the strip number, and 'P' is the end block number (E). If the ninth process and the condition of the ninth process is false, the end of the block to be prefetched is set to 'P-1' and the size of the set prefetching is determined to be 'P-S'. It characterized in that it comprises a tenth process.

여기서, 상기 제9 과정의 조건이 참이면, 상기 'P'를 '1'만큼 증가시키고, 상기 제8 과정을 반복하는 제10 과정을 더 포함함을 특징으로 한다.If the condition of the ninth process is true, the method further includes a tenth process of increasing 'P' by '1' and repeating the eighth process.

상기 스트립 번호는'해당 데이터가 저장되어 있는 물리 블록 번호'를 '스트립 당 블록들의 수'로 나눈 값의 정수값으로 결정됨을 특징으로 한다.The strip number may be determined as an integer value of a value obtained by dividing a 'physical block number in which corresponding data is stored' by 'number of blocks per strip'.

본 발명은 스트라이핑 기법을 사용하는 디스크 저장장치의 다수의 동시 읽기 성능을 향상시키는 효과가 있다.The present invention has the effect of improving the performance of multiple simultaneous reads of a disk storage device using a striping technique.

또한 본 발명은 어떠한 가정 없이 개발된 범용적 캐시 관리 방법으로, 별도의 하드웨어 변경없이 기존의 소형에서 대형 컴퓨터 또는 저장장치까지 간단히 적용할 수 있는 효과가 있다.In addition, the present invention is a general-purpose cache management method developed without any assumption, and there is an effect that can be easily applied to existing small to large computers or storage devices without any hardware change.

이하 본 발명의 바람직한 실시 예들의 상세한 설명이 첨부된 도면들을 참조하여 설명될 것이다. 도면들 중 동일한 구성들은 가능한 한 어느 곳에서든지 동일한 부호들을 나타내고 있음을 유의하여야 한다. 하기 설명에서 구체적인 특정사항들이 나타나고 있는데, 이는 본 발명의 보다 전반적인 이해를 돕기 위해 제공된 것이다. 그리고 본 발명을 설명함에 있어, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, a detailed description of preferred embodiments of the present invention will be given with reference to the accompanying drawings. It should be noted that the same components in the figures represent the same numerals wherever possible. Specific details are set forth in the following description, which is provided to aid a more general understanding of the invention. In the following description of the present invention, detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear.

본 발명은 레이드(Redundant Array of Independent Disks : RAID)와 같이 스트라이핑 기법으로 다수개의 디스크로 구성된 디스크어레이에서 독립성으로 인하 성능 저하를 방지하는 프리페칭 방법을 제안한다.The present invention proposes a prefetching method for preventing performance degradation due to independence in a disk array composed of a plurality of disks by a striping technique such as a RAID (Redundant Array of Independent Disks).

이에 우선 본 발명의 이해를 돕기 위해 일반적인 순차적 프리페칭 방법에 대해 설명한 후, 본 발명에 따른 순차적 프리페칭 방법 및 장치를 설명하기로 한다.First, a general sequential prefetching method will be described in order to help understanding of the present invention, and then a sequential prefetching method and apparatus according to the present invention will be described.

우선 설명에 앞서 용어를 설명하면 다음과 같다.First, the term will be described before the description.

프리페칭은 디스크의 데이터를 읽는 어떤 프로그램이 디스크의 데이터를 요구하기전에 미리 디스크에서 캐시(Cache)라고 불려지는 시스템의 메모리로 저장하는 방법을 의미한다. 이는 컴퓨터 프로그램으로 구현되어 동작하게 된다.Prefetching refers to a method that reads data on the disk and stores it in the system's memory, called cache, in advance before any program requesting the data on the disk. It is implemented as a computer program to operate.

이러한 프리페칭 기술은 어떤 프로그램이 임의의 파일을 순차적으로 데이터를 읽을 때에, 상기 프로그램이 블록 b를 요구하면 일반적인 순차 프리페칭은 블록 b에서 블록 b+p를 저장장치에서 읽어서 캐시로 저장한다. 그 프로그램이 접근하는 블록이 순차적이면, 매 프리페칭마다 프리페칭의 크기 p는 미리 설정된 최소값에서 미리 설정된 최대값까지 선형적 또는 지수적으로 증가한다.In this prefetching technique, when a program reads data in an arbitrary file sequentially, if the program requires block b, the general sequential prefetching reads block b + p from block b into storage and caches it. If the block to which the program approaches is sequential, the size p of the prefetching increases linearly or exponentially from the preset minimum value to the preset maximum value every prefetching.

또한 프리페칭 블록은 프리페칭으로 요구되는 물리적 블록 단위의 데이터를 의미한다.In addition, the prefetching block means data in units of physical blocks required for prefetching.

그러면 다수의 디스크를 사용하는 디스크 어레이의 구조를 설명한다.Next, a structure of a disk array using a plurality of disks will be described.

도 1은 다수의 디스크들을 구비하는 레이드(Redundant Array of Independent Disks : RAID) 구조의 일례를 나타낸 도면이다. 상기 레이드는 하나의 가상 디스크로서 다수의 디스크들로 데이터를 분할, 저장하는 구조를 갖는다.1 is a diagram illustrating an example of a RAID (Redundant Array of Independent Disks) structure having a plurality of disks. The raid has a structure of dividing and storing data into a plurality of disks as one virtual disk.

도 1을 참조하면, 상기 레이드는 4 개의 디스크들(1,2,3,4)로 구성되는 일례이다. 상기 레이드에서의 스트라이프(Stripe)(30)는 디스크들(1,2,3,4)의 스트립들(Strip)(20)로 구성되어 있고, 스트립(20)은 디스크 내에서 연속한 블록(10)들로 구성되어 있다.Referring to Figure 1, the rade is an example consisting of four disks (1, 2, 3, 4). The stripe 30 in the raid consists of strips 20 of disks 1, 2, 3, and 4, and the strips 20 are continuous blocks 10 in the disk. )

일반적인 순차 프리페칭이 생성하는 하나의 읽기 요구는 여러 개의 연속한 블록들을 포함한다. 그런데, 순차 프리페칭이 적용되는 저장장치가 스트라이핑 기법을 사용하는 디스크 어레이라면, 하나의 읽기 요구에 속한 다수의 블록들이 하나의 스트립에 속할 수도 있고 두 개 또는 그 이상의 스트립에 걸쳐 있거나 흩어져 있을 수 있다. 두 개 이상의 스트립에 걸치는 읽기 요구는 한 개의 스트립에 대응되는 읽기 요구에 비해 두 개의 디스크 명령을 생성하게 되므로 성능이 급격하게 저하되게 되는데, 이러한 성능 저하 문제를 이하에서는 독립성 손실이라고 하겠다. 독립성 손실은 특히 동시에 여러 읽기 요구들이 입력될 때에 많이 발생한다.One read request generated by a typical sequential prefetching involves several consecutive blocks. However, if a storage device to which sequential prefetching is applied is a disk array using a striping technique, a plurality of blocks belonging to one read request may belong to one strip and may be spread over two or more strips or scattered. . A read request that spans more than one strip generates two disk commands compared to a read request that corresponds to one strip, resulting in a drastic performance degradation. This degradation problem is referred to as loss of independence below. Loss of independence especially occurs when multiple read requests are entered at the same time.

도 2는 일반적인 순차적 프리페칭 방법의 일례를 나타낸 도면으로, 독립성 손실을 보다 쉽게 설명하였다.FIG. 2 is a diagram illustrating an example of a general sequential prefetching method, and more easily described the loss of independence.

도 2를 참조하면, 세 개의 독립적인 프로세스(40,41,42)가 있고 각 프로세스는 각각 독립적으로 네 개의 연속한 블록들에 대한 읽기를 수행하고 있다는 가정을 한다. 예컨대, 첫 번째 프로세스(40)는 네 개의 연속한 블록들에 대한 읽기 명령들(50,51,52,53)을 발생시킨다. 순차 프리페칭에 의해서 상기 블록들에 대한 읽기가 프리페쳐(55)에 의해 하나의 디스크 프리페칭 요구(60)로 대체될 수 있다. 여기서 상기 네 개의 읽기 명령들(50,51,52,53)에 속한 네 블록들이 두 개의 스트립에 속해있다면, 상기 디스크 프리페칭 읽기 요구(60)는 두 개의 디스크들(80, 81)에 있는 블록들에 대해 디스크 명령들(70A, 70B)이 생성된다. 왜냐하면 두 개의 연속한 스트립은 반드시 두 개의 디스크로 나누어지기 때문이다. Referring to FIG. 2, there are three independent processes 40, 41, and 42, and each process independently reads four consecutive blocks. For example, the first process 40 generates read commands 50, 51, 52, 53 for four consecutive blocks. By sequential prefetching, reads to the blocks may be replaced by a single disk prefetching request 60 by the prefetcher 55. Here, if four blocks belonging to the four read commands 50, 51, 52, 53 belong to two strips, the disk prefetching read request 60 is a block on two disks 80, 81. Disk commands 70A and 70B are generated for the respective devices. Because two consecutive strips must be divided into two disks.

하나의 디스크 프리페칭 요구가 두 개의 디스크 명령들로 생성되는 예를 도 1에 나타난 일실시예를 이용하여 설명하면, 하나의 디스크 프리페칭 요구(60)가 도1의 네 개의 연속한 블록6, 블록7, 블록8, 블록9를 읽는 것이라면, 블록6과 블록7은 디스크1에 속해있고 블록8과 블록9는 디스크2에 속해있다. 그러므로 그 디스크 프리페칭 요구(60)는 블록6에서 블록7까지 읽는 디스크 명령(70A)과 블록8에서 블록9까지 읽는 디스크 명령(70B)로 생성한다.An example in which one disk prefetch request is generated with two disk commands is explained using one embodiment shown in FIG. 1, where one disk prefetch request 60 is divided into four consecutive blocks 6 of FIG. If blocks 7, 8, and 9 are read, blocks 6 and 7 belong to disk 1, and blocks 8 and 9 belong to disk 2. Therefore, the disk prefetching request 60 is generated by a disk command 70A reading blocks 6 through 7 and a disk command 70B reading blocks 8 through 9.

상기 디스크 프리페칭 요구A(60)에 대해 디스크들(80, 81)로 디스크 명령을 전달하기 위해서, 디스크 어레이 관리자(Disk Array Administrator : DAA)(90)는 상기 디스크 프리페칭 요구A(60)를 상기 디스크들(80, 81)을 위한 두 개의 디스크 명령들(Disk Command : DC)(70A, 70B)로 나눈다. 즉 첫 번째 프로세스(40)가 발생시킨 하나의 프리페칭 읽기 요구(60)가 두 디스크들(80, 81)에 걸쳐있는 블록들에 관계하므로, 결국 두 디스크들(80,81)을 가동시킨다. 다른 두 프로세스들(41,42)도 첫 번째 프로세스(40)와 동시에 각각 두 번째와 세 번째 읽기 요구들(61,62)을 발생시키고, 두 번째 프로세스(41)의 읽기 요구(61)가 두 개의 디스크들(81,82)로 나누어져야 하면 또 다른 두 개의 디스크 명령들(71A, 71B)을 발생시키고, 세 번째 디스크 요구(62)도 마찬가지로 또 다른 두 개의 디스크 명령들(72A,72B)을 발생시키면, 결국 세 개의 데이터 읽기 요구들(60,61,62)은 여섯 개의 디스크 명령 들(70A, 70B, 71A, 71B, 72A, 72B)을 생성한다.In order to send a disk command to disks 80 and 81 for the disk prefetch request A 60, a disk array administrator (DAA) 90 sends the disk prefetch request A 60 to it. It is divided into two Disk Commands (DC) 70A and 70B for the disks 80 and 81. That is, since one prefetching read request 60 generated by the first process 40 relates to blocks spanning the two disks 80 and 81, the two disks 80 and 81 are eventually run. The other two processes 41 and 42 also generate second and third read requests 61 and 62 at the same time as the first process 40, and the read request 61 of the second process 41 If two disks 81 and 82 are to be divided, another two disk commands 71A and 71B are generated, and the third disk request 62 similarly issues another two disk commands 72A and 72B. When generated, three data read requests 60, 61, 62 eventually generate six disk commands 70A, 70B, 71A, 71B, 72A, 72B.

이러한 경우에 각 디스크는 각각 두 개의 명령들을 처리해야한다. 그런데 만약 각 디스크 프리페칭 읽기 요구(60,61,62)가 한 개의 스트립에만 국한된다면 각 읽기 요구는 각각 하나의 디스크 명령을 발생시킬 것이다. 이 경우 세 개의 디스크명령들이 생성되는데, 독립성 손실을 발생하는 도 2의 예에서는 여섯 개의 디스크 명령들이 생성된 것에 비하면 현격이 적은 량의 디스크 명령들이 발생되어 성능이 더 개선된다. 반면 하나의 읽기 요구에 의해서 읽어야할 연속한 블록들이 두 개 이상의 스트립에 걸쳐지면 많은 디스크 명령들을 생성시키게 되므로, 독립성 손실에 따른 디스크 입출력 성능이 저하됨을 알 수 있다.In this case, each disk must handle two separate commands. However, if each disk prefetch read request (60, 61, 62) is limited to one strip, each read request will each generate one disk command. In this case, three disk commands are generated. In the example of FIG. 2 which causes loss of independence, a small amount of disk commands are generated as compared with six disk commands generated, thereby further improving performance. On the other hand, if consecutive blocks to be read by one read request span two or more strips, many disk commands are generated, and thus disk I / O performance is reduced due to loss of independence.

파일 수준의 순차적인 블록 접근에 기반을 둔 기존의 순차 프리페칭 방법에서는 디스크 요구가 다수의 디스크들에 걸쳐지게 되어서, 다수의 프로세스가 발생한 동시 읽기들에 대해서 독립성 손실을 야기한다. In a conventional sequential prefetching method based on file-level sequential block access, disk requests are spread across multiple disks, resulting in a loss of independence for concurrent reads with multiple processes.

그러면 프리페칭 블록의 물리적 위치를 고려하지 않은 파일 수준의 순차적 프리페칭시에 대해 다음의 도 3을 이용하여 설명하기로 한다.Next, the sequential prefetching at the file level without considering the physical location of the prefetching block will be described with reference to FIG. 3.

도 3은 디스크 어레이 구조에서 일반적인 파일 수준의 순차적 프리페칭 동작의 일례를 나타낸 도면이다.3 is a diagram illustrating an example of a file level sequential prefetching operation in a disk array structure.

상술한 바와 같이 파일이 스트립에 정렬되지 않고 조각나지 않아도, 일반적인 파일 수준의 순차 프리페칭은 독립성 손실을 가진다. 도 3에 나타난 파일 수준의 순차 프리페칭의 일실시예에서 임의의 파일은 조각나지 않았으며, 20개의 연속된 블록으로 구성되어 있다. 그리고 상기 파일은 다섯 개의 스트립(스트립4 ~ 스트 립8)에 완벽하게 정렬되어 있고, 물리 블록들(B16~B35)에 순차적으로 저장되어 있다. 이러한 구성에서 상기 파일의 첫 번째 블록(B16)부터 마지막 블록(B35)까지 순차적으로 읽는 기존의 순차 프리페칭 동작의 일례를 나타내고 있다.As mentioned above, even if a file is not aligned and fragmented in strips, typical file level sequential prefetching has a loss of independence. In one embodiment of the file level sequential prefetching shown in Figure 3, any file is not fragmented and consists of 20 contiguous blocks. The file is perfectly aligned on five strips (strips 4 to 8) and sequentially stored in the physical blocks B16 to B35. In this configuration, an example of a conventional sequential prefetching operation that reads sequentially from the first block B16 to the last block B35 of the file is shown.

도 3에 사용된 디스크 어레이의 구조는 도 1의 구조와 동일하다. 일반적인 순차 프리페칭에서, 프리페칭의 크기는 어떤 최소값에서 어떤 최대값까지 선형적 또는 지수적으로 증가시키는데, 도 3에서는 프리페칭의 크기가 20(=1)~ 22(=4)까지 지수적으로 증가한다.The structure of the disk array used in FIG. 3 is the same as that of FIG. In typical sequential prefetching, the size of prefetching increases linearly or exponentially from any minimum value to any maximum value. In FIG. 3, the size of prefetching is exponential from 2 0 (= 1) to 2 2 (= 4). Increase by enemy.

도 3을 참조하여 순차 프리페칭의 동작을 설명하면, 우선 프리페칭의 크기가 지수적으로 증가하므로 첫 번째 프리페칭의 크기는 20=1이다. 따라서 파일의 첫 번째 블록인 B16이 디스크 프리페칭으로 요구되고, 다음으로 21=2 이므로 B17과 B18이 두 번째 디스크 프리페칭으로 요구된다. 그리고 세 번째 프리페칭의 크기는 22=4 이므로, 네 개의 프리페칭 블록들(B19 ~ B22)이 포함되도록 디스크 프리페칭으로 요구된다. 그러나 상기 네 개의 프리페칭 블록들(B19 ~ B22)은 두 스트립들(스트립4와 스트립5)에 걸쳐있어서, 상기 세 번째 프리페칭은 디스크0(1)과 디스크1(2)을 위한 디스크 명령들로 분리되어 생성되므로 독립성 손실을 발생시킨다. 그 이후의 프리페칭 블록들, 즉 B23~B26를 위한 프리페칭과 B27~B30을 위한 프리페칭과 B31~B34에 해당하는 프리페칭도 스트립에 정렬되어 있지 않다. 따라서 이러한 프리페칭시 하나의 프리페칭 요구시 두 개의 디스크 명령들이 발생되므로, 성능이 저하 되게 된다.The operation of sequential prefetching will be described with reference to FIG. 3. First, since the size of prefetching increases exponentially, the size of the first prefetching is 2 0 = 1. Therefore, B16, the first block of the file, is required for disk prefetching, and then B17 and B18 are required for the second disk prefetching, since 2 1 = 2. Since the size of the third prefetching is 2 2 = 4, disc prefetching is required to include four prefetching blocks B19 to B22. However, the four prefetching blocks B19 to B22 span two strips (strip 4 and strip 5), so the third prefetching is the disk commands for disk 0 (1) and disk 1 (2). Are generated separately, resulting in loss of independence. Subsequent prefetching blocks, that is, prefetching for B23 to B26, prefetching for B27 to B30, and prefetching for B31 to B34 are also not aligned in the strip. As a result, two disk commands are generated when one prefetching request is performed. Thus, performance is degraded.

본 발명은 기존 순차 프리페칭의 독립성 손실을 해결하는 스트립-정렬 순차프리페칭이다. 이것은 각 프리페칭이 하나의 스트립에만 속하도록 하는, 순차 프리페칭의 추가적인 기능을 제공한다. 이하 본 발명에 따른 순차 프리페칭 방법을 스트립-정렬 순차 프리페칭이라 칭한다. The present invention is a strip-aligned sequential prefetching that solves the loss of independence of existing sequential prefetching. This provides an additional function of sequential prefetching, allowing each prefetching to belong to only one strip. The sequential prefetching method according to the present invention is hereinafter referred to as strip-aligned sequential prefetching.

도 4는 본 발명의 따른 스트립-정렬 순차 프리페칭 방법의 일례를 나타낸 도면으로, 도 3과 동일한 상태에서 적용한 일례이다.4 is a view showing an example of a strip-aligned sequential prefetching method according to the present invention, which is an example applied in the same state as in FIG.

도 4를 참조하면, 우선 첫 번째 프리페칭의 크기는 20=1이므로 파일의 첫 번째 블록인 B16이 디스크 프리페칭으로 요구(도 2와 통일시킴)되고, 다음으로 21=2 이므로 B17과 B18이 두 번째 디스크 프리페칭으로 요구된다. 그리고 세 번째 프리페칭의 크기는 22=4 이므로, 네 개의 프리페칭 블록들(B19 ~ B22)이 포함되도록 디스크 프리페칭으로 요구된다. 그러나 상기 네 개의 프리페칭 블록들(B19 ~ B22)은 두 스트립들(스트립4와 스트립5)에 걸쳐있어서, 상기 세 번째 프리페칭은 디스크0(1)과 디스크1(2)을 위한 디스크 명령들로 분리되어 생성되므로 독립성 손실을 발생시킨다.Referring to FIG. 4, first, the size of the first prefetching is 2 0 = 1, so that the first block of the file, B16, is required for disk prefetching (unified with FIG. 2), and then 2 1 = 2, so that B17 and B18 is required for the second disk prefetching. Since the size of the third prefetching is 2 2 = 4, disc prefetching is required to include four prefetching blocks B19 to B22. However, the four prefetching blocks B19 to B22 span two strips (strip 4 and strip 5), so the third prefetching is the disk commands for disk 0 (1) and disk 1 (2). Are generated separately, resulting in loss of independence.

이 경우, 본 발명에서는 물리 블록의 위치를 고려하여 디스크 프리페칭 요구에 속한 모든 블록들이 하나의 스트립에 포함되도록 하는 조건을 만족시키도록 프리페칭 크기를 줄인다. 이 조건을 만족하면서 크기가 줄어든 프리페칭 크기 중에서 가장 큰 값이 최종적인 프리페칭의 크기가 된다. 따라서 세 번째 디스크 프리페칭 요구를 수신하면 프리페칭 블록들이 그것의 시작 블록(B19)이 속한 스트립(4)에 속하도록 하는 조건을 만족시키기 위해서 프리페칭의 크기를 줄여야 한다. 이 경우에 이 조건을 만족시키는 줄어든 최대 프리페칭의 크기는 1이 된다. 그래서 한 개의 블록(B19)으로 줄어든 디스크 명령이 생성되게 된다. 왜냐하면 물리 블록 B20 이 속한 스트립(스트립5)은 블록 B19가 속한 스트립(스트립4)과 다르기 때문에 두 개의 디스크 명령을 방지하기 위함이다.In this case, the present invention reduces the prefetching size to satisfy the condition that all the blocks belonging to the disk prefetching request are included in one strip in consideration of the positions of the physical blocks. The largest value among the reduced prefetching sizes while satisfying this condition becomes the final prefetching size. Therefore, upon receiving the third disk prefetching request, the size of the prefetching must be reduced to satisfy the condition that the prefetching blocks belong to the strip 4 to which its start block B19 belongs. In this case, the reduced maximum prefetching size that satisfies this condition is 1. Thus, the disk command reduced to one block B19 is generated. This is to prevent two disk commands because the strip (strip 5) to which physical block B20 belongs is different from the strip (strip 4) to which block B19 belongs.

세 번째 프리페칭 이후에는 프리페칭 블록의 크기를 22=4 로 설정함으로서, 네 번째 디스크 프리페칭 요구부터는 스트립에 정렬됨으로써, 두 개의 디스크 명령을 생성할 필요가 없게 된다.After the third prefetching, by setting the size of the prefetching block to 2 2 = 4, the fourth disk prefetching request is aligned to the strip, thus eliminating the need to generate two disk commands.

즉, 프리페칭 파일을 순차적으로 읽기 위해서 도 3에서 보인 기존의 순차 프리페칭은 11개의 디스크 요구를 필요로 하는 반면에, 도 4에서 보인 스트립-정렬 순차 프리페칭은 7개의 디스크 요구를 필요하게 됨을 알 수 있다. 따라서 본 발명의 스트립-정렬 순차 프리페칭은 불필요한 디스크 명령을 생성하지 않으므로, 종래의 순차 프리페칭보다 성능이 향상됨을 알 수 있다.In other words, the conventional sequential prefetching shown in FIG. 3 requires 11 disk requests in order to read the prefetching file sequentially, whereas the strip-aligned sequential prefetching shown in FIG. 4 requires 7 disk requests. Able to know. Therefore, it can be seen that the strip-aligned sequential prefetching of the present invention does not generate unnecessary disk commands, thereby improving performance over conventional sequential prefetching.

상술한 바와 같이 본 발명의 스트립-정렬 순차 프리페칭 방법은 디스크 프리페칭 요구가 하나의 스트립에만 속하도록 프리페칭 크기를 조정하게 되는 것으로, 순차 프리페칭에서의 독립성 손실의 문제를 밝히고 해결하려는 최초의 방법이다. 그러면 상기 프리페쳐(55)에서 프리페칭할 블록의 시작과 끝을 결정하는 과정을 설명하기로 한다.As described above, the strip-aligned sequential prefetching method of the present invention is to adjust the prefetching size so that the disc prefetching request belongs to only one strip, which is the first to identify and solve the problem of loss of independence in sequential prefetching. It is a way. Next, the process of determining the start and end of the block to be prefetched by the prefetcher 55 will be described.

도 5는 본 발명의 바람직한 실시 예에 따른 스트립-정렬 순차 프리페칭 과정을 나타낸 순서도로서, 프리페쳐(55)에서의 동작을 나타내었다.FIG. 5 is a flowchart illustrating a strip-aligned sequential prefetching process according to an exemplary embodiment of the present invention, and illustrates an operation of the prefetcher 55.

도 5를 참조하면, 프리페쳐(55)는 임의의 파일에 대해 디스크 프리페칭 요구가 입력되면 201 단계에서와 같이 상기 파일의 프리페칭할 파일수준의 블록들의 시작블록과 끝블록을 결정하고, 상기 시작블록 번호는 변수 'S'에, 상기 끝블록 번호는 변수 'E'에 대입한다. 그러면 처음 프리페칭의 크기는 'E-S+1'로 설정된다. 이 후 203 단계에서 임의의 변수 'P'에 'S+1'을 대입한다. Referring to FIG. 5, when a disk prefetching request is input for an arbitrary file, the prefetcher 55 determines a start block and an end block of file level blocks to be prefetched as in step 201. The starting block number is assigned to the variable 'S' and the ending block number is assigned to the variable 'E'. The size of the first prefetching is then set to 'E-S + 1'. Thereafter, in step 203, 'S + 1' is substituted for an arbitrary variable 'P'.

그런 후 상기 파일의 S번째 블록이 저장되어 있는 스트립의 번호를 변수 'stripstart'에 대입한다. 상기 스트립의 번호는 '해당 데이터가 저장되어 있는 물리 블록 번호'를 '스트립 당 블록들의 수'로 나눈 값중 정수값만을 취함으로써 결정될 수 있다. 하지만 디스크 어레이의 데이터의 배치 방식에 따라서 스트립 번호를 계산하는 방법은 달라질 수 있다. Then, the number of the strip where the S-th block of the file is stored is substituted into the variable 'stripstart'. The strip number may be determined by taking only an integer value of 'physical block numbers in which corresponding data is stored' divided by 'number of blocks per strip'. However, the method of calculating the strip number may vary depending on the arrangement of data in the disk array.

그런 후, 207 단계에서와 같이 상기 파일의 P번째 블록이 저장된 스트립의 번호가 변수 'stripstart'와 같고 'P'가 'E'이하 인지 검사하는 과정을 수행한다.Thereafter, as in step 207, the process of checking whether the number of the strip where the P-th block of the file is stored is equal to the variable 'stripstart' and 'P' is less than or equal to 'E' is performed.

상기 207 단계에서의 조건이 맞으면, 209 단계에서와 같이 'P'를 1만큼 증가시키고, 상기 207 단계를 수행한다. 반면, 상기 207 단계에서의 조건이 맞지 않으면 211 단계로 진행하여 프리페칭할 파일 수준의 블록들의 끝을 'P-1'로 설정하고, 상기 설정된 프리페칭의 크기를 'P-S'로 설정한다. 이러한 과정을 수행함으로써, 하나의 디스크 프리페칭 요구에 대해 하나의 스트립에만 속하도록 프리페칭의 크기를 결정하게 된다.If the condition in step 207 is correct, as in step 209, 'P' is increased by 1, and step 207 is performed. On the other hand, if the conditions in step 207 are not met, the process proceeds to step 211, where the end of the block of the file level to be prefetched is set to 'P-1', and the size of the set prefetching is set to 'P-S'. . By performing this process, the size of the prefetching is determined to belong to only one strip for one disc prefetching request.

여기서, 도 4에서 세 번째 디스크 프리페칭 요구를 일례로 본 발명의 프리페칭 과정을 설명하면, 우선 201 단계에서 프리페칭할 파일 수준의 블록들의 시작 'S'와 끝 'E'에는 파일의 블록 번호인 '3'과 '6'이 각각 대입된다. 그리고 203 단계에서 'P'는 'S+1' 즉 '4'가 대입된다. 205 단계에서 '그 파일의 3(=S)번째 블록이 저장되어 있는 물리 블록 번호'는 '19'이고, '스트립 당 블록들의 수'는 '4'이므로, '해당 데이터가 저장되어 있는 물리 블록 번호'를 '스트립 당 블록들의 수'나눈 값의 정수는 '4'가 되므로, 상기 'stripstart'에는 '4'가 대입된다.Referring to FIG. 4, the prefetching process of the present invention is described using the third disk prefetching request as an example. Are assigned to '3' and '6' respectively. In step 203, 'P' is substituted for 'S + 1', that is, '4'. In step 205, since the 'physical block number in which the 3 (= S) th block of the file is stored' is '19' and the 'number of blocks per strip' is '4', the 'physical block in which the corresponding data is stored' is stored. The number 'divided by' number of blocks per strip 'is' 4', so '4' is substituted for 'stripstart'.

이후, 207 단계에서 'stripstart'는 '4'지만 P(=4)번째 블록이 저장된 스트립의 번호는 '5'로 동일하지 않으므로, 조건식이 거짓이 된다. 따라서 211 단계에서와 같이 프리페칭할 파일 수준의 블록들의 끝을 'P-1' 즉 '3'으로 결정된다. 따라서 S(=3)에서 P-1(=3)째 블록들이 최종 프리페칭의 대상이 되도록 조정된다.Thereafter, in step 207, 'stripstart' is '4', but the number of strips in which the P (= 4) th block is stored is not the same as '5', so the conditional expression is false. Accordingly, as in step 211, the end of the file level blocks to be prefetched is determined as 'P-1' or '3'. Therefore, the P-1 (= 3) th blocks in S (= 3) are adjusted to be the target of the final prefetching.

그 다음 이어지는 디스크 프리페칭에 있어서, 201 단계에서 파일 수준의 블록들의 시작 'S'와 끝 'E'에는 파일의 블록 번호인 '4'와 '7'이 각각 대입된다. 그리고 211단계에서 'P'는 '8'되어 프리페칭할 파일 수준의 블록들의 끝이 7이 된다. 따라서 4(=S)에서 7(=P-1)까지 프리페칭할 파일 수준의 블록들이 된다.In the subsequent disk prefetching, in step 201, '4' and '7', respectively, are assigned the block number of the file at the beginning 'S' and the end 'E' of the file level blocks. In step 211, 'P' is '8', so that the end of the file level blocks to be prefetched is 7. This results in file-level blocks to be prefetched from 4 (= S) to 7 (= P-1).

이러면, 이후 다섯 번째 디스크 프리페칭 요구부터도 요구된 블록의 수가 하나의 스트립에 속하도록 디스크 명령을 생성하게 됨으로써, 프리페칭시 부하를 줄일 수 있게 된다.In this case, since the disk command is generated such that the number of blocks requested is included in one strip even after the fifth disk prefetching request, the load during prefetching can be reduced.

한편 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이 다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구의 범위뿐 아니라 이 특허청구의 범위와 균등한 것들에 의해서 정해져야 한다. Meanwhile, in the detailed description of the present invention, specific embodiments have been described. However, various modifications may be made without departing from the scope of the present invention. Therefore, the scope of the present invention should not be limited by the described embodiments, but should be determined by the scope of the appended claims and equivalents thereof.

도 1은 다수의 디스크들을 구비하는 레이드 구조의 일례를 나타낸 도면1 shows an example of a RAID structure having a plurality of disks;

도 2는 일반적인 순차적 프리페칭 방법의 일례를 나타낸 도면2 illustrates an example of a general sequential prefetching method.

도 3은 디스크 어레이 구조에서 일반적인 파일 수준의 순차적 프리페칭 동작의 일례를 나타낸 도면3 illustrates an example of a file-level sequential prefetching operation common in a disk array structure.

도 4는 본 발명의 따른 스트립-정렬 순차 프리페칭 방법의 일례를 나타낸 도면4 illustrates an example of a strip-aligned sequential prefetching method of the present invention.

도 5는 본 발명의 바람직한 실시 예에 따른 스트립-정렬 순차 프리페칭 과정을 나타낸 순서도5 is a flowchart illustrating a strip-aligned sequential prefetching process according to a preferred embodiment of the present invention.

Claims (4)

다수개의 디스크를 사용하는 컴퓨터 저장 장치에서의 순차적 프리페칭 방법에 있어서,In the sequential prefetching method in a computer storage device using a plurality of disks, 프로세스로부터 읽기 명령을 수신하는 제1 과정과,A first process of receiving a read command from the process, 상기 수신된 읽기 명령이 지시하는 초기 프리페칭 크기와 프리페칭할 연속된 블록들을 결정하는 제2 과정과,A second process of determining an initial prefetching size indicated by the received read command and successive blocks to be prefetched; 상기 연속된 블록들이 서로 다른 스트립에 포함되는지를 확인하는 제3 과정과,A third process of checking whether the consecutive blocks are included in different strips; 상기 연속된 블록들이 서로 다른 스트립에 포함되면, 상기 연속된 블록들 중 시작 블록이 속해있는 스트립에 포함된 블록들의 수만큼 상기 초기 프리페칭 크기를 줄이는 제4 과정과,If the consecutive blocks are included in different strips, a fourth process of reducing the initial prefetching size by the number of blocks included in the strip to which a start block belongs among the consecutive blocks; 상기 줄어든 초기 프리페칭 크기에 따라 하나의 디스크 명령을 생성하는 제5 과정A fifth process of generating one disk command according to the reduced initial prefetching size 을 포함함을 특징으로 하는 순차적 프리페칭 방법.Sequential prefetching method characterized in that it comprises a. 제1 항에 있어서, 상기 제4 과정은,The method of claim 1, wherein the fourth process, 상기 연속된 블록들에서, 상기 시작 블록의 파일 블록 번호(S)와 끝 블록의 파일 블록 번호(E)를 설정하는 파일 블록 번호 설정 과정과,A file block number setting process of setting a file block number (S) of the start block and a file block number (E) of an end block in the consecutive blocks; 변수 블록 번호(P)를 설정하고, 상기 S에 1을 더하여 상기 P에 대입하는 대입 과정과,An assignment process of setting a variable block number (P) and adding 1 to S and assigning to P; 상기 시작 블록이 속해있는 스트립의 스트립 번호를 검색하는 스트립 번호 검색 과정과,A strip number search process of searching for strip numbers of strips to which the start block belongs; 상기 검색된 스트립 번호가 상기 P가 속해있는 스트립 번호와 동일하고, 상기 P가 상기 E 이하인지를 확인하는 확인 과정과,A checking process of checking whether the found strip number is the same as the strip number to which P belongs, and if P is less than or equal to E; 상기 확인 과정의 조건이 거짓이면, 상기 E를 'P-1'로 설정하고, 상기 초기 프리페칭 크기를 'P-S'로 결정하는 결정 과정If the condition of the verification process is false, the determination process of setting E to 'P-1' and determining the initial prefetching size to 'P-S' 을 포함함을 특징으로 하는 순차적 프리페칭 방법.Sequential prefetching method characterized in that it comprises a. 제2 항에 있어서,The method of claim 2, 상기 확인 과정의 조건이 참이면, 상기 'P'를 '1'만큼 증가시키고, 상기 확인 과정을 반복하는 과정을 더 포함함을 특징으로 하는 순차적 프리페칭 방법.And if the condition of the verification process is true, increasing the 'P' by '1' and repeating the verification process. 제3 항에 있어서, 상기 스트립 번호의 검색은,The method of claim 3, wherein the retrieval of the strip number is '상기 S에 대응하는 물리 블록 번호'를 '하나의 스트립을 구성하는 블록들의 수'로 나눈 값의 정수값으로 검색하는 것을 특징으로 하는 순차적 프리페칭 방법.The sequential prefetching method of claim 1, wherein the physical block number corresponding to S is searched by an integer value obtained by dividing the number of blocks constituting one strip by the number of blocks constituting one strip.
KR1020080032201A 2008-04-07 2008-04-07 A sequential prefetching method in computer system KR100974514B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080032201A KR100974514B1 (en) 2008-04-07 2008-04-07 A sequential prefetching method in computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080032201A KR100974514B1 (en) 2008-04-07 2008-04-07 A sequential prefetching method in computer system

Publications (2)

Publication Number Publication Date
KR20090106829A KR20090106829A (en) 2009-10-12
KR100974514B1 true KR100974514B1 (en) 2010-08-10

Family

ID=41536705

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080032201A KR100974514B1 (en) 2008-04-07 2008-04-07 A sequential prefetching method in computer system

Country Status (1)

Country Link
KR (1) KR100974514B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101356351B1 (en) 2011-12-08 2014-01-28 중원대학교 산학협력단 Method of prefetching a disk array asynchronously
US9430307B2 (en) 2012-09-27 2016-08-30 Samsung Electronics Co., Ltd. Electronic data processing system performing read-ahead operation with variable sized data, and related method of operation

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040034859A (en) * 2002-10-17 2004-04-29 한국전자통신연구원 The reorganization method in the raid striping system
KR100449981B1 (en) 1995-10-27 2005-09-30 이엠씨 코포레이션 How video file servers work and video file servers for video on demand
KR100753831B1 (en) * 2005-12-08 2007-08-31 한국전자통신연구원 Object data storage system and method to enhance IO performance in object storage system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100449981B1 (en) 1995-10-27 2005-09-30 이엠씨 코포레이션 How video file servers work and video file servers for video on demand
KR20040034859A (en) * 2002-10-17 2004-04-29 한국전자통신연구원 The reorganization method in the raid striping system
KR100753831B1 (en) * 2005-12-08 2007-08-31 한국전자통신연구원 Object data storage system and method to enhance IO performance in object storage system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Massive Stripe Cache And Prefetching for Massive File I/O(BAEK, S. H. et al. In Proc. of IEEE International Conference on Consumer Electronics 2007(ICCE 2007). 2007.01.)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101356351B1 (en) 2011-12-08 2014-01-28 중원대학교 산학협력단 Method of prefetching a disk array asynchronously
US9430307B2 (en) 2012-09-27 2016-08-30 Samsung Electronics Co., Ltd. Electronic data processing system performing read-ahead operation with variable sized data, and related method of operation

Also Published As

Publication number Publication date
KR20090106829A (en) 2009-10-12

Similar Documents

Publication Publication Date Title
US9477607B2 (en) Adaptive record caching for solid state disks
US8775731B2 (en) Write spike performance enhancement in hybrid storage systems
US6381677B1 (en) Method and system for staging data into cache
US9330008B2 (en) Information processing device for detecting sequential accesses and prefetching
US20080229027A1 (en) Prefetch control device, storage device system, and prefetch control method
US10417137B2 (en) Flushing pages from solid-state storage device
US11593272B2 (en) Method, apparatus and computer program product for managing data access
US9996476B2 (en) Management of cache lists via dynamic sizing of the cache lists
US9152325B2 (en) Logical and physical block addressing for efficiently storing data
US9779030B2 (en) Grouping tracks for destaging
US20120203974A1 (en) Automatic determination of read-ahead amount
US11087826B2 (en) Storing method and apparatus of data
US7822920B2 (en) Mass prefetching method for disk array
RU2672726C1 (en) Method for performing read ahead in data storage systems
KR100974514B1 (en) A sequential prefetching method in computer system
US10621096B2 (en) Read ahead management in a multi-stream workload
US9311247B1 (en) Method and apparatus for detecting patterns of memory accesses in a computing system with out-of-order program execution
KR101456373B1 (en) Apparatus and method for managing cache device
US20100228921A1 (en) Cache hit management
WO2022248051A1 (en) Smart caching of prefetchable data
WO2023061567A1 (en) Compressed cache as a cache tier
WO2023061569A1 (en) Smart defragmentation of a data storage system

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140724

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee