[go: up one dir, main page]

KR101064178B1 - Buffer cache management system and method - Google Patents

Buffer cache management system and method Download PDF

Info

Publication number
KR101064178B1
KR101064178B1 KR1020100081931A KR20100081931A KR101064178B1 KR 101064178 B1 KR101064178 B1 KR 101064178B1 KR 1020100081931 A KR1020100081931 A KR 1020100081931A KR 20100081931 A KR20100081931 A KR 20100081931A KR 101064178 B1 KR101064178 B1 KR 101064178B1
Authority
KR
South Korea
Prior art keywords
block
buffer cache
pattern
partitions
reference pattern
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
KR1020100081931A
Other languages
Korean (ko)
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 KR1020100081931A priority Critical patent/KR101064178B1/en
Application granted granted Critical
Publication of KR101064178B1 publication Critical patent/KR101064178B1/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명은 버퍼 캐시 관리 시스템 및 방법에 관한 것으로, 더욱 상세하게는 접근 속도가 서로 다른 이종 기억 장치(storage device)들이 로컬 혹은 네트워크를 통해서 연결되어 있는 시스템에서의 버퍼 캐시 관리 시스템 및 방법에 관한 것이다.
본 발명의 실시 예에 다른 시스템은, 이종의 기억 장치들과 연결된 버퍼 캐시 관리 시스템으로서, 복수의 파티션들을 갖는 버퍼 캐시; 응용이 실행되면 상기 이종의 기억 장치들에 저장된 블록의 디스크 입출력을 요구하는 어플리케이션부; 상기 디스크 입출력 요구를 추적하여 상기 응용이 지시하는 상기 블록의 참조 패턴을 탐지하는 패턴 탐지기; 상기 패턴 탐지기에서 탐지된 분석 결과를 전달받아 상기 블록이 저장될 상기 버퍼 캐시의 파티션을 결정하는 가상 버퍼 캐시; 및 상기 블록을 상기 이종의 기억 장치들로부터 전달받고, 상기 가상 버퍼 캐시의 지시에 따라 상기 전달받은 블록을 상기 결정된 파티션으로 할당하는 블록 할당기;를 포함한다.
The present invention relates to a buffer cache management system and method, and more particularly, to a buffer cache management system and method in a system in which heterogeneous storage devices having different access speeds are connected locally or through a network. .
Another system according to an embodiment of the present invention is a buffer cache management system connected to heterogeneous storage devices, comprising: a buffer cache having a plurality of partitions; An application unit for requesting disk input / output of a block stored in the heterogeneous storage devices when an application is executed; A pattern detector for tracking a disk input / output request and detecting a reference pattern of the block indicated by the application; A virtual buffer cache that receives a result of the analysis detected by the pattern detector and determines a partition of the buffer cache in which the block is to be stored; And a block allocator for receiving the block from the heterogeneous storage devices and allocating the received block to the determined partition according to an instruction of the virtual buffer cache.

Description

버퍼 캐시 관리 시스템 및 방법{SYSTEM AND METHOD FOR MANAGING BUFFER CACHE}Buffer cache management system and method {SYSTEM AND METHOD FOR MANAGING BUFFER CACHE}

본 발명은 버퍼 캐시 관리 시스템 및 방법에 관한 것으로, 더욱 상세하게는 접근 속도가 서로 다른 이종 기억 장치(storage device)들이 로컬 혹은 네트워크를 통해서 연결되어 있는 시스템에서의 버퍼 캐시 관리 시스템 및 방법에 관한 것이다.
The present invention relates to a buffer cache management system and method, and more particularly, to a buffer cache management system and method in a system in which heterogeneous storage devices having different access speeds are connected locally or through a network. .

버퍼 캐시(Buffer Cache)는 일반적으로 메모리(memory)로의 데이터 접근 시간보다 디스크 입출력(disk I/O)에 의한 데이터 접근 시간이 더 느리다는 점을 보완하기 위한 데이터 구조를 말한다.The buffer cache generally refers to a data structure to compensate for a slower data access time by disk I / O than a data access time to memory.

버퍼 캐시는 영구 기억장치(permanent storage)에 기록되어 있는 데이터의 일부를 메모리(memory)로 읽어 사용하고, 이를 차후의 재사용을 위해서 메모리(memory)에 남겨두는 방식으로 동작한다. 그리고 버퍼 캐시는 일반적으로 가용 메모리의 대부분을 차지한다. The buffer cache operates by reading a portion of data recorded in permanent storage into a memory and using the same, and leaving it in memory for later reuse. And the buffer cache generally takes up most of the available memory.

물리적인 메모리의 양이 각 시스템마다 제한되어 있기 때문에, 버퍼 캐시도 크기가 제한된다. 따라서 버퍼 캐시는 다른 프로그램 또는 기타 이유로 인해서 메모리가 필요할 경우에는 메모리를 해제하여 재사용(reclaiming)한다. 즉, 버퍼 캐시는 캐시에 존재하는 복수의 블록(block)들 중에서 가장 나중에 사용될 것으로 예측되는 블록(block)을 가장 먼저 재사용하는 등의 정책을 사용하여 캐시로 사용된 메모리를 재사용한다. Because the amount of physical memory is limited for each system, the buffer cache is also limited in size. Thus, the buffer cache frees up and reclaims memory when it is needed for other programs or for other reasons. That is, the buffer cache reuses the memory used as the cache by using a policy such as reusing the block that is expected to be used last among the plurality of blocks existing in the cache.

버퍼 캐시(buffer cache)에 남아있는 데이터 블록(data block)은 최근에 사용되는 것일수록, 그리고 데이터 패치(data fetch)에 걸리는 시간이 길수록 메모리에 오래 남아있게 하는 것이 시스템 응답 성능을 높이는 데 있어서 중요한 부분을 차지한다.The more data blocks that remain in the buffer cache are used more recently, and the longer they take to fetch data, the longer they remain in memory is important for improving system responsiveness. Take part.

일반적으로 사용되는 버퍼 캐시(buffer cache)에서 사용되는 블록 교체 알고리즘(block replacement algorithm)들은 시간 구역성(temporal locality)를 기준으로 하는 LRU(Least Recently Used)에 기반한 단일 교체 정책(replacement algorithm)을 사용하기 때문에, 순차 참조 패턴(sequential reference pattern) 혹은 반복 참조 패턴(loop reference pattern)에 대해서는 매우 취약한 성능을 보인다. Block replacement algorithms used in commonly used buffer caches use a single replacement algorithm based on least recently used (LRU) based on temporal locality. As a result, the sequential reference pattern or the loop reference pattern has a very poor performance.

또한, 기존의 버퍼 캐시에서 사용되는 단일 교체 정책은 버퍼 캐시에 연결된 각종 기억장치들이 SSD, HDD 및 NFS와 같이 서로 달라 데이터의 패치(fetch)에 소요되는 시간이 매우 다름에도 불구하고, 버퍼 캐시는 상기 기억장치들의 패치 코스트(fetch cost)를 모두 동일한 것으로 가정한다. In addition, the single replacement policy used in the conventional buffer cache is that although the storage devices connected to the buffer cache are different from each other such as SSD, HDD, and NFS, the time required to fetch data is very different. It is assumed that the fetch costs of the storage devices are all the same.

하지만, 실제로는 버퍼 캐시(buffer cache)의 히트율(hit ratio)가 동일하다면, 느린 기억장치에서 가져온 데이터를 더 오래 가지고 있는 것이 평균 접근 시간을 줄이는 데 보다 효과적이다. 또한 순차 참조 패턴(sequential reference pattern) 또는 반복 참조 패턴(loop reference pattern)을 보이는 블록(block)들은 실제 캐시(cache)의 성능을 보여주는 척도로서, 히트율(hit ratio)이 갖는 정확도를 감소시키게 되어 캐시 교체 정책의 효율성을 떨어뜨린다.
In practice, however, if the buffer cache has the same hit ratio, having longer data from slower storage is more effective in reducing average access time. In addition, blocks showing a sequential reference pattern or a loop reference pattern are a measure of actual cache performance, which reduces the accuracy of the hit ratio. Reduce the effectiveness of the cache replacement policy.

한편, 본 발명과 관련된 종래의 기술로는 어플리케이션(application)의 블록 접급 패턴 탐지에 관련된 논문으로, 2000년도 OSDI에 발표된 “A Low-overhead high-performance unified buffer management scheme that exploits sequential and looping references”, 2004년도 OSDI에 발표된 “Program-counter-based pattern classification in buffer caching”, 2005년도 USENIX ATC에 발표된 “AMP: Program Context Specific Buffer Caching”이 있다. On the other hand, the related art of the present invention is a paper related to the detection of the block access pattern of the application (A low-overhead high-performance unified buffer management scheme that exploits sequential and looping references) published in OSDI in 2000. , "Program-counter-based pattern classification in buffer caching" published in OSDI 2004, and "AMP: Program Context Specific Buffer Caching" published in USENIX ATC 2005.

