KR102264544B1 - 데이터 생성 또는 소비에 기반하여 캐시된 입출력 데이터를 필터링하는 방법 - Google Patents
데이터 생성 또는 소비에 기반하여 캐시된 입출력 데이터를 필터링하는 방법 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/30—Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Information Transfer Between Computers (AREA)
Abstract
본 발명은 입출력 데이터의 캐시를 필터링하는 방법에 관한 것이다. 본 발명의 방법은, 입출력 전송을 수신하는 단계, 입출력 전송이 순차 데이터 스트림의 일부이고 순차 데이터 스트림의 일부로서 전송된 전체 데이터가 미리 정해진 문턱값보다 클 때, 순차 데이터 스트림의 전송률을 계산하는 단계, 입출력 전송이 순차 데이터 스트림의 일부이고 순차 데이터 스트림의 일부로서 전송된 전체 데이터가 미리 정해진 문턱값보다 클 때, 전송률이 목표 저장 장치의 스루풋(throughput)보다 큰지 판별하는 단계, 그리고 전송률이 상기 목표 저장 장치의 스루풋보다 클 때 입출력 전송을 캐시하고, 전송률이 상기 목표 저장 장치의 스루풋보다 크지 않을 때 입출력 전송을 캐시하지 않는 단계로 구성된다.
Description
본 발명은 입출력 캐시에 관한 것으로, 더 상세하게는 캐시되는 데이터를 데이터 생성 또는 소비에 기반하여 필터링하는 것에 관한 발명이다.
캐싱(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은 캐싱 기능이 향상된 후, 원격으로 생성 또는 소비되는 순차 데이터 스트림의 전송률을 보여주는 그래프이다.
도 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; 캐싱 장치
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)
- 입출력 데이터의 캐시를 필터링하는 방법에 있어서:
입출력 전송을 수신하는 단계;
상기 입출력 전송이 순차 데이터 스트림의 일부이고, 상기 순차 데이터 스트림의 일부로서 전송된 전체 데이터가 미리 정해진 문턱값보다 클 때, 상기 순차 데이터 스트림의 전송률을 계산하는 단계;
상기 입출력 전송이 순차 데이터 스트림의 일부이고, 상기 순차 데이터 스트림의 일부로서 전송된 전체 데이터가 미리 정해진 문턱값보다 클 때, 상기 전송률이 목표 저장 장치의 스루풋(throughput)보다 큰지 판별하는 단계; 그리고
상기 전송률이 상기 목표 저장 장치의 상기 스루풋보다 클 때 상기 입출력 전송을 캐시하고, 상기 전송률이 상기 목표 저장 장치의 상기 스루풋보다 크지 않을 때 상기 입출력 전송을 캐시하지 않는 단계를 포함하는 방법. - 제1 항에 있어서,
상기 전송률은 상기 순차 데이터 스트림의 일부로서 전송된 상기 전체 데이터를 상기 순차 데이터 스트림의 일부로서 전송된 상기 전체 데이터가 전송되는 데에 소모된 시간으로 나눈 결과에 기반하여 계산되는 방법. - 제1 항에 있어서,
상기 입출력 전송을 수신하기 전에 이전 입출력 전송을 수신하는 단계를 더 포함하고,
상기 순차 데이터 스트림의 일부로서 전송된 상기 전체 데이터가 상기 미리 정해진 문턱값보다 적고, 상기 이전 입출력 전송은 상기 순차 데이터 스트림의 일부인 방법. - 제3 항에 있어서,
상기 순차 데이터 스트림의 상기 전송률에 관계 없이 상기 이전 입출력 전송을 캐시하는 단계를 더 포함하는 방법. - 제1 항에 있어서,
미리 정해진 수의 캐시되지 않는 순차 데이터 스트림들이 캐시된 전송률들보다 낮은 현재 전송률들을 갖는지 판별하는 단계를 더 포함하고,
상기 캐시된 전송률은 상기 순차 데이터 스트림이 캐시되는 경우의 상기 순차 데이터 스트림의 전송률인 방법. - 제5 항에 있어서,
상기 미리 정해진 수의 캐시되지 않는 순차 데이터 스트림들이 상기 캐시된 전송률들보다 낮은 현재 전송률들을 가질 때, 상기 캐시되지 않는 순차 데이터 스트림들 중 선택된 순차 데이터 스트림을 캐시하는 단계를 더 포함하는 방법. - 제6 항에 있어서,
상기 캐시되지 않는 순차 데이터 스트림들은, 나머지 캐시되지 않는 순차 데이터 스트림들이 각각 대응하는 캐시된 전송률들로 복원될 때까지, 상기 캐시된 전송률들이 감소하는 순서에 따라 하나씩 선택되어 캐시되는 방법. - 입출력 데이터의 캐시를 필터링하는 방법에 있어서:
이전 입출력 전송을 수신하는 단계;
상기 이전 입출력 전송이 순차 데이터 스트림의 일부이고, 상기 순차 데이터 스트림의 일부로서 전송된 전체 데이터가 미리 정해진 문턱값보다 크지 않을 때, 상기 순차 데이터 스트림의 전송률에 관계없이 상기 이전 입출력 전송을 캐시하는 단계;
입출력 전송을 수신하는 단계;
상기 이전 입출력 전송이 순차 데이터 스트림의 일부이고, 상기 순차 데이터 스트림의 일부로서 전송된 전체 데이터가 미리 정해진 문턱값보다 클 때, 상기 순차 데이터 스트림의 전송률을 계산하는 단계;
상기 입출력 전송이 순차 데이터 스트림의 일부이고, 상기 순차 데이터 스트림의 일부로서 전송된 전체 데이터가 미리 정해진 문턱값보다 클 때, 상기 전송률이 목표 저장 장치의 스루풋(throughput)보다 큰지 판별하는 단계; 그리고
상기 전송률이 상기 목표 저장 장치의 상기 스루풋보다 클 때 상기 입출력 전송을 캐시하고, 상기 전송률이 상기 목표 저장 장치의 상기 스루풋보다 크지 않을 때 상기 입출력 전송을 캐시하지 않는 단계를 포함하는 방법. - 제8 항에 있어서,
상기 전송률은 상기 순차 데이터 스트림의 일부로서 전송된 상기 전체 데이터를 상기 순차 데이터 스트림의 일부로서 전송된 상기 전체 데이터가 전송되는 데에 소모된 시간으로 나눈 결과에 기반하여 계산되는 방법. - 제8 항에 있어서,
미리 정해진 수의 캐시되지 않는 순차 데이터 스트림들이 캐시된 전송률들보다 낮은 현재 전송률들을 갖는지 판별하는 단계를 더 포함하고,
상기 캐시된 전송률은 상기 순차 데이터 스트림이 캐시되는 경우의 상기 순차 데이터 스트림의 전송률인 방법.
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)
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)
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 |
US8516074B2 (en) * | 2009-12-01 | 2013-08-20 | Vantrix Corporation | System and methods for efficient media delivery using cache |
-
2013
- 2013-08-05 US US13/959,713 patent/US9026693B2/en active Active
-
2014
- 2014-06-10 KR KR1020140070252A patent/KR102264544B1/ko active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR20150016886A (ko) | 2015-02-13 |
US20150039789A1 (en) | 2015-02-05 |
US9026693B2 (en) | 2015-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5270801B2 (ja) | デバイス・アダプタを介して、データをキャッシュから複数のストレージ・デバイスの各々にデステージするための方法、システム及びコンピュータ・プログラム | |
CN103019962B (zh) | 数据缓存处理方法、装置以及系统 | |
US7769952B2 (en) | Storage system for controlling disk cache | |
CN101038532B (zh) | 数据存储装置及其方法 | |
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 | |
US11315028B2 (en) | Method and apparatus for increasing the accuracy of predicting future IO operations on a storage system | |
US11163698B2 (en) | Cache hit ratios for selected volumes using synchronous I/O | |
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 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |