KR20110000727A - 저장부로 향하는 입/출력(i/o) 요청을 큐잉할지 여부를 결정하기 위한 우선순위의 이용 - Google Patents

저장부로 향하는 입/출력(i/o) 요청을 큐잉할지 여부를 결정하기 위한 우선순위의 이용 Download PDF

Info

Publication number
KR20110000727A
KR20110000727A KR1020107018071A KR20107018071A KR20110000727A KR 20110000727 A KR20110000727 A KR 20110000727A KR 1020107018071 A KR1020107018071 A KR 1020107018071A KR 20107018071 A KR20107018071 A KR 20107018071A KR 20110000727 A KR20110000727 A KR 20110000727A
Authority
KR
South Korea
Prior art keywords
priority
requests
storage
specified
threshold
Prior art date
Application number
KR1020107018071A
Other languages
English (en)
Other versions
KR101242954B1 (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 KR20110000727A publication Critical patent/KR20110000727A/ko
Application granted granted Critical
Publication of KR101242954B1 publication Critical patent/KR101242954B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)
  • Small-Scale Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 저장부로 향하는 입/출력(I/O) 요청을 큐잉할지 여부를 결정하기 위해 우선순위를 이용하는 방법, 시스템, 제조 물품 및 컴퓨터 프로그램을 제공한다. 저장부로 향하는 동시발생 요청들의 최대 개수가 측정된다. 측정된 동시발생 요청의 최대 개수는 명시된 우선순위에 대한 문턱값을 결정하는 데에 사용된다. 저장부로 향하는 명시된 우선순위의 후속 요청들이 명시된 우선순위에 대한 현재 요청들의 현재 개수가 명시된 우선순위에 대해 결정된 문턱값을 초과하지 않는다는 결정에 따라서 진행하도록 허가된다. 명시된 우선순위보다 높은 우선순위를 가지고 저장부로 향하는 후속 요청들이 진행하도록 허가된다. 명시된 우선순위를 가지고 저장부로 향하는 후속 요청들은 명시된 우선순위에 대한 동시발생 요청들의 현재 개수가 전체 문턱값을 초과한다는 결정에 따라서 큐 내에서 큐잉된다.

Description

