KR102264544B1 - 데이터 생성 또는 소비에 기반하여 캐시된 입출력 데이터를 필터링하는 방법 - Google Patents

데이터 생성 또는 소비에 기반하여 캐시된 입출력 데이터를 필터링하는 방법 Download PDF

Info

Publication number
KR102264544B1
KR102264544B1 KR1020140070252A KR20140070252A KR102264544B1 KR 102264544 B1 KR102264544 B1 KR 102264544B1 KR 1020140070252 A KR1020140070252 A KR 1020140070252A KR 20140070252 A KR20140070252 A KR 20140070252A KR 102264544 B1 KR102264544 B1 KR 102264544B1
Authority
KR
South Korea
Prior art keywords
data stream
sequential data
cached
rate
data
Prior art date
Application number
KR1020140070252A
Other languages
English (en)
Other versions
KR20150016886A (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 삼성전자주식회사
Publication of KR20150016886A publication Critical patent/KR20150016886A/ko
Application granted granted Critical
Publication of KR102264544B1 publication Critical patent/KR102264544B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control

Abstract

본 발명은 입출력 데이터의 캐시를 필터링하는 방법에 관한 것이다. 본 발명의 방법은, 입출력 전송을 수신하는 단계, 입출력 전송이 순차 데이터 스트림의 일부이고 순차 데이터 스트림의 일부로서 전송된 전체 데이터가 미리 정해진 문턱값보다 클 때, 순차 데이터 스트림의 전송률을 계산하는 단계, 입출력 전송이 순차 데이터 스트림의 일부이고 순차 데이터 스트림의 일부로서 전송된 전체 데이터가 미리 정해진 문턱값보다 클 때, 전송률이 목표 저장 장치의 스루풋(throughput)보다 큰지 판별하는 단계, 그리고 전송률이 상기 목표 저장 장치의 스루풋보다 클 때 입출력 전송을 캐시하고, 전송률이 상기 목표 저장 장치의 스루풋보다 크지 않을 때 입출력 전송을 캐시하지 않는 단계로 구성된다.

Description

데이터 생성 또는 소비에 기반하여 캐시된 입출력 데이터를 필터링하는 방법{METHOD FOR FILTERING CACHED INPUT/OUTPUT DATA BASED ON DATA GENERATION/CONSUMPTION}
본 발명은 입출력 캐시에 관한 것으로, 더 상세하게는 캐시되는 데이터를 데이터 생성 또는 소비에 기반하여 필터링하는 것에 관한 발명이다.
캐싱(caching)은 디스크 드라이브와 같은 느린 저장 장치들의 동작 성능을 향상시키기 위하여 스토리지 환경에서 널리 사용되어 왔다. 캐싱에서, 작고 빠른 저장 매체가 자주 사용되는 데이터를 저장하도록 사용되고, 크고 느린 대용량 저장 매체가 데이터를 장기간 저장하는 데에 사용된다. 캐싱 방법들 중 하나는 후기입 캐싱(write-back caching)이다. 후기입 캐싱에서, 디스크에 기입되는 데이터는 우선 캐시에 저장되고, 나중에 대용량 저장 매체에 기입된다. 주로 캐시에 저장된 데이터 용량이 문턱값에 도달할 때 또는 시간이 허용될 때에 데이터가 대용량 저장 매체에 기입된다.
도 1은 캐싱 기능을 구비한 종래의 컴퓨터 시스템(100)을 보여주는 블록도이다. 종래의 컴퓨터 시스템(100)은 시스템 메모리(104)와 통신하는 중앙 처리 장치(CPU, 102), 캐싱 장치(106), 로컬 타겟 저장 장치(108), 그리고 네트워크 인터페이스 카드(110)를 포함한다. 또한, 컴퓨터 시스템(100)에서 캐싱 기능을 구현하는 캐싱 소프트웨어(112)가 시스템 메모리(104)에 로드된다.
상술된 바와 같이, 캐싱 장치(106)는 일반적으로 로컬 타겟 저장 장치(108)보다 작고 빠른 스토리지를 포함한다. 캐싱 장치(106)의 빠른 속도로 인해, 캐싱 장치(106)에 대한 읽기 및 쓰기는 로컬 타겟 저장 장치(108)를 이용하는 것 보다 빠르게 처리된다. 캐싱은 쓰기 요청을 로컬 타겟 저장 장치(108)로 전송하기 전에 캐싱 장치(106)로 전송함으로써, 속도 차이에 의한 장점을 갖는다.
예를 들어, CPU (102)가 데이터를 로컬 타겟 저장 장치(108)로 기입할 것을 요청하는 쓰기 요청을 처리할 때, 캐싱 소프트웨어(112)는 쓰기 요청을 가로채고, 그리고 데이터를 캐싱 장치(106)에 기입할 수 있다. CPU (102)가 읽기 요청을 처리할 때, 캐싱 소프트웨어(112)는 읽기 요청을 가로채고, 그리고 데이터가 캐싱 장치(106)에 저장되어 있는지 판별한다. 데이터가 캐싱 장치(106)에 저장되어 있으면, 캐싱 소프트웨어(112)는 캐싱 장치(106)로부터 데이터를 읽고, 그렇지 않으면 데이터는 로컬 타겟 저장 장치(108)로부터 읽어진다.
데이터는 다양한 인자들에 기반하여 캐싱 대상으로 선택된다. 예를 들어, 종래의 캐싱 방법들은, 데이터의 최신성, 사용 빈도, 블록 사이즈, 그리고 파일 타입에 기반하여 데이터를 선택하였다. 그러나, 종래의 캐싱 방법들은, 데이터가 지역적으로 위치하고 사용되는 것을 가정한다. 데이터가 지역적으로 위치하지 않고 지역적으로 사용되지 않으면, 최신성, 사용 빈도, 블록 사이즈 및 파일 타입에 기반한 데이터 선택 정책은 효율적이지 않다.
예를 들어, 도 1에서, 컴퓨터 시스템(100)은 네트워크 인터페이스 카드(110)를 통해 원격 저장 장치(114)와 통신한다. 원격 저장 장치(114)는, 예를 들어, 인터넷 또는 다른 네트워크를 통해 컴퓨터 시스템(100)과 연결될 수 있다. 이러한 원격 구성에서, 데이터가 원격 저장 장치(114)로부터 CPU (102)로 전송되는 것은 데이터가 로컬 타겟 스토리지 장치(108)로부터 CPU (102)로 전송되는 것 보다 긴 시간이 소요된다. 따라서, 이러한 예에서, 컴퓨터 시스템(100)의 성능을 저해하는 장애 요인(bottleneck)은 로컬 타겟 저장 장치(108)의 스루풋(throughput)이 아닌 원격 저장 장치(114)와의 연결이다. 따라서, 원격으로 저장된 데이터는 캐싱되지 않아야 한다.
상술된 관점에서, 캐시될 입출력 데이터를 필터링하여, 사용자를 효율적으로 지원하지 않는 데이터 캐싱을 제외하는 시스템 및 방법에 대한 요구가 있다. 요구되는 시스템 및 방법은, 캐싱이 효율적인 때를 판별하고 그리고 비효율적인 데이터 캐싱을 회피할 수 있어야 한다.
본 발명의 목적은 상술된 요구를 해결하기 위한 것으로, 더 상세하게는 데이터의 생성률 또는 소비율에 기반하여 입출력 데이터의 캐싱을 필터링하는 방법을 제공하는 데에 있다.
입출력 데이터의 캐시를 필터링하는 본 발명의 실시 예에 따른 방법은, 입출력 전송을 수신하는 단계; 상기 입출력 전송이 순차 데이터 스트림의 일부이고, 상기 순차 데이터 스트림의 일부로서 전송된 전체 데이터가 미리 정해진 문턱값보다 클 때, 상기 순차 데이터 스트림의 전송률을 계산하는 단계; 상기 입출력 전송이 순차 데이터 스트림의 일부이고, 상기 순차 데이터 스트림의 일부로서 전송된 전체 데이터가 미리 정해진 문턱값보다 클 때, 상기 전송률이 목표 저장 장치의 스루풋(throughput)보다 큰지 판별하는 단계; 그리고 상기 전송률이 상기 목표 저장 장치의 상기 스루풋보다 클 때 상기 입출력 전송을 캐시하고, 상기 전송률이 상기 목표 저장 장치의 상기 스루풋보다 크지 않을 때 상기 입출력 전송을 캐시하지 않는 단계를 포함한다.
실시 예로서, 상기 전송률은 상기 순차 데이터 스트림의 일부로서 전송된 상기 전체 데이터를 상기 순차 데이터 스트림의 일부로서 전송된 상기 전체 데이터가 전송되는 데에 소모된 시간으로 나눈 결과에 기반하여 계산된다.
실시 예로서, 상기 입출력 전송을 수신하기 전에 이전 입출력 전송을 수신하는 단계를 더 포함하고, 상기 순차 데이터 스트림의 일부로서 전송된 상기 전체 데이터가 상기 미리 정해진 문턱값보다 적고, 상기 이전 입출력 전송은 상기 순차 데이터 스트림의 일부이다.
실시 예로서, 상기 순차 데이터 스트림의 상기 전송률에 관계 없이 상기 이전 입출력 전송을 캐시하는 단계를 더 포함한다.
실시 예로서, 미리 정해진 수의 캐시되지 않는 순차 데이터 스트림들이 캐시된 전송률들보다 낮은 현재 전송률들을 갖는지 판별하는 단계를 더 포함하고, 상기 캐시된 전송률은 상기 순차 데이터 스트림이 캐시되는 경우의 상기 순차 데이터 스트림의 전송률이다.
실시 예로서, 상기 미리 정해진 수의 캐시되지 않는 순차 데이터 스트림들이 상기 캐시된 전송률들보다 낮은 현재 전송률들을 가질 때, 상기 캐시되지 않는 순차 데이터 스트림들 중 선택된 순차 데이터 스트림을 캐시하는 단계를 더 포함한다.
실시 예로서, 상기 캐시되지 않는 순차 데이터 스트림들은, 나머지 캐시되지 않는 순차 데이터 스트림들이 각각 대응하는 캐시된 전송률들로 복원될 때까지, 상기 캐시된 전송률들이 감소하는 순서에 따라 하나씩 선택되어 캐시된다.
입출력 데이터의 캐시를 필터링하는 컴퓨터 판독 가능한 저장 매체에 실장되는 본 발명의 실시 예에 따른 컴퓨터 프로그램은, 입출력 전송을 수신하는 컴퓨터 명령들; 상기 입출력 전송이 순차 데이터 스트림의 일부이고, 상기 순차 데이터 스트림의 일부로서 전송되는 전체 데이터가 미리 정해진 문턱값보다 클 때, 상기 순차 데이터 스트림의 전송률을 계산하는 컴퓨터 명령들; 상기 입출력 전송이 순차 데이터 스트림의 일부이고, 상기 순차 데이터 스트림의 일부로서 전송되는 전체 데이터가 미리 정해진 문턱값보다 클 때, 상기 전송률이 목표 저장 장치의 스루풋(throughput)보다 큰 지 판별하는 컴퓨터 명령들; 그리고 상기 전송률이 상기 목표 저장 장치의 상기 스루풋보다 클 때 상기 입출력 전송을 캐시하고, 상기 전송률이 상기 목표 저장 장치의 상기 스루풋보다 크지 않을 때 상기 입출력 전송을 캐시하지 않는 컴퓨터 명령들을 포함한다.
실시 예로서, 상기 전송률은 상기 순차 데이터 스트림의 일부로서 전송된 상기 전체 데이터를 상기 순차 데이터 스트림의 일부로서 전송된 상기 전체 데이터가 전송되는 데에 소모된 시간으로 나눈 결과에 기반하여 계산된다.
실시 예로서, 상기 입출력 전송을 수신하기 전에 이전 입출력 전송을 수신하는 단계를 더 포함하고, 상기 순차 데이터 스트림의 일부로서 전송된 상기 전체 데이터가 상기 미리 정해진 문턱값보다 적고, 상기 이전 입출력 전송은 상기 순차 데이터 스트림의 일부이다.
실시 예로서, 상기 순차 데이터 스트림의 상기 전송률에 관계 없이 상기 이전 입출력 전송을 캐시하는 컴퓨터 명령들을 더 포함한다.
실시 예로서, 미리 정해진 수의 캐시되지 않는 순차 데이터 스트림들이 캐시된 전송률들보다 낮은 현재 전송률들을 갖는지 판별하는 컴퓨터 명령들을 더 포함하고, 상기 캐시된 전송률은 상기 순차 데이터 스트림이 캐시되는 경우의 상기 순차 데이터 스트림의 전송률이다.
실시 예로서, 상기 미리 정해진 수의 캐시되지 않는 순차 데이터 스트림들이 상기 캐시된 전송률들보다 낮은 현재 전송률들을 가질 때, 상기 캐시되지 않는 순차 데이터 스트림들 중 선택된 순차 데이터 스트림을 캐시하는 컴퓨터 명령들을 더 포함한다.
실시 예로서, 상기 캐시되지 않는 순차 데이터 스트림들은, 나머지 캐시되지 않는 순차 데이터 스트림들이 각각 대응하는 캐시된 전송률들로 복원될 때까지, 상기 캐시된 전송률들이 감소하는 순서에 따라 하나씩 선택된다.
입출력 데이터의 캐시를 필터링하는 본 발명의 다른 실시 예에 따른 방법은, 이전 입출력 전송을 수신하는 단계; 상기 이전 입출력 전송이 순차 데이터 스트림의 일부이고, 상기 순차 데이터 스트림의 일부로서 전송된 전체 데이터가 미리 정해진 문턱값보다 크지 않을 때, 상기 순차 데이터 스트림의 전송률에 관계없이 상기 이전 입출력 전송을 캐시하는 단계; 입출력 전송을 수신하는 단계; 상기 이전 입출력 전송이 순차 데이터 스트림의 일부이고, 상기 순차 데이터 스트림의 일부로서 전송된 전체 데이터가 미리 정해진 문턱값보다 클 때, 상기 순차 데이터 스트림의 전송률을 계산하는 단계; 상기 입출력 전송이 순차 데이터 스트림의 일부이고, 상기 순차 데이터 스트림의 일부로서 전송된 전체 데이터가 미리 정해진 문턱값보다 클 때, 상기 전송률이 목표 저장 장치의 스루풋(throughput)보다 큰지 판별하는 단계; 그리고 상기 전송률이 상기 목표 저장 장치의 상기 스루풋보다 클 때 상기 입출력 전송을 캐시하고, 상기 전송률이 상기 목표 저장 장치의 상기 스루풋보다 크지 않을 때 상기 입출력 전송을 캐시하지 않는 단계를 포함한다.
실시 예로서, 상기 전송률은 상기 순차 데이터 스트림의 일부로서 전송된 상기 전체 데이터를 상기 순차 데이터 스트림의 일부로서 전송된 상기 전체 데이터가 전송되는 데에 소모된 시간으로 나눈 결과에 기반하여 계산된다.
실시 예로서, 미리 정해진 수의 캐시되지 않는 순차 데이터 스트림들이 캐시된 전송률들보다 낮은 현재 전송률들을 갖는지 판별하는 단계를 더 포함하고, 상기 캐시된 전송률은 상기 순차 데이터 스트림이 캐시되는 경우의 상기 순차 데이터 스트림의 전송률이다.
실시 예로서, 상기 미리 정해진 수의 캐시되지 않는 순차 데이터 스트림들이 상기 캐시된 전송률들보다 낮은 현재 전송률들을 가질 때, 상기 캐시되지 않는 순차 데이터 스트림들 중 선택된 순차 데이터 스트림을 캐시하는 단계를 더 포함한다.
실시 예로서, 상기 캐시되지 않는 순차 데이터 스트림들은, 나머지 캐시되지 않는 순차 데이터 스트림들이 각각 대응하는 캐시된 전송률들로 복원될 때까지, 상기 캐시된 전송률들이 감소하는 순서에 따라 하나씩 선택되어 캐시된다.
실시 예로서, 캐시되는 순차 데이터 스트림들의 전송률들에 관계 없이 상기 캐시되는 순차 데이터 스트림들의 캐싱을 지속하는 단계를 더 포함하고, 상기 목표 저장 장치 및 캐싱 장치의 부하는 밸런스된다.
본 발명의 실시 예들은, 제한된 용량 및 고비용을 갖는 캐싱 장치를 최적으로 사용한다.
도 1은 캐싱 기능을 구비한 종래의 컴퓨터 시스템을 보여주는 블록도이다.
도 2는 본 발명의 실시 예에 따른 컴퓨터 시스템을 보여주는 블록도이다.
도 3은 입출력 데이터의 생성률 또는 소비율에 따라, 캐시될 입출력 데이터를 필터링하는 방법을 보여주는 순서도이다.
도 4는 본 발명의 실시 예에 따른 다양한 데이터 스트림들을 보여주는 다이어그램이다.
도 5는 시간의 흐름에 따른 순차 데이터 스트림의 예시적인 생성률 또는 소비율을 보여주는 그래프이다.
도 6은 원격으로 생성 또는 소비되는 예시적인 순차 데이터 스트림의 전송률을 보여주는 그래프이다.
도 7은 캐싱 기능이 향상된 후, 원격으로 생성 또는 소비되는 순차 데이터 스트림의 전송률을 보여주는 그래프이다.
본 발명은 데이터 생성 또는 소비에 따라, 캐시될 입출력 데이터를 필터링하는 방법 및 장치를 제공한다. 본 발명의 실시 예들은, 플래터의 회전 속도 및 데이터 저장 밀도에 따라 결정되는 로컬 타겟 저장 장치의 전송률보다 느린 생성률 또는 소비율을 갖는 입출력 데이터를 필터링하여 걸러낸다. 일반적으로, 미리 정해진 문턱값이 충족되면, 로컬 타겟 저장 장치의 스루풋(throughput)보다 큰 생성률 또는 소비율을 갖는 데이터 스트림은 캐시되고, 로컬 타겟 저장 장치의 스루풋과 같거나 그보다 적은 생성률 또는 소비율을 갖는 데이터는 캐시되지 않는다. 따라서, 본 발명의 실시 예들은 제한되고 고비용의 캐싱 장치를 최적으로 사용한다.
이하에서, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 실시 예를 첨부된 도면을 참조하여 설명하기로 한다.
도 2는 본 발명의 실시 예에 따른 컴퓨터 시스템(200)을 보여주는 블록도이다. 컴퓨터 시스템(200)은 프로세서 버스(208)를 통해 ROM (Read Only Memory, 204) 및 시스템 메모리(206)에 연결된 시스템 프로세서(202)를 포함한다. 시스템 프로세서(202)는 파워-온 시에 ROM (204)에 저장된 시스템 바이오스(210)를 실행하고, 이후에 시스템 메모리(206)에 저장된 운영 체제 및 어플리케이션의 제어에 따라 데이터를 처리한다. 도 2에 도시된 바와 같이, 시스템 프로세서(202)는 프로세서 버스(208) 및 호스트 브릿지(212)를 통해 PCI (Peripheral Component Interconnect) 로컬 버스(214)에 연결될 수 있다.
PCU 로컬 버스(214)는 다양한 장치들의 부착을 지원하며, 어댑터 및 브릿지를 포함한다. 부착되는 장치들 중 하나는 네트워크 인터페이스 컨트롤러(216)이다. 네트워크 인터페이스 컨트롤러(216)는 컴퓨터 시스템(200)을 원격 서버(218)와 인터페이스한다. 부착되는 장치들 중 다른 하나는 그래픽 어댑터(220)이다. 그래픽 어댑터(220)는 컴퓨터 시스템(200)을 모니터(222)와 인터페이스한다. PCI 로컬 버스(214) 상의 통신은 로컬 PCI 컨트롤러(224)에 의해 제어된다. 로컬 PCI 컨트롤러(224)는 제2의 호스트 브릿지를 통해 추가적인 버스들 및 장치들과 연결될 수 있다.
컴퓨터 시스템(200)은 ISA (Industry Standard Architecture) 브릿지(228)를 통해 ISA 버스(226)를 더 포함할 수 있다. 키보드 및 마우스와 같은 주변 장치와 컴퓨터 시스템(200) 사이의 통신을 제어하는 입출력 컨트롤러(230)가 ISA 버스(228)에 연결될 수 있다. 또한, 입출력 컨트롤러(230)는 직렬 및 병렬 포트들을 통해 컴퓨터 시스템(200)에 외부 통신을 지원할 수 있다. 디스크 컨트롤러(232)는 다양한 저장 장치들과 통신한다. 예를 들어, 저장 장치들은 HDD (Hard Disk Drive)와 같은 로컬 타겟 스토리지 장치(234), 그리고 SSD (Solid State Drive)와 같은 캐싱 장치(236)를 포함할 수 있다. 캐싱 장치(236)는 로컬 타겟 스토리지 장치(234)의 캐싱을 지원할 수 있다.
캐싱 방법에서 가장 기초적으로 수행되는 판단은, 캐싱 장치(236)에 어느 데이터를 개시할 것인지 결정하는 것이다. 예를 들어, 입출력 전송(transfer)으로 알려져 있는, 로컬 타겟 스토리지 장치(234)명시된 논리 주소(LBA)로부터 시작하는 명시된 영역에 명시된 길이의 데이터를 기입하는 요청이 호스트로부터 수신될 때, 데이터를 캐싱 장치(236)에 캐시할 지의 여부가 판단된다. 앞서 언급된 바와 같이, 종래의 캐싱 방법은 데이터의 최신도, 사용 빈도, 그리고 파일 타입에 따라 캐싱 여부를 결정한다. 시스템 프로세서(202) 및 시스템 메모리(206)의 속도가 로컬 타겟 스토리지 장치(234)의 속도보다 몇 배 이상 빠르므로, 종래의 캐싱 방법은 모든 데이터가 동일한 컴퓨터 시스템(200) 내에서 생성되고 소비될 때에 적절하게 수행된다. 그러나, 현재의 요청 사이즈를 동일한 스트림의 직전의 요청이 수신된 때로부터 경과한 시간으로 나눈 값(입출력 전송률로 알려진 값)이 로컬 타겟 스토리지 장치(234)의 스루풋보다는 원격 연결에 의해 제한되므로, 데이터가 원격으로 생성 또는 소비될 때에 종래의 캐싱 방법은 효율적이지 않다.
예를 들어, 도 2에서, 시스템 프로세서(202)에 의해 생성되는 데이터를 로컬 타겟 스토리지 장치(234)에 저장할 때에 필요한 시간 보다, 원격 서버(218)로부터 로컬 타겟 스토리지 장치(234)로 데이터를 다운로드하는 데에 필요한 시간이 훨씬 길다. 마찬가지로, 로컬 타겟 스토리지 장치(234)로부터 지역적으로 데이터를 읽을 때에 필요한 시간 보다, 로컬 타겟 스토리지 장치(234)로부터 데이터를 업로드하는 데에 필요한 시간이 훨씬 더 길다. 데이터가 원격으로 생성 또는 소비되는 경우, 동작 성능을 저해하는 장애 요인(bottleneck)은 로컬 타겟 스토리지 장치(234)의 속도보다는 원격 서버(218)와의 연결이므로, 본 발명은 데이터의 캐싱을 수행하지 않는다.
도 3은 입출력 데이터의 생성 또는 소비율에 기반하여 입출력 데이터를 필터링하는 방법(300)을 보여주는 순서도이다. 301 동작에서, 사전처리(preprocess) 동작이 수행된다. 사전처리 동작은, 예를 들어, 캐싱 소프트웨어를 시스템 메모리(206)에 로딩하는 동작, 원격 서버(218)와의 연결을 수립하는 동작, 그리고 당업자에게 알려져 있는 또는 약간의 주의를 통해 당업자에 의해 명백하게 파악될 수 있는 다양한 동작들을 포함할 수 있다.
통상적으로, 본 발명의 실시 예는 로컬 타겟 스토리지 장치(234)의 전송률보다 느린 생성률 또는 소비율을 갖는 입출력 데이터를 필터링하여 걸러낸다. 로컬 타겟 스토리지 장치(234)의 전송률은 플래터의 회전 속도 및 데이터 저장 밀도에 따라 결정될 수 있다. 이러한 방법으로, 본 발명의 실시 예는 높은 스루풋이 필요한 데이터를 캐시하고, 느린 생성률 또는 소비율로 인해 높은 스루풋을 필요하지 않은 데이터를 필터링하여 캐시하지 않는다. 따라서, 본 발명의 실시 예는 제한된 용량 및 높은 비용을 갖는 캐싱 장치(236)를 최적으로 사용한다.
302 동작에서, 입출력 전송이 수신된다. 도 2를 참조하면, 스타트업(start up) 시에, 캐싱 소프트웨어가 시스템 메모리(206)에 로딩되어 컴퓨팅 시스템(200)에 캐싱 기능을 지원한다. 통상적으로, 캐싱 소프트웨어는 로컬 타겟 스토리지 장치(234)에 대한 입출력 전송을 가로채고, 입출력 전송에 따라 데이터를 캐싱 장치(236)에 기입할 지 또는 데이터를 캐싱 장치(236)로부터 읽을지 결정한다. 이러한 결정을 할 때에, 후술되는 바와 같이, 캐싱 소프트웨어는 현재의 입출력 전송과 연관된 순차 데이터 스트림의 전송률 및 길이를 검출한다.
304 동작에서, 수신된 입출력 전송이 순차 데이터 스트림의 일부인지 판별된다. 도 4는 본 발명의 실시 예에 따른 다양한 데이터 스트림들을 보여준다. 데이터 스트림(400a)은 이전에 수신된 순차 데이터 스트림의 일부가 아닌 새로운 입출력 전송을 보여준다. 데이터 스트림(400b)은 이전에 시작된 순차 데이터 스트림을 보여준다. 데이터 스트림(400c)은 데이터 스트림(400b)보다 긴 순차 데이터 스트림을 보여준다. 즉, 데이터 스트림(400c)은 데이터 스트림(400b)의 전체 데이터보다 많은 전체 데이터를 갖는 데이터 스트림이다.
다시 도 3을 참조하면, 수신된 입출력 전송이 순차 데이터 스트림이 아니면, 수신된 입출력 전송은 캐싱 장치(236)에 저장되고, 새로운 순차 데이터 스트림의 시작으로 간주된다. 예를 들어, 도 4에서, 데이터 스트림(400a)은 이전에 수신된 순차 데이터 스트림의 일부가 아닌 새로운 입출력 전송이다. 새로운 입출력 전송은 캐싱 장치(236)에 저장되고, 데이터 스트림(400a)은 새로운 순차 데이터 스트림의 시작으로 간주된다. 그러나, 수신된 입출력 전송이 순차 데이터 스트림의 일부이면, 308 동작에서 데이터 스트림의 사이즈가 점검된다.
306 동작에서, 수신된 입출력 전송은 현재 시간과 함께 캐싱 장치(236)에 저장된다. 일반적으로, 본 발명의 실시 예는, 순차 데이터의 일부이며 로컬 타겟 스토리지 장치(234)의 전송률보다 느린 생성률 또는 소비율을 갖는 입출력 전송으로 판별될 때까지, 입출력 전송을 캐시한다. 데이터 스트림의 사이즈에 더하여, 데이터 스트림의 전송률을 결정하는 데에 사용되는 인자는, 데이터 스트림이 시작된 시간 및 현재 입출력 전송과 연관된 시간 사이의 차이이다. 따라서, 수신된 입출력 전송과 연관된 현재 시간이 캐싱 장치(236)에 저장된다.
308 동작에서, 순차 데이터 스트림의 일부로서 전송된 전체 데이터의 사이즈가 미리 정해진 문턱값보다 큰지 판별된다. 순차 데이터 스트림의 일부로서 전송된 전체 데이터의 사이즈가 미리 정해진 문턱값보다 크면, 310 동작에서, 데이터 스트림의 생성률 또는 소비율이 판별된다. 그렇지 않으면, 306 동작에서 입출력 전송이 캐시된다.
도 4를 참조하면, 표시자(402)는 예시적인 시스템의 요구에 기반한 미리 정해진 문턱값을 보여준다. 미리 정해진 문턱값은 임의의 값일 수 있으며, 본 발명의 실시 예가 구현되는 컴퓨터 시스템의 요구에 따라 결정될 수 있음이 이해될 것이다. 데이터 스트림(400c)에 속한 데이터 입출력 전송은, 데이터 스트림(400c)의 일부로서 전송된 전체 데이터 사이즈가 미리 정해진 문턱값(402)보다 커질 때가지 자동적으로 캐시된다.
다시 도 3을 참조하면, 310 동작에서, 입출력 전송이 속한 데이터 스트림의 생성률 또는 소비율이 판별된다. 앞서 언급된 바와 같이, 인터넷 또는 온라인 미디어 스트림으로부터 다운로드되는 파일과 같이 원격으로 생성되는 데이터의 전송률은, 시스템 프로세서(202)를 통해 생성되는 것과 같이 지역적으로 생성되는 데이터의 전송률보다 매우 낮다. 마찬가지로, 원격 서버(218)로 동영상 또는 이미지를 업로드하는 것과 같이 원격으로 소비되는 데이터의 전송률은, 로컬 타겟 스토리지 장치(234)로부터 지역적으로 소비되는 데이터의 전송률보다 매우 낮다. 따라서, 본 발명의 실시 예는 데이터 스트림의 생성률 또는 소비율을 판별하여, 데이터의 캐싱을 지속할 지의 여부를 판별한다.
생성률 또는 소비율은, 순차 데이터 스트림의 일부로서 전송된 전체 데이터를 순차 데이터 스트림의 일부로서 전송된 전체 데이터의 전송 시간으로 나눈 값으로 계산된다. 순차 데이터 스트림의 일부로서 전송된 전체 데이터의 전송 시간은, 현재 입출력 전송과 연관된 시간 및 순차 데이터 스트림의 첫 번째 입출력 전송과 연관된 시간 사이의 차이이다.
이후에, 312 동작에서, 순차 데이터 스트림의 생성률 또는 소비율이 로컬 타겟 스토리지 장치(234)의 스루풋보다 큰지 판별된다. 순차 데이터 스트림의 생성률 또는 소비율이 로컬 타겟 스토리지 장치(234)의 스루풋보다 크면, 306 동작에서 입출력 전송이 캐시된다. 그렇지 않으면, 314 동작에서, 입출력 전송은 캐시되지 않는다.
도 5는 시간의 흐름에 따른 순차 데이터 스트림들의 다양한 생성률 또는 소비율을 보여주는 그래프(500)이다. 구체적으로, 그래프(500)는 지역적으로 생성 또는 소비되는 데이터(502a)의 생성률 또는 소비율, 원격으로 생성 또는 소비되는 데이터(502b)의 생성률 또는 소비율을 보여준다. 또한, 그래프(500)는 로컬 타겟 스토리지 장치(234)의 스루풋(504)을 보여준다.
도 5에 도시된 바와 같이, 지역적으로 생성 또는 소비되는 데이터(502a)의 생성률 또는 소비율은 로컬 타겟 스토리지 장치(234)의 스루풋(504)보다 크다. 일반적으로, 로컬 컴퓨터 시스템의 전송률의 장애 요인(bottleneck)은 로컬 타겟 스토리지 장치(234)이다. 따라서, 지역적으로 생성 또는 소비되는 데이터(502a)의 생성률 또는 소비율은 로컬 타겟 스토리지 장치(234)의 스루풋보다 높다. 지역적으로 생성 또는 소비되는 데이터(502a)의 생성률 또는 소비율이 로컬 타겟 스토리지 장치(234)의 스루풋보다 높으므로, 캐싱이 이득이며 따라서 지역적으로 생성 또는 소비되는 데이터(502a)는 캐시된다.
반대로, 네트워크 시스템의 전송률의 장애 요인은 통상적으로 원격 서버이다. 따라서, 원격으로 생성 또는 소비되는 데이터(502b)의 생성률 또는 소비율은 로컬 타겟 스토리지 장치(234)의 스루풋보다 낮다. 원격으로 생성 또는 소비되는 데이터(502b)의 생성률 또는 소비율이 로컬 타겟 스토리지 장치(234)의 스루풋보다 낮으므로, 캐싱이 이득이 되지 않으며 따라서 원격으로 생성 또는 소비되는 데이터(502b)는 캐시되지 않는다.
컴퓨터 시스템의 용도는 시간이 흐름에 따라 변하므로, 로컬 타겟 스토리지 장치(234)의 스루풋이 변할 수 있다. 예를 들어, 피크 사용 기간 동안, 로컬 타겟 스토리지 장치(234)에 대한 입출력 요청 횟수가 크게 증가할 수 있다. 증가된 수의 입출력 요청들을 처리함에 따라, 로컬 타겟 스토리지 장치(234)의 스루풋은 감소할 수 있다. 스루풋의 감소는 로컬 타겟 스토리지 장치(234)가 컴퓨터 시스템(200)의 장애 요인이 되게 할 수 있다. 이 경우, 본 발명의 실시 예는, 도 6 및 도 7을 참조하여 후술되는 바와 같이, 캐싱 동작을 변경시켜 전체적인 시스템 성능을 향상시킨다.
도 6은 원격으로 생성 또는 소비되는 순차 데이터 스트림의 전송률을 보여준다. 데이터 스트림 전송률은 캐시된 전송률(602a) 및 현재 전송률(602b)을 포함한다. 캐시된 전송률(602a)은 순차 데이터 스트림이 캐시될 때의 전송률을 나타낸다. 앞서 언급된 바와 같이, 본 발명의 실시 예는, 순차 데이터 스트림의 일부로서 전송된 전체 데이터가 미리 정해진 문턱값에 도달할 때까지, 순차 데이터 스트림의 모든 입출력 전송들을 캐시한다. 따라서, 전송된 순차 데이터 스트림의 사이즈가 미리 정해진 문턱값에 도달하기 전에 순차 데이터 스트림이 캐시될 때에, 모든 순차 데이터 스트림은 캐시된 전송률(602a)을 갖는다.
현재 전송률(602b)은, 전송된 순차 데이터 스트림의 사이즈가 미리 정해진 문턱값에 도달한 후의 순차 데이터 스트림의 전송률을 포함한다. 증가한 횟수의 입출력 요청을 처리함에 따라, 로컬 타겟 스토리지 장치(234)의 스루풋이 감소할 수 있다. 로컬 타겟 스토리지 장치(234)의 스루풋의 감소는 순차 데이터 스트림의 현재 전송률의 감소를 초래한다. 예를 들어, 도 6에서, 원격으로 생성 또는 소비되는 순차 데이터 스트림의 현재 전송률(602b)은, 원격으로 생성 또는 소비되는 순차 데이터 스트림의 캐시된 전송률(602a)과 동등한 레벨에서 시작할 수 있다. 그러나, 특정한 시간 구간 이후에, 현재 전송률(602b)은 하락한다. 이러한 하락은, 예를 들어, 로컬 타겟 스토리지 장치(234)의 스루풋의 감소로 인한 것일 수 있다. 미리 정해진 수의 순차 데이터 스트림들이 이러한 하락을 경험할 때, 본 발명은 데이터 스트림을 캐시하여 스루풋을 증가시킨다.
도 7은 캐싱이 증가된 후에 원격으로 생성 또는 소비되는 순차 데이터 스트림의 전송률을 보여주는 그래프(700)이다. 도 6과 마찬가지로, 그래프(700)는 캐시된 전송률(602a) 및 현재 전송률(602b)을 보여준다. 본 발명의 실시 예는, 느린 전송률로 인해 캐시되지 않은 순차 데이터 스트림들의 수를 추적한다. 또한, 캐시되지 않은 순차 데이터 스트림들 각각의 캐시된 전송률이 추적된다.
앞서 언급된 바와 같이, 캐시되지 않은 순차 데이터 스트림의 현재 전송률은 대응하는 캐시된 전송률보다 낮아질 수 있다. 이러한 현상이 미리 정해진 수의 캐시되지 않은 순차 데이터 스트림들에서 발생할 때에, 본 발명의 실시 예는 캐시되지 않는 데이터 스트림들의 현재 전송률이 캐시된 전송률로 복원될 때까지, 캐시되지 않은 데이터 스트림들의 캐시를 시작한다. 구체적으로, 미리 정해진 수의 캐시되지 않은 순차 데이터 스트림들의 현재 전송률 각각이 대응하는 캐시된 전송률보다 낮아질 때, 캐시되지 않은 데이터 스트림들이 캐시되기 시작한다. 나머지 캐시되지 않은 순차 데이터 스트림들 각각의 현재 데이터 전송률이 캐시된 전송률로 복원될 때까지, 캐시되지 않은 데이터 스트림들이, 캐시된 전송률이 감소하는 순서에 따라, 하나씩 캐시된다.
예를 들어, 도 7에서, 순차 데이터 스트림(602a)의 현재 전송률은, 그래프(700)의 시작 구간에서, 캐시된 전송률(602a)보다 낮다. 현재 전송률의 감소가 미리 정해진 수의 캐시되지 않은 순차 데이터 스트림들에서 발생하면, 순차 데이터 스트림들은 캐시된 전송률이 감소하는 순서에 따라 하나씩 캐시되기 시작한다. 시간이 흐름에 따라, 순차 데이터 스트림의 현재 전송률(602b)은 캐시된 데이터 전송률(602a)로 복원된다. 캐시되지 않는 나머지 데이터 스트림들의 현재 전송률들이 대응하는 캐시된 전송률들로 복원될 때, 순차 데이터 스트림의 캐시 선택은 도 3에 도시된 방법으로 복원된다. 캐시되는 순차 데이터 스트림은 대응하는 현재 전송률에 관계없이 계속 캐시되어, 로컬 타겟 스토리지 장치(234) 및 캐시 장치(236)의 부하를 밸런싱할 수 있다.
본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위와 기술적 사상에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능하다. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100; 컴퓨터 시스템
102; 중앙 처리 장치
104; 시스템 메모리
106; 캐싱 장치
108; 로컬 타겟 저장 장치
110; 네트워크 인터페이스 카드
112; 캐싱 소프트웨어
114; 원격 저장 장치
200; 컴퓨터 시스템
202; 시스템 프로세서
204; ROM
206; 시스템 메모리
208; 프로세서 버스
210; 시스템 바이오스
212; 호스트 브릿지
214; PCI 로컬 버스
216; 네트워크 인터페이스 어댑터
218; 원격 서버
220; 그래픽 어댑터
222; 모니터
224; 로컬 PCI 컨트롤러
226; ISA 버스
228; ISA 브릿지
230; 입출력 컨트롤러
232; 디스크 컨트롤러
234; 로컬 타겟 스토리지 장치
236; 캐싱 장치

Claims (10)

  1. 입출력 데이터의 캐시를 필터링하는 방법에 있어서:
    입출력 전송을 수신하는 단계;
    상기 입출력 전송이 순차 데이터 스트림의 일부이고, 상기 순차 데이터 스트림의 일부로서 전송된 전체 데이터가 미리 정해진 문턱값보다 클 때, 상기 순차 데이터 스트림의 전송률을 계산하는 단계;
    상기 입출력 전송이 순차 데이터 스트림의 일부이고, 상기 순차 데이터 스트림의 일부로서 전송된 전체 데이터가 미리 정해진 문턱값보다 클 때, 상기 전송률이 목표 저장 장치의 스루풋(throughput)보다 큰지 판별하는 단계; 그리고
    상기 전송률이 상기 목표 저장 장치의 상기 스루풋보다 클 때 상기 입출력 전송을 캐시하고, 상기 전송률이 상기 목표 저장 장치의 상기 스루풋보다 크지 않을 때 상기 입출력 전송을 캐시하지 않는 단계를 포함하는 방법.
  2. 제1 항에 있어서,
    상기 전송률은 상기 순차 데이터 스트림의 일부로서 전송된 상기 전체 데이터를 상기 순차 데이터 스트림의 일부로서 전송된 상기 전체 데이터가 전송되는 데에 소모된 시간으로 나눈 결과에 기반하여 계산되는 방법.
  3. 제1 항에 있어서,
    상기 입출력 전송을 수신하기 전에 이전 입출력 전송을 수신하는 단계를 더 포함하고,
    상기 순차 데이터 스트림의 일부로서 전송된 상기 전체 데이터가 상기 미리 정해진 문턱값보다 적고, 상기 이전 입출력 전송은 상기 순차 데이터 스트림의 일부인 방법.
  4. 제3 항에 있어서,
    상기 순차 데이터 스트림의 상기 전송률에 관계 없이 상기 이전 입출력 전송을 캐시하는 단계를 더 포함하는 방법.
  5. 제1 항에 있어서,
    미리 정해진 수의 캐시되지 않는 순차 데이터 스트림들이 캐시된 전송률들보다 낮은 현재 전송률들을 갖는지 판별하는 단계를 더 포함하고,
    상기 캐시된 전송률은 상기 순차 데이터 스트림이 캐시되는 경우의 상기 순차 데이터 스트림의 전송률인 방법.
  6. 제5 항에 있어서,
    상기 미리 정해진 수의 캐시되지 않는 순차 데이터 스트림들이 상기 캐시된 전송률들보다 낮은 현재 전송률들을 가질 때, 상기 캐시되지 않는 순차 데이터 스트림들 중 선택된 순차 데이터 스트림을 캐시하는 단계를 더 포함하는 방법.
  7. 제6 항에 있어서,
    상기 캐시되지 않는 순차 데이터 스트림들은, 나머지 캐시되지 않는 순차 데이터 스트림들이 각각 대응하는 캐시된 전송률들로 복원될 때까지, 상기 캐시된 전송률들이 감소하는 순서에 따라 하나씩 선택되어 캐시되는 방법.
  8. 입출력 데이터의 캐시를 필터링하는 방법에 있어서:
    이전 입출력 전송을 수신하는 단계;
    상기 이전 입출력 전송이 순차 데이터 스트림의 일부이고, 상기 순차 데이터 스트림의 일부로서 전송된 전체 데이터가 미리 정해진 문턱값보다 크지 않을 때, 상기 순차 데이터 스트림의 전송률에 관계없이 상기 이전 입출력 전송을 캐시하는 단계;
    입출력 전송을 수신하는 단계;
    상기 이전 입출력 전송이 순차 데이터 스트림의 일부이고, 상기 순차 데이터 스트림의 일부로서 전송된 전체 데이터가 미리 정해진 문턱값보다 클 때, 상기 순차 데이터 스트림의 전송률을 계산하는 단계;
    상기 입출력 전송이 순차 데이터 스트림의 일부이고, 상기 순차 데이터 스트림의 일부로서 전송된 전체 데이터가 미리 정해진 문턱값보다 클 때, 상기 전송률이 목표 저장 장치의 스루풋(throughput)보다 큰지 판별하는 단계; 그리고
    상기 전송률이 상기 목표 저장 장치의 상기 스루풋보다 클 때 상기 입출력 전송을 캐시하고, 상기 전송률이 상기 목표 저장 장치의 상기 스루풋보다 크지 않을 때 상기 입출력 전송을 캐시하지 않는 단계를 포함하는 방법.
  9. 제8 항에 있어서,
    상기 전송률은 상기 순차 데이터 스트림의 일부로서 전송된 상기 전체 데이터를 상기 순차 데이터 스트림의 일부로서 전송된 상기 전체 데이터가 전송되는 데에 소모된 시간으로 나눈 결과에 기반하여 계산되는 방법.
  10. 제8 항에 있어서,
    미리 정해진 수의 캐시되지 않는 순차 데이터 스트림들이 캐시된 전송률들보다 낮은 현재 전송률들을 갖는지 판별하는 단계를 더 포함하고,
    상기 캐시된 전송률은 상기 순차 데이터 스트림이 캐시되는 경우의 상기 순차 데이터 스트림의 전송률인 방법.
KR1020140070252A 2013-08-05 2014-06-10 데이터 생성 또는 소비에 기반하여 캐시된 입출력 데이터를 필터링하는 방법 KR102264544B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/959,713 US9026693B2 (en) 2013-08-05 2013-08-05 Method for filtering cached input/output data based on data generation/consumption
US13/959,713 2013-08-05

Publications (2)

Publication Number Publication Date
KR20150016886A KR20150016886A (ko) 2015-02-13
KR102264544B1 true KR102264544B1 (ko) 2021-06-15

Family

ID=52428732

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140070252A KR102264544B1 (ko) 2013-08-05 2014-06-10 데이터 생성 또는 소비에 기반하여 캐시된 입출력 데이터를 필터링하는 방법

Country Status (2)

Country Link
US (1) US9026693B2 (ko)
KR (1) KR102264544B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9489149B2 (en) * 2014-06-16 2016-11-08 Netapp, Inc. Methods and systems for using a write cache in a storage system
KR102295223B1 (ko) * 2015-01-13 2021-09-01 삼성전자주식회사 속도 모드 관리자를 포함하는 저장 장치 및 사용자 장치
US10791162B2 (en) * 2015-12-31 2020-09-29 Hughes Network Systems, Llc Maximizing quality of service for QoS adaptive video streaming via dynamic application-layer throughput rate shaping

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7406548B2 (en) * 2004-03-26 2008-07-29 Hewlett-Packard Development Company, L.P. Systems and methods for responding to a data transfer
US7246181B2 (en) * 2004-09-14 2007-07-17 Hewlett-Packard Development Company, L.P. Device and method for identifying a communication interface that performs an operating parameter closer to a desired performance level than another communication interface performs the operating parameter
US7865658B2 (en) * 2007-12-31 2011-01-04 Sandisk Il Ltd. Method and system for balancing host write operations and cache flushing
KR101657196B1 (ko) * 2009-12-01 2016-09-19 밴트릭스 코오퍼레이션 캐시를 이용한 효율적인 미디어 배송 시스템 및 방법

Also Published As

Publication number Publication date
KR20150016886A (ko) 2015-02-13
US9026693B2 (en) 2015-05-05
US20150039789A1 (en) 2015-02-05

Similar Documents

Publication Publication Date Title
JP5270801B2 (ja) デバイス・アダプタを介して、データをキャッシュから複数のストレージ・デバイスの各々にデステージするための方法、システム及びコンピュータ・プログラム
CN103019962B (zh) 数据缓存处理方法、装置以及系统
US7769952B2 (en) Storage system for controlling disk cache
US20030212865A1 (en) Method and apparatus for flushing write cache data
US11392565B1 (en) Optimizing data compression in a storage system
KR101541132B1 (ko) 크로스 바운더리 하이브리드 및 다이나믹 저장 장치 및 메모리 상황 인식 캐시 시스템
US20180364922A1 (en) Dynamic caching mode based on utilization of mirroring channels
US11151035B2 (en) Cache hit ratios for selected volumes within a storage system
CN108205478B (zh) 智能序列式小型计算机系统接口物理层功率管理
WO2015167490A1 (en) Storage system bandwidth adjustment
US10628241B2 (en) Determining when to send message to computing node to process items by training a machine learning module
KR102264544B1 (ko) 데이터 생성 또는 소비에 기반하여 캐시된 입출력 데이터를 필터링하는 방법
US10152242B1 (en) Host based hints
US20170220476A1 (en) Systems and Methods for Data Caching in Storage Array Systems
US11163698B2 (en) Cache hit ratios for selected volumes using synchronous I/O
US11315028B2 (en) Method and apparatus for increasing the accuracy of predicting future IO operations on a storage system
US9274996B2 (en) Method for filtering cached input/output data based on data generation/consumption
CN108027710B (zh) 在软件定义的存储系统中进行高速缓存的方法和装置
US11169919B2 (en) Cache preference for selected volumes within a storage system
US11237730B2 (en) Favored cache status for selected volumes within a storage system
US11620226B2 (en) Non-favored volume cache starvation prevention
US11176052B2 (en) Variable cache status for selected volumes within a storage system
US9952969B1 (en) Managing data storage

Legal Events

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