1. A method for copying information from a first storage subsystem to a second storage subsystem, the first and second storage subsystems being provided in a data storage system, the method comprising:
determining whether or not a first command received at a first storage subsystem from one of a plurality of first hosts is an update command or control command, the first storage subsystem being coupled to a plurality of first hosts, the first subsystem including a storage unit, a storage controller, first communication interfaces coupled to the plurality of first hosts, a second communication interface coupled to the second storage subsystem;
writing data associated with the first command to a first cache memory of the first storage subsystem if the first command is determined to be an update command, the data written to the first cache memory including a first data block;
executing the first command at the first storage subsystem if the first command is determined to be a control command, where first attribute information is obtained by executing the first command;
transmitting the first data block from the first storage subsystem to the second storage subsystem, the second storage subsystem being associated with a second host;
storing the first attribute information associated with the first control command to a first shared memory of the first storage subsystem; and
transmitting the first attribute information from the first storage subsystem to the second storage subsystem without direct involvement from the first hosts,
wherein the first and second hosts are coupled to each other via a first communication link to exchange information therebetween, and the first and the second storage subsystems are coupled to each other via a second communication link that is different from the first communication link, the second communication link being used to transmit the first data block and the first attribute information from the first storage subsystem to the second storage subsystem.
2. The method of claim 1, further comprising:
storing the first data block to a first cache of the first storage subsystem prior to transmitting the first data block to the second storage subsystem;
storing the first data block received from the first storage subsystem to a second cache memory of the second storage subsystem; and
storing the first attribute information received from the first storage subsystem to a second shared memory of the second storage subsystem.
3. The method of claim 2, wherein the second storage subsystem includes a plurality of ports, the plurality of ports having access to the second shared memory.
4. The method of claim 2, further comprising:
transmitting a notification to the first storage subsystem that at least one of the first data block and the first attribute information has been successfully received by the second storage subsystem.
5. The method of claim 1, wherein the storage unit has a plurality of disk drives.
6. The method of claim 1, wherein the storage system includes a storage area network.
7. The method of claim 1, further comprising:
transmitting a second data block from the first storage subsystem to the second storage subsystem, the second data block being associated with another command;
transmitting a third data block from the first storage subsystem to the second storage subsystem, the third data block being associated with yet another command; and
sorting at the second storage subsystem the received first, second, and third data blocks in the order corresponding the commands issued by one or more of the first host computers to the first storage subsystem.
8. The method of claim 7, wherein the second subsystem sorts the first, second, and third data blocks using sequence information assigned to the first, second, and third data blocks, respectively.
9. The method of claim 1, wherein the first storage subsystem is configured to perform synchronous data transfers.
10. The method of claim 1, wherein the control command relates to replication of the first data block in the remote storge subsystem, the control command being a command other than a write command,
wherein the first attribute information includes at least one of the following: tag information used to identify a logical volume, identification information of a host computer that is accessing the logical volume, host information relating to a port of the host computer provided with access to the logical volume, port information relating to a port of the host computer provided with access to the logical volume, reservation control information for the logical volume, and key information enabling the logical volume to be updated.
11. The method of claim 10, further comprising:
storing the first data block a first storage area associated with the first storage subsystem; and
storing the first data block received from the first storage subsystem in a second storage area associated with the second storage subsystem,
wherein the second storage subsystem provides a back-up storage to the first storage subsystem.
12. A storage subsystem coupled to a plurality of host computers, the storage subsystem comprising:
a plurality of first communication interfaces coupled to the first host computers via a communication link of first type;
a shared memory configured to be accessible via the plurality of first communication interfaces, the shared memory being configured to store first attribute information obtained by executing a control command received from one of the first host computers;
a storage controller to handle data requests from the first host computers;
a storage unit coupled to the storage controller and including a storage area, the storage unit including a plurality of disk drives; and
a second communication interface coupled to a remote storage subsystem via a communication link of second type that is different from the communication link of first type,
wherein the storage subsystem is configured to transmit a first data block from the storage subsystem to the remote storage subsystem and to transmit the first attribute information from the storage subsystem to the remote storage subsystem without direct involvement from the first host computers, the remote storage subsystem being associated with a second host computer.
13. The storage subsystem of claim 12, wherein the storage subsystem is a disk array unit including a plurality of disk drives.
14. The storage subsystem of claim 12, the storage system further comprising:
a cache memory to temporarily store the first data block prior to transmitting the first data block to the remote storage subsystem.
15. The storage subsystem of claim 12, wherein the first data block and the first attribute information are transferred to the remote storage subsystem via the communicatior link of second type,
wherein the control command relates to replication of the first data block in the remote storage subsystem, the control command being a command other than a write command,
wherein the first attribute information includes at least one of the following: tag information used to identify a logical volume, identification information of a host computer that is accessing the logical volume, information relating to a host computer provided with access to the logical volume, port information relating to a port of the host computer provided with access the logical volume reservation control information for the logical volume, and key information enabling the logical volume to be updated.
16. The storage subsystem of claim 12, wherein the storage subsystem is provided within a storage system including a storage area network, wherein the host computers are servers configured to access the storage subsystem via the storage area network.
17. The storage subsystem of claim 12, wherein the storage unit includes a first logical volume and a second logical volume, one of the first host computer being configured to specify a write request and a control command that are directed to the first logical volume, the storage subsystem being configured to transfer the write request and the control command to the first logical volume, the remote storage subsystem being configured to store data corresponding to the write request and the attribute information corresponding to the control command in a third logical volume in the order the write request and the control command are issued by one of the first host computers the third logical volume being provided within the remote storage subsystem.
18. The storage subsystem of claim 17, the storage subsystem is a disk array unit.
19. A computer readable medium including a computer program for providing a remote replication function in a storage system, the storage system including a first storage subsystem and a second storage subsystem, the program comprising:
code for transmitting a first data block from the first storage subsystem to the second storage subsystem, the first storage subsystem being associated with a plurality of first host computers and the second storage subsystem being associated with a second host computer, the first subsystem including a storage unit including a plurality of disk drives, a storage controller, first communication interfaces coupled to the plurality of first hosts, a second communication interface coupled to the second storage subsystem;
code for executing a first control command received from one of the first hosts;
code for storing first attribute information associated with the first control command to a first shared memory, the first attribute information resulting from the execution of the first control command; and
code for transmitting the first attribute information from the first storage subsystem to the second storage subsystem without direct involvement from the first host computers,
wherein the first data block is obtained from an update command received from one of the first host computers.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A computer-implemented method to identify events to record for users of a virtual world, the computer-implemented method comprising:
identifying properties of a plurality of events having occurred in the virtual world, wherein the plurality of events is associated with a plurality of users including a first user and a second user;
programmatically deriving, from the identified properties and by operation of one or more computer processors, at least a first recording criterion specific to the first user and at least a second recording criterion specific to the second user;
upon a first event occurring and satisfying the derived first recording criterion, generating a recording of the first event using a first capture technique; and
upon a second event occurring subsequent to the first event and satisfying the derived second recording criterion, generating a recording of the second event using a second capture technique.
2. The computer-implemented method of claim 1, wherein deriving at least one recording criterion specific to the first user comprises:
identifying a property, associated with each of the plurality of events, that occurs with a frequency which exceeds a predefined threshold.
3. The computer-implemented method of claim 1, wherein the recordings of the first and second events are generated automatically and without receiving any user request explicitly specifying to record any of the first and second events
4. The computer-implemented method of claim 1, wherein the at least one recording criterion specific to the first user and the at least one recording criterion specific to the second user are derived automatically and without receiving any user-specified recording criterion.
5. The computer-implemented method of claim 1, wherein the events to record are identified based on recording criteria specific to the users and programmatically derived from occurred events in the virtual world.
6. A computer program product to identify events to record for users of a virtual world, the computer program product comprising:
a computer-readable storage medium having computer-readable program code embodied therewith, the computer-readable program code executable by one or more computer processors to:
identify properties of a plurality of events having occurred in the virtual world, wherein the plurality of events is associated with a plurality of users including a first user and a second user;
programmatically derive, from the identified properties and by operation of one or more computer processors when executing the program, at least a first recording criterion specific to the first user and at least a second recording criterion specific to the second user;
upon a first event occurring and satisfying the derived first recording criterion, generate a recording of the first event using a first capture technique; and
upon a second event occurring subsequent to the first event and satisfying the derived second recording criterion, generate a recording of the second event using a second capture technique.
7. The computer program product of claim 6, wherein deriving at least one recording criterion specific to the first user comprises:
identifying a property, associated with each of the plurality of events, that occurs with a frequency which exceeds a predefined threshold.
8. The computer program product of claim 6, wherein the recordings of the first and second events are generated automatically and without receiving any user request explicitly specifying to record any of the first and second events
9. The computer program product of claim 6, wherein the at least one recording criterion specific to the first user and the at least one recording criterion specific to the second user are derived automatically and without receiving any user-specified recording criterion.
10. The computer program product of claim 6, wherein the events to record are identified based on recording criteria specific to the users and programmatically derived from occurred events in the virtual world.
11. A system to identify events to record for users of a virtual world, the system comprising:
one or more computer processors; and
a memory containing a program, which when executed by the one or more computer processors is configured to perform an operation comprising:
identifying properties of a plurality of events having occurred in the virtual world, wherein the plurality of events is associated with a plurality of users including a first user and a second user;
programmatically deriving, from the identified properties, at least a first recording criterion specific to the first user and at least a second recording criterion specific to the second user;
upon a first event occurring and satisfying the derived first recording criterion, generating a recording of the first event using a first capture technique; and
upon a second event occurring subsequent to the first event and satisfying the derived second recording criterion, generating a recording of the second event using a second capture technique.
12. The system of claim 11, wherein deriving at least one recording criterion specific to the first user comprises:
identifying a property, associated with each of the plurality of events, that occurs with a frequency which exceeds a predefined threshold.
13. The system of claim 11, wherein the recordings of the first and second events are generated automatically and without receiving any user request explicitly specifying to record any of the first and second events
14. The system of claim 11, wherein the at least one recording criterion specific to the first user and the at least one recording criterion specific to the second user are derived automatically and without receiving any user-specified recording criterion.
15. The system of claim 11, wherein the events to record are identified based on recording criteria specific to the users and programmatically derived from occurred events in the virtual world.
16. The system of claim 11, wherein the events to record are identified based on recording criteria specific to the users and programmatically derived from occurred events in the virtual world, wherein the users interact with one another via avatars in the virtual world, wherein the first capture technique comprises, upon determining that a first amount of available storage space is sufficient for storing video footage of the first event, capturing only video footage of the first event, wherein the captured video footage is playable by a media player application;
the second capture technique comprising, upon determining that a second amount of available storage space is insufficient for storing video footage of the second event, capturing only event data of the second event, wherein the captured event data excludes video footage and comprises data sufficient to reconstruct the second event for playback, wherein the captured event data is playable by a virtual world application different from the media player application, to simulate the virtual world.
17. The system of claim 16, wherein the captured event data of the first event is not playable by the media player application, wherein the captured video footage of the first event is not playable by the virtual world application, wherein generating the recording of the second event comprises generating the recording of the second event by the virtual world application and without continuously recording all events occurring within the virtual world, wherein the operation further comprises:
responsive to receiving, from the first user, a request to share the recorded first event with a second user, outputting the recorded first event for playback to the second user;
wherein at least one event not satisfying the at least one recording criterion specific to the first user is not recorded for the first user, wherein the at least one recording criterion specific to the first user is different from the at least one recording criterion specific to the second user.
18. The system of claim 17, wherein the virtual world application is configured to independently generate the recording of the first event based on each individual property selected from: (i) an event type of the first event; (ii) an event location of the first event; (iii) a count of participants in the first event; (iv) an event duration of the first event; (v) an event starting time of the first event; (vi) an event ending time of the first event; and (vii) a presence of one or more specified participants at the first event;
wherein a first occurred event is not recorded by the first user in the virtual world, wherein a second occurred event is not attended by the first user in the virtual world, wherein the recordings of the first and second events are stored in a data store and are accessible for subsequent playback, wherein the recordings of the first and second events are generated automatically and without receiving any user request explicitly specifying to record any of the first and second events.
19. The system of claim 18, wherein the at least one recording criterion specific to the first user and the at least one recording criterion specific to the second user are derived automatically and without receiving any user-specified recording criterion, wherein the plurality of events associated with the first user includes the first occurred event attended by the first user in the virtual world and a third occurred event explicitly specified by the first user to be recorded in the virtual world, wherein the subsequent playback occurs responsive to receiving a playback request from the first user;
wherein the virtual world application is further configured to, in deriving the at least one recording criterion specific to the first user, independently determine that the first event satisfies each predefined threshold selected from a first predefined threshold, a second predefined threshold, and a third predefined threshold, wherein the first predefined threshold comprises a total count of occurrences of events matching a first property.
20. The system of claim 19, wherein the second predefined threshold comprises a percentage of occurrences of events matching a second property, relative to a total count of occurrences of events, wherein the third predefined threshold comprises a standard deviation of occurrences of events matching a third property, relative to the total count of occurrences of events, wherein the first property, the second property, and the third property are distinct, wherein a third event occurring in the virtual world and not satisfying at least one of the first predefined threshold, the second predefined threshold, and the third predefined threshold is not recorded.