상기 세 개의 논문은 버퍼 캐시에서 사용되는 단일 교체 알고리즘이 블록 접근(block access)에 있어서의 참조 규칙성(reference regularity)를 찾아내서 대응하지 못한다는 점을 본다. 특히 이러한 성향이 두드러지는 순차 참조 패턴(sequential reference pattern)과 반복 참조 패턴(loop reference pattern)을 탐지하여 이에 속하는 블록(block)들을 분리하여 별도의 캐시 파티션(cache partition)으로 관리한다. 그리고 캐시(cache)의 용량 한계에 의한 블록(block) 교체 시에는 각 접근 패턴(access pattern)에 따라 분리되어 있는 각 캐시 파티션(cache partition)에서 블록(block)을 교체했을 경우에 발생하는 한계 이득(marginal gain)값을 비교하여 가장 적은 한계 이득(marginal gain)의 변화값을 갖는 블록(block)을 교체하는 방식을 취하는 것을 특징으로 한다. 여기서, 각 논문들은 상기 패턴을 탐지하는 방식에 있어서의 차이점을 보인다.The three papers see that the single replacement algorithm used in the buffer cache does not find and respond to reference regularity in block access. In particular, a sequential reference pattern and a loop reference pattern that detect such a tendency are detected, and blocks belonging to the same are managed as separate cache partitions. In addition, when replacing a block due to a capacity limitation of a cache, a marginal gain that occurs when a block is replaced in each cache partition separated according to each access pattern. (marginal gain) value is compared to take a method of replacing a block having the smallest change in marginal gain (marginal gain). Here, each article shows a difference in the way of detecting the pattern.

디바이스에 따른 버퍼 캐시의 분할사용에 관련된 종래의 기술로서는 2002년도 USENIX FAST에 발표된 “Storage-Aware Caching: Revisiting Caching for heterogeneous Storage Systems”, 2008년도 IEICE Transactions of Information and Systems, vol.E91-D No.12에 발표된 “DAC: A Device-Aware Cache Management Algorithm for Heterogeneous Mobile Storage Systems”가 있다.Conventional techniques related to the partitioned use of buffer caches by device include “Storage-Aware Caching: Revisiting Caching for heterogeneous Storage Systems” published in USENIX FAST in 2002, IEICE Transactions of Information and Systems, vol. E91-D No. 2008. “DAC: A Device-Aware Cache Management Algorithm for Heterogeneous Mobile Storage Systems” announced in .12.

상기 두 개의 논문은 이종 기억 장치가 연결되어 있는 경우에 대해서 각 기억 장치마다 하나의 캐시 파티션(cache partition)을 할당하여 해당 기억 장치로부터 읽은 데이터는 해당 파티션에서 관리되도록 한다. 이 때, 각 캐시 파티션에 대해서 각각 별도의 단일 교체 정책을 사용하여 관리하며, 캐시의 용량 부족에 의해서 이미 사용된 페이지의 재사용(reclaiming)시에는 각각의 목표에 맞는 기준에 의해서 재사용될 페이지를 결정한다. The two papers allocate one cache partition to each storage device in a case where heterogeneous storage devices are connected so that data read from the storage device is managed in the partition. In this case, each cache partition is managed using a separate single replacement policy, and when reclaiming a page that has already been used due to insufficient capacity of the cache, the page to be reused is determined according to criteria that meet each goal. do.

특히, 2002년도 논문의 경우, 각 기억 장치마다 할당되어 있는 캐시 파티션들 중 평균 접근 시간이 짧은 기억 장치의 캐시 파티션에서 평균 접근 시간이 긴 기억 장치의 캐시 파티션으로 메모리 페이지 프레임(memory page frame)을 일정한 횟수로 블록 참조(block reference)마다 수행하도록 하여 평균 입출력 시간(I/O time)을 줄이려 하였다. 2008년도 논문의 경우, 각 파티션에 소속되어 있는 데이터들의 평균 패치 타임(fetch time)의 비율과 각 파티션에서의 미스 카운트(miss count)를 곱한 값을 모두 합한 전체 코스트(cost)값을 최소화 시키는 값의 배분을 찾아서 모든 파티션의 크기를 일정한 주기마다 조정하도록 하였다.In particular, in the case of the 2002 paper, memory page frames are allocated from the cache partition of the shortest average access time among the cache partitions allocated to each storage device to the cache partition of the longest access time. In order to reduce the average input / output time (I / O time) by performing a predetermined number of times for each block reference. In the case of the paper in 2008, it minimizes the total cost of the sum of the average fetch time of the data in each partition multiplied by the miss count in each partition. We find the distribution of and adjust the size of all partitions at regular intervals.

상술한 종래 기술들은 버퍼 캐시에 읽힌 블록들에 대해서 응용의 참조 패턴 의 특성만 고려하거나 혹은 기억 장치들간의 접근 시간의 차이만을 고려하였기 때문에, 버퍼 캐시에서 사용되는 단일 교체 정책으로는 효율적인 버퍼 캐시를 관리할 수 없다.
Since the above-described prior arts consider only the characteristics of the reference pattern of the application for the blocks read into the buffer cache or only the difference in access time between the storage devices, the single replacement policy used in the buffer cache provides an efficient buffer cache. Can't manage

본 발명은 이종 기억 장치들과 연결된 버퍼 캐시 관리 시스템과 방법을 제공한다.The present invention provides a buffer cache management system and method coupled to heterogeneous storage devices.

또한, 본 발명은 버퍼 캐시로의 블록 할당 및 재사용 방법을 제공한다. In addition, the present invention provides a method of allocating and reusing a block to a buffer cache.

또한, 본 발명은 이종 기억 장치들의 패치 코스트(fetch cost)가 다른 것을 고려하여 패치 코스트가 감소하는 방향으로의 캐시 교체 정책 사용을 통해서 기억 장치의 평균 접근 시간을 줄일 수 있는 버퍼 캐시 관리 시스템과 방법을 제공한다.
In addition, the present invention provides a buffer cache management system and method that can reduce the average access time of a storage device by using a cache replacement policy in a direction in which the patch cost is reduced in consideration of different fetch costs of heterogeneous storage devices. To provide.

본 발명의 실시 예에 다른 시스템은, 이종의 기억 장치들과 연결된 버퍼 캐시 관리 시스템으로서, 복수의 파티션들을 갖는 버퍼 캐시; 응용이 실행되면 상기 이종의 기억 장치들에 저장된 블록의 디스크 입출력을 요구하는 어플리케이션부; 상기 디스크 입출력 요구를 추적하여 상기 응용이 지시하는 상기 블록의 참조 패턴을 탐지하는 패턴 탐지기; 상기 패턴 탐지기에서 탐지된 분석 결과를 전달받아 상기 블록이 저장될 상기 버퍼 캐시의 파티션을 결정하는 가상 버퍼 캐시; 및 상기 블록을 상기 이종의 기억 장치들로부터 전달받고, 상기 가상 버퍼 캐시의 지시에 따라 상기 전달받은 블록을 상기 결정된 파티션으로 할당하는 블록 할당기;를 포함한다.Another system according to an embodiment of the present invention is a buffer cache management system connected to heterogeneous storage devices, the system comprising: a buffer cache having a plurality of partitions; An application unit for requesting disk input / output of a block stored in the heterogeneous storage devices when an application is executed; A pattern detector for tracking a disk input / output request and detecting a reference pattern of the block indicated by the application; A virtual buffer cache that receives a result of the analysis detected by the pattern detector and determines a partition of the buffer cache in which the block is to be stored; And a block allocator for receiving the block from the heterogeneous storage devices and allocating the received block to the determined partition according to an instruction of the virtual buffer cache.

여기서, 상기 패턴 탐지기는 응용/파일 레벨의 패턴 탐지 룰에 따라 상기 블록의 참조 패턴을 탐지하는 것이 바람직하다.Here, the pattern detector preferably detects a reference pattern of the block according to an application / file level pattern detection rule.

여기서, 상기 블록의 참조 패턴을 결정하기 위한 사용자 지정 룰을 저장하는 관리 툴을 더 포함하고, 상기 패턴 탐지기는 상기 관리 툴에 접근하여 상기 관리 툴에 사용자 지정 룰이 저장된 경우에는 상기 사용자 지정 룰을 적용하여 상기 블록의 참조 패턴을 탐지하는 것이 바람직하다.The management apparatus may further include a management tool for storing a user-defined rule for determining a reference pattern of the block. The pattern detector may access the management tool and, when the user-defined rule is stored in the management tool, select the user-defined rule. It is desirable to apply to detect the reference pattern of the block.

여기서, 상기 사용자 지정 룰은 테이블 형태로 상기 관리 툴에 저장된 것이 바람직하다.Here, the user-specified rule is preferably stored in the management tool in the form of a table.

여기서, 상기 관리 툴은 상기 버퍼 캐시의 파티션에 저장된 블록의 축출을 금지하거나 상기 버퍼 캐시의 메모리 양을 제한하는 것이 바람직하다.Here, the management tool preferably prohibits the extraction of blocks stored in a partition of the buffer cache or limits the amount of memory in the buffer cache.

여기서, 상기 블록 할당기로 읽혀지는 블록이 상기 이종의 기억 장치들 중 어떤 기억 장치에서 읽혀지는 것인지를 기록하는 스토리지 모니터를 더 포함하는 것이 바람직하다.The storage monitor may further include a storage monitor that records which of the heterogeneous storage devices is read by the block allocator.

여기서, 상기 스토리지 모니터는 상기 이종의 기억 장치들에서 상기 블록 할당기로 읽혀지는 블록의 평균 전송 시간을 측정하는 것이 바람직하다.Here, the storage monitor preferably measures an average transfer time of a block read by the block allocator in the heterogeneous storage devices.

여기서, 상기 스토리지 모니터는 상기 이종의 기억 장치들에서 읽혀진 블록이 상기 버퍼 캐시의 복수의 파티션들 중 어떤 파티션으로 할당되었는지를 기록하는 것이 바람직하다.Here, the storage monitor preferably records which of the plurality of partitions of the buffer cache is allocated a block read from the heterogeneous storage devices.

여기서, 상기 버퍼 캐시의 복수의 파티션들은 상기 블록의 참조 패턴에 따라 구분되고, 상기 복수의 파티션들 각각은 자신에게 소속된 블록들의 히트율을 높일 수 있는 교체 정책을 개별적으로 갖는 것이 바람직하다.Here, the plurality of partitions of the buffer cache are divided according to the reference pattern of the block, and each of the plurality of partitions preferably has a replacement policy that can increase the hit ratio of blocks belonging to it individually.

