IP Library Granted Patent US 9,256,503
Granted Patent B2
US 9,256,503 · App. 14/075,969 · Granted Feb 9, 2016

Data 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 9,256,503
App. No.
14/075,969
Granted
Feb 9, 2016
Kind
B2
Abstract

A data verification application receives a test configuration data, the test configuration data comprising a seed value and a parameter. The data verification application generates a pseudo-random test data stream comprising a plurality of words, wherein a value of each of the plurality of words is based on the seed value, the parameter and an offset of each word within the pseudo-random test data stream.

Claims (68)

1. A method comprising:

receiving a test configuration data, the test configuration data comprising a seed value and a parameter; and

generating, by a processing device, a pseudo-random test data stream comprising a plurality of words arranged in a plurality of chunks, wherein a value of each of the plurality of words is based on the seed value, the parameter and an offset of each word within the pseudo-random test data stream, wherein generating the pseudo-random test data stream comprises:

determining whether a current word of the plurality of words being generated comprises a first word in one of the plurality of chunks; and

if the current word is the first word in one of the plurality of chunks, setting a value of the current word to a first result of the seed value logically combined with a chunk number of a current chunk in the pseudo-random test data stream and storing the first result as a value of a first previous word.

2. The method of claim 1 , wherein values of the words in each of the plurality of chunks are independent of values of the words in any other chunk of the pseudo-random test data stream.

3. The method of claim 2 , wherein generating the pseudo-random test data stream further comprises:

if the current word is not the first word in one of the plurality of chunks, determining whether a least significant bit of the first previous word has a first logical value.

4. The method of claim 3 , wherein generating the pseudo-random test data stream further comprises:

if the least significant bit of the first previous word has the first logical value, shifting bits of the first previous word to the right to create a first shifted word, and setting the value of the current word to a second result of the first shifted word logically combined with the parameter; and

if the least significant bit of the first previous word has a second logical value, shifting the bits of the first previous word to the right to create a second shifted word, and setting the value of the current word to the second shifted word.

5. The method of claim 4 , wherein generating the pseudo-random test data stream further comprises:

if the least significant bit of the first previous word has the first logical value, storing the second result as a value of a second previous word and setting the value of the current word to a third result of the second result logically combined with a word offset value; and

if the least significant bit of the first previous word has a second logical value, storing the second shifted word as a value of a third previous word and setting the value of the current word to a fourth result of the second shifted word logically combined with the word offset value.

6. The method of claim 1 , wherein the parameter from the test configuration data comprises a compressibility value to control a compressibility of the pseudo-random test data stream.

7. The method of claim 1 , wherein the pseudo-random test data stream is generated at a first time, the method further comprising:

instructing a storage client to write the pseudo-random test data stream to a storage server, the storage server to store the pseudo-random test data stream as a test data file;

instructing the storage client to read the test data file from the storage server;

recreating, at a second time subsequent to the first time, the pseudo-random test data stream; and

comparing the pseudo-random test data stream to the test data file to verify a contents of the test data file.

8. The method of claim 7 , wherein the storage client is coupled to the storage server over a network.

9. The method of claim 7 , wherein the storage client is directly coupled to the storage server.

10. The method of claim 7 , wherein the storage client and the storage server run on a shared test appliance.

11. The method of claim 1 , further comprising:

instructing a storage client on a first appliance to write the pseudo-random test data stream to a storage server on a second appliance over a network, wherein the network comprises a data-transfer efficiency system;

recreating, at the second appliance, the pseudo-random test data stream; and

comparing the recreated pseudo-random test data stream to the pseudo-random test data stream to verify an operation of the data-transfer efficiency system.

12. The method of claim 11 , further comprising:

generating a verification report based on a result of the comparing; and

providing the verification report to a requestor.

13. A computing appliance comprising:

a memory to store a data verification application; and

a processing device, coupled to the memory to execute the data verification application, the processing device to:

receive a test configuration data, the test configuration data comprising a seed value and a parameter; and

generate a pseudo-random test data stream comprising a plurality of words arranged in a plurality of chunks, wherein a value of each of the plurality of words is based on the seed value, the parameter and an offset of each word within the pseudo-random test data stream, wherein to generate the pseudo-random test data stream, the processing device to:

determine whether a current word of the plurality of words being generated comprises a first word in one of the plurality of chunks; and

if the current word is the first word in one of the plurality of chunks, set a value of the current word to a first result of the seed value logically combined with a chunk number of a current chunk in the pseudo-random test data stream and store the first result as a value of a first previous word.

14. The computing appliance of claim 13 , wherein values of the words in each of the plurality of chunks are independent of values of the words in any other chunk of the pseudo-random test data stream.

15. The computing appliance of claim 14 , wherein to generate the pseudo-random test data stream, the processing device further to:

if the current word is not the first word in one of the plurality of chunks, determine whether a least significant bit of the first previous word has a first logical value.

16. The computing appliance of claim 15 , wherein to generate the pseudo-random test data stream, the processing device further to:

if the least significant bit of the first previous word has the first logical value, shift bits of the first previous word to the right to create a first shifted word, calculate a second result of the first shifted word logically combined with the parameter, store the second result as a value of a second previous word and set the value of the current word to a third result of the second result logically combined with a word offset value; and

