Systems and methods of data storage management, such as dynamic data stream allocation
First Claim
Patent Images
1. A method of transferring data to one or more storage media, the method comprising:
- identifying data to be transferred to the one or more storage media;
receiving data transfer information associated with two or more data streams in a process of transferring the identified data to the one or more storage media, wherein the data transfer information comprises an amount of data currently being transferred by each of the two or more data streams and a data transfer rate of each of the two or more data streams;
selecting from the two or more data streams a data stream based at least in part on the received data transfer information;
pre-allocating space on the one or more storage media associated with the selected data stream;
storing, at a first time, the identified data to be transferred in a first queue associated with the selected data stream;
reassigning, at a second time later than the first time, the identified data to be transferred from the first queue to a second queue associated with a data stream other than the selected data stream, wherein the reassigning compensates for changing amounts of data being transferred by each of the two or more data streams, and the data transfer rates of each of the two or more data streams; and
transferring the identified data to be transferred to the pre-allocated space.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and method for choosing a stream to transfer data is described. In some cases, the system reviews running data storage operations and chooses a data stream based on the review. In some cases, the system chooses a stream based on the load of data to be transferred.
-
Citations
25 Claims
-
1. A method of transferring data to one or more storage media, the method comprising:
-
identifying data to be transferred to the one or more storage media; receiving data transfer information associated with two or more data streams in a process of transferring the identified data to the one or more storage media, wherein the data transfer information comprises an amount of data currently being transferred by each of the two or more data streams and a data transfer rate of each of the two or more data streams; selecting from the two or more data streams a data stream based at least in part on the received data transfer information; pre-allocating space on the one or more storage media associated with the selected data stream; storing, at a first time, the identified data to be transferred in a first queue associated with the selected data stream; reassigning, at a second time later than the first time, the identified data to be transferred from the first queue to a second queue associated with a data stream other than the selected data stream, wherein the reassigning compensates for changing amounts of data being transferred by each of the two or more data streams, and the data transfer rates of each of the two or more data streams; and transferring the identified data to be transferred to the pre-allocated space. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A system, at least partially implemented in hardware, of dynamically allocating a data stream to send data to one or more storage devices, the system comprising:
-
a first storage subsystem, wherein the first storage subsystem transfers data to first storage media; a second storage subsystem, wherein the second storage subsystem transfers data to second storage media; and a dynamic allocation component, wherein the dynamic allocation component; receives load information associated with the first storage subsystem and the second storage subsystem, wherein the load information comprises an amount of data currently being transferred by each of the first storage subsystem and the second storage subsystem and a data transfer rate of each of the first storage subsystem and the second storage subsystem; selects a storage subsystem based at least in part on load information associated with the first storage subsystem and the second storage subsystem; pre-allocates a space on the storage media associated with the selected storage subsystem; and stores, at a first time, the data in a first queue; reassigns, at a second time later than the first time, the data from the first queue to a second queue, wherein the reassignment is performed to compensate for changing amounts of data being transferred by each of the first storage subsystem and the second storage subsystem, and the data transfer rates of each of the first storage subsystem and the second storage subsystem; and transfers the data to the pre-allocated space. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19)
-
-
20. A system for transferring data to one or more storage media, comprising:
-
means for receiving the data to be transferred to the one or more storage media; means, coupled to the means for receiving, for analyzing load information from two or more data streams in transferring the data to the one or more storage media, wherein the load information comprises an amount of data currently being transferred by each of the two or more data streams and a data transfer rate of each of the two or more data streams; means, coupled to the means for analyzing, for selecting from the two or more data streams a data stream based at least in part on the received load information; means for pre-allocating space on the one or more storage media associated with the selected data stream; means for storing, at a first time, the data to be transferred in a first queue associated with the selected data stream; means for reassigning, at a second time later than the first time, the data to be transferred from the first queue to a second queue associated with a data stream other than the selected data stream, wherein the reassigning compensates for changing amounts of data being transferred by each of the two or more data streams, and the data transfer rates of each of the two or more data streams; and means for transferring the data to be transferred to the pre-allocated space. - View Dependent Claims (21)
-
-
22. A computer program product comprising a computer-readable, non-transitory medium having code stored thereon, the code, when executed, causing a processor to implement a method of transferring data to one or more storage media, the method comprising:
-
identifying data to be transferred to the one or more storage media; receiving data transfer information associated with two or more data streams in a process of transferring the identified data to the one or more storage media, wherein the data transfer information comprises an amount of data currently being transferred by each of the two or more data streams and a data transfer rate of each of the two or more data streams; selecting from the two or more data streams a data stream based at least in part on the received data transfer information; pre-allocating space on the one or more storage media associated with the selected stream; storing, at a first time, the identified data to be transferred in a first queue associated with the selected data stream; reassigning, at a second time later than the first time, the identified data to be transferred from the first queue to a second queue associated with a data stream other than the selected data stream, wherein the reassigning compensates for changing amounts of data being transferred by each of the two or more data streams, and the data transfer rates of each of the two or more data streams; and transferring the identified data to be transferred to the pre-allocated space. - View Dependent Claims (23, 24, 25)
-
Specification