여기서, 상기 가상 버퍼 캐시는 상기 버퍼 캐시에 저장된 블록들 중 어떤 블록을 재사용할 것인지를 결정하는 것이 바람직하다.Here, the virtual buffer cache preferably determines which of the blocks stored in the buffer cache to reuse.

여기서, 상기 가상 버퍼 캐시는 블록의 재사용 결정 시, 상기 버퍼 캐시의 복수의 파티션들 각각의 참조 횟수를 모니터링 한 참조 인텐서티(reference intensity)와 가중된 한계 이득(Weighted Marginal Gain)의 곱으로 표현되는 가중치(Weighted Cost)를 이용하는 것이 바람직하다.
In this case, the virtual buffer cache is expressed as a product of a reference intensity monitoring the number of reference of each of the plurality of partitions of the buffer cache and a weighted marginal gain when determining the reuse of the block. It is preferable to use weighted cost.

한편, 본 발명의 실시 예에 다른 방법은 이종의 기억 장치들과 연결된 버퍼 캐시 관리 시스템에서의 버퍼 캐시 관리 방법으로서, 응용이 실행되면 어플리케이션부가 VFS로 디스크 입출력 요구를 요청하는 단계; 패턴 탐지기가 상기 디스크 입출력 요구를 추적하여 상기 응용이 지시하는 블록의 참조 패턴을 탐지하고, 탐지 결과를 가상 버퍼 캐시로 전달하는 단계; 상기 가상 버퍼 캐시가 상기 탐지 결과를 이용하여 버퍼 캐시의 복수의 파티션들의 크기를 조정하고, 상기 블록이 저장될 파티션을 결정하는 단계; 및 블록 할당기가 상기 가상 버퍼 캐시의 지시에 따라 상기 이종 기억 장치로부터 읽은 블록을 상기 결정된 파티션으로 할당하는 단계;를 포함한다.According to another aspect of the present disclosure, a method of managing a buffer cache in a buffer cache management system connected to heterogeneous storage devices may include: requesting, by an application unit, a disk input / output request to a VFS when an application is executed; A pattern detector tracking the disk input / output request, detecting a reference pattern of a block indicated by the application, and delivering a detection result to a virtual buffer cache; The virtual buffer cache resizing the plurality of partitions of the buffer cache using the detection result and determining a partition in which the block is to be stored; And assigning, by the block allocator, the block read from the heterogeneous storage device to the determined partition according to the instruction of the virtual buffer cache.

여기서, 상기 패턴 탐지기가 상기 블록의 참조 패턴을 탐지할 경우, 상기 패턴 탐지기는 사용자 지정 룰이 있는지를 우선적으로 확인하는 단계를 더 포함하고, 상기 사용자 지정 룰이 있으면, 상기 사용자 지정 룰에 따라 상기 블록의 참조 패턴을 탐지하는 것이 바람직하다.Here, when the pattern detector detects a reference pattern of the block, the pattern detector further includes first checking whether there is a user-specified rule, and if there is the user-specified rule, the pattern detector according to the user-specified rule. It is desirable to detect the reference pattern of the block.

여기서, 상기 사용자 지정 룰이 없으면, 응용/파일 레벨의 탐지 룰을 적용하여 상기 블록의 참조 패턴을 탐지하는 단계; 상기 응용/파일 레벨 룰을 통해 상기 블록의 참조 패턴이 탐지되면, 상기 가상 버퍼 캐시로 탐지 결과를 전달하는 단계를 포함하는 것이 바람직하다.Here, if there is no user-specified rule, detecting a reference pattern of the block by applying an application / file level detection rule; If the reference pattern of the block is detected through the application / file level rule, the method may include transmitting a detection result to the virtual buffer cache.

여기서, 상기 응용/파일 레벨 룰을 통해 상기 블록의 참조 패턴이 탐지되지 않으면, 블록 접근 패턴 탐지 룰을 적용하여 상기 블록의 참조 패턴을 탐지하는 단계를 포함하는 것이 바람직하다.Here, if the reference pattern of the block is not detected through the application / file level rule, the method may include detecting a reference pattern of the block by applying a block access pattern detection rule.

여기서, 상기 가상 버퍼 캐시가 상기 버퍼 캐시의 복수의 파티션들에 저장된 블록의 재사용을 결정하는 단계를 더 포함하는 것이 바람직하다.The virtual buffer cache may further comprise determining reuse of a block stored in a plurality of partitions of the buffer cache.

여기서, 상기 블록의 재사용을 결정하는 단계는, 상기 가상 버퍼 캐시가 상기 복수의 파티션들 각각에서 가중치가 가장 작은 N개의 블록들을 선택하는 단계; 상기 복수의 파티션들 각각에서 선택한 모든 블록들의 가중치를 계산하는 단계; 상기 모든 블록들의 가중치를 비교하여 가중치가 가장 작은 N개의 블록들을 선택하는 단계; 및 상기 선택된 N개의 블록들을 재사용하는 단계;를 포함하는 것이 바람직하다.
The determining of the reuse of the block may include: selecting, by the virtual buffer cache, N blocks having the lowest weight in each of the plurality of partitions; Calculating weights of all the blocks selected in each of the plurality of partitions; Comparing the weights of all the blocks to select N blocks having the lowest weights; And reusing the selected N blocks.

본 발명에 따른 시스템과 방법을 사용하면, 버퍼 캐시의 효율을 높여 높은 수준의 히트율(hit ratio)를 유지하면서도 입출력 시간을 줄일 수 있는 이점이 있다.
Using the system and method according to the present invention, there is an advantage that the input and output time can be reduced while maintaining a high hit ratio by increasing the efficiency of the buffer cache.

도 1은 본 발명의 바람직한 실시 예에 따른 버퍼 캐시 관리 시스템(100)의 블록 구성도,
도 2는 도 1에 도시된 버퍼 캐시 관리 시스템의 블록 할당 과정을 설명하기 위한 순서도,
도 3은 도 2의 블록 할당 과정의 흐름을 설명하기 위한 블록 구성도,
도 4는 도 1에 도시된 버퍼 캐시 관리 시스템의 블록 재사용 과정을 설명하기 위한 순서도,
도 5는 도 4의 블록 재사용 과정의 흐름을 설명하기 위한 블록 구성도,
도 6은 도 4의 블록 재사용 과정을 보충 설명하기 위한 도면.
1 is a block diagram of a buffer cache management system 100 according to an embodiment of the present invention;
2 is a flowchart illustrating a block allocation process of the buffer cache management system illustrated in FIG. 1;
3 is a block diagram for explaining the flow of the block allocation process of FIG.
FIG. 4 is a flowchart illustrating a block reuse process of the buffer cache management system shown in FIG. 1;
5 is a block diagram illustrating the flow of a block reuse process of FIG. 4;
6 is a view for supplementing the block reuse process of FIG. 4.

상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일 실시 예를 상세히 설명하기로 한다.
The above objects, features and advantages will become more apparent from the following detailed description taken in conjunction with the accompanying drawings, whereby those skilled in the art may easily implement the technical idea of the present invention. There will be. In the following description, well-known functions or constructions are not described in detail since they would obscure the invention in unnecessary detail. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 바람직한 실시 예에 따른 버퍼 캐시 관리 시스템(100)의 블록 구성도이다.1 is a block diagram of a buffer cache management system 100 according to an exemplary embodiment of the present invention.

도 1을 참조하면, 본 발명의 바람직한 실시 예에 따른 버퍼 캐시 관리 시스템(100)은 어플리케이션(Application)부(110), VFS(Virtual File System, 120), 가상 버퍼 캐시(Virtual Buffer Cache, 130), 버퍼 캐시(Buffer Cache, 140), 블록 할당기(Block Allocator, 150), 패턴 탐지기(Pattern Monitor/Marker, 160), 관리 툴(Admin Tool, 170), 및 스토리지 모니터(Storage Monitor, 180)를 포함할 수 있다.Referring to FIG. 1, a buffer cache management system 100 according to an exemplary embodiment of the present invention may include an application unit 110, a VFS 120, a virtual buffer cache 130. , Buffer cache (140), block allocator (150), pattern detector (Pattern Monitor / Marker, 160), administration tool (Admin Tool, 170), and storage monitor (180). It may include.

어플리케이션부(110)는 버퍼 캐시(140)를 포함하는 일반적인 컴퓨터 운영체제에서 동작되는 여러 응용들의 집합을 지칭한다. 여기서, 어플리케이션부(110)는 디스크 입출력(disk I/O)를 수행하는 다양한 종류의 응용을 포함한다. 일 예로 음악 및 영상 파일을 재생하는 미디어 플레이어(media player) 또는 웹 브라우저(web browser)등이 응용에 해당될 수 있다. 이외에도 과학 계산 응용, 데이터베이스 응용, UNIX 시스템 응용 등이 해당될 수 있다.
The application unit 110 refers to a set of various applications that are operated in a general computer operating system including the buffer cache 140. Here, the application unit 110 includes various types of applications for performing disk I / O. For example, an application may be a media player or a web browser that plays music and video files. In addition, scientific calculation applications, database applications, UNIX system applications, and the like may be applicable.

VFS(120)는 디스크 입출력(disk I/O)를 실행할 수 있도록 상위 계층인 어플리케이션부(110)에 표준 인터페이스를 제공한다.
The VFS 120 provides a standard interface to the application unit 110, which is a higher layer, to execute disk I / O.

