System and method for record level multiplexing of backup data to storage media
First Claim
Patent Images
1. A method for storing data comprising:
- receiving, by a server, data chunks over a network connection, the data chunks being subdivisions of a save set of a plurality of save sets, each save set originating from a different device;
creating, on the server, a plurality of circular buffers for each of the plurality of save sets, each circular buffer only including data for a corresponding save set;
storing, on the server, received data chunks of a first save set in a first circular buffer of the plurality of circular buffers, wherein the received data chunks of the first save set are not separated by chunk headers within the first circular buffer;
creating, by the server, a record header associated with all the data chunks of the first save set, the record header including metadata about the device from which the first save set originated;
storing, on the server, received data chunks of a second save set in a second circular buffer of the plurality of circular buffers, wherein the received data chunks of the second save set are not separated by chunk headers within the second circular buffer; and
in response to all of the data chunks of the first save set being stored in the first circular buffer, writing the received data chunks of the first save set and the record header to a first media record on a storage media before writing any portion of the second save set to a second media record on the storage media, the storage media being coupled to the server and comprising backup data for a plurality of client devices, the data chunks of the first save set and the record header being stored together in the first media record.
9 Assignments
0 Petitions
Accused Products
Abstract
A system and method for efficiently creating a backup volume that is also efficient to recover is described. The backup volume may be created with one save set per media record by utilizing record level multiplexing rather than chunk level multiplexing. Through the use of multiple circular buffers, with each buffer associated with a respective save set, save sets written to storage media are contiguous and individual save set chunks are not separated by chunk headers within the respective media record. Recovery is therefore more efficient since the step of reading chunk headers and locating all the chunks for a save set is no longer required.
-
Citations
13 Claims
-
1. A method for storing data comprising:
-
receiving, by a server, data chunks over a network connection, the data chunks being subdivisions of a save set of a plurality of save sets, each save set originating from a different device; creating, on the server, a plurality of circular buffers for each of the plurality of save sets, each circular buffer only including data for a corresponding save set; storing, on the server, received data chunks of a first save set in a first circular buffer of the plurality of circular buffers, wherein the received data chunks of the first save set are not separated by chunk headers within the first circular buffer; creating, by the server, a record header associated with all the data chunks of the first save set, the record header including metadata about the device from which the first save set originated; storing, on the server, received data chunks of a second save set in a second circular buffer of the plurality of circular buffers, wherein the received data chunks of the second save set are not separated by chunk headers within the second circular buffer; and in response to all of the data chunks of the first save set being stored in the first circular buffer, writing the received data chunks of the first save set and the record header to a first media record on a storage media before writing any portion of the second save set to a second media record on the storage media, the storage media being coupled to the server and comprising backup data for a plurality of client devices, the data chunks of the first save set and the record header being stored together in the first media record. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method for storing data comprising:
-
receiving, by a server, data chunks over a network connection, the data chunks being subdivisions of a save set of a plurality of save sets, each save set originating from a different device; creating, on the server, a plurality of circular buffers for each of the plurality of save sets, each circular buffer only including data for a corresponding save set; storing, on the server, received data chunks of a first save set and associated record metadata for the first save set in a first circular buffer of the plurality of circular buffers, wherein the received data chunks of the first save set are not separated by chunk headers within the first circular buffer; creating, by the server, a record header associated with all the data chunks of the first save set, the record header including metadata about the device from which the first save set originated; storing, on the server, received data chunks of a second save set and associated record metadata for the second save set in a second circular buffer of the plurality of circular buffers, wherein the received data chunks of the second save set are not separated by chunk headers within the second circular buffer; and in response to all of the data chunks of the first save set being stored in the first circular buffer, writing the received data chunks of the first save set and the record header to storage media before writing any portion of the second save set, the storage media being coupled to the server and comprising backup data for a plurality of client devices, the data chunks of the first save set and the record header being stored together in the first media record. - View Dependent Claims (9, 10)
-
-
11. A non-transitory computer readable medium containing computer readable instructions for storing data, the computer readable instructions comprising:
-
computer program code for receiving, by a server, data chunks over a network connection, the data chunks being subdivisions of a save set of a plurality of save sets, each save set originating from a different device; computer program code for creating, on the server, a plurality of circular buffers for each of the plurality of save sets, each circular buffer only including data for a corresponding save set; computer program code for storing, on the server, received data chunks of a first save set in a first circular buffer of the plurality of circular buffers, wherein the received data chunks of the first save set are not separated by chunk headers within the first circular buffer; computer program code for creating, by the server, a record header associated with all the data chunks of the first save set, the record header including metadata about the device from which the first save set originated; computer program code for storing, on the server, received data chunks of a second save set in a second circular buffer of the plurality of circular buffers, wherein received data chunks of the second save set are not separated by chunk headers within the first circular buffer; and computer program code for, in response to all of the data chunks of the first save set being stored in the first circular buffer, writing the received data chunks of the first save set and the record header to storage media before writing any portion of the second save set, the storage media being coupled to the server and comprising backup data for a plurality of client devices, the data chunks of the first save set and the record header being stored together in the first media record.
-
-
12. A non-transitory computer readable medium containing computer readable instructions for storing data, the computer readable instructions comprising:
-
computer program code for receiving, by a server, data chunks over a network connection, the data chunks being subdivisions of a save set of a plurality of save sets, each save set originating from a different device; computer program code for creating, on the server, a plurality of circular buffers for each of the plurality of save sets, each circular buffer only including data for a corresponding save set; computer program code for storing, on the server, received data chunks of a first save set and metadata for the first save set in a first circular buffer of the plurality of circular buffers, wherein the received data chunks of the first save set are not separated by chunk headers within the first circular buffer; computer program code for creating, by the server, a record header associated with all the data chunks of the first save set, the record header including metadata about the device from which the first save set originated; computer program code for storing, on the server, received data chunks of a second save set and metadata for the second save set in a second circular buffer of the plurality of circular buffers, wherein the received data chunks of the second save set are not separated by chunk headers within the second circular buffer; and computer program code for, in response to all of the data chunks of the first save set being stored in the first circular buffer, writing the received data chunks of the first save set and the record header to storage media before writing any portion of the second save set, the storage media being coupled to the server and comprising backup data for a plurality of client devices, the data chunks of the first save set and the record header being stored together in the first media record.
-
-
13. A system for storing data comprising:
a server with one or more processors for receiving data chunks over a network connection, the data chunks being subdivisions of a corresponding save set, each save set originating from a different device, for creating a circular buffer for each of the save sets, each circular buffer only including data for a corresponding save set, for storing received data chunks of a first save set in a first circular buffer of the created circular buffers, for creating a record header associated with all the data chunks of the first save set, the record header including metadata about the device from which the first save set originated, for storing received data chunks of a second save set in a second circular buffer of the created circular buffers, and for writing, in response to all of the data chunks of the first save set being stored in the first circular buffer, the received data chunks of the first save set and the record header to storage media before writing any portion of the second save set, wherein the first save set and the second save set are each comprised of a plurality of data chunks not separated by chunk headers, the storage media being coupled to the server and comprising backup data for a plurality of client devices, the data chunks of the first save set and the record header being stored together in a first media record.
Specification