저장부로 향하는 입/출력(I/O) 요청을 큐잉할지 여부를 결정하기 위한 우선순위의 이용{USING PRIORITY TO DETERMINE WHETHER TO QUEUE AN INPUT/OUTPUT(I/O) REQUEST DIRECTED TO STORAGE}
본 발명은 저장부로 향하는 입/출력(I/O) 요청을 큐잉할지 여부를 결정하기 위해 우선순위를 이용하는 방법, 시스템 및 제조 물품에 관한 것이다.
저장 프로토콜은, I/O 요청을 처리하는 컨트롤러 또는 서버가 I/O 요청 방법을 결정할 때 우선순위를 이용할 수 있도록, 애플리케이션 프로그램이 저장 디바이스를 위해 I/O 요청에 대한 우선순위를 할당하는 특정한 조건일 수 있다. 소형 컴퓨터 시스템 인터페이스(SCSI)에 대한 최근의 개선은 호스트 애플리케이션이 우선순위 값을 통해 I/O 전송시에 태스크의 상대적인 스케줄링 중요도를 명시하는 것을 가능케 한다. 서로 다른 태스크 우선순위로 태스크의 컬렉션을 프로세싱하는 것은, 동일한 태스크들의 컬렉션이 동일한 조건 하에서 이루어지지만 모든 태스크 우선순위가 동일한 경우에, 높은 우선순위를 갖는 태스크들의 서브세트로 하여금 동일한 서브세트 보다 전체적으로 더 빨리 상태(status)를 반환하게 해야만 한다.
당업계에는 공통의 저장부로 향하는 I/O 요청들의 처리를 향상시키기 위해 I/O 요청들로 할당되는 우선순위를 이용하는 개선된 기술이 필요하다.
본 발명은 저장부로 향하는 입/출력(I/O) 요청을 큐잉할지 여부를 결정하기 위해 우선순위를 이용하는 방법, 시스템, 제조 물품 및 컴퓨터 프로그램을 제공한다. 저장부로 향하는 동시발생 요청들의 최대 개수가 측정된다. 측정된 동시발생 요청의 최대 개수는 명시된 우선순위에 대한 문턱값을 결정하는 데에 사용된다. 저장부로 향하는 명시된 우선순위의 후속 요청들이 명시된 우선순위에 대한 현재 요청들의 현재 개수가 명시된 우선순위에 대해 결정된 문턱값을 초과하지 않는다는 결정에 따라서 진행하도록 허가된다. 명시된 우선순위보다 높은 우선순위를 가지고 저장부로 향하는 후속 요청들이 진행하도록 허가된다. 명시된 우선순위를 가지고 저장부로 향하는 후속 요청들은 명시된 우선순위에 대한 동시발생 요청들의 현재 개수가 전체 문턱값을 초과한다는 결정에 따라서 큐 내에서 큐잉된다.
다른 실시예에서, 명시된 우선순위의 요청들을 큐잉하도록 하는 표시 및 명시된 우선순위보다 높은 적어도 하나의 우선순위의 요청들을 큐잉하지 않도록 하는 표시가 생성된다. 저장부로 향하는 우선순위의 요청이 수신된다. 수신된 요청의 우선순위를 갖는 요청들을 큐잉하도록 하는 표시가 존재하지 않는다는 판정에 따라서, 요청이 저장부로 전송된다. 수신된 요청의 우선순위를 갖는 요청들을 큐잉하도록 하는 표시의 판정 및 수신된 요청의 우선순위를 갖는 동시발생된 현재 요청들의 개수가 수신된 요청의 우선순위에 대한 문턱값을 초과한다는 판정에 따라서, 큐 내의 수신된 요청이 큐잉된다.
다른 실시예에서, 수신된 우선순위를 갖는 요청들을 큐잉하도록 하는 표시의 판정 및 수신된 요청의 우선순위를 갖는 동시발생된 요청들의 현재 개수가 수신된 요청의 우선순위의 문턱값을 초과하지 않는다는 결정에 따라서, 수신된 요청이 저장부로 전송된다.
다른 실시예에서, 이전의 측정 기간 동안 수신된 가장 높은 우선순위 요청에 대한 결정이 이루어진다. 결정된 가장 높은 우선순위보다 낮은 각 우선순위에 대한 요청들을 큐잉하도록 하는 표시 및 결정된 가장 높은 우선순위보다 높은 각 우선순위에 대한 요청들을 큐잉하지 않도록 하는 표시가 생성된다. 동시발생 요청들의 측정된 최대 개수는 결정된 가장 높은 우선순위보다 낮은 각 우선순위에 대한 문턱값을 결정하는 데에 사용된다.
다른 실시예에서, 동시발생 요청들의 최대 개수를 측정하는 단계는 각 우선순위에 대한 동시발생 요청들의 최대 개수를 측정하는 단계를 포함한다.
다른 실시예에서, 동시발생 요청들의 최대 개수는 측정 기간 동안 측정된다. 각 우선순위에 대한 동시발생 요청들의 최대 개수를 측정하는 단계는, 측정 기간 동안 우선순위들 중 하나의 우선순위에 대한 요청 수신에 응답하여 해당 우선순위에 대한 동시발생 요청들의 개수를 증가시키는 단계와, 측정 기간 동안 우선순위들 중 하나의 우선순위에 대한 요청 수신에 따라서 해당 우선순위의 동시발생 요청들의 개수를 감소시키는 단계를 포함한다. 각 우선순위에 대한 동시발생 요청들의 최대 개수는 측정 기간 동안 측정된 각 우선순위에 대한 동시발생 요청들의 최대 개수를 포함한다.
다른 실시예에서, 명시된 우선순위에 대한 문턱값을 결정하도록 동시발생 요청들의 측정된 최대 개수를 사용하는 단계는 요청들이 큐될 우선순위에 대한 문턱값을 결정하도록 우선순위에 대한 동시발생 요청들의 최대 개수를 사용하는 단계를 포함한다.
다른 실시예에서, 우선순위 문턱값은 각 명시된 우선순위에 대해 허용되는 최소 개수의 요청에 기초하여 추가로 결정된다.
다른 실시예에서, 각 우선순위에 대한 동시발생 요청의 최대 개수는 완료된 측정 기간 동안 측정된다. 큐잉될 우선순위에 대한 문턱값은 각 완료된 측정 기간 후에 조정된다.
다른 실시예에서, 명시된 우선순위에 대한 문턱값을 결정하도록 동시발생 요청들의 측정된 최대 개수를 사용하는 단계는 적어도 두 개의 우선순위에 대해 관찰된 동시발생 요청의 최대 개수와 적어도 두 개의 우선순위에 대해 허용된 요청의 최소 개수 중 최소값에 기초하여 각 우선순위 문턱값을 결정하는 단계를 포함한다.
다른 실시예에서, 명시된 우선순위의 요청이 완료되었다는 승인이 수신된다. 승인의 수신에 응답하여, 명시된 우선순위의 동시발생 요청들의 현재 개수가 명시된 우선순위 문턱값 아래에 있는지 여부가 결정된다. 명시된 우선순위의 동시발생 요청들의 현재 개수가 명시된 우선순위 문턱값 아래에 있다는 결정에 응답하여, 명시된 우선순위의 적어도 하나의 큐잉된 요청이 프로세싱된다.
도 1은 컴퓨팅 환경의 실시예를 도시한 도면.
도 2는 I/O 요청을 관리하는 관리 정보의 실시예를 도시한 도면.
도 3은 명시된 우선순위에 대한 I/O 요청들을 큐잉하도록 표시되었는지 여부를 결정하는 동작의 실시예를 도시한 도면.
도 4는 수신된 I/O 요청을 큐잉할지 여부를 결정하는 동작의 실시예를 도시한 도면.
도 5는 I/O 요청이 완료되었다는 승인을 프로세싱하는 동작의 실시예를 도시한 도면.
본 발명은 도면에 도시된 바와 같은 바람직한 실시예를 참조로 하여 오직 예시적으로만 기술될 것이다.
도 1은 본 발명의 바람직한 실시예의 측면들이 구현될 수 있는 컴퓨팅 환경을 도시한다. 하나 이상의 호스트(2) 각각이 서버(8)를 통해 저장부(6)로 전달되는 입력/출력(I/O) 요청을 생성하는 하나 이상의 애플리케이션(4)을 포함한다. 데이터베이스 애플리케이션, 비즈니스 애플리케이션 등과 같은 애플리케이션(4)은 서버(8)로 전달되는 I/O 요청에 우선순위 레벨을 할당할 수 있다. 우선순위는 우선순위 스킴의 일부인 숫자 또는 그외의 우선순위 값을 명시할 수 있다. 이러한 방식으로, 서로 다른 호스트(2)들 상의 서로 다른 애플리케이션(4)들이 산업 표준의 일부로서 명시될 수 있는 동일한 우선순위 지정 프로토콜을 사용할 수 있다.
호스트(2)들은 로컬 영역 네트워크(LAN), 저장 영역 네트워크(SAN), 광역 네트워크(WAN), 무선 네트워크 등과 같은 네트워크(10)를 통해 서버(8)와 통신할 수 있다. 이와 달리, 호스트(2)는 주변 장치 상호접속(PCI; Peripheral Component Interconnect) 버스와 같은 버스 인터페이스 상에서 서버(8)와 통신할 수 있다. 호스트(2), 저장부(6) 및 서버(8)는 개별적인 머신들 내에 내장될 수 있거나 또는 하나 이상의 버스 인터페이스를 통해 접속하는 동일한 머신 내에 포함될 수도 있다. 서버(8)는 저장 컨트롤러, 서버, 엔터프라이즈 저장 서버 등과 같이 당업계에 알려져 있는 적절한 저장 관리 시스템을 포함할 수 있다. 저장부(6)는 DASD(Direct Access Storage Device), JBOD(Just a Bunch of Disks), RAID(a Redundant Array of Independent Disks), 가상화 디바이스, 테이프 저장부, 광학 디스크 저장부, 또는 당업계에서 알려진 다른 임의의 저장 시스템과 같은, 당업계에 알려진 적절한 저장 시스템을 포함할 수 있다. 호스트(2)는 워크스테이션, 데스크톱 컴퓨터, 서버, 메인프레임, 핸드헬드 컴퓨터, 텔레포니 디바이스 등과 같이 당업계에 알려진 임의의 적절한 컴퓨팅 디바이스를 포함할 수 있다. 호스트(2)들은 I/O 요청을 생성하는 애플리케이션 프로그램을 포함한다.
서버(6)는 하나 이상의 휘발성 및/또는 비휘발성 메모리 디바이스로 구성되는 메모리(14) 및 프로세서(12)(또는 복수의 프로세서들)를 포함한다. 메모리는 저장부(6)로 향하는 I/O 요청 및 데이터 업데이트를 버퍼링하기 위한 캐시(16), 저장부(6)로 향하는 호스트(2)로부터의 I/O 요청을 관리하는 I/O 매니저 프로그램(18), 중간 우선순위 큐(queue)(20), 낮은 우선순위 큐(22) 및 큐(20, 22) 내의 I/O 요청들을 큐잉할지 또는 요청들이 진행하도록 허용할지 여부를 결정하기 위해 I/O 매니저(18)에 의해서 사용되는 I/O 관리 정보(24)를 포함한다.
I/O 매니저(18)는 프로세서(12)에 의해 실행되는 메모리(14)로 로딩되는 소프트웨어 내에서 구현될 수 있다. 이와 달리, I/O 매니저(18)는 서버(8) 내의 하드웨어 칩셋 내에서 구현될 수 있다.
도 2는 관리 정보(24)의 실시예를 도시하며, 이는 현재 관리 주기의 시간 인터벌 동안 측정되는 각 우선순위 레벨에 대한 미해결 I/O 요청의 최대 동시발생(concurrent) 개수를 포함할 수 있다. 따라서, 관리 주기 시간 인터벌 동안, 각 우선순위 레벨(예컨대, 높은 우선순위, 중간 우선순위, 낮은 우선순위)에 대해 서로 다른 시간에서 미해결된 동시발생 요청의 개수가 기록되어, 관리 주기의 종료시에, 해당 관리 주기 동안의 최대 동시발생 요청의 개수가 각 우선순위 레벨에 대해 결정되도록 할 수 있다. 동시발생 요청의 개수는 완료되지 않은, 즉 디스크 작업이 미해결되었거나 큐잉되고 있는 수신된 I/O 요청의 개수를 포함한다. 낮은 우선순위 큐 표시자(52)는, 관리 시간 인터벌 동안 수신된 동시발생한 미해결된 낮은 우선순위 요청(56)의 현재 개수가 동시발생한 낮은 우선순위 I/O 요청의 최대 개수의 낮은 우선순위 문턱값(54)을 초과할 때, I/O 매니저(18)가 관리 시간 인터벌 동안 수신된 낮은 우선순위 요청을 큐잉해야 하는지 여부를 나타낸다. 중간 우선순위 큐 표시자(58)는, 관리 시간 인터벌 동안 수신된 동시발생한 미해결된 중간 우선순위 요청(62)의 현재 개수가 I/O 요청의 중간 우선순위 문턱값(60)을 초과할 때, I/O 매니저(18)가 관리 시간 인터벌 동안 수신된 중간 우선순위 요청을 큐잉해야 하는지 여부를 나타낸다. 다른 실시예에서, 다른 정보가 관리 정보(24)에 보관될 수도 있다.
일 실시예에서, 낮은 우선순위, 중간 우선순위 및 높은 우선순위의 지정은 I/O 매니저(18)에 의해 해석되는 바와 같이 호스트 애플리케이션(4)에 의해 설정되는 단일 우선순위 값 또는 우선순위 값들의 범위에 부합할 수 있다. 예를 들어, I/O 매니저(18)는 숫자 우선순위 값들을 하나의 낮은, 중간 또는 높은 우선순위 분류로 맵핑할 수 있다. 다른 실시예에서, 추가의 우선순위 레벨들에 대해 요청을 큐잉하도록 하나 또는 두 개보다 많은 우선순위 큐가 존재할 수 있다.
일 실시예에서, 도 2의 정보와 문턱값들은 디스크 단위로 보관될 수 있다. 따라서, 만약 저장부(6)가 복수의 상호접속된 하드 디스크 드라이브를 포함하면, 멀티-디스크 저장부에 적용되는 문턱값을 결정하기 위해서 도 2의 문턱값들에 디스크의 개수가 곱해질 것이다.
도 3은 가장 최근에 완료된 관리 시간 인터벌 동안 측정된 동시발생 I/O 요청(즉, 낮은 우선순위, 중간 우선순위 및 높은 우선순위)의 최대 개수에 기초하여 I/O 요청의 큐잉이 필요한 정도를 결정하기 위해 매 관리 시간 인터벌마다 I/O 관리 정보(24)를 업데이트하도록 I/O 매니저(18)에 의해 수행되는 동작의 실시예를 도시한다. (블록(100)에서) I/O 프로세싱을 개시하면, (블록(102)에서) I/O 매니저(18)가 소정의 기간, 예컨대 수 초 후에 만료되도록 설정된 관리 시간 인터벌을 개시하며, 모든 큐 표시자(52, 58)를 클리어한다. (블록(104)에서) 시간 인터벌이 만료되면, (블록(106)에서) I/O 매니저(18)는 이전에 완료된 관리 시간 인터벌 동안의 각 우선순위(예컨대, 낮은 우선순위, 중간 우선순위 및 높은 우선순위)에 대한 하이 워터마크(high water mark)(즉, 최대 동시발생 요청 개수) 및 가장 높은 우선순위(P) 요청을 포함하는 인터벌 데이터를 기록한다. 관리 시간 주기 동안, I/O 매니저(18)는 임의의 우선순위의 새로운 요청이 수신되었을 때 동시발생 I/O 요청의 총 개수를 증가시키고 I/O 요청이 완료되었을 때 동시발생 I/O 요청의 총 개수를 감소시킨다. 관리 시간 인터벌 동안의 동시발생 I/O 요청의 개수는 시간 주기 동안 미해결된 I/O 요청의 최대 개수의 하이 워터마크이다.
(블록(108)에서) I/O 매니저가 마지막 관리 인터벌 동안 수신된 최대 우선순위 요청(P)과 동일하거나 그보다 더 높은 우선순위를 갖는 임의의 큐에 대해 큐 표시자(52, 58)를 클리어한다. (블록(110)에서) 최대 우선순위 요청(P)보다 낮은 우선순위의 큐 표시자(52, 58)는 큐잉을 나타내도록 설정된다. (블록(112)에서) 표시자가 설정된 각 큐에 대해서, I/O 매니저(18)는 마지막 관리 인터벌 동안 서로 다른 우선순위들에 대해서 수신된 최대 동시발생 요청에 기초하여 동시발생 허용 요청에 대한 문턱값(54, 60)을 조정한다. 아래에서 기술되는 식(1) 및 (2)는 낮은 우선순위 문턱값(54)과 중간 우선순위 문턱값(60)을 조정하는 실시예를 제공한다. 큐잉될 우선순위들에 대한 문턱값을 조정한 후에, (블록(114)에서) I/O 매니저(18)는 다음 관리 인터벌의 완료를 기다리기 위해 블록(104)으로 다시 진행함으로써 동작의 추가 반복을 개시한다.
도 3의 동작에서, I/O 매니저(18)는 시간 인터벌의 종료 시에 우선순위 레벨들에 대한 I/O 요청들을 큐잉할지 또는 큐잉을 중단하고 이전에 큐잉된 임의의 I/O 요청들의 프로세싱을 완료할지 여부를 결정한다. 또한, I/O 매니저는 이전의 기간 동안 각 우선순위 레벨에 대해 수신된 요청들의 최대 개수에 기초하여 다음 측정 기간 동안 큐잉될 각 우선순위 레벨에 대한 큐잉 문턱값을 조정한다. 큐잉 문터값을 조정하기 위해서, I/O 매니저(18)는 아래에 기술된 바와 같이 각 우선순위 레벨에 대해 허용된 요청의 최소 개수를 추가로 고려할 수 있다. 도 3이 낮은 우선순위와 중간 우선순위에 대한 큐잉을 허용할지 여부만을 결정하는 것으로 도시하고 있으나, 이러한 결정과 큐 표시자는 두 개보다 많은 우선순위 레벨에 대해서도 제공될 수 있다.
도 4는 관리 시간 인터벌 동안의 I/O 요청을 프로세싱하기 위해 I/O 매니저(18)에 의해 수행되는 동작의 실시예를 도시한다. (블록(150)에서) 명시된 우선순위(예로서, 낮은 우선순위, 중간 우선순위 및 높은 우선순위)의 I/O 요청을 수신하면, I/O 관리자(18)는 (블록(152)에서) 명시된 우선순위(56) 또는 우선순위(62) 또는 우선순위(64)에 대한 요청의 개수를 증가시킨다. 만약 (블록(154)에서) 명시된 우선순위가 높은 우선순위이면, I/O 요청이 (블록(156)에서) 진행하도록 허용된다. 만약 (블록(154)에서) 명시된 우선순위가 높은 우선순위가 아니면, 예컨대, 낮은 우선순위이거나 중간 우선순위이고 (블록(158)에서) 우선순위 큐 표시자(52) 또는 표시자(58)가 명시된 우선순위(낮은 우선순위, 중간 우선순위)에 대해 설정되지 않았으면(큐잉하지 말 것을 나타냄), 제어는 블록(156)으로 진행하여 I/O 요청이 진행하도록 허용한다. 만약 (블록(158)에서) 우선순위 큐 표시자(52) 또는 표시자(58)가 설정되었고(수신된 I/O 요청에 대해 큐잉할 것을 나타냄), (블록(160)에서) 명시된 우선순위(56) 또는 우선순위(62)의 미해결된 동시발생 요청의 개수가 명시된 우선순위 문턱값(54) 또는 문턱값(60)을 초과하면, (블록(162)에서) 수신된 I/O 요청이 명시된 우선순위 큐(20) 또는 큐(22)에서 큐잉된다. 그렇지 않고, (블록(160)에서) 명시된 우선순위(56) 또는 우선순위(62)의 미해결된 동시발생 요청의 개수가 명시된 우선순위 문턱값(54) 또는 문턱값(60)을 초과하지 않으면, I/O 요청이 진행하도록 허용된다. 우선순위 레벨에 대한 동시발생 I/O 요청은 완료되지 않았거나 우선순위 레벨 큐(20, 22) 내에서 큐잉되는 수신된 I/O 요청의 개수를 포함한다.
도 5는 우선순위의 I/O 요청이 저장부(6)에 대해 완료되었다는 승인(acknowledgement)을 프로세싱하기 위해 I/O 매니저(18)에 의해 수행되는 동작의 실시예를 도시한다. (블록(200)에서) 명시된 우선순위의 요청의 완료에 대한 승인을 수신하면, I/O 매니저(18)는 (블록(202)에서) 완료된 요청의 명시된 우선순위에 대한 동시발생 요청의 개수를 감소시킨다. I/O 매니저(18)는 또한 (블록(204)에서) 명시된 우선순위의 동시발생 요청의 현재 개수가 명시된 우선순위 문턱값 아래에 있는지에 대한 판단에 응답하여 큐잉된 요청을 프로세싱할 수 있다. 큐잉된 요청은 우선순위 레벨에 대한 동시발생 요청의 명시된 우선순위 문턱값에 다시 도달할 때까지 프로세싱될 수 있다.
일 실시예에서, 가장 높은 우선순위 레벨의 요청은 항상 진행하도록 허용되고, 낮은 우선순위 또는 중간 우선순위 요청과 이러한 요청에 대한 큐잉 문턱값을 큐잉할지 여부에 대한 결정이 이루어진다. 다른 실시예에서, 높은 우선순위 요청 또한 디스크 서비스를 수신할 수 있다. 또한, 두 개보다 많은 우선순위에 대한 추가적인 우선순위 레벨 큐가 존재할 수 있다.
일 실시예에서, 낮은 우선순위(54)와 중간 우선순위(60) 문턱값을 결정하기 위해, 아래의 수학식(1) 및 (2)이 이용될 수 있다:
Figure pct00001
식(1) 및 (2)에서, T_h, T_m 및 T_l은 스타베이션(starvation), 즉 낮은 우선순위의 요청이 프로세싱되지 않는 상황을 방지하기 위해 각각 높은 우선순위, 중간 우선순위 및 낮은 우선순위에 대해 허용되는 동시발생 요청의 최소 개수를 포함한다. 이러한 동작 타겟 위의 동시발생 중간 우선순위 요청 낮은 우선순위 요청은 현재 존재하는 조건 하에서 큐잉될 수 있다. 그러나, 각 유형의 적어도 최소 개수의 동시발생 요청이 허용된다. 이러한 실시예의 예시에서, 디스크 단위로 표현하였을 때, T_h, T_m 및 T_l는 각각 2.5, 1.0 및 0.5의 값을 가질 수 있다. HWM_h은 이전의 관리 기간 동안 측정된 높은 우선순위 요청의 하이 워터마크를 포함하며, 이것은 이전의 관리 기간 동안 관찰된 높은 우선순위 동시발생 요청의 최대 개수를 포함한다. 유사하게, HWM_h 및 HWM_m은 각각 이전의 관리 주기 동안 측정된 중간 및 낮은 우선순위 요청의 하이 워터마크를 포함하며, 이는 이전의 관리 주기 동안 관찰된 중간 및 낮은 동시발생 요청의 최대 개수를 포함한다.
식(1)에서 계산되는 양 U_hm은 높은 우선순위와 중간 우선순위 I/O에 대한 동시발생 요청의 할당을 포함한다. 식(1) 및 (2)의 실시예에서, 접근법은 할당된 레벨까지 높은 우선순위 및 중간 우선순위 요청을 수용하기 위해 낮은 우선순위 요청을 큐잉하는 것이다. 따라서, 이 실시예에서, 낮은 우선순위 큐(54)의 문턱값은 T_sum - U_hm으로 설정되며, 이때 T_sum은 T_h + T_m + T_l로 정의된다. 보다 직관적으로, 이러한 문턱값 설정의 네트 효과는 다음과 같이 기술될 수 있다: 디스크 서비스를 수신하는 낮은 우선순위의 동시발생 요청의 개수에 대해 T_l보다 작지 않은 문턱값으로 설정함으로써 실행될 수 있다면, 큐잉되는 동시발생 요청의 총 개수는 최대 T_sum로 제한된다.
식(2)에서 계산되는 양 U_lh는 높은 우선순위와 낮은 우선순위 I/O에 대한 동시발생 요청의 할당을 포함한다. 식(1) 및 (2)의 실시예에서, 중간 우선순위 요청은 할당된 레벨까지 높은 우선순위 및 낮은 우선순위 요청을 수용하기 위해 큐잉된다. 따라서, 이 실시예에서, 중간 우선순위 큐(60)의 문턱값은 T_sum - U_lm으로 설정된다. 이러한 방식으로, 이러한 문턱값 설정의 네트 효과는 다음과 같이 기술될 수 있다: 디스크 서비스를 수신하는 동시발생 중간 우선순위 요청의 개수에 대해 T_m보다 작지 않은 문턱값을 설정하고, 디스크 서비스를 수신하는 동시발생한 낮은 우선순위 요청의 개수에 대해 문턱값 T_l을 설정함으로써 실행될 수 있다면, 디스크 서비스를 수신하는 동시발생 요청의 총 개수는 최대 T_sum로 제한된다.
U_lh와 U_hm의 상기 결정된 양을 이용하고 P가 이전의 관리 주기에서 관찰된 가장 높은 우선순위 요청인 경우에, 각 우선순위 레벨에 대해 진행하는 방법의 결정이 아래와 같이 Q="높은 우선순위 요청", "중간 우선순위 요청" 및 "낮은 우선순위 요청"에 대해 계산될 수 있다:
만약 Q>=P이면 동시발생 디스크 요청에 대해 제한을 두지 않고,
그렇지 않고 만약 Q="중간 우선순위 요청"이면, (디스크 단위로) 동시발생 디스크 요청의 개수를 T_sum -U_hl로 제한하며,
그렇지 않고 만약 Q="낮은 우선순위 요청"이면, (디스크 단위로) 동시발생 디스크 요청의 개수를 T_sum -U_hm로 제한한다.
상기 식을 이용하여, 서로 다른 우선순위에 대한 동시발생 요청의 최대 개수가 각 우선순위에 대한 큐잉 문턱값을 결정하는 데에 사용된다. 또한, 각 우선순위를 허용하기 위한 요청의 최소값이 큐잉 문턱값 설정시에 고려되어 각 우선순위에 대해 최소 개수의 요청이 프로세싱되는 것을 보장한다. 전술된 실시예들 중 하나에서, 각 우선순위 문턱값은 (1) 적어도 두 개의 우선순위에 대해 관찰된 동시발생 요청의 최대 개수와 (2) 적어도 두 개의 우선순위에 대해 허용된 요청의 최소 개수 중 최소값에 기초하여 조정된다. 다른 식이 원하는 범위 내의 서로 다른 우선순위에 대한 동시발생 요청의 최대 개수를 유지하기 위해 큐잉 문턱값을 조정하도록 서로 다른 요소들을 고려하여 사용될 수 있다.
기술된 실시예에서, 이전의 관리 시간 인터벌 동안 발생된 동시발생 I/O 요청의 총 개수와 같은 I/O 액티비티에 기초하여 I/O 요청을 큐잉할지 여부에 대한 결정이 이루어진다. 또 다른 실시예에서, 명시된 우선순위의 I/O 요청이 큐잉되는 우선순위 특정 문턱값이 문턱값 아래의 I/O 요청의 총 개수를 감소시키기 위해 명시된 우선순위에 대해 큐잉 정도를 증가시키도록 조정된다.
추가적인 실시예 세부사항
기술된 동작은 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 임의의 조합을 생산하기 위해 표준 프로그래밍 및/또는 엔지니어링 기술을 이용하여 방법, 장치 또는 제조 물품으로서 구현될 수 있다. 기술된 동작은 "컴퓨터 판독가능한 저장 매체" 내의 코드로서 구현될 수도 있으며, 이때 프로세서는 컴퓨터 저장 판독가능 매체로부터 코드를 판독 및 실행할 수 있다. 컴퓨터 판독가능한 저장 매체는 자기 저장 매체(예컨대, 하드 디스크 드라이브, 플로피 디스크, 테이프 등), 광학 저장부(CD-ROM, DVD, 광학 디스크 등), 휘발성 및 비휘발성 메모리 디바이스(예컨대, EEPROM, ROM, PROM, RAM, DRAM, SRAM, 플래쉬 메모리, 펌웨어, 프로그램가능한 로직 등) 등과 같은 저장 매체를 포함할 수 있다. 기술된 동작을 구현하는 코드는 하드웨어 디바이스(예컨대, 집적 회로 칩, 프로그램가능한 게이트 어레이(PGA), 애플리케이션 특정 집적 회로(ASIC) 등)로 구현되는 하드웨어 로직으로 추가로 구현될 수도 있다. 또한, 기술된 동작을 구현하는 코드는 "전송 신호"로 구현될 수 있으며, 이때 전송 신호는 광섬유, 구리 와이어 등과 같은 전송 매체 또는 공간을 통해 전파될 수 있다. 코드 또는 로직이 인코딩된 전송 신호는 무선 신호, 위성 전송, 라디오파, 적외 신호, 블루투스 등을 추가로 포함할 수 있다. "제조 물품"은 코드 또는 로직이 인코딩되는 전송 신호를 전송 및 수신하는 송신국 및/또는 수신국을 포함할 수 있으며, 이때 전송 신호에서 인코딩된 코드 또는 로직이 수신 및 송신국 또는 디바이스에서 컴퓨터 판독가능한 저장 매체 또는 하드웨어 내에 디코딩되어 저장될 수 있다. "제조 물품"은 코드 또는 로직이 구현될 수 있는 컴퓨터 판독가능한 저장 매체, 하드웨어 디바이스 및/또는 송신기 또는 수신기와 같은 디바이스를 포함한다. 당업자는 본 발명의 범주로부터 벗어나지 않고 본 발명의 구성에 대해 다수의 변경이 이루어질 수 있으며, 제조 물품이 당업계에 알려진 적절한 정보 포함 매체를 포함할 수 있음을 이해할 것이다.
전술된 실시예에서, 액세스 파라미터는 프로세스 액세스를 위해 공유 메모리 내의 메모리 어드레스로 변경된다. 다른 실시예에서, 액세스 패턴이 저장 디바이스 및 그외의 컴퓨터 리소스 내의 어드레스와 같은 메모리 어드레스 외의 컴퓨터 리소스에 대해 모니터링될 수 있다.
"실시예", "실시예들", "상기 실시예", "상기 실시예들", "하나 이상의 실시예", "일부 실시예" 및 "일 실시예"라는 표현은 특별한 언급이 없는 한 "본 발명의 하나 이상의 (전부는 아님) 실시예"를 의미한다.
"포함하는", "함유하는", "구비하는" 및 이들의 변형 표현은 특별한 언급이 없는 한 "포함하지만 이것으로 제한되는 것은 아님"을 의미한다.
아이템들이 열거된 리스트는 특별한 언급이 없는 한 해당 아이템들 중 임의의 아이템 또는 전부가 서로 배타적임을 의미하지는 않는다.
단수 표현은 특별한 언급이 없는 한 "하나 이상"을 의미한다.
서로 통신하는 디바이스들은 특별한 언급이 없는 한 서로 계속 통신해야할 필요가 없다. 또한, 서로 통신하는 디바이스들은 직접적으로, 또는 하나 이상의 중간재를 통해 간접적으로 통신할 수 있다.
서로 통신하는 몇몇 구성요소들을 갖는 실시예에 대한 설명이 그러한 모든 구성요소들이 필요하다는 것을 의미하는 것은 아니다. 반대로 다양한 선택적인 구성요소들이 본 발명의 가능한 광범위한 실시예를 예시하고자 기술되었다.
또한, 프로세스 단계, 방법 단계, 알고리즘 등이 순차적으로 기술되었을 수 있지만, 이러한 프로세스, 방법 및 알고리즘은 다른 순서로 동작하도록 구성될 수 있다. 다시 말하면, 기술된 임의의 시퀀스 또는 순서가 반드시 단계들이 그 순서대로 수행되어야 함을 나타내는 것은 아니다. 본 명세서에 기술된 프로세스의 단계들은 임의의 순서 구현으로 수행될 수 있다. 또한, 일부 단계들은 동시에 수행될 수 있다.
본 명세서에서 단일 디바이스 또는 물품이 기재될 때, 하나보다 많은 수의 디바이스/물품이 (그들이 협력관계이건 아니건 간에) 단일 디바이스/물품 대신에 사용될 수 있다. 유사하게, 하나보다 많은 디바이스 또는 물품이 본 명세서에 기술된 경우 (그들이 협력관계이건 아니건 간에) 단일 디바이스/물품이 하나보다 많은 디바이스 또는 물품을 대신하여 사용될 수 있거나 또는 서로 다른 수의 디바이스/물품이 도시된 개수의 디바이스 또는 프로그램 대신에 사용될 수 있음이 명백할 것이다. 디바이스의 기능 및/또는 특성은 이러한 기능/특성을 갖는 것으로 명백하게 기술되지 않은 하나 이상의 다른 디바이스에 의해서 구현될 수도 있다. 따라서, 본 발명의 다른 실시예가 해당 디바이스를 반드시 포함해야 하는 것은 아니다.
도 3, 4 및 5의 도시된 동작은 소정의 순서로 발생하는 이벤트를 도시한다. 다른 실시예에서, 이러한 동작은 서로 다른 순서로 수행될 수 있거나, 수정 또는 제거될 수 있다. 또한, 단계들이 전술된 로직에 추가될 수 있고 전술된 실시예들을 계속 컨펌할 수 있다. 또한, 전술된 동작은 순차적으로 발생할 수 있으며 또는 어떠한 동작은 동시에 프로세스될 수도 있다. 또한, 동작은 단일 프로세싱 유닛 또는 분산된 프로세싱 유닛에 의해서 수행될 수 있다.
본 발명의 전술된 다양한 실시예들은 설명과 예시를 위해서 제시되었다. 본 발명이 개시된 정확한 형태로 제한되는 것은 아니다. 다양한 변경과 수정이 아래의 특허청구범위에 대해 이루어질 수 있다. 본 발명의 범주는 상세한 설명에 의해 제한되지 않으며, 오직 첨부된 특허청구범위에 의해서만 제한된다. 전술된 명세, 예시 및 데이터는 본 발명의 구성물의 제작 및 용도에 대한 완전한 설명을 제공한다. 본 발명의 다수의 실시예들이 본 발명의 사상 및 범주로부터 벗어나지 않고 만들어질 수 있기 때문에, 본 발명은 아래에 첨부된 특허청구범위로서 존재한다.