가상 버퍼 캐시(130)는 버퍼 캐시(140) 내의 복수의 파티션들(141, 142, 143, 144) 각각의 크기를 조정한다. 여기서, 가상 버퍼 캐시(130)는 복수의 파티션들(141, 142, 143, 144) 각각의 크기를 고정 비율로 할당하는 것이 아니고, 응용의 해당 블록에 대한 참조 패턴(reference pattern)에 따라 크기를 조정할 수 있다.The virtual buffer cache 130 adjusts the size of each of the plurality of partitions 141, 142, 143, and 144 in the buffer cache 140. Here, the virtual buffer cache 130 does not allocate the size of each of the plurality of partitions 141, 142, 143, and 144 at a fixed ratio, and sets the size according to a reference pattern for the corresponding block of the application. I can adjust it.

예를 들어, 블록 할당기(150)에게 읽혀진 블록의 참조 패턴이 패턴 탐지기(160)에 의해 탐지된 경우, 가상 버퍼 캐시(130)는 블록 할당기(150)에게 상기 블록을 미리 지정된 파티션에 넣도록 지시함과 함께 가상 버퍼 캐시(130)는 상기 지정된 파티션의 크기를 증가시킬 수 있다. 반면, 미리 정해진 기준에 의해 선택된 파티션에서 블록을 재사용하는 경우에는 상기 선택된 파티션의 크기를 감소시킬 수 있다.For example, when a reference pattern of a block read by the block allocator 150 is detected by the pattern detector 160, the virtual buffer cache 130 puts the block to the block allocator 150 in a predetermined partition. In addition to this, the virtual buffer cache 130 may increase the size of the designated partition. On the other hand, when a block is reused in a partition selected by a predetermined criterion, the size of the selected partition can be reduced.

또한, 버퍼 캐시(140)에서 관리되고 있는 블록에 대한 참조 패턴(reference pattern)이 변화된 것을 패턴 탐지기(160)가 탐지한 경우, 가상 버퍼 캐시(130)는 탐지된 정보를 전달받아 해당 블록의 소속을 변경하는 작업을 수행한다.In addition, when the pattern detector 160 detects that a reference pattern of a block managed by the buffer cache 140 has changed, the virtual buffer cache 130 receives the detected information and thus belongs to the corresponding block. Do the work of changing it.

또한, 가상 버퍼 캐시(130)는 어떤 블록을 재사용(reclaiming)할 것인가를 결정할 수 있다. 이를 위해 각 파티션이 얼마만큼 참조(reference)되었는가를 모니터링하여 참조 인텐서티(reference intensity)를 계산한다.
In addition, the virtual buffer cache 130 may determine which block to reclaim. For this purpose, the reference intensity is calculated by monitoring how much each partition is referenced.

버퍼 캐시(140)는 캐시를 구성하는 버퍼 캐시 메모리(buffer cache memory)를 분할하여 순차 참조 패턴(sequential reference pattern), 반복 참조 패턴(loop reference pattern) 및 그 이외의 참조 패턴(reference pattern)으로 접근되는 블록들을 관리하는 복수의 파티션들(141, 142, 143, 144)로 구분된다. The buffer cache 140 divides the buffer cache memory constituting the cache to access sequential reference patterns, loop reference patterns, and other reference patterns. The partitions are divided into a plurality of partitions 141, 142, 143, and 144.

이러한 버퍼 캐시(140)의 파티션들(141, 142, 143, 144) 각각은 패턴 탐지기(160)에 의해 분류된 블록들을 관리한다. Each of partitions 141, 142, 143, and 144 of the buffer cache 140 manages the blocks classified by the pattern detector 160.

버퍼 캐시(140) 내의 파티션의 개수는 버퍼 캐시(140)가 어느 참조 패턴을 구분하여 관리할 것인가에 따라 결정된다. 여기서, 파티션의 개수는 적어도 2개 이상인 것이 바람직하다. 일 예로, 순차 참조 패턴, 반복 참조 패턴 및 시간적 지역성을 보이는 참조 패턴(temporally-clustered reference pattern)과 마찬가지로 접근 패턴에 따라 세분화하여 파티션의 개수를 늘릴 수도 있다.The number of partitions in the buffer cache 140 is determined by which reference patterns the buffer cache 140 classifies and manages. Here, the number of partitions is preferably at least two or more. For example, like the sequential reference pattern, the repeated reference pattern, and the temporally-clustered reference pattern, the number of partitions may be increased by subdividing according to an access pattern.

파티션들(141, 142, 143, 144) 각각은 자신에게 소속된 블록들의 히트율(hit ratio)를 높일 수 있는 교체 정책(replacement policy)을 개별적으로 갖는다. 일례로서, 순차 참조 패턴과 반복 참조 패턴을 관리하는 파티션(143)은 MRU 교체 정책을, 그 이외의 참조 패턴을 관리하는 파티션(142)은 LRU 교체 정책 또는 ARC 교체 정책을 가질 수 있다.Each of partitions 141, 142, 143, and 144 has a replacement policy that can increase the hit ratio of blocks belonging to it. As one example, the partition 143 managing the sequential reference pattern and the repeating reference pattern may have an MRU replacement policy, and the partition 142 managing other reference patterns may have an LRU replacement policy or an ARC replacement policy.

파티션들(141, 142, 143, 144)에 캐싱된 블록의 재사용은 가상 버퍼 캐시(130)에 의해 수행되는데, 각 파티션에서의 교체 알고리즘(replacement algorithm)에 의해 선택된 후보 블록(Candidate block)들이 실제로 파티션에서 축출(eviction)되었을 경우에는 추정되는 히트율(hit ratio)의 변화가 가장 적은 것이 선택되어 수행된다.
The reuse of a block cached in partitions 141, 142, 143, and 144 is performed by the virtual buffer cache 130, where candidate blocks selected by the replacement algorithm in each partition are actually When eviction is made in the partition, the one with the smallest change in the estimated hit ratio is selected and performed.

블록 할당기(150)는 기억 장치(200)로부터 새롭게 읽혀지는 소정의 블록을 가상 버퍼 캐시(130)의 지시에 따라 버퍼 캐시(140) 내의 복수의 파티션들(141, 142, 143, 144) 중 선택된 파티션으로 할당한다.
The block allocator 150 stores a predetermined block newly read from the storage device 200 among the plurality of partitions 141, 142, 143, and 144 in the buffer cache 140 according to the instruction of the virtual buffer cache 130. Assign to the selected partition.

패턴 탐지기(160)는 어플리케이션부(110)에서 VFS(120)으로의 정보(read/write)를 추적(trace)하여, 실행되는 응용이 지시하는 블록이 순차 참조 패턴 혹은 반복 참조 패턴 등 어떤 참조 패턴에 해당되는지를 분석한다. 그리고 분석된 결과를 가상 버퍼 캐시(130)에게 알려준다. 여기서, 패턴 탐지기(160)에서 분석된 결과는 응용이 지시하는 블록, 즉 블록 할당기(150)가 읽은 블록이 어떤 참조 패턴을 가지며, 상기 블록이 버퍼 캐시(140) 내의 어떤 파티션에 위치해야 하는지에 대한 결과를 말한다.The pattern detector 160 traces information (read / write) from the application unit 110 to the VFS 120 so that a block indicated by an application to be executed is any reference pattern such as a sequential reference pattern or a repeating reference pattern. Analyze if Then, the analyzed result is reported to the virtual buffer cache 130. Here, the result analyzed by the pattern detector 160 indicates that the block indicated by the application, that is, the block read by the block allocator 150 has a reference pattern, and to which partition in the buffer cache 140 the block should be located. Say the results for.

여기서, 패턴 탐지기(160)의 참조 패턴 탐지 방법으로 두 가지 예를 들 수 있다. 다만, 이하에서 설명하는 참조 패턴 탐지 방법만으로 한정하는 것은 아니다.Here, two examples of the reference pattern detection method of the pattern detector 160 may be mentioned. However, the present invention is not limited only to the reference pattern detection method described below.

참조 패턴 탐지 방법은 사용자 지정 룰(rule) 기반의 탐지 방법과 응용/파일 레벨(application/file level)의 패턴 탐지 방법으로 나눌 수 있다.The reference pattern detection method can be divided into a user-defined rule-based detection method and an application / file level pattern detection method.

사용자 지정 룰 기반의 탐지 방법은 관리 툴(170)을 통해 사용자가 소정의 룰(rule)을 정하면, 별도의 참조 패턴의 분석을 하지 않고, 사용자가 지정한 버퍼 캐시(140) 내의 소정의 파티션으로 블록이 이동되도록 하는 것이다. 예를 들어, 사용자가 “mpg”의 확장자를 갖는 파일을 열었을 경우에 해당 파일에 관련된 블록들은 모두 순차 참조 패턴으로 간주하라고 룰(rule)을 정하였다면, 이후 “mpg” 확장자를 갖는 파일에 속한 블록들은 모두 순차 참조 패턴으로 판단하고, 이 블록들을 순차 참조 패턴을 관리하는 파티션으로 이동되도록 한다.The detection method based on a user-defined rule blocks a predetermined partition in the user-specified buffer cache 140 without analyzing a separate reference pattern when a user sets a predetermined rule through the management tool 170. Is to be moved. For example, if a user opens a file with an extension of "mpg", and the rule specifies that all blocks associated with that file should be regarded as a sequential reference pattern, then blocks belonging to a file with an extension of "mpg" They all judge the sequential reference pattern, and cause these blocks to be moved to the partition managing the sequential reference pattern.