if the least significant bit of the first previous word has a second logical value, shift the bits of the first previous word to the right to create a second shifted word, store the second shifted word as a value of a third previous word and set the value of the current word to a fourth result of the second shifted word logically combined with the word offset value.

17. The computing appliance of claim 13 , wherein the parameter from the test configuration data comprises a compressibility value to control a compressibility of the pseudo-random test data stream.

18. The computing appliance of claim 13 , wherein the pseudo-random test data stream is generated at a first time, and wherein the processing device further to:

instruct a storage client to write the pseudo-random test data stream to a storage server, the storage server to store the pseudo-random test data stream as a test data file;

instruct the storage client to read the test data file from the storage server;

recreate, at a second time subsequent to the first time, the pseudo-random test data stream; and

compare the pseudo-random test data stream to the test data file to verify a contents of the test data file.

19. The computing appliance of claim 18 , wherein the storage client is coupled to the storage server over a network.

20. The computing appliance of claim 18 , wherein the storage client is directly coupled to the storage server.

21. The computing appliance of claim 18 , wherein the storage client and the storage server run on a shared test appliance.

22. The computing appliance of claim 13 , wherein the processing device further to:

instruct a storage client on a first appliance to write the pseudo-random test data stream to a storage server on a second appliance over a network, wherein the network comprises a data-transfer efficiency system;

recreate, at the second appliance, the pseudo-random test data stream; and

compare the recreated pseudo-random test data stream to the pseudo-random test data stream to verify an operation of the data-transfer efficiency system.

23. A non-transitory machine-readable storage medium storing instructions which, when executed, cause a processing device to perform operations comprising:

receiving a test configuration data, the test configuration data comprising a seed value and a parameter; and

generating, by the processing device, a pseudo-random test data stream comprising a plurality of words arranged in a plurality of chunks, wherein a value of each of the plurality of words is based on the seed value, the parameter and an offset of each word within the pseudo-random test data stream, wherein generating the pseudo-random test data stream comprises:

determining whether a current word of the plurality of words being generated comprises a first word in one of the plurality of chunks; and

if the current word is the first word in one of the plurality of chunks, setting a value of the current word to a first result of the seed value logically combined with a chunk number of a current chunk in the pseudo-random test data stream and storing the first result as a value of a first previous word.

24. The non-transitory machine-readable storage medium of claim 23 , wherein values of the words in each of the plurality of chunks are independent of values of the words in any other chunk of the pseudo-random test data stream.

25. The non-transitory machine-readable storage medium of claim 24 , wherein generating the pseudo-random test data stream further comprises:

if the current word is not the first word in one of the plurality of chunks, determining whether a least significant bit of the first previous word has a first logical value.

26. The non-transitory machine-readable storage medium of claim 25 , wherein generating the pseudo-random test data stream further comprises:

if the least significant bit of the first previous word has the first logical value, shifting bits of the first previous word to the right to create a first shifted word, calculating a second result of the first shifted word logically combined with a compressibility value, the compressibility value to control a compressibility of the pseudo-random test data stream, storing the second result as a value of a second previous word and setting the value of the current word to a third result of the second result logically combined with a word offset value; and

if the least significant bit of the first previous word has a second logical value, shifting the bits of the first previous word to the right to create a second shifted word, storing the second shifted word as a value of a third previous word and setting the value of the current word to a fourth result of the second shifted word logically combined with the word offset value.

27. The non-transitory machine-readable storage medium of claim 23 , wherein the parameter from the test configuration data comprises a compressibility value to control a compressibility of the pseudo-random test data stream.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded Jan 13, 2022
From: TRIPLEPOINT VENTURE GROWTH BDC CORP., AS THE SECURED PARTY
To: VIRTUAL INSTRUMENTS WORLDWIDE, INC. F/K/A LOAD DYNAMIX, INC.
Reel/Frame 058652/0332 →
RELEASE OF SECURITY INTEREST Recorded Jan 10, 2022
From: WESTERN ALLIANCE BANK
To: VIRTUAL INSTRUMENTS WORLDWIDE, INC.
Reel/Frame 058612/0102 →
SECURITY INTEREST Recorded Jan 10, 2022
From: VIRTUAL INSTRUMENTS CORPORATION; VIRTUAL INSTRUMENTS WORLDWIDE, INC.; XANGATI, INC.
To: MIDTOWN MADISON MANAGEMENT LLC
Reel/Frame 058668/0268 →
SECURITY INTEREST Recorded Oct 10, 2018
From: VIRTUAL INSTRUMENTS WORLDWIDE, INC.
To: WESTERN ALLIANCE BANK
Reel/Frame 047127/0767 →
SECURITY INTEREST Recorded Sep 21, 2018
From: VIRTUAL INSTRUMENTS CORPORATION; VIRTUAL INSTRUMENTS USA, INC.; XANGATI, INC.; VIRTUAL INSTRUMENTS WORLDWIDE, INC.
To: TRIPLEPOINT VENTURE GROWTH BDC CORP.
Reel/Frame 046941/0930 →
CHANGE OF NAME Recorded Jun 21, 2018
From: LOAD DYNAMIX, INC.
To: VIRTUAL INSTRUMENTS WORLDWIDE, INC.
Reel/Frame 046406/0713 →