IP Library Granted Patent US 10,831,742
Granted Patent B2
US 10,831,742 · App. 15/620,900 · Granted Nov 10, 2020

Data set verification

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,831,742
App. No.
15/620,900
Granted
Nov 10, 2020
Kind
B2
Abstract

A computer program product, system, and method for generating a test data set using object count and object size parameters, storing the generated data set in storage, subsequently regenerating the data set, and comparing the regenerated data set to the stored data set to validate the storage.

Claims (45)

1. A method for testing storage systems, comprising:

receiving parameters including an object count (N) and an object size, the parameters being received as user input via a user interface for specifying storage system tests;

generating, by a data set generator, a data set key, and providing the data set key to a data stream generator;

generating, by the data stream generator, a quasi-random data stream of N object identifiers based on based on the data set key and the object count and providing the quasi-random data stream to the data set generator;

providing, by the data set generator, each of the N object identifiers to the data stream generator together with the object size;

for each of the N object identifiers, receiving, by the data set generator, object contents corresponding to the object identifier and adding the object identifier and the object identifier's corresponding object contents to a storage system under testing, the object identifier's corresponding object contents being generated by the data stream generator in response to the object identifier, the object identifier's corresponding object contents including quasi-random data that is reproducible based on the object identifier and the object size;

regenerating the N object identifiers using the data set key and the object count;

for each of the N object identifiers, regenerating the object identifier's corresponding object contents using the object identifier and the object size;

for each of the N object identifiers, retrieving, from the storage system under testing, the object identifier's corresponding object contents; and

detecting whether the storage system under testing is operating correctly by comparing each object identifier's corresponding regenerated contents to the object identifier's corresponding retrieved contents.

2. The method of claim 1 wherein the parameters further include a data set name, the method further including: storing the data set key, object count (N), and object size to local storage using the data set name.

3. The method of claim 1 wherein generating the data set key includes generating the data set key using a pseudo-random number generator (PRNG).

4. The method of claim 1 wherein the quasi-random data stream of N object identifiers is generated by using a pseudo-random number generator (PRNG) seeded with the data set key.

5. The method of claim 1 wherein each object identifier's corresponding object contents are generated by using a pseudo-random number generator (PRNG) seeded with the object identifier.

6. A system comprising:

a processor;

a volatile memory; and

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

receiving parameters including an object count (N) and an object size, the parameters being received as user input via a user interface for specifying storage system tests;

generating, by a data set generator, a data set key, and providing the data set key to a data stream generator;

generating, by the data stream generator, a quasi-random data stream of N object identifiers based on the data set key and the object count, and providing the quasi-random data stream to the data set generator;

providing, by the data set generator, each of the N object identifiers to the data stream generator together with the object size;

for each of the N object identifiers, receiving, by the data set generator, object contents corresponding to the object identifier and adding the object identifier and the object identifier's corresponding object contents to a storage system under testing, the object identifier's corresponding object contents being generated by the data stream generator in response to the object identifier, the object identifier's corresponding object contents including quasi-random data that is reproducible based on the object identifier and the object size;

regenerating the N object identifiers using the data set key and the object count;

for each of the N object identifiers, regenerating the object identifier's corresponding object contents using the object identifier and the object size;

for each of the N object identifiers, retrieving, from the storage system under testing, the object identifier's corresponding object contents; and

detecting whether the storage system under testing is operating correctly by comparing each object identifier's corresponding regenerated contents to the object identifier's corresponding retrieved contents.

7. The system of claim 6 wherein the parameters further include a data set name, the computer program code causes the processor to execute a process further operable to perform the operations of: storing the data set key, object count (N), and object size to local storage using the data set name.

8. The system of claim 6 wherein generating the data set key includes generating the data set key using a pseudo-random number generator (PRNG).

9. The system of claim 6 , wherein the quasi-random data stream of N object identifiers is generated by using a pseudo-random number generator (PRNG) seeded with the data set key.

10. The system of claim 6 wherein each object identifier's corresponding object contents are generated by using a pseudo-random number generator (PRNG) seeded with the object identifier.

11. A computer program product tangibly embodied in a non-transitory computer-readable medium, the computer-readable medium storing program instructions that are executable to:

receive parameters including an object count (N) and an object size, the parameters being received as user input via a user interface for specifying storage system tests;

generate, by a data set generator, a data set key, the data set key including a random value, and providing the data set key to a data stream generator;

generate, by the data stream generator, a quasi-random data stream of N object identifiers based on the data set key and the object count and providing the quasi-random data stream to the data set generator;

providing, by the data set generator, each of the N object identifiers to the data stream generator together with the object size;

for each of the N object identifiers, receive, by the data set generator, object contents corresponding to the object identifier and add the object identifier and the object identifier's corresponding object contents to a storage system under testing, the object identifier's corresponding object contents being generated by the data stream generator in response to the object identifier, the object identifier's corresponding object contents including quasi-random data that is reproducible based on the object identifier and the object size;

regenerate the N object identifiers using the data set key and the object count;

for each of the N object identifiers, regenerate the object identifier's corresponding object contents using the object identifier and the object size;

for each of the N object identifiers, retrieve, from the storage system under testing, the object identifier's corresponding object contents; and

detecting whether the storage system under testing is operating correctly by comparing each object identifier's corresponding regenerated contents to the object identifier's corresponding retrieved contents.

12. The computer program product of claim 11 wherein the parameters further include a data set name, the program instructions further executable to: store the data set key, object count (N), and object size to local storage using the data set name.

13. The computer program product of claim 11 wherein generating the data set key includes generating the data set key using a pseudo-random number generator (PRNG).

14. The computer program product of claim 11 wherein the quasi-random data stream of N object identifiers is generated by using a pseudo-random number generator (PRNG) seeded with the data set key.

15. The computer program product of claim 11 wherein each object identifier's corresponding object contents are generated by using a pseudo-random number generator (PRNG) seeded with the object identifier.

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; KURILOV, ANDREY; MALYGIN, MIKHAIL; RAKULENKO, ALEXANDER; TAVANTSEVA, IRINA
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 042719/0044 →