한편, 사용자에 의해 별도의 룰(rule)이 정해지지 않은 블록들은 응용 레벨 또는 파일 레벨에서의 패턴 탐지를 통해 순차 참조 패턴 혹은 반복 참조 패턴 등으로 탐지할 수 있다. 여기서, 응용 레벨에서의 패턴 탐지는 어플리케이션부(110)에서 VFS(120)으로 정보(read/write)를 전달할 때, 요청(request) 대상인 블록의 논리적 블록 넘버(logical block number)를 추적하여 참조 패턴을 탐지하는 방식을 말한다. 한편, 파일 레벨에서의 패턴 탐지는 특정 파일에 속한 블록들에 대해서는 상기 특정 파일의 옵셋(offset) 값을 기준으로 참조 패턴을 탐지하는 방식을 말한다.
On the other hand, blocks that are not defined by a user may be detected as a sequential reference pattern or a repeating reference pattern through pattern detection at an application level or file level. Here, the pattern detection at the application level is a reference pattern by tracking the logical block number of the block to be requested when the application unit 110 transmits information (read / write) from the application unit 110 to the VFS 120. Say how to detect. Meanwhile, the pattern detection at the file level refers to a method of detecting a reference pattern with respect to blocks belonging to a specific file based on an offset value of the specific file.

관리 툴(170)은 사용자로 하여금 특정한 사용자 지정 룰(rule)을 지정하여 그에 해당하는 블록 참조 패턴을 분리하도록 규칙을 생성하는 유저 레벨 응용(user level application)이다. 사용자는 관리 툴(170)을 통해 명백하게 블록 참조 패턴을 알 수 있는 경우, 예를 들면 확장자가 “mpg”인 파일에 대해서는 사용자가 지정된 동작, 확장자가 “mpg”인 파일과 관련된 블록들은 모두 버퍼 캐시(140)의 특정 파티션으로 이동되도록 제어할 수 있다. 또한, 해당 프로세스가 종료될 때까지 버퍼 캐시(140)의 특정 파티션에서의 축출(eviction)을 금지하거나 해당 프로세스에 대해서 지정된 크기만큼의 메모리 양을 할당하는 등의 제한을 더 포함할 수 있다. 사용자 지정 룰(rule)은 테이블(table)의 형태로 생성 및 관리될 수 있으며, 이렇게 생성된 테이블(table)로 가상 버퍼 캐시(130)가 접근하고, 그러면 가상 버퍼 캐시(130)는 사용자 지정 룰을 기준으로 블록 할당기(150)로 명령을 내린다.
The management tool 170 is a user level application that creates a rule to allow a user to specify a specific user specified rule and separate the corresponding block reference pattern. If the user can clearly know the block reference pattern through the management tool 170, for example, the file specified by the user for the file extension "mpg", the buffer associated with the file with the file extension "mpg" are all buffer cached. The control may be controlled to move to a specific partition of 140. In addition, the method may further include a restriction such as prohibiting eviction in a specific partition of the buffer cache 140 or allocating an amount of memory corresponding to the specified size until the process is terminated. Custom rules may be created and managed in the form of a table, and the virtual buffer cache 130 accesses the generated table, and then the virtual buffer cache 130 is a custom rule. The block allocator 150 is referred to as a reference.

스토리지 모니터(180)는 블록 할당기(150)로 읽혀지는 블록들이 어떤 기억 장치(200)로부터 읽혀지는 것인지 기록한다.The storage monitor 180 records from which memory device 200 the blocks read by the block allocator 150 are read.

또한, 스토리지 모니터(180)는 기억 장치(200)로부터 블록 할당기(150)로 전송되는 블록들의 평균 전송 시간을 측정한다. 그리고 평균 전송 시간의 정보가 수집되면 이를 가상 버퍼 캐시(130)로 전송한다. 그러면 가상 버퍼 캐시(130)는 전송된 정보를 이용하여 버퍼 캐시(140) 내의 파티션들(141, 142, 143, 144) 각각의 크기를 조정한다. In addition, the storage monitor 180 measures an average transfer time of blocks transmitted from the storage device 200 to the block allocator 150. When the information of the average transmission time is collected, the information is transmitted to the virtual buffer cache 130. The virtual buffer cache 130 then adjusts the size of each of the partitions 141, 142, 143, and 144 in the buffer cache 140 using the transmitted information.

또한, 스토리지 모니터(180)는 어떤 블록이 어떤 파티션으로 할당되었는지를 기록하고, 기록된 정보를 패턴 탐지기(160)로 전달한다. 이렇게 전달된 정보는 패턴 탐지기(160)의 참조 패턴 탐지에 활용된다.
In addition, the storage monitor 180 records which blocks are allocated to which partitions, and transmits the recorded information to the pattern detector 160. The information transmitted in this way is utilized to detect the reference pattern of the pattern detector 160.

기억 장치(200)는 버퍼 캐시 관리 시스템(100)의 어플리케이션부(110)의 응용이 지시하는 데이터가 기록되어 있는 영구 기억 장치(permanent storage device)로서, 버퍼 캐시 관리 시스템(100)의 블록 할당기(150)와 로컬(local) 또는 네트워크(network)를 통해 연결된다. 여기서, 기억 장치(200)는 복수의 기억 장치들(201, 202, 203)을 포함할 수 있다. 복수의 기억 장치들(201, 202, 203)은 모두 서로 다른 기억 장치인 것이 바람직하다. 예를 들어, 복수의 기억 장치들은 HDD(201), SSD/Flash(202) 및 NFS 혹은 SAN 등과 같이 네트워크(network)를 통해 연결된 외부 기억 장치(203)일 수 있다. 여기서, HDD(201)와 SSD/Flash(202)는 로컬로 버퍼 캐시 관리 시스템(100)과 연결되고, 외부 기억 장치(203)은 네트워크를 통해 버퍼 캐시 관리 시스템(100)과 연결될 수 있다. The memory device 200 is a permanent storage device in which data indicated by an application of the application unit 110 of the buffer cache management system 100 is recorded, and is a block allocator of the buffer cache management system 100. It is connected to the 150 through a local or network. Here, the memory device 200 may include a plurality of memory devices 201, 202, and 203. Preferably, the plurality of memory devices 201, 202, and 203 are all different memory devices. For example, the plurality of storage devices may be the HDD 201, the SSD / Flash 202, and the external storage device 203 connected through a network such as NFS or SAN. Here, the HDD 201 and the SSD / Flash 202 may be locally connected to the buffer cache management system 100, and the external storage device 203 may be connected to the buffer cache management system 100 through a network.

HDD(201), SSD(202) 및 외부 기억 장치(203)와 버퍼 캐시 관리 시스템(100)과의 접근 속도는 차이가 있다. 이러한 접근 속도는 스토리지 모니터(180)에 의해서 모니터링된다.
The access speeds of the HDD 201, the SSD 202, the external storage device 203, and the buffer cache management system 100 are different. This access speed is monitored by the storage monitor 180.

도 1에 도시된 본 발명의 바람직한 실시 예에 따른 버퍼 캐시 관리 시스템(100)의 동작은 크게 두 부분으로 나뉜다. 하나는 블록 할당 과정이고, 다른 하나는 블록 재사용 과정이다. 이러한 두 동작을 설명하기 위해 첨부된 도면들을 참조하도록 한다.The operation of the buffer cache management system 100 according to the preferred embodiment of the present invention shown in FIG. 1 is divided into two parts. One is the block allocation process and the other is the block reuse process. Reference is made to the accompanying drawings to describe these two operations.

도 2는 도 1에 도시된 버퍼 캐시 관리 시스템의 블록 할당 과정을 설명하기 위한 순서도이고, 도 3은 도 2의 블록 할당 과정의 흐름을 설명하기 위한 블록 구성도이다. 도 1 내지 도 3을 참조하여 버퍼 캐시 관리 시스템의 블록 할당 과정을 상세히 설명하도록 한다.FIG. 2 is a flowchart illustrating a block allocation process of the buffer cache management system of FIG. 1, and FIG. 3 is a block diagram illustrating the flow of the block allocation process of FIG. 2. A block allocation process of the buffer cache management system will be described in detail with reference to FIGS. 1 to 3.

우선, 도 1 내지 도 3을 참조하면, 사용자에 의해 상위 어플리케이션부(110)의 복수의 응용들 중 소정의 응용이 실행되면(s201), 어플리케이션부(110)는 VFS(120)로 디스크 입출력(disk I/O) 요청(read/write)을 한다(s202).First, referring to FIGS. 1 to 3, when a predetermined application among a plurality of applications of the upper application unit 110 is executed by the user (s201), the application unit 110 may input / output a disk input / output (VFS 120) to the VFS 120. disk I / O) request (read / write) (s202).

S202 단계가 실행되면, 패턴 탐지부(160)은 VFS(120)로 전달되는 디스크 입출력 요청을 추적(trace)하여 응용이 지시하는 블록(들)의 참조 패턴을 탐지한다. 참조 패턴의 탐지를 위해 우선 패턴 탐지부(160)는 관리 툴(170)에 사용자에 의해 미리 지정된 룰(rule)이 있는지를 확인한다(s203).When the step S202 is executed, the pattern detector 160 detects the reference pattern of the block (s) indicated by the application by tracing the disk I / O request transmitted to the VFS 120. In order to detect the reference pattern, the pattern detecting unit 160 first checks whether the management tool 170 has a rule predetermined by the user (S203).

사용자에 의해 미리 지정된 룰(이하, ‘사용자 지정 룰’이라 함.)이 있는 경우에는 상기 사용자 지정 룰을 이용하여 블록(들)의 참조 패턴을 분석한다(s204). 분석이 완료되면, 패턴 탐지기(160)는 분석된 결과를 가상 버퍼 캐시(130)로 전달한다.If there is a rule predefined by the user (hereinafter referred to as a 'user-specified rule'), the reference pattern of the block (s) is analyzed using the user-specified rule (S204). When the analysis is completed, the pattern detector 160 transmits the analyzed result to the virtual buffer cache 130.