Claims (10)

  1. 저장부로 향하는 우선순위에 대한 동시발생(concurrent) 요청들의 최대 개수를 다수에 걸쳐 측정하는 단계와,
    상기 다수에 걸쳐 측정된 동시발생 요청들의 최대 개수들을 이용하여 명시된 우선순위에 대한 문턱값을 결정하는 단계와,
    상기 명시된 우선순위에 대한 동시발생 요청들의 현재 개수가 상기 명시된 우선순위에 대해 결정된 상기 문턱값을 초과하지 않는다는 결정에 따라서, 상기 저장부로 향하는 상기 명시된 우선순위의 후속 요청들의 진행을 가능케 하는 단계와,
    상기 명시된 우선순위보다 높은 우선순위를 가지고 상기 저장부로 향하는 후속 요청들의 진행을 가능케 하는 단계와,
    상기 명시된 우선순위에 대한 동시발생 요청들의 현재 개수가 전체 문턱값을 초과한다는 결정에 따라서, 큐 내에서 명시된 우선순위를 가지고 상기 저장부로 향하는 후속 요청들을 큐잉하는(queuing) 단계를 포함하는
    방법.
  2. 제 1 항에 있어서,
    상기 명시된 우선순위의 요청들을 큐잉하도록 표시하는 단계와,
    상기 명시된 우선순위보다 높은 적어도 하나의 우선순위의 요청들을 큐잉하지 않도록 표시하는 단계와,
    상기 저장부로 향하는 우선순위의 요청을 수신하는 단계와,
    상기 수신된 요청의 우선순위를 갖는 요청들을 큐잉하도록 하는 표시가 존재하지 않는다는 판정에 따라서, 상기 요청을 상기 저장부로 전송하는 단계와,
    상기 수신된 요청의 우선순위를 갖는 요청들을 큐잉하도록 하는 표시의 판정 및 상기 수신된 요청의 우선순위를 갖는 동시발생된 현재 요청들의 개수가 상기 수신된 요청의 우선순위에 대한 문턱값을 초과한다는 판정에 따라서, 상기 큐 내에서 상기 수신된 요청을 큐잉하는 단계를 더 포함하는
    방법.
  3. 제 2 항에 있어서,
    상기 수신된 우선순위를 갖는 요청들을 큐잉하도록 하는 표시의 판정 및 상기 수신된 요청의 우선순위를 갖는 동시발생된 요청들의 현재 개수가 상기 수신된 요청의 우선순위의 문턱값을 초과하지 않는다는 판정에 따라서, 상기 수신된 요청을 상기 저장부로 전송하는 단계를 더 포함하는
    방법.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    이전의 측정 기간 동안 수신된 가장 높은 우선순위 요청을 결정하는 단계와,
    상기 결정된 가장 높은 우선순위보다 낮은 각 우선순위에 대한 요청들을 큐잉하도록 표시하는 단계와,
    상기 결정된 가장 높은 우선순위보다 높은 각 우선순위에 대한 요청들을 큐잉하지 않도록 표시하는 단계를 더 포함하되,
    상기 동시발생 요청들의 측정된 최대 개수가 상기 결정된 가장 높은 우선순위보다 낮은 각 우선순위에 대한 문턱값을 결정하는 데에 사용되는
    방법.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 동시발생 요청들의 최대 개수를 측정하는 단계는 각 우선순위에 대한 동시발생 요청들의 최대 개수를 측정하는 단계를 포함하는
    방법.
  6. 제 5 항에 있어서,
    상기 동시발생 요청들의 최대 개수는 측정 기간 동안 측정되고,
    각 우선순위에 대한 동시발생 요청들의 최대 개수를 측정하는 단계는,
    상기 측정 기간 동안 우선순위들 중 하나의 우선순위에 대한 요청 수신에 응답하여 해당 우선순위에 대한 동시발생 요청들의 개수를 증가시키는 단계와,
    상기 측정 기간 동안 우선순위들 중 하나의 우선순위에 대한 요청 수신에 따라서 해당 우선순위의 동시발생 요청들의 개수를 감소시키는 단계를 포함하되,
    각 우선순위에 대한 동시발생 요청들의 최대 개수는 상기 측정 기간 동안 측정된 각 우선순위에 대한 동시발생 요청들의 최대 개수를 포함하는
    방법.
  7. 제 1 항 내지 제 6 항 중 어느 한 항에 있어서,
    상기 명시된 우선순위의 요청이 완료되었다는 승인을 수신하는 단계와,
    상기 승인의 수신에 응답하여, 상기 명시된 우선순위의 동시발생 요청들의 현재 개수가 상기 명시된 우선순위 문턱값 아래에 있는지 여부를 결정하는 단계와,
    상기 명시된 우선순위의 동시발생 요청들의 현재 개수가 상기 명시된 우선순위 문턱값 아래에 있다는 결정에 응답하여, 상기 명시된 우선순위의 적어도 하나의 큐잉된 요청을 프로세싱하는 단계를 더 포함하는
    방법.

  8. 입력/출력(I/O) 매니저를 포함하는 저장부와 통신하는 시스템으로서,
    상기 I/O 매니저는,
    저장부로 향하는 하나의 우선순위에 대한 동시발생(concurrent) 요청들의 최대 개수를 다수에 걸쳐 측정하고,
    상기 다수에 걸쳐 측정된 동시발생 요청들의 최대 개수들을 이용하여 명시된 우선순위에 대한 문턱값을 결정하고,
    상기 명시된 우선순위에 대한 동시발생 요청들의 현재 개수가 상기 명시된 우선순위에 대해 결정된 상기 문턱값을 초과하지 않는다는 결정에 따라서, 상기 저장부로 향하는 상기 명시된 우선순위의 후속 요청들의 진행을 가능케 하고,
    상기 명시된 우선순위보다 높은 우선순위를 가지고 상기 저장부로 향하는 후속 요청들의 진행을 가능케 하며,
    상기 명시된 우선순위에 대한 동시발생 요청들의 현재 개수가 전체 문턱값을 초과한다는 결정에 따라서, 큐 내에서 명시된 우선순위를 가지고 상기 저장부로 향하는 후속 요청들을 큐잉
    하는 동작들을 수행하도록 실행되는
    시스템.
  9. 저장부와 통신하고 동작을 수행하도록 코드를 구현하는 제조 물품으로서,
    상기 동작은,
    저장부로 향하는 하나의 우선순위에 대한 동시발생(concurrent) 요청들의 최대 개수를 다수에 걸쳐 측정하고,
    상기 다수에 걸쳐 측정된 동시발생 요청들의 최대 개수들을 이용하여 명시된 우선순위에 대한 문턱값을 결정하고,
    상기 명시된 우선순위에 대한 동시발생 요청들의 현재 개수가 상기 명시된 우선순위에 대해 결정된 상기 문턱값을 초과하지 않는다는 결정에 따라서, 상기 저장부로 향하는 상기 명시된 우선순위의 후속 요청들의 진행을 가능케 하고,
    상기 명시된 우선순위보다 높은 우선순위를 가지고 상기 저장부로 향하는 후속 요청들의 진행을 가능케 하며,
    상기 명시된 우선순위에 대한 동시발생 요청들의 현재 개수가 전체 문턱값을 초과한다는 결정에 따라서, 큐 내에서 명시된 우선순위를 가지고 상기 저장부로 향하는 후속 요청들을 큐잉
    하는 것을 포함하는
    제조 물품.
  10. 청구항 제 1 항 내지 제 7 항 중 어느 한 항에 따른 방법의 단계들을 실행하는 컴퓨터 구현가능한 명령어를 포함하는 컴퓨터 프로그램.
