IP Library Granted Patent US 10,776,322
Granted Patent B2
US 10,776,322 · App. 15/620,892 · Granted Sep 15, 2020

Transformation processing for objects between 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,776,322
App. No.
15/620,892
Granted
Sep 15, 2020
Kind
B2
Abstract

A computer program product, system, and method for determining containers, within a secondary storage, to transform; determining users having access to the containers to transform; synchronizing storage configuration between the secondary storage and a primary storage; enumerating objects within the containers to transform; and adding object identifiers and object metadata for the enumerated objects to an object index within the primary storage.

Claims (59)

1. A method for transformation processing between a primary storage system and a secondary storage system, the method comprising:

determining, by the primary storage system, containers within the secondary storage system to perform a transformation, the containers within the secondary storage system storing legacy data;

determining, by the primary storage system, users having access permissions to the containers subject to the transformation;

wherein the transformation includes:

synchronizing storage configuration between the secondary storage system and the primary storage system;

enumerating objects within the containers including querying the objects for corresponding object metadata; and

adding object identifiers and the object metadata for the enumerated objects to an object index within the primary storage system, the object index specifying a physical location in the secondary storage system where corresponding enumerated objects are stored; and

enabling access, by the primary storage system, to at least one of the objects stored on the secondary storage system, without migrating the at least one of the objects to the primary storage system, the access enabled by identifying a physical location of the at least one of the objects via a corresponding one of the object identifiers in the object index;

wherein enabling access to at least one of the objects includes processing input/output (IO) requests both during and after completion of the transformation, wherein during the transformation, the enabling access includes upon identifying that a request for an object in the secondary storage system has not yet been added to the object index, proxying, by the primary storage system, the request to the secondary storage system.

2. The method of claim 1 wherein determining users having access permissions to the containers includes determining users that have read or write access to one or more of the containers.

3. The method of claim 1 wherein synchronizing the storage configuration between the secondary storage system and the primary storage system includes synchronizing corresponding users and containers between the secondary storage system and the primary storage system.

4. The method of claim 1 wherein enumerating the objects within the containers includes:

generating a transformation user in the secondary storage system having access permissions to each of the containers; and

enumerating the objects within the containers using the transformation user.

5. The method of claim 1 further comprising:

receiving, as input at the primary storage system, a network address of the secondary storage system and credentials of one of the users in the secondary storage system having sufficient privileges to perform the transformation;

wherein the transformation commences in response to receiving the network address and the credentials.

6. A system for transformation processing between a primary storage system and a secondary storage system, the system comprising:

a processor;

a volatile memory; and

a non-volatile memory storing computer program code that when executed on the processor causes the processor to execute a process operable to perform the operations of:

determining, by the primary storage system, containers within the secondary storage system to perform a transformation, the containers within the secondary storage system storing legacy data;

determining, by the primary storage system, users having access permissions to the containers subject to the transformation;

wherein the transformation includes:

synchronizing storage configuration between the secondary storage system and the primary storage system;

enumerating objects within the containers including querying the objects for corresponding object metadata; and

adding object identifiers and the object metadata for the enumerated objects to an object index within the primary storage system, the object index specifying a physical location in the secondary storage system where corresponding enumerated objects are stored; and

enabling access, by the primary storage system, to at least one of the objects stored on the secondary storage system without migrating the at least one of the objects to the primary storage system, the access enabled by identifying a physical location of the at least one of the objects via a corresponding one of the object identifiers in the object index;

wherein enabling access to at least one of the objects includes processing input/output (IO) requests both during and after completion of the transformation, wherein during the transformation, the enabling access includes upon identifying that a request for an object in the secondary storage system has not yet been added to the object index, proxying, by the primary storage system, the request to the secondary storage system.

7. The system of claim 6 wherein determining users having access permissions to the containers includes determining users that have read or write access to one or more of the containers.

8. The system of claim 6 wherein synchronizing the storage configuration between the secondary storage system and the primary storage system includes synchronizing corresponding users and containers between the secondary storage system and the primary storage system.

9. The system of claim 6 wherein enumerating the objects within the containers includes:

generating a transformation user in the secondary storage system having access permissions to each of the containers; and

enumerating the objects within the containers using the transformation user.

10. The system of claim 6 wherein the computer program code that when executed on the processor causes the processor to execute a process further operable to perform the operations of:

receiving, as input at the primary storage system, a network address of the secondary storage system and credentials of one of the users in the secondary storage system having sufficient privileges to perform the transformation;

wherein the transformation commences in response to receiving the network address and the credentials.

11. A computer program product for transformation processing between a primary storage system and a secondary storage system, the computer program product tangibly embodied in a non-transitory computer-readable medium, the computer-readable medium storing program instructions that are executable to:

determine, by the primary storage system, containers within the secondary storage system to perform a transformation, the contains within the secondary storage system storing legacy data;

determine, by the primary storage system, users having access permissions to the containers subject to the transformation;

wherein the transformation includes:

synchronizing storage configuration between the secondary storage system and the primary storage system;

enumerating objects within the containers including querying the objects for corresponding object metadata; and

adding object identifiers and the object metadata for the enumerated objects to an object index within the primary storage system, the object index specifying a physical location in the secondary storage system where corresponding enumerated objects are stored; and

enabling access, by the primary storage system, to at least one of the objects stored on the secondary storage system without migrating the at least one of the objects to the primary storage system, the access enabled by identifying a physical location of the at least one of the objects via a corresponding one of the object identifiers in the object index;

wherein enabling access to at least one of the objects includes processing input/output (IO) requests both during and after completion of the transformation, wherein during the transformation, the enabling access includes upon identifying that a request for an object in the secondary storage system has not yet been added to the object index, proxying, by the primary storage system, the request to the secondary storage system.

12. The computer program product of claim 11 wherein determining users having access permissions to the containers includes determining users that have read or write access to one or more of the containers.

13. The computer program product of claim 11 wherein synchronizing the storage configuration between the secondary storage system and the primary storage system includes synchronizing corresponding users and containers between the secondary storage system and the primary storage system.

14. The computer program product of claim 11 wherein enumerating the objects within the containers includes:

generating a transformation user in the secondary storage system having access permissions to each of the containers; and

enumerating the objects within the containers using the transformation user.

15. The computer program product of claim 11 further comprising:

receiving, as input at the primary storage system, a network address of the secondary storage system and credentials of one of the users in the secondary storage system having sufficient privileges to perform the transformation;

wherein the transformation commences in response to receiving the network address and the credentials.

16. The method of claim 1 , wherein synchronizing the storage configuration includes:

creating a container in the primary storage system for each of the containers in the secondary storage system subject to the transformation; and

creating a user in the primary storage system for each of the users having access permissions to the containers subject to the transformation in the secondary storage system.

17. The method of claim 1 , further comprising:

upon completion of the transformation, restricting direct access to the secondary storage system, the restricting comprising blocking incoming Internet Protocol (IP) addresses except IP addresses associated with the primary storage system.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (047648/0422) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060160/0862 →
RELEASE OF SECURITY INTEREST AT REEL 047648 FRAME 0346 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058298/0510 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Oct 12, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047648/0346 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 12, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 047648/0422 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 15, 2017
From: DANILOV, MIKHAIL; SKRIPKO, GREGORY; GUTSALOV, NIKITA; TCHOUB, IVAN; FEDOROV, ALEXANDER; KOYUSHEV, SERGEY; GAVRILOVA, MARIA
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 042719/0053 →