가상 버퍼 캐시(130)는 패턴 탐지기(160)로부터 전달받은 분석 결과를 이용하여 버퍼 캐시(140) 내의 복수의 파티션들(141, 142, 143, 144) 중 상기 블록(들)이 저장될 파티션을 결정한다(s205). 여기서, 가상 버퍼 캐시(130)는 복수의 파티션들(141, 142, 143, 144) 각각의 크기를 조정할 수 있다.The virtual buffer cache 130 selects a partition in which the block (s) are to be stored among the plurality of partitions 141, 142, 143, and 144 in the buffer cache 140 using the analysis result received from the pattern detector 160. Determine (s205). Here, the virtual buffer cache 130 may adjust the size of each of the plurality of partitions 141, 142, 143, and 144.

파티션을 결정한 후, 가상 버퍼 캐시(130)는 블록 할당기(150)에게 상기 블록(들)을 결정된 파티션에 할당하도록 명령을 내린다. 그러면, 블록 할당기(150)는 가상 버퍼 캐시(130)의 명령에 따라 상기 블록(들)을 결정된 파티션으로 할당한다(s206).After determining the partition, the virtual buffer cache 130 instructs the block allocator 150 to assign the block (s) to the determined partition. Then, the block allocator 150 allocates the block (s) to the determined partition according to the command of the virtual buffer cache 130 (S206).

블록 할당기(150)에 의해 상기 블록(들)이 파티션으로 할당되면, 상기 블록(들)을 할당받은 파티션은 자신의 관리 정책에 따라 상기 블록(들)의 위치를 업데이트한다(s207).When the block (s) are allocated to the partition by the block allocator 150, the partition to which the block (s) are allocated updates the location of the block (s) according to its management policy (s207).

한편, s203 단계에서, 관리 툴(170)에 의해 별도의 사용자 지정 룰이 없는 경우에는 패턴 탐지기(160)는 응용/파일 레벨 탐지 룰을 적용하여 상기 블록(들)의 참조 패턴을 탐지한다(s208).On the other hand, in step s203, when there is no separate user-specified rule by the management tool 170, the pattern detector 160 detects the reference pattern of the block (s) by applying an application / file level detection rule (s208). ).

여기서, 응용/파일 레벨 탐지 룰에 의해 상기 블록(들)의 참조 패턴이 분석되는 여부를 판정한다(s209). 응용/파일 레벨 탐지 룰에 의해 상기 블록(들)의 참조 패턴이 분석된 경우에는 상기 s205 단계에 따라 패턴 탐지기(160)는 분석된 결과를 가상 버퍼 캐시(130)로 전달하고, 가상 버퍼 캐시(130)는 분석된 결과를 이용하여 상기 블록(들)의 파티션을 결정한다. 반면, 응용/파일 레벨 탐지 룰에 의해 상기 블록(들)의 참조 패턴이 분석되지 않는 경우에는 블록 접근 패턴 탐지 룰(block access pattern rule)을 적용하여(s210) 상기 블록(들)의 참조 패턴을 분석한다(s204).Here, it is determined whether the reference pattern of the block (s) is analyzed by the application / file level detection rule (s209). When the reference pattern of the block (s) is analyzed by an application / file level detection rule, the pattern detector 160 transmits the analyzed result to the virtual buffer cache 130 according to step s205, and the virtual buffer cache ( 130 uses the analyzed result to determine the partition of the block (s). On the other hand, when the reference pattern of the block (s) is not analyzed by an application / file level detection rule, a block access pattern rule is applied (s210) to apply the reference pattern of the block (s). Analyze (s204).

한편, 패턴 탐지기(160)가 상술한 룰들에 의해서도 상기 블록(들)의 참조 패턴을 탐지하지 못한 경우, 즉 상기 블록(들)이 어떠한 파티션에도 속할 수가 없는 경우에는 가상 버퍼 캐시(130)는 상기 블록(들)을 미리 결정된 특정 파티션으로 할당되도록 한다. 이 때, 상기 블록(들)이 저장될 파티션 내에서의 상기 블록(들)의 위치는 해당 파티션에서 사용되고 있는 교체 알고리즘이 참조되었을 때의 위치 업데이트 정책을 그대로 따른다.
On the other hand, when the pattern detector 160 does not detect the reference pattern of the block (s) even by the above-described rules, that is, when the block (s) cannot belong to any partition, the virtual buffer cache 130 may be configured. Allow block (s) to be allocated to a specific predetermined partition. At this time, the location of the block (s) in the partition in which the block (s) will be stored follows the location update policy when the replacement algorithm being used in the partition is referenced.

도 4는 도 1에 도시된 버퍼 캐시 관리 시스템의 블록 재사용 과정을 설명하기 위한 순서도이고, 도 5는 도 4의 블록 재사용 과정의 흐름을 설명하기 위한 블록 구성도이고, 도 6은 도 4의 블록 재사용 과정을 보충 설명하기 위한 도면이다. 도 1 및 도 4 내지 도 6을 참조하여 버퍼 캐시 관리 시스템의 블록 재사용 과정을 상세히 설명하도록 한다.4 is a flowchart illustrating a block reuse process of the buffer cache management system of FIG. 1, FIG. 5 is a block diagram illustrating the flow of the block reuse process of FIG. 4, and FIG. 6 is a block diagram of FIG. 4. A diagram for further explaining the reuse process. A block reuse process of the buffer cache management system will be described in detail with reference to FIGS. 1 and 4 to 6.

블록의 재사용이 요구되면(s401), 가상 버퍼 캐시(130)는 버퍼 캐시(140) 내의 모든 파티션들(141, 142, 143, 144) 각각에서 N개의 블록들을 선택한다(s402). 여기서, 각 파티션에서 선택되는 N개의 블록들은 당해 파티션에서 가중치(weighted cost)가 순차적으로 가장 작은 값을 갖는 N개의 블록들이다. 도 6에 도시된 바와 같이 N이 4인 경우, 가상 버퍼 캐시는 모든 파티션들(140-a, 140-b, 140-c)에서 각각 가중치가 가장 작은 순서대로 4개의 블록들을 선택한다. 따라서, 총 선택된 블록들은 12개가 된다.If the reuse of the block is required (s401), the virtual buffer cache 130 selects N blocks from each of all partitions 141, 142, 143, and 144 in the buffer cache 140 (s402). Here, the N blocks selected in each partition are N blocks having the lowest weighted cost sequentially in the partition. As shown in FIG. 6, when N is 4, the virtual buffer cache selects four blocks in the order of least weight in all partitions 140-a, 140-b, and 140-c, respectively. Thus, the total number of selected blocks is twelve.

각 파티션에서 N개의 블록들을 선택한 후, 가상 버퍼 캐시(130)는 선택된 블록들 각각의 가중치를 계산한다(s403). 여기서, 선택된 블록들의 가중치를 계산하는 수식은 아래의 <수학식 1>을 이용할 수 있다.After selecting N blocks in each partition, the virtual buffer cache 130 calculates a weight of each of the selected blocks (s403). Here, the equation for calculating the weight of the selected blocks may use Equation 1 below.

Figure 112010054516152-pat00001
Figure 112010054516152-pat00001

위 <수학식 1>에서, (reference intensity)는 아래의 <수학식 2>와 같은, 각 파티션의 참조(reference) 횟수의 표준 값(normalized value)이다.In Equation 1 above, (reference intensity) is a normalized value of the reference number of each partition, as shown in Equation 2 below.

Figure 112010054516152-pat00002
Figure 112010054516152-pat00002

<수학식 1>에서, Weighted Marginal Gain(Weighted MG)은 아래의 <수학식 3>과 같이 계산될 수 있다.In Equation 1, Weighted Marginal Gain (Weighted MG) may be calculated as in Equation 3 below.

Figure 112010054516152-pat00003
Figure 112010054516152-pat00003

위 <수학식 3>에서, Weighted Marginal Gain(Weighted MG)는 일반적인 참조 패턴(reference pattern)에서 보여지는 한계 이득(marginal gain)값에서 해당 블록의 저장 위치(storage location)에 따른 접근 시간(access time)의 표준 값(normalized value)과 요청(read/write)의 비율에 따른 값(cost)를 가중치로 곱하여 얻을 수 있다.In Equation 3, the weighted margin gain (Weighted MG) is the access time according to the storage location of the block at the marginal gain shown in the general reference pattern. This value can be obtained by multiplying the normalized value of) by the weight based on the ratio of the request (read / write).

여기서, 본 발명에서는 한계 이득(marginal gain)을 히트율(hit ratio)의 변화율로 계산한다. 즉, 한계 이득은 해당 블록이 존재할 경우의 히트율에서 존재하지 않은 경우의 히트율를 뺀 값으로 계산된다.In the present invention, the marginal gain is calculated as the rate of change of the hit ratio. In other words, the marginal gain is calculated by subtracting the hit rate when the block does not exist from the hit rate when the block is present.

여기서, 일반적인 한계 이득은 각 참조 패턴에 따라 다르게 추정된다. 그 예로서 순차 참조 패턴의 경우 한계 이득은 0이며, 반복 참조 패턴의 경우 한계 이득은 1/패턴 길이(pattern length)이다. 여기서, 패턴 길이는 반복 참조 패턴을 이루는 블록의 개수이다.Here, the general marginal gain is estimated differently according to each reference pattern. As an example, the limiting gain is 0 for sequential reference patterns and the limiting gain is 1 / pattern length for repeating reference patterns. Here, the pattern length is the number of blocks constituting the repeating reference pattern.

또한, 위의 두 예에 속하지 않는 경우 즉, LRU 전략(strategy)를 적용하였을 때에는 아래의 <수학식 4>와 같은 벨라디 라이프타임 함수(Belady’s lifetime function)을 사용하여 한계 이득을 계산할 수 있다. 아래의 <수학식 4>에서 n은 파티션의 사이즈(size)이다.In addition, when the LRU strategy is not applied to the above two examples, the marginal gain may be calculated using a Belady's lifetime function as shown in Equation 4 below. In Equation 4 below, n is the size of a partition.