KR1020107018071A 2008-03-31 2009-03-26 저장부로 향하는 입/출력(i/o) 요청을 큐잉할지 여부를 결정하기 위한 우선순위의 이용 KR101242954B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/060,215 US7840720B2 (en) 2008-03-31 2008-03-31 Using priority to determine whether to queue an input/output (I/O) request directed to storage
US12/060,215 2008-03-31
PCT/EP2009/053611 WO2009121797A1 (en) 2008-03-31 2009-03-26 Using priority to determine whether to queue an input/output (i/o) request directed to storage

Publications (2)

Publication Number Publication Date
KR20110000727A true KR20110000727A (ko) 2011-01-05
KR101242954B1 KR101242954B1 (ko) 2013-03-12

Family

ID=40668338

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107018071A KR101242954B1 (ko) 2008-03-31 2009-03-26 저장부로 향하는 입/출력(i/o) 요청을 큐잉할지 여부를 결정하기 위한 우선순위의 이용

Country Status (6)

Country Link
US (1) US7840720B2 (ko)
EP (1) EP2266020B1 (ko)
JP (1) JP5132812B2 (ko)
KR (1) KR101242954B1 (ko)
CN (1) CN101981539B (ko)
WO (1) WO2009121797A1 (ko)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100030931A1 (en) * 2008-08-04 2010-02-04 Sridhar Balasubramanian Scheduling proportional storage share for storage systems
US20100241760A1 (en) * 2009-03-18 2010-09-23 Microsoft Corporation Web Front-End Throttling
EP2296091A1 (en) * 2009-09-14 2011-03-16 Nxp B.V. Servicing low-latency requests ahead of best-effort requests
US9164886B1 (en) * 2010-09-21 2015-10-20 Western Digital Technologies, Inc. System and method for multistage processing in a memory storage subsystem
CN102073605B (zh) * 2010-12-27 2012-11-21 深圳市创新科信息技术有限公司 一种绕过Bio层访问磁盘驱动的存储接口的方法
JP5494556B2 (ja) * 2011-04-19 2014-05-14 コニカミノルタ株式会社 画像形成方法および画像形成装置
ES2744197T3 (es) 2011-10-20 2020-02-24 Happiest Baby Inc Dispositivo de ayuda para calmar/ dormir lactantes
JP5899893B2 (ja) * 2011-12-19 2016-04-06 富士通株式会社 ストレージ装置、コマンド実行制御方法、およびプログラム
US9195511B2 (en) * 2012-03-05 2015-11-24 Accenture Global Services Limited Differentiated service-based graceful degradation layer
JP6160236B2 (ja) * 2013-05-20 2017-07-12 富士通株式会社 情報処理装置、情報処理システム、情報処理装置の制御方法及び情報処理装置の制御プログラム
CA2819539C (en) * 2013-06-21 2021-01-12 Ibm Canada Limited - Ibm Canada Limitee Dynamic management of integration protocols
CN103501247A (zh) * 2013-09-25 2014-01-08 天脉聚源(北京)传媒科技有限公司 一种高并发请求处理方法及装置
JP6269257B2 (ja) * 2014-03-31 2018-01-31 富士通株式会社 情報処理装置、情報処理システム、情報処理装置の制御プログラム、および情報処理装置の制御方法
US10152388B1 (en) * 2014-09-30 2018-12-11 EMC IP Holding Company LLC Active stream counts for storage appliances
CN104408088B (zh) * 2014-11-11 2020-06-19 奇安信科技集团股份有限公司 并发请求的控制方法及装置
KR102317786B1 (ko) 2015-02-02 2021-10-26 삼성전자주식회사 스토리지 디바이스에서의 입출력 처리 방법 및 이를 적용하는 스토리지 디바이스 및 비휘발성 메모리 디바이스
US10078471B2 (en) 2015-05-19 2018-09-18 Toshiba Memory Corporation Memory device that sorts access commands to a nonvolatile semiconductor memory unit thereof
US10305960B1 (en) * 2015-10-16 2019-05-28 Sprint Communications Company L.P. Detection of aberrant multiplexed transport connections
CN105262826A (zh) * 2015-10-29 2016-01-20 福建天晴数码有限公司 接口处理数量的调整方法及系统
KR102396309B1 (ko) * 2015-11-06 2022-05-10 삼성전자주식회사 데이터 요청을 제어하기 위한 장치 및 방법
US10241685B2 (en) * 2016-08-17 2019-03-26 Oracle International Corporation Externally managed I/O starvation avoidance in a computing device
US10990548B1 (en) * 2019-11-25 2021-04-27 Micron Technology, Inc. Quality of service levels for a direct memory access engine in a memory sub-system
US11012512B1 (en) * 2020-05-20 2021-05-18 EMC IP Holding Company LLC Host device with automated write throttling responsive to storage system write pressure condition
CN113260548B (zh) * 2020-05-20 2024-04-19 深圳元戎启行科技有限公司 管理车辆控制器的方法及控制设备、远程控制车辆的方法
US11550511B2 (en) 2021-05-21 2023-01-10 EMC IP Holding Company LLC Write pressure throttling based on service level objectives
CN115037802B (zh) * 2022-06-02 2024-03-08 北京百度网讯科技有限公司 一种请求处理方法、装置、电子设备和存储介质
US11934659B1 (en) 2022-09-28 2024-03-19 Dell Products L.P. Host background copy process with rate adjustment utilizing input-output processing pressure feedback from storage system
CN115840542B (zh) * 2023-02-24 2023-06-02 浪潮电子信息产业股份有限公司 一种硬盘的请求处理方法、系统、存储介质和电子设备

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6292856B1 (en) 1999-01-29 2001-09-18 International Business Machines Corporation System and method for application influence of I/O service order post I/O request
US6839817B2 (en) * 2002-04-24 2005-01-04 International Business Machines Corporation Priority management of a disk array
US20040205297A1 (en) 2003-04-14 2004-10-14 Bearden Brian S. Method of cache collision avoidance in the presence of a periodic cache aging algorithm
US7089381B2 (en) 2003-09-24 2006-08-08 Aristos Logic Corporation Multiple storage element command queues
JP4703959B2 (ja) * 2003-12-03 2011-06-15 株式会社日立製作所 記憶装置システムおよびそのレプリケーション作成方法
US20060294412A1 (en) 2005-06-27 2006-12-28 Dell Products L.P. System and method for prioritizing disk access for shared-disk applications
US20070255897A1 (en) 2006-04-26 2007-11-01 Mcnutt Bruce Apparatus, system, and method for facilitating physical disk request scheduling
US8112566B2 (en) * 2007-06-06 2012-02-07 Intel Corporation Methods and apparatuses for processing I/O requests of data storage devices

