KR20110000727A - 저장부로 향하는 입/출력(i/o) 요청을 큐잉할지 여부를 결정하기 위한 우선순위의 이용 - Google Patents
저장부로 향하는 입/출력(i/o) 요청을 큐잉할지 여부를 결정하기 위한 우선순위의 이용 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 24
- 238000004519 manufacturing process Methods 0.000 claims abstract description 9
- 238000004590 computer program Methods 0.000 claims abstract description 3
- 238000005259 measurement Methods 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 9
- 238000012545 processing Methods 0.000 claims description 8
- 238000007726 management method Methods 0.000 description 24
- 230000005540 biological transmission Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 230000000694 effects Effects 0.000 description 3
- 239000000543 intermediate Substances 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 235000003642 hunger Nutrition 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 230000037351 starvation Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-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) 요청을 큐잉할지 여부를 결정하기 위해 우선순위를 이용하는 방법, 시스템 및 제조 물품에 관한 것이다.
저장 프로토콜은, 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 요청이 완료되었다는 승인을 프로세싱하는 동작의 실시예를 도시한 도면.
도 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)이 이용될 수 있다:
식(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)
- 저장부로 향하는 우선순위에 대한 동시발생(concurrent) 요청들의 최대 개수를 다수에 걸쳐 측정하는 단계와,
상기 다수에 걸쳐 측정된 동시발생 요청들의 최대 개수들을 이용하여 명시된 우선순위에 대한 문턱값을 결정하는 단계와,
상기 명시된 우선순위에 대한 동시발생 요청들의 현재 개수가 상기 명시된 우선순위에 대해 결정된 상기 문턱값을 초과하지 않는다는 결정에 따라서, 상기 저장부로 향하는 상기 명시된 우선순위의 후속 요청들의 진행을 가능케 하는 단계와,
상기 명시된 우선순위보다 높은 우선순위를 가지고 상기 저장부로 향하는 후속 요청들의 진행을 가능케 하는 단계와,
상기 명시된 우선순위에 대한 동시발생 요청들의 현재 개수가 전체 문턱값을 초과한다는 결정에 따라서, 큐 내에서 명시된 우선순위를 가지고 상기 저장부로 향하는 후속 요청들을 큐잉하는(queuing) 단계를 포함하는
방법.
- 제 1 항에 있어서,
상기 명시된 우선순위의 요청들을 큐잉하도록 표시하는 단계와,
상기 명시된 우선순위보다 높은 적어도 하나의 우선순위의 요청들을 큐잉하지 않도록 표시하는 단계와,
상기 저장부로 향하는 우선순위의 요청을 수신하는 단계와,
상기 수신된 요청의 우선순위를 갖는 요청들을 큐잉하도록 하는 표시가 존재하지 않는다는 판정에 따라서, 상기 요청을 상기 저장부로 전송하는 단계와,
상기 수신된 요청의 우선순위를 갖는 요청들을 큐잉하도록 하는 표시의 판정 및 상기 수신된 요청의 우선순위를 갖는 동시발생된 현재 요청들의 개수가 상기 수신된 요청의 우선순위에 대한 문턱값을 초과한다는 판정에 따라서, 상기 큐 내에서 상기 수신된 요청을 큐잉하는 단계를 더 포함하는
방법.
- 제 2 항에 있어서,
상기 수신된 우선순위를 갖는 요청들을 큐잉하도록 하는 표시의 판정 및 상기 수신된 요청의 우선순위를 갖는 동시발생된 요청들의 현재 개수가 상기 수신된 요청의 우선순위의 문턱값을 초과하지 않는다는 판정에 따라서, 상기 수신된 요청을 상기 저장부로 전송하는 단계를 더 포함하는
방법.
- 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
이전의 측정 기간 동안 수신된 가장 높은 우선순위 요청을 결정하는 단계와,
상기 결정된 가장 높은 우선순위보다 낮은 각 우선순위에 대한 요청들을 큐잉하도록 표시하는 단계와,
상기 결정된 가장 높은 우선순위보다 높은 각 우선순위에 대한 요청들을 큐잉하지 않도록 표시하는 단계를 더 포함하되,
상기 동시발생 요청들의 측정된 최대 개수가 상기 결정된 가장 높은 우선순위보다 낮은 각 우선순위에 대한 문턱값을 결정하는 데에 사용되는
방법.
- 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
상기 동시발생 요청들의 최대 개수를 측정하는 단계는 각 우선순위에 대한 동시발생 요청들의 최대 개수를 측정하는 단계를 포함하는
방법.
- 제 5 항에 있어서,
상기 동시발생 요청들의 최대 개수는 측정 기간 동안 측정되고,
각 우선순위에 대한 동시발생 요청들의 최대 개수를 측정하는 단계는,
상기 측정 기간 동안 우선순위들 중 하나의 우선순위에 대한 요청 수신에 응답하여 해당 우선순위에 대한 동시발생 요청들의 개수를 증가시키는 단계와,
상기 측정 기간 동안 우선순위들 중 하나의 우선순위에 대한 요청 수신에 따라서 해당 우선순위의 동시발생 요청들의 개수를 감소시키는 단계를 포함하되,
각 우선순위에 대한 동시발생 요청들의 최대 개수는 상기 측정 기간 동안 측정된 각 우선순위에 대한 동시발생 요청들의 최대 개수를 포함하는
방법.
- 제 1 항 내지 제 6 항 중 어느 한 항에 있어서,
상기 명시된 우선순위의 요청이 완료되었다는 승인을 수신하는 단계와,
상기 승인의 수신에 응답하여, 상기 명시된 우선순위의 동시발생 요청들의 현재 개수가 상기 명시된 우선순위 문턱값 아래에 있는지 여부를 결정하는 단계와,
상기 명시된 우선순위의 동시발생 요청들의 현재 개수가 상기 명시된 우선순위 문턱값 아래에 있다는 결정에 응답하여, 상기 명시된 우선순위의 적어도 하나의 큐잉된 요청을 프로세싱하는 단계를 더 포함하는
방법.
- 입력/출력(I/O) 매니저를 포함하는 저장부와 통신하는 시스템으로서,
상기 I/O 매니저는,
저장부로 향하는 하나의 우선순위에 대한 동시발생(concurrent) 요청들의 최대 개수를 다수에 걸쳐 측정하고,
상기 다수에 걸쳐 측정된 동시발생 요청들의 최대 개수들을 이용하여 명시된 우선순위에 대한 문턱값을 결정하고,
상기 명시된 우선순위에 대한 동시발생 요청들의 현재 개수가 상기 명시된 우선순위에 대해 결정된 상기 문턱값을 초과하지 않는다는 결정에 따라서, 상기 저장부로 향하는 상기 명시된 우선순위의 후속 요청들의 진행을 가능케 하고,
상기 명시된 우선순위보다 높은 우선순위를 가지고 상기 저장부로 향하는 후속 요청들의 진행을 가능케 하며,
상기 명시된 우선순위에 대한 동시발생 요청들의 현재 개수가 전체 문턱값을 초과한다는 결정에 따라서, 큐 내에서 명시된 우선순위를 가지고 상기 저장부로 향하는 후속 요청들을 큐잉
하는 동작들을 수행하도록 실행되는
시스템.
- 저장부와 통신하고 동작을 수행하도록 코드를 구현하는 제조 물품으로서,
상기 동작은,
저장부로 향하는 하나의 우선순위에 대한 동시발생(concurrent) 요청들의 최대 개수를 다수에 걸쳐 측정하고,
상기 다수에 걸쳐 측정된 동시발생 요청들의 최대 개수들을 이용하여 명시된 우선순위에 대한 문턱값을 결정하고,
상기 명시된 우선순위에 대한 동시발생 요청들의 현재 개수가 상기 명시된 우선순위에 대해 결정된 상기 문턱값을 초과하지 않는다는 결정에 따라서, 상기 저장부로 향하는 상기 명시된 우선순위의 후속 요청들의 진행을 가능케 하고,
상기 명시된 우선순위보다 높은 우선순위를 가지고 상기 저장부로 향하는 후속 요청들의 진행을 가능케 하며,
상기 명시된 우선순위에 대한 동시발생 요청들의 현재 개수가 전체 문턱값을 초과한다는 결정에 따라서, 큐 내에서 명시된 우선순위를 가지고 상기 저장부로 향하는 후속 요청들을 큐잉
하는 것을 포함하는
제조 물품.
- 청구항 제 1 항 내지 제 7 항 중 어느 한 항에 따른 방법의 단계들을 실행하는 컴퓨터 구현가능한 명령어를 포함하는 컴퓨터 프로그램.
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)
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)
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 |
-
2008
- 2008-03-31 US US12/060,215 patent/US7840720B2/en not_active Expired - Fee Related
-
2009
- 2009-03-26 KR KR1020107018071A patent/KR101242954B1/ko not_active IP Right Cessation
- 2009-03-26 JP JP2011501236A patent/JP5132812B2/ja not_active Expired - Fee Related
- 2009-03-26 CN CN200980110957.9A patent/CN101981539B/zh not_active Expired - Fee Related
- 2009-03-26 WO PCT/EP2009/053611 patent/WO2009121797A1/en active Application Filing
- 2009-03-26 EP EP09726603.5A patent/EP2266020B1/en active Active
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 |