Figure 112010054516152-pat00004
Figure 112010054516152-pat00004

위 <수학식 4>에서, c와 k는 Belady’s lifetime function(Communications of the ACM, Vol.12, Issue 5, 1969)에 정의된 값으로, c는 일반적인 타스크(task)마다 주어지는 상수이고, k는 2 근처에서 결정되는 상수를 의미한다. C와 k는 미리 정해진 캐시 사이즈(cache size)에 대해서 측정된 히트율(hit ratio) 곡선에 근사되는 값으로 결정된다. 여기에서는 각 패턴에 해당하는 c와 k가 결정된다.In Equation 4, c and k are values defined in Belady's lifetime function (Communications of the ACM, Vol. 12, Issue 5, 1969), where c is a constant given to a general task, and k is a constant. Means a constant determined near 2. C and k are determined to approximate a hit ratio curve measured for a predetermined cache size. Here, c and k corresponding to each pattern are determined.

따라서, Weighted marginal gain은 아래의 <수학식 5>와 같이 계산된다.Therefore, the weighted marginal gain is calculated as in Equation 5 below.

Figure 112010054516152-pat00005
Figure 112010054516152-pat00005

위 <수학식 5>에서, (normalized fetch time from storage)는 블록의 저장 위치로부터 읽어 들이기까지 걸리는 평균 시간을 기억 장치(200)별로 측정하여 가장 짧은 기억 장치(200)의 속도를 기준으로 표준화(normalize)한 값이다. (Defined read write ratio)는 쓰기(write)의 경우 재사용을 하기 위해서는 해당 데이터(data)를 플러쉬(flush)해야 하므로 이를 늦추는 것이 유리하다. 따라서 읽기(read)에 비해서 쓰기(write)의 코스트(cost)가 높기 때문에 이 비율을 미리 지정하여 weighted marginal gain에 더티 블록(dirty block)의 플러쉬 코스트(flush cost)를 반영한다.In Equation 5 above, (normalized fetch time from storage) measures the average time taken from the storage location of the block to the storage device 200 and normalizes it based on the speed of the shortest storage device 200. normalized). (Defined read write ratio) is advantageous to slow it down because it must flush the data in order to reuse. Therefore, since the cost of writing is higher than that of read, the ratio is specified in advance to reflect the flush cost of the dirty block in the weighted marginal gain.

위의 수학식들에 의해서 각 블록들의 가중치(weighted cost)가 계산되면, 각 파티션에서 선택된 대상 블록들의 가중치를 비교한다(s404). 그리고 순차적으로 가장 작은 가중치 값을 갖는 N개의 블록들을 선택(s405)하여 재사용한다(s406).
When the weighted cost of each block is calculated by the above equations, the weights of the target blocks selected in each partition are compared (S404). Subsequently, N blocks having the smallest weight value are sequentially selected (s405) and reused (s406).

이상에서 설명한 본 발명은, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시 예 및 첨부된 도면에 의해 한정되는 것이 아니다.
The present invention described above is capable of various substitutions, modifications, and changes without departing from the technical spirit of the present invention for those skilled in the art to which the present invention pertains. It is not limited by the drawings.

100: 버퍼 캐시 관리 시스템,
110: 어플리케이션부,
120: VFS,
130: 가상 버퍼 캐시,
140: 버퍼 캐시,
150: 블록 할당기,
160: 패턴 탐지기,
170: 관리 툴,
180: 스토리지 모니터,
200: 기억 장치.
100: buffer cache management system,
110: the application unit,
120: VFS,
130: virtual buffer cache,
140: buffer cache,
150: block allocator,
160: pattern detector,
170: management tools,
180: storage monitor,
200: memory device.

Claims (17)

이종의 기억 장치들과 연결된 버퍼 캐시 관리 시스템에 있어서,
복수의 파티션들을 갖는 버퍼 캐시;
응용이 실행되면 상기 이종의 기억 장치들에 저장된 블록의 디스크 입출력을 요구하는 어플리케이션부;
상기 디스크 입출력 요구를 추적하여 상기 응용이 지시하는 상기 블록의 참조 패턴을 탐지하는 패턴 탐지기;
상기 패턴 탐지기에서 탐지된 분석 결과를 전달받아 상기 블록이 저장될 상기 버퍼 캐시의 파티션을 결정하는 가상 버퍼 캐시; 및
상기 블록을 상기 이종의 기억 장치들로부터 전달받고, 상기 가상 버퍼 캐시의 지시에 따라 상기 전달받은 블록을 상기 결정된 파티션으로 할당하는 블록 할당기;
를 포함하는 버퍼 캐시 관리 시스템.
In a buffer cache management system connected to heterogeneous storage devices,
A buffer cache having a plurality of partitions;
An application unit for requesting disk input / output of a block stored in the heterogeneous storage devices when an application is executed;
A pattern detector for tracking a disk input / output request and detecting a reference pattern of the block indicated by the application;
A virtual buffer cache that receives a result of the analysis detected by the pattern detector and determines a partition of the buffer cache in which the block is to be stored; And
A block allocator for receiving the block from the heterogeneous storage devices and allocating the received block to the determined partition according to an instruction of the virtual buffer cache;
Buffer cache management system comprising a.
제 1 항에 있어서,
상기 패턴 탐지기는 응용/파일 레벨의 패턴 탐지 룰에 따라 상기 블록의 참조 패턴을 탐지하는 버퍼 캐시 관리 시스템.
The method of claim 1,
And the pattern detector detects a reference pattern of the block according to an application / file level pattern detection rule.
제 1 항 또는 제 2 항에 있어서,
상기 블록의 참조 패턴을 결정하기 위한 사용자 지정 룰을 저장하는 관리 툴을 더 포함하고,
상기 패턴 탐지기는 상기 관리 툴에 접근하여 상기 관리 툴에 사용자 지정 룰이 저장된 경우에는 상기 사용자 지정 룰을 적용하여 상기 블록의 참조 패턴을 탐지하는 버퍼 캐시 관리 시스템.
The method according to claim 1 or 2,
A management tool for storing a custom rule for determining a reference pattern of the block,
And the pattern detector accesses the management tool and detects a reference pattern of the block by applying the user-defined rule when a user-defined rule is stored in the management tool.
제 3 항에 있어서,
상기 사용자 지정 룰은 테이블 형태로 상기 관리 툴에 저장된 것을 특징으로 하는 버퍼 캐시 관리 시스템.
The method of claim 3, wherein
The user-specified rule is stored in the management tool in the form of a table, the buffer cache management system.
제 3 항에 있어서,
상기 관리 툴은 상기 버퍼 캐시의 파티션에 저장된 블록의 축출을 금지하거나 상기 버퍼 캐시의 메모리 양을 제한하는 버퍼 캐시 관리 시스템.
The method of claim 3, wherein
Wherein said management tool prohibits the expulsion of blocks stored in partitions of said buffer cache or limits the amount of memory in said buffer cache.
제 1 항에 있어서,
상기 블록 할당기로 읽혀지는 블록이 상기 이종의 기억 장치들 중 어떤 기억 장치에서 읽혀지는 것인지를 기록하는 스토리지 모니터를 더 포함하는 버퍼 캐시 관리 시스템.
The method of claim 1,
And a storage monitor for recording which of said heterogeneous storage devices is a block read by said block allocator.
제 6 항에 있어서,
상기 스토리지 모니터는 상기 이종의 기억 장치들에서 상기 블록 할당기로 읽혀지는 블록의 평균 전송 시간을 측정하는 버퍼 캐시 관리 시스템.
The method according to claim 6,
The storage monitor measures the average transfer time of a block read into the block allocator in the heterogeneous storage devices.
제 6 항에 있어서,
상기 스토리지 모니터는 상기 이종의 기억 장치들에서 읽혀진 블록이 상기 버퍼 캐시의 복수의 파티션들 중 어떤 파티션으로 할당되었는지를 기록하는 버퍼 캐시 관리 시스템.
The method according to claim 6,
And the storage monitor records which of the plurality of partitions of the buffer cache is allocated a block read from the heterogeneous storage devices.
제 1 항에 있어서,
상기 버퍼 캐시의 복수의 파티션들은 상기 블록의 참조 패턴에 따라 구분되고, 상기 복수의 파티션들 각각은 자신에게 소속된 블록들의 히트율을 높일 수 있는 교체 정책을 개별적으로 갖는 버퍼 캐시 관리 시스템.
The method of claim 1,
And a plurality of partitions of the buffer cache are divided according to a reference pattern of the block, and each of the plurality of partitions individually has a replacement policy for increasing a hit ratio of blocks belonging to the plurality of partitions.
제 1 항에 있어서,
상기 가상 버퍼 캐시는 상기 버퍼 캐시에 저장된 블록들 중 어떤 블록을 재사용할 것인지를 결정하는 버퍼 캐시 관리 시스템.
The method of claim 1,
And the virtual buffer cache determines which of the blocks stored in the buffer cache to reuse.
제 10 항에 있어서,
상기 가상 버퍼 캐시는 블록의 재사용 결정 시, 상기 버퍼 캐시의 복수의 파티션들 각각의 참조 횟수를 모니터링 한 참조 인텐서티(reference intensity)와 가중된 한계 이득(Weighted Marginal Gain)의 곱으로 표현되는 가중치(Weighted Cost)를 이용하는 버퍼 관리 시스템.
The method of claim 10,
When determining the reuse of a block, the virtual buffer cache may have a weight expressed as a product of a reference intensity monitoring a reference number of each of the partitions of the buffer cache and a weighted marginal gain. Buffer management system using Weighted Cost.
이종의 기억 장치들과 연결된 버퍼 캐시 관리 시스템에서의 버퍼 캐시 관리 방법에 있어서,
응용이 실행되면 어플리케이션부가 VFS로 디스크 입출력 요구를 요청하는 단계;
패턴 탐지기가 상기 디스크 입출력 요구를 추적하여 상기 응용이 지시하는 블록의 참조 패턴을 탐지하고, 탐지 결과를 가상 버퍼 캐시로 전달하는 단계;
상기 가상 버퍼 캐시가 상기 탐지 결과를 이용하여 버퍼 캐시의 복수의 파티션들의 크기를 조정하고, 상기 블록이 저장될 파티션을 결정하는 단계; 및
블록 할당기가 상기 가상 버퍼 캐시의 지시에 따라 상기 이종 기억 장치로부터 읽은 블록을 상기 결정된 파티션으로 할당하는 단계;
를 포함하는 버퍼 캐시 관리 방법.
In the buffer cache management method in a buffer cache management system connected to heterogeneous storage devices,
Requesting a disk input / output request to the VFS by the application unit when the application is executed;
A pattern detector tracking the disk input / output request, detecting a reference pattern of a block indicated by the application, and delivering a detection result to a virtual buffer cache;
The virtual buffer cache resizing the plurality of partitions of the buffer cache using the detection result and determining a partition in which the block is to be stored; And
Allocating a block read from the heterogeneous storage device to the determined partition according to an instruction of the virtual buffer cache;
Buffer cache management method comprising a.
제 12 항에 있어서,
상기 패턴 탐지기가 상기 블록의 참조 패턴을 탐지할 경우, 상기 패턴 탐지기는 사용자 지정 룰이 있는지를 우선적으로 확인하는 단계를 더 포함하고,
상기 사용자 지정 룰이 있으면, 상기 사용자 지정 룰에 따라 상기 블록의 참조 패턴을 탐지하는 것을 특징으로 하는 버퍼 관리 방법.
The method of claim 12,
If the pattern detector detects a reference pattern of the block, the pattern detector further includes first checking whether there is a user-defined rule;
If there is the user-specified rule, detecting the reference pattern of the block according to the user-specified rule.
제 13 항에 있어서,
상기 사용자 지정 룰이 없으면, 응용/파일 레벨의 탐지 룰을 적용하여 상기 블록의 참조 패턴을 탐지하는 단계;
상기 응용/파일 레벨 룰을 통해 상기 블록의 참조 패턴이 탐지되면, 상기 가상 버퍼 캐시로 탐지 결과를 전달하는 단계를 포함하는 버퍼 관리 방법.
The method of claim 13,
If there is no user-specified rule, detecting a reference pattern of the block by applying an application / file level detection rule;
And forwarding a detection result to the virtual buffer cache when a reference pattern of the block is detected through the application / file level rule.
제 14 항에 있어서,
상기 응용/파일 레벨 룰을 통해 상기 블록의 참조 패턴이 탐지되지 않으면, 블록 접근 패턴 탐지 룰을 적용하여 상기 블록의 참조 패턴을 탐지하는 단계를 포함하는 버퍼 관리 방법.
The method of claim 14,
If the reference pattern of the block is not detected through the application / file level rule, applying a block access pattern detection rule to detect the reference pattern of the block.
제 12 항에 있어서,
상기 가상 버퍼 캐시가 상기 버퍼 캐시의 복수의 파티션들에 저장된 블록의 재사용을 결정하는 단계를 더 포함하는 버퍼 캐시 관리 방법.
The method of claim 12,
Determining, by the virtual buffer cache, reuse of a block stored in a plurality of partitions of the buffer cache.
제 16 항에 있어서,
상기 블록의 재사용을 결정하는 단계는,
상기 가상 버퍼 캐시가 상기 복수의 파티션들 각각에서 가중치가 가장 작은 N개의 블록들을 선택하는 단계;
상기 복수의 파티션들 각각에서 선택한 모든 블록들의 가중치를 계산하는 단계;
상기 모든 블록들의 가중치를 비교하여 가중치가 가장 작은 N개의 블록들을 선택하는 단계; 및
상기 선택된 N개의 블록들을 재사용하는 단계;
를 포함하는 버퍼 캐시 관리 방법.
17. The method of claim 16,
Determining the reuse of the block,
Selecting, by the virtual buffer cache, N blocks having the lowest weight in each of the plurality of partitions;
Calculating weights of all the blocks selected in each of the plurality of partitions;
Comparing the weights of all the blocks to select N blocks having the lowest weights; And
Reusing the selected N blocks;
Buffer cache management method comprising a.
KR1020100081931A 2010-08-24 2010-08-24 Buffer cache management system and method Expired - Fee Related KR101064178B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100081931A KR101064178B1 (en) 2010-08-24 2010-08-24 Buffer cache management system and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100081931A KR101064178B1 (en) 2010-08-24 2010-08-24 Buffer cache management system and method