Also Published As

Publication number Publication date
JP5132812B2 (ja) 2013-01-30
WO2009121797A1 (en) 2009-10-08
US7840720B2 (en) 2010-11-23
EP2266020A1 (en) 2010-12-29
KR101242954B1 (ko) 2013-03-12
US20090248917A1 (en) 2009-10-01
CN101981539B (zh) 2014-03-12
JP2011520165A (ja) 2011-07-14
EP2266020B1 (en) 2015-07-08
CN101981539A (zh) 2011-02-23

Similar Documents

Publication Publication Date Title
KR101242954B1 (ko) 저장부로 향하는 입/출력(i/o) 요청을 큐잉할지 여부를 결정하기 위한 우선순위의 이용
US10318467B2 (en) Preventing input/output (I/O) traffic overloading of an interconnect channel in a distributed data storage system
US11797182B2 (en) Management of file system requests in a distributed storage system
US10965613B2 (en) Multi-pipe bandwidth control in hosted systems
JP2009176097A (ja) サービス管理装置及びプログラム
US20100008377A1 (en) Queue management based on message age
US20120047264A1 (en) System and method to dynamically allocate electronic mailboxes
WO2020233364A1 (zh) 资源处理平台的确认方法、装置、电子设备和介质
US20100218191A1 (en) Apparatus and Method for Processing Management Requests
CN109726151B (zh) 用于管理输入输出栈的方法、设备和介质
JP6279816B2 (ja) ストレージ監視システムおよびその監視方法
JP2008186211A (ja) 計算機システム
US20060190639A1 (en) Automatic adjustment of time a consumer waits to access data from a queue during a waiting phase and transmission phase at the queue
US10673937B2 (en) Dynamic record-level sharing (RLS) provisioning inside a data-sharing subsystem
JP2011070435A (ja) 計算機システム、リクエスト処理方法及びサーバ装置
CN110430264B (zh) 一种云计算中的数据读取方法
CN111083063B (zh) 一种动态调整下发压力的方法及装置
KR100955423B1 (ko) 버퍼 관리 방법, 그 장치, 서버 및 전장 시스템
JP6174519B2 (ja) 資源割当装置およびその動作方法
CN114153561A (zh) 资源配置方法、装置、设备和可读存储介质
JP2020095550A (ja) ストレージ装置及びストレージ装置における構成管理リクエストの処理方法
JPH113321A (ja) 並列計算機システム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee