IP Library Patent Application 12911975
Patent Application
App. No. 12/911,975

CONTROLLING DATA DESTAGING WITHIN A MULTI-TIERED STORAGE SYSTEM

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
12/911,975
Abstract

There is provided according to an example of the claimed subject matter, a system and a method for managing access to a shared storage entity. According to an example of the claimed subject matter, a system for managing access to a shared storage entity can include two or more initiator entities, two or more local sequencing agents and an arbitration module. Each of the two or more local sequencing agents can be associated with a respective one of two or more initiator entities which generate I/O requests for accessing the shared storage entity. Each local sequencing agent can be adapted to locally sequence its respective initiator entity's I/O requests. The arbitration module can be adapted to manage an access cycle to the shared storage entity by allocating to each one of the plurality of initiator entities a monolithic/continuous chunk of the access cycle to implement its own I/O access sequence, wherein chunk allocation is determined according to subframe allocation criteria related to the functional characteristics of each of the initiator entities.

Claims (31)

1 . A system for managing access to a shared storage entity, comprising:

two or more local sequencing agents, each associated with a respective one of two or more initiator entities which generate I/O requests for accessing the shared storage entity, and each local sequencing agent is adapted to locally sequence its respective initiator entity's I/O requests; and

an arbitration module adapted to manage an access cycle to the shared storage entity by allocating to each one of said plurality of initiator entities a monolithic/continuous chunk of the access cycle to implement its own I/O access sequence, wherein chunk allocation is determined according to subframe allocation criteria related to the functional characteristics of each of the initiator entities.

2 . The system according to claim 1 , wherein each local sequencing agent is adapted to sequence the respective initiator entity's I/O requests independently of the I/O requests of any of the other initiator entities.

3 . The system according to claim 1 , wherein the allocation criteria is independent of characteristics of any specific I/O request or I/O stream.

4 . The storage system according to claim 1 , wherein said local sequencing agents' access sequencing procedure overrides an I/O scheduling procedure provided by an operating system associated with the shared storage entity.

5 . The storage system according to claim 2 , wherein at least one of said functional entities is adapted to take into account a characteristic of the functional entity when determining the I/O scheduling during a frame allocated to the functional entity.

6 . The storage system according to claim 5 , wherein said characteristic of the functional entity include a measure of sequentiality of I/Os associated with the respective functional entity.

7 . The storage system according to claim 5 , wherein said characteristic of the functional entity include a type of application or applications which are associated with the respective entity.

8 . The storage system according to claim 5 , wherein said characteristic of the functional entity include a measure of an importance of I/O streams coming from the respective entity.

9 . The storage system according to claim 3 , wherein at least one of said functional entities is adapted to identify a group of blocks which are already stored within said NVS device and/or empty blocks which are sequentially arranged within the NVS device intermediately in-between two I/O requests which are not in sequence with one another, and wherein said functional element is adapted to form from said two I/O requests and said intermediate sequence a single of extended I/O request.

10 . The storage system according to claim 4 , wherein said controller is adapted to determine a size of each subframe, at least according to the priority of each of said functional entities during the given system state.

11 . The storage system according to claim 4 , wherein said subframes are equal in size, and said controller is adapted to determine a number of subframes to be allocated to each of said functional elements according to the priority of the respective functional element during the given system state.

12 . The storage system according to claim 4 , wherein said controller is responsive to an indication that the system state has changed for reallocating the subframes among said two or more functional entities according to an updated priority of said functional elements during the new system state.

13 . The storage system according to claim 4 , wherein one or more functional entities which generate a stream of I/O requests for accessing the NVS device are added and/or removed as the system state changes, giving rise to a new set of two or more functional entities generating a stream of I/O requests for accessing the NVS device.

14 . A method of managing access to a shared storage entity, comprising:

obtaining data with respect to characteristics of each one of two or more initiator entities that share I/O access to the shared storage entity;

defining an access cycle timeframe for accessing the shared storage entity;

allocating to each one of the two or more initiators associated with the shared storage entity a continuous subframe during which the respective initiator is granted exclusive access to the shared storage entity, wherein the subframe is a continuous chunk of the access cycle timeframe; and

during each subframe locally sequencing a plurality of I/O requests on a respective one of said two or more initiator entities sharing I/O access to the shared storage entity.

15 . The method according to claim 14 , wherein, during each subframe the sequencing of I/O requests on a respective initiator entity sharing I/O access to the shared storage entity is done independently of a sequencing on any one of the other initiators sharing access to the shared storage entity.

16 . A program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform a method of managing access to a shared storage entity, comprising:

obtaining data with respect to characteristics of each one of two or more initiator entities that share I/O access to the shared storage entity;

defining an access cycle timeframe for accessing the shared storage entity;

allocating to each one of the two or more initiators associated with the shared storage entity a continuous subframe during which the respective initiator is granted exclusive access to the shared storage entity, wherein the subframe is a continuous chunk of the access cycle timeframe; and

during each subframe locally sequencing a plurality of I/O requests on a respective one of said two or more initiator entities sharing I/O access to the shared storage entity.

17 . A computer program product comprising a computer useable medium having computer readable program code embodied therein of managing access to a shared storage entity, the computer program product comprising:

computer readable program code for causing the computer to obtain data with respect to characteristics of each one of two or more initiator entities that share I/O access to the shared storage entity;

computer readable program code for causing the computer to define an access cycle timeframe for accessing the shared storage entity;

computer readable program code for causing the computer to allocate to each one of the two or more initiators associated with the shared storage entity a continuous subframe during which the respective initiator is granted exclusive access to the shared storage entity, wherein the subframe is a continuous chunk of the access cycle timeframe; and

computer readable program code for causing the computer to locally sequence during each subframe a plurality of I/O requests on a respective one of said two or more initiator entities sharing I/O access to the shared storage entity.

Assignments (3)
SECURITY AGREEMENT Recorded Jul 16, 2015
From: KAMINARIO TECHNOLOGIES LTD
To: SILICON VALLEY BANK
Reel/Frame 036125/0944 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME AND ADDRESS PREVIOUSLY RECORDED ON DECEMBER 29, 2010, REEL 02606 FRAME 0894. Recorded Feb 3, 2011
From: KOREN, BENNY; FIENBLIT, SHACHAR; KEREN, GUY; GORDON, EYAL; DAVID, EYAL
To: KAMINARIO TECHNOLOGIES LTD.
Reel/Frame 025761/0715 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 29, 2010
From: KOREN, BENNY; FIENBLIT, SHACHAR; KEREN, GUY; GORDON, EYAL; DAVID, EYAL
To: KAMINARIO TECHNOLOGIES, LTD.
Reel/Frame 025606/0894 →