IP Library › Granted Patent US 10,423,634
Granted Patent B1
US 10,423,634 · App. 15/391,030 · Granted Sep 24, 2019

Temporal queries on secondary storage

Inventors: Jehuda Shemer (Kfar Saba, IL); Assaf Natanzon (Tel Aviv, IL); Leehod Baruch (Rishon Leziyon, IL); Ron Bigman (Holon, IL); Amit Lieberman (Raanana, IL)
Assignee: EMC IP HOLDING COMPANY LLC
G06F16/2477G06F16/2358
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,423,634
App. No.
15/391,030
Filed
Dec 27, 2016
Granted
Sep 24, 2019
Kind
B1
Art Unit
2163
USPC
707/769
Abstract

A storage system is provided, comprising a processor and a storage array comprising a data storage entity storing computer-accessible data and a container executing within the storage array. The container is configured to run a temporal query service configured to query the data storage entity in the storage array from within the storage array, wherein a structure of a temporal query generated in accordance with the temporal query service comprises a query format configured to be compatible with a temporal structure of the data storage entity. The temporal query service is configured to parse at least a first temporal query received from a requesting entity to determine a set of temporal query parameters relating to data stored on the data storage entity, query the data storage entity with a second temporal query formed in accordance with the set of query parameters, and return temporal query results.

Claims (53)

1. A computer-implemented method, comprising:

configuring a storage system comprising a first processor in operable communication with a storage array, the storage array comprising a second processor and at least one data storage entity in operable communication with the second processor;

configuring a container to execute within the storage array on top of the second processor, wherein the container provides a virtual operating system environment configured to provide at least one isolated user space execution context, wherein the container is configured to be in operable communication with the data storage entity and is configured to access the storage array from within the storage array;

configuring the container to control and run a temporal query service operating from within the storage array, wherein the temporal query service is configured to generate a temporal query, from within the storage array, to the data storage entity, wherein a structure of the temporal query generated in accordance with the temporal query service comprises a query format configured to be compatible with a temporal structure of the data storage entity, and wherein the temporal query service is configured to:

parse at least a first temporal query received at the temporal query service from a requesting entity to determine a set of temporal query parameters, the set of temporal query parameters relating to data stored on the data storage entity;

query the data storage entity with a second temporal query formed in accordance with the set of query parameters and formed to be compatible with a temporal structure of the data storage entity; and

return temporal query results to the requesting entity responsive to the first and second temporal queries, the temporal query results based at least in part on the set of query parameters.

2. The method of claim 1 , wherein the second temporal query is generated in accordance with predetermined information relating to a format of data storage on the data storage entity, the predetermined information enabling the second temporal query to access portions of the data storage entity that provide information relating to changes in data stored on the data storage entity.

3. The method of claim 2 , wherein the predetermined information enables the second temporal query to access metadata on the data storage entity, the metadata providing information relating to changes in data.

4. The method of claim 2 , wherein the predetermined information enables the second temporal query to scan a plurality of data locations to determine changes in data.

5. The method of claim 1 , wherein the storage array is configured as secondary storage in operable communication with the storage system.

6. The method of claim 1 , further comprising:

analyzing, in response to the second temporal query, one or more portions of the data storage entity to determine how at least a portion of data responsive to the second temporal query has changed; and

including in the temporal query return results information relating to how the data has changed.

7. The method of claim 1 , further comprising:

analyzing one or more portions of the data storage entity that provide information relating to changes in data stored on the data storage entity to determine at least one point in time (PIT) responsive to the second temporal query; and

configuring the storage system to mount the at least one PIT in response to the second temporal query.

8. The method of claim 1 , further comprising executing the second temporal query in accordance with predetermined information relating to a format of data storage on the data storage entity, the predetermined information enabling the second temporal query to modify the way the second temporal query is executed.

9. A storage system, comprising:

a first processor; and

a storage array in operable communication with the processor, the storage array comprising:

a second processor

a data storage entity in operable communication with the second processor, the data storage entity storing computer-accessible data; and

a container configured for executing within the storage array on top of the second processor, the container in operable communication with the data storage entity and configured to access the storage array from within the storage array, wherein the container provides a virtual operating system environment configured to provide at least one isolated user space execution context, wherein the container is configured to control and run a temporal query service operating from within the storage array, wherein the temporal query service is configured to generate a temporal query, from within the storage array, to the data storage entity, wherein the structure of the temporal query generated in accordance with the temporal query service comprises a query format configured to be compatible with a temporal structure of the data storage entity, and wherein the temporal query service is configured to:

parse at least a first temporal query received at the temporal query service from a requesting entity to determine a set of temporal query parameters, the set of temporal query parameters relating to data stored on the data storage entity;

query the data storage entity with a second temporal query formed in accordance with the set of query parameters and formed to be compatible with a temporal structure of the data storage entity; and

return temporal query results to the requesting entity responsive to the first and second temporal queries, the temporal query results based at least in part on the set of query parameters.

10. The system of claim 9 , wherein the second temporal query is generated in accordance with predetermined information relating to a format of data storage on the data storage entity, the predetermined information enabling the second temporal query to access portions of the data storage entity that provide information relating to changes in data stored on the data storage entity.

11. The system of claim 10 , wherein the predetermined information enables the second temporal query to access metadata on the data storage entity, the metadata providing information relating to changes in data.

12. The system of claim 10 , wherein the predetermined information enables the second temporal query to scan a plurality of data locations to determine changes in data.

13. The system of claim 9 , wherein the storage array is configured as secondary storage in operable communication with the storage system.

14. The system of claim 9 , wherein the temporal query service is configured to:

analyze, in response to the second temporal query, one or more portions of the data storage entity to determine how at least a portion of data responsive to the second temporal query has changed; and

include in the temporal query return results information relating to how the data has changed.

15. The system of claim 8 , wherein the temporal query service is configured to:

analyze one or more portions of the data storage entity that provide information relating to changes in data stored on the data storage entity to determine at least one point in time (PIT) responsive to the second temporal query; and

configure the storage system to mount the at least one PIT in response to the second temporal query.

16. A computer program product including a non-transitory computer readable storage medium having computer program code encoded thereon that when executed on a processor of a computer causes the computer to operate a storage system, the computer program product comprising:

computer program code for providing a storage system comprising a processor and a storage array, the storage array comprising a second processor, a data storage entity in operable communication with the second processor, the data storage entity, storing computer-accessible data, and a container configured for executing within the storage array on top of the second processor, the container in operable communication with the data storage entity and configured to access the storage array from within the storage array, wherein the container provides a virtual operating system environment configured to provide at least one isolated user space execution context;

computer program code for configuring the container to control and run a temporal query service operating from within the storage array, wherein the temporal query service is configured to generate a temporal query, from within the storage array, to the data storage entity, wherein the structure of the temporal query generated in accordance with the temporal query service comprises a query format configured to be compatible with a temporal structure of the data storage entity;

computer program code for parsing at least a first temporal query received at the temporal query service from a requesting entity to determine a set of temporal query parameters, the set of temporal query parameters relating to data stored on the data storage entity;

computer program code for querying the data storage entity with a second temporal query formed in accordance with the set of query parameters and formed to be compatible with a temporal structure of the data storage entity; and

computer program code for returning temporal query results to the requesting entity responsive to the first and second temporal queries, the temporal query results based at least in part on the set of query parameters.

17. The computer program product of claim 16 , further comprising:

computer program code for generating the second temporal query in accordance with predetermined information relating to a format of data storage on the data storage entity, the predetermined information enabling the second temporal query to access portions of the data storage entity that provide information relating to changes in data stored on the data storage entity.

18. The computer program product of claim 16 , further comprising

computer program code for analyzing, in response to the second temporal query, one or more portions of the data storage entity to determine how at least a portion of data responsive to the second temporal query has changed; and

computer program code for including in the temporal query return results information relating to how the data has changed.

19. The computer program product of claim 16 , further comprising:

computer program code for analyzing one or more portions of the data storage entity that provide information relating to changes in data stored on the data storage entity to determine at least one point in time (PIT) responsive to the second temporal query; and

computer program code for configuring the storage system to mount the at least one PIT in response to the second temporal query.

20. The computer program product of claim 16 , further comprising:

computer program code for executing the second temporal query in accordance with predetermined information relating to a format of data storage on the data storage entity, the predetermined information enabling the second temporal query to modify the way the second temporal query is executed.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (051302/0528) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.); SECUREWORKS CORP.
Reel/Frame 060438/0593 →
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 AT REEL 051449 FRAME 0728 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.; EMC CORPORATION
Reel/Frame 058002/0010 →
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 Dec 31, 2019
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.; EMC CORPORATION
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 051449/0728 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Dec 16, 2019
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 051302/0528 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 5, 2017
From: SHEMER, JEHUDA; NATANZON, ASSAF; BARUCH, LEEHOD; BIGMAN, RON; LIEBERMAN, AMIT
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040862/0116 →
Cited By (1)
US 12,530,304