Publications (1)

Publication Number Publication Date
KR101064178B1 true KR101064178B1 (en) 2011-09-14

Family

ID=44957249

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100081931A Expired - Fee Related KR101064178B1 (en) 2010-08-24 2010-08-24 Buffer cache management system and method

Country Status (1)

Country Link
KR (1) KR101064178B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101456370B1 (en) 2012-04-04 2014-11-03 홍익대학교 산학협력단 Method and device for management of storage
KR20190058356A (en) * 2017-11-20 2019-05-29 삼성전자주식회사 A multi processor system and a method for managing data of processor included in the system
WO2022211285A1 (en) * 2021-03-30 2022-10-06 삼성전자 주식회사 Electronic device for managing memory and operation method thereof

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990013792A (en) * 1997-07-11 1999-02-25 제프리 엘. 포맨 Parallel file system and method with byte range ATI locking
KR20010085426A (en) * 1998-08-20 2001-09-07 알버트 피. 세팔로 Advanced deferred shading graphics pipeline processor
KR20100057516A (en) * 2008-11-21 2010-05-31 엔비디아 코포레이션 Multi-class data cache policies

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990013792A (en) * 1997-07-11 1999-02-25 제프리 엘. 포맨 Parallel file system and method with byte range ATI locking
KR20010085426A (en) * 1998-08-20 2001-09-07 알버트 피. 세팔로 Advanced deferred shading graphics pipeline processor
KR20100057516A (en) * 2008-11-21 2010-05-31 엔비디아 코포레이션 Multi-class data cache policies

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101456370B1 (en) 2012-04-04 2014-11-03 홍익대학교 산학협력단 Method and device for management of storage
KR20190058356A (en) * 2017-11-20 2019-05-29 삼성전자주식회사 A multi processor system and a method for managing data of processor included in the system
US10884925B2 (en) 2017-11-20 2021-01-05 Samsung Electronics Co., Ltd. Systems and methods for tag-less buffer implementation
KR102252377B1 (en) * 2017-11-20 2021-05-14 삼성전자주식회사 A multi processor system and a method for managing data of processor included in the system
WO2022211285A1 (en) * 2021-03-30 2022-10-06 삼성전자 주식회사 Electronic device for managing memory and operation method thereof

Similar Documents

Publication Publication Date Title
US10922235B2 (en) Method and system for address table eviction management
KR102193689B1 (en) Systems and methods for efficient cache line handling based on predictions
US10552317B2 (en) Cache allocation in a computerized system
US9135181B2 (en) Management of cache memory in a flash cache architecture
KR102305834B1 (en) Dynamic cache partition manager in heterogeneous virtualization cloud cache environment
KR20180027327A (en) Adaptive caching replacement manager with dynamic updating granulates and partitions for shared flash-based storage system
EP3089039B1 (en) Cache management method and device
US20140115261A1 (en) Apparatus, system and method for managing a level-two cache of a storage appliance
CN104081364B (en) cooperative cache
CN113254358A (en) Method and system for address table cache management
US11016889B1 (en) Storage device with enhanced time to ready performance
JP6323445B2 (en) Storage apparatus, method and program
Wu et al. Exploiting concurrency to improve latency and throughput in a hybrid storage system
Chang et al. Stable greedy: Adaptive garbage collection for durable page-mapping multichannel SSDs
KR101456370B1 (en) Method and device for management of storage
Wang et al. ADAPT: Efficient workload-sensitive flash management based on adaptation, prediction and aggregation
KR101064178B1 (en) Buffer cache management system and method
US9396128B2 (en) System and method for dynamic allocation of unified cache to one or more logical units
US10733114B2 (en) Data cache performance
US20170024147A1 (en) Storage control device and hierarchized storage control method
KR102347871B1 (en) Computing system with cache management mechanism and method of operation thereof
JP6430039B2 (en) Storage device and storage device control method
Zhang et al. Efficient wear-leveling-aware data placement for LSM-Tree based key-value store on ZNS SSDs
Koo et al. Maintaining Inter-Layer Equilibrium in Hierarchical-Storage-based KV Store
KR102149468B1 (en) System and method for dynamic allocation of unified cache to one or more Logical Units

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

GRNT Written decision to grant
PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U11-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

FPAY Annual fee payment

Payment date: 20140827

Year of fee payment: 4

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 4

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R13-asn-PN2301

St.27 status event code: A-5-5-R10-R11-asn-PN2301

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee

St.27 status event code: A-4-4-U10-U13-oth-PC1903

Not in force date: 20150906

Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

PC1903 Unpaid annual fee

St.27 status event code: N-4-6-H10-H13-oth-PC1903

Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

Not in force date: 20150906

P22-X000 Classification modified

St.27 status event code: A-4-4-P10-P22-nap-X000

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R13-asn-PN2301

St.27 status event code: A-5-5-R10-R11-asn-PN2301

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000