IP Library Granted Patent US 10,216,580
Granted Patent B1
US 10,216,580 · App. 15/940,306 · Granted Feb 26, 2019

System and method for mainframe computers backup and restore on object storage systems

View Patent ↗
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 10,216,580
App. No.
15/940,306
Granted
Feb 26, 2019
Kind
B1
Abstract

Methods, system and computer program product for backup and restore mainframe data onto an object storage, the methods comprising a backup operation and a restore operation, the backup operation comprising: receiving a request for backing up a data set; splitting the data set into chunks, each chunk having a predetermined size; creating a mapping object; repeating for each chunk: allocating a sender thread to the chunk; transmitting using an object storage API, the chunk having the predetermined size as an object, to the object storage by the sender thread; and updating the mapping object with details of the chunk; subject to the data set being fully split and no more chunks to be transmitted, transmitting the mapping object to the object storage by the sender thread; and writing an identifier of the data set and meta data of the mapping object to a database.

Claims (85)

1. A computer-implemented method comprising:

receiving a request for backing up a data set from a mainframe onto an object storage;

splitting the data set into a multiplicity of chunks, each chunk of the multiplicity of chunks having a predetermined size;

creating a mapping object;

repeating for each chunk:

allocating a sender thread to the chunk;

transmitting by the sender thread using an object storage Application programming interface (API), the chunk having the predetermined size as an object, to the object storage, to be stored as an object; and

updating the mapping object with details of the chunk;

subject to the data set being fully split and no more chunks to be transmitted, transmitting the mapping object to the object storage by the sender thread; and

writing an identifier of the data set and meta data including an object name of the mapping object, to a database stored in a storage device of the mainframe.

2. The method of claim 1 , wherein splitting the data set into a multiplicity of chunks comprises repeating:

extracting a block from the data set; and

adding the block into a chunk until the chunk reaches the predetermined size,

until all blocks have been extracted from the data set.

3. The method of claim 2 , wherein extracting the block from the data set is performed by data facility data set services (DFDSS) being called with a callback function parameter, wherein the DFDSS calls the callback function during extracting the block from the data set to thereby accumulate chunks from a sequence of blocks.

4. The method of claim 1 , wherein allocating the sender thread to the chunk comprises:

queuing the chunk to a chunk queue; and

having an available sender thread dequeue a chunk from the chunk queue.

5. The method of claim 1 , further comprising compressing the chunk or encrypting the chunk prior to transmitting the chunk to the object storage.

6. The method of claim 1 , wherein the chunk is transmitted over TCP/IP.

7. A computer-implemented method comprising:

receiving a request to restore a data set from an object storage, to a mainframe;

querying a database stored in a storage device of the mainframe to retrieve an object name of a mapping object associated with the data set;

reading the mapping object from the object storage;

invoking data facility data set services (DFDSS);

for each chunk from the chunks described in the mapping objects, the chunk stored in the object storage as an object,

requesting and receiving, by the mainframe, the chunk from the object storage using object storage API, each chunk having a sequence number; and

restoring the data set from the chunks in accordance with the sequence number.

8. The method of claim 7 , wherein invoking the DFDSS comprises providing a callback function.

9. The method of claim 8 , wherein restoring the data set from multiplicity of chunks comprises repeating:

extracting one or more blocks from the chunk;

passing the one or more blocks to the DFDSS by the callback function; and

restoring the data set from the blocks.

10. The method of claim 7 , further comprising decrypting or decompressing each chunk received from the object storage.

11. The method of claim 7 , wherein the chunk is received over TCP/IP.

12. A system for backup and restore mainframe data on a backup server, comprising:

a processor, the processor being adapted to perform a first set of steps comprising:

receiving a request for backing up a data set from a mainframe onto an object storage;

splitting the data set into a multiplicity of chunks, each chunk of the multiplicity of chunks having a predetermined size;

creating a mapping object;

repeating for each chunk:

allocating a sender thread to the chunk;

transmitting by the sender thread using an object storage Application programming interface (API), the chunk having the predetermined size as an object, to the object storage, to be stored as an object; and

updating the mapping object with details of the chunk;

subject to the data set being fully split and no more chunks to be transmitted, transmitting the mapping object to the object storage by the sender thread; and

write an identifier of the data set and meta data including an object name of the mapping object, to a database stored in a storage device of the mainframe.

13. The system of claim 12 , wherein the processor is further adapted to perform a second set of steps comprising:

receiving a request to restore a data set from an object storage, to a mainframe;

querying the database to retrieve an object name of a mapping object associated with the data set;

reading the mapping object from the object storage;

invoking data facility data set services (DFDSS);

for each chunk from the chunks described in the mapping objects,

requesting and receiving a chunk from the object storage using object storage API, each chunk having a sequence number; and

restoring the data set from the chunks in accordance with the sequence number.

14. The system of claim 13 ,

wherein splitting the data set into a multiplicity of chunks comprises repeating:

extracting a block from the data set; and

adding the block into a chunk until the chunk reaches the predetermined size,

until all blocks have been extracted from the data set; and

wherein restoring the data set from multiplicity of chunks comprises repeating:

extracting one or more blocks from the chunk;

passing the one or more blocks to the DFDSS by the callback function; and

restoring the data set from the blocks.

15. The system of claim 13 , wherein extracting the block from the data set or restoring the data set from the blocks is performed by data facility data set services (DFDSS) being called with one or more callback function parameters, wherein the DFDSS calls the callback functions during extracting the block from the data set or during restoring the data set from the blocks.

16. The system of claim 13 , wherein the processor is further adapted to compress or encrypt the chunk prior to transmitting the chunk to the object storage, or to decompress or decrypt each chunk received from the object storage.

17. The system of claim 13 , wherein the chunk is transmitted or received over TCP/IP.

18. A computer program product comprising a computer readable storage medium retaining program instructions, which program instructions when read by a processor, cause the processor to perform a method comprising:

performing a backup operation, comprising:

receiving a request for backing up a data set from a mainframe onto an object storage;

splitting the data set into a multiplicity of chunks, each chunk of the multiplicity of chunks having a predetermined size;

creating a mapping object;

repeating for each chunk:

allocating a sender thread to the chunk;

transmitting by the sender thread using an object storage Application programming interface (API), the chunk having the predetermined size as an object, to the object storage, to be stored as an object; and

updating the mapping object with details of the chunk;

subject to the data set being fully split and no more chunks to be transmitted, transmitting the mapping object to the object storage by the sender thread; and

writing an identifier of the data set and meta data including an object name of the mapping object, to a database stored in a storage device of the mainframe; and

performing a restore operation, comprising:

receiving a request to restore a data set from an object storage, to a mainframe;

querying the database to retrieve the object name of a mapping object associated with the data set;

reading the mapping object from the object storage;

invoking data facility data set services (DFDSS);

for each chunk from the chunks described in the mapping objects,

requesting and receiving a chunk from the object storage using object storage API, each chunk having a sequence number; and

restoring the data set from the chunks in accordance with the sequence number.

Assignments (4)
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0568 →
GRANT OF FIRST LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0628 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 31, 2023
From: MODEL 9 SOFTWARE LTD.
To: BMC SOFTWARE, INC.
Reel/Frame 064434/0822 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 30, 2018
From: PELEG, GIL; KASHTAN, YUVAL; ZELBERZVIG, TOMER; POLOTSKY, DORI; BARUCH, OFFER
To: MODEL9 SOFTWARE LTD.
Reel/Frame 045395/0482 →