Command management using task attributes
First Claim
Patent Images
1. A device capable of usage in a storage system including an initiator, a primary target, and a secondary target, the device being capable of configuration for asynchronous remote mirroring functionality and comprising:
- a target controller capable of communicating with the initiator and performing operations requested by the initiator; and
a process on the target controller capable of receiving a stream of command requests from the initiator, performing the requested commands, relaying the requested commands to a secondary target while ensuring precedence graph equivalence between received and relayed commands, the process tracking outstanding write tasks, marking write tasks with task attributes according to changes in number of outstanding write tasks, and embedding task attributes in the relayed commands capable of increasing concurrency in commands performed by the secondary target, wherein the target controller is a Small Computer Systems Interface (SCSI) device and the task attributes are SCS/task attributes including Simple, Ordered, Head of Queue, and Auto Contingent Allegiance (ACA) task attributes.
2 Assignments
0 Petitions
Accused Products
Abstract
An efficient technique for performing remote asynchronous mirroring includes receiving a stream of command requests, performing the requested commands, relaying the requested commands to a target while embedding an explicitly-defined or implied task precedence graph in the relayed commands to enable increased concurrency in tasks performed by the target.
35 Citations
26 Claims
-
1. A device capable of usage in a storage system including an initiator, a primary target, and a secondary target, the device being capable of configuration for asynchronous remote mirroring functionality and comprising:
-
a target controller capable of communicating with the initiator and performing operations requested by the initiator; and a process on the target controller capable of receiving a stream of command requests from the initiator, performing the requested commands, relaying the requested commands to a secondary target while ensuring precedence graph equivalence between received and relayed commands, the process tracking outstanding write tasks, marking write tasks with task attributes according to changes in number of outstanding write tasks, and embedding task attributes in the relayed commands capable of increasing concurrency in commands performed by the secondary target, wherein the target controller is a Small Computer Systems Interface (SCSI) device and the task attributes are SCS/task attributes including Simple, Ordered, Head of Queue, and Auto Contingent Allegiance (ACA) task attributes. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method of ordering commands in a communication system comprising:
-
receiving a stream of commands;
performing the commands;relaying the commands to a target; tracking outstanding write tasks; marking write tasks with task attributes according to changes in number of outstanding write tasks; and embedding the task attributes in the relayed commands to increase concurrency in commands performed by the target wherein the task attributes are SCSI task attributes including Simple, Ordered, Head of Queue, and Auto Contingent Allegiance (ACA) task attributes;
for operation in a Small Computer Systems Interface (SCSI) device. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
-
18. A method of ordering Commands in a communication system comprising:
-
communicating information via an internet Small Computer Systems Interface (iSCSI) transport protocol; tracking outstanding write tasks; marking transitions in number of outstanding write tasks with Small Computer Systems Interface (SCSI) task attributes; and embedding the Small Computer Systems Interface (SCSI) task attributes in a received command stream to ensure an ordering behavior sufficient for attaining concurrency performance and correct algorithm operation.
-
-
19. A method of ordering commands in a communication system comprising:
-
receiving a stream of command requests; relaying the requested commands; tracking outstanding write tasks; marking write tasks with task attributes according to changes in number of outstanding write tasks; and embedding the task attributes in the relayed commands to improve transaction ordering for a remote mirroring application using an ordered transport wherein the task attributes are SCSI task attributes including Simple, Ordered, Head of Queue, and Auto Contingent Allegiance (ACA) task attributes.
-
-
20. An article of manufacture comprising:
-
a tangible computer-readable medium having a program code for execution on a controller stored therein for ordering commands in a communication system, the program code further comprising; a code that causes the controller to receive a stream of command requests; a code that causes the controller to perform the requested commands; a code that causes the controller to infer an intended precedence of the requested commands; a code that causes the controller to relay the requested commands to a target; a code that causes the controller to track outstanding write tasks; a code that causes the controller to mark write tasks with task attributes according to changes in number of outstanding write tasks; and a code that causes the controller to embed task attributes in the relayed commands according to the intended precedence to increase concurrency in commands performed by the target wherein the task attributes are SCSI task attributes including Simple, Ordered, Head of Queue, and Auto Contingent Allegiance (ACA) task attributes.
-
-
21. An article of manufacture comprising:
-
a tangible computer-readable medium having a program code for execution on a controller stored therein for ordering commands in a communication system, the program code further comprising; a code that causes a controller to communicate information via an internet Small Computer Systems Interface (iSCSI) transport protocol; a code that causes the controller to track outstanding write tasks; a code that causes the controller to mark write tasks with task attributes according to chances in number of outstanding write tasks; and a code that causes the controller to embed Small Computer Systems Interface (SCSI) task attributes in a received command stream to ensure an ordering behavior sufficient for attaining concurrency performance and correct algorithm operation.
-
-
22. An article of manufacture comprising:
- a tangible computer-readable medium having a program code for execution on a controller stored therein for ordering commands in a communication system, the program code further comprising;
a code that causes a controller to receive a stream of command requests;
a code causing that causes the controller to relay the requested commands;a code that causes the controller to track outstanding write tasks; a code that causes the controller to mark write tasks with task attributes according to changes in number of outstanding write tasks; and a code that causes the controller to embed task attributes in the relayed commands to improve transaction ordering for a remote mirroring application using an ordered transport wherein the task attributes are SCSI task attributes including Simple, Ordered, Head of Queue, and Auto Contingent Allegiance (ACA) task attributes.
- a tangible computer-readable medium having a program code for execution on a controller stored therein for ordering commands in a communication system, the program code further comprising;
-
23. A storage device in a communication system comprising:
-
means for receiving a stream of command requests; means for performing the requested commands; means for relaying the requested commands to a target; means for tracking outstanding write tasks; means for marking write tasks with task attributes according to changes in number of outstanding write tasks; and means for embedding task attributes in the relayed commands capable of increasing concurrency in commands performed by the target wherein the task attributes are SCSI task attributes including Simple, Ordered, Head of Queue, and Auto Contingent Allegiance (ACA) task attributes.
-
-
24. A remote mirroring method comprising:
-
communicating information between a primary initiator and a secondary target; inferring a task precedence graph intended by the primary initiator by tracking concurrency of issued tasks; conveying the inferred task precedence graph to the secondary target; and sensing the inferred task precedence graph by tracking transition points dependent on ordering of commands in a command stream wherein tracking transition points further comprises tracking of switching events comprising; switching at a first transition point from a multiple outstanding write task condition to a no outstanding write task condition; and switching at a second transition point from one or fewer outstanding write tasks to multiple outstanding write tasks. - View Dependent Claims (25, 26)
-
Specification