IP Library › Granted Patent US 12,572,330
Granted Patent B2
US 12,572,330 · App. 17/648,777 · Granted Mar 10, 2026

Enhancements to datagen algorithm to gain additional performance

Inventors: Salil Dangi (Mission Viejo, CA); Eugene Kim (Irvine, CA); Amol Powar (Burlington, CA)
Assignee: Dell Products L.P.
G06F7/582
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 12,572,330
App. No.
17/648,777
Granted
Mar 10, 2026
Kind
B2
Abstract

One example method includes receiving, from a caller, a call for a data stream of a specified size, initializing the data stream by specifying a first prime number and a second prime number, both of which may be 32-bit primes, and by specifying an available amount of data. The method further includes generating data of the data stream using the first prime number and the second prime number, and transmitting the data of the data stream to the caller until either the data stream has fulfilled the call, or until the available amount of data becomes zero. During the transmitting, the method includes maintaining a running counter that starts at the available amount of data, and decrementing the counter by the amount of data sent to the caller.

Claims (32)

1 . A method, comprising:

receiving, from a caller, a call for a data stream of a specified size;

initializing the data stream by specifying a first prime number and a second prime number, and by specifying an available amount of data;

generating data of the data stream using the first prime number and the second prime number;

transmitting the data of the data stream to the caller until either:

the data stream has fulfilled the call; or

until the available amount of data becomes zero; and

during the transmitting, maintaining a running counter that starts at the available amount of data, and decrementing the counter by the amount of data sent to the caller, and wherein the data stream is generated relatively faster than would be the case if a check of available data were performed each time a discrete portion of the data stream was generated.

2 . The method as recited in claim 1 , wherein when (1) the available amount of data becomes zero, and (2) the specified size of the call exceeds an amount of data that has been sent to the caller, the method further comprises changing one of the prime numbers, setting the available amount of data to the specified available amount, and generating additional data using the prime number that was changed.

3 . The method as recited in claim 2 , wherein the method is repeated until the call has been fulfilled.

4 . The method as recited in claim 1 , wherein the available amount of data is an amount of data that can be generated using the first prime number and the second prime number without repeating any data.

5 . The method as recited in claim 1 , wherein when the specified size of the call is less than the available amount of data, and when all the data required by the call has been sent to the caller, the available amount is updated to a new available amount that comprises a difference between (1) the available amount specified at the initializing and (2) the amount of data required by the call.

6 . The method as recited in claim 1 , wherein the available amount of data specified at the initializing is a function of a 32-bit address space that is used to generate data of the data stream.

7 . The method as recited in claim 1 , wherein the datastream is generated in discrete portions of 8 bytes each.

8 . The method as recited in claim 1 , wherein the initializing further comprises specifying a seed value.

9 . The method as recited in claim 1 , wherein the first prime number is a 32-bit prime number, and the second prime number is a 32-bit prime number.

10 . A non-transitory storage medium having stored therein instructions that are executable by one or more hardware processors to perform operations comprising:

receiving, from a caller, a call for a data stream of a specified size;

initializing the data stream by specifying a first prime number and a second prime number, and by specifying an available amount of data;

generating data of the data stream using the first prime number and the second prime number;

transmitting the data of the data stream to the caller until either:

the data stream has fulfilled the call; or

until the available amount of data becomes zero; and

during the transmitting, maintaining a running counter that starts at the available amount of data, and decrementing the counter by the amount of data sent to the caller, and wherein the data stream is generated relatively faster than would be the case if a check of available data were performed each time a discrete portion of the data stream was generated.

11 . The non-transitory storage medium as recited in claim 10 , wherein when (1) the available amount of data becomes zero, and (2) the specified size of the call exceeds an amount of data that has been sent to the caller, the operations further comprise changing one of the prime numbers, setting the available amount of data to the specified available amount, and generating additional data using the prime number that was changed.

12 . The non-transitory storage medium as recited in claim 11 , wherein the operations are repeated until the call has been fulfilled.

13 . The non-transitory storage medium as recited in claim 10 , wherein the available amount of data is an amount of data that can be generated using the first prime number and the second prime number without repeating any data.

14 . The non-transitory storage medium as recited in claim 10 , wherein when the specified size of the call is less than the available amount of data, and when all the data required by the call has been sent to the caller, the available amount is updated to a new available amount that comprises a difference between (1) the available amount specified at the initializing and (2) the amount of data required by the call.

15 . The non-transitory storage medium as recited in claim 10 , wherein the available amount of data specified at the initializing is a function of a 32-bit address space that is used to generate data of the data stream.

16 . The non-transitory storage medium as recited in claim 10 , wherein the datastream is generated in discrete portions of 8 bytes each.

17 . The non-transitory storage medium as recited in claim 10 , wherein the initializing further comprises specifying a seed value.

18 . The non-transitory storage medium as recited in claim 10 , wherein the first prime number is a 32-bit prime number, and the second prime number is a 32-bit prime number.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 22, 2022
From: DANGI, SALIL; KIM, EUGENE; POWAR, AMOL
To: DELL PRODUCTS L.P
Reel/Frame 059345/0075 →
Continuity (1)
Related Publication 20230236798A1 · Jul 27, 2023
References Cited (84)
US 3680056A · Kropfl · 1972 [cited by applicant]
US 6307938B1 · Matyas et al. · 2001 [cited by applicant]
US 6430732B1 · Hwang et al. · 2002 [cited by applicant]
US 6816093B1 · Jaquette · 2004 [cited by applicant]
US 8112802B2 · Hadjieleftheriou et al. · 2012 [cited by applicant]
US 8223673B2 · Miriyala et al. · 2012 [cited by applicant]
US 8290150B2 · Erhart et al. · 2012 [cited by applicant]
US 8638926B2 · Schneider · 2014 [cited by applicant]
US 8660994B2 · Slater et al. · 2014 [cited by applicant]
US 9152545B1 · Vonthenen · 2015 [cited by applicant]
US 10038733B1 · Dangi et al. · 2018 [cited by applicant]
US 10114832B1 · Dangi et al. · 2018 [cited by applicant]
US 10114850B1 · Dangi et al. · 2018 [cited by applicant]
US 10163371B1 · Dangi et al. · 2018 [cited by applicant]
US 10235134B1 · Dangi et al. · 2019 [cited by applicant]
US 10638150B1 · Dangi et al. · 2020 [cited by applicant]
US 10939132B2 · Dangi et al. · 2021 [cited by applicant]
US 10997053B2 · Dangi et al. · 2021 [cited by applicant]
US 11283863B1 · Cleaver et al. · 2022 [cited by applicant]
US 11748316B2 · Dangi et al. · 2023 [cited by applicant]
US 20010055311A1 · Trachewsky et al. · 2001 [cited by applicant]
US 20050132123A1 · Glaum et al. · 2005 [cited by applicant]
US 20050192994A1 · Caldwell et al. · 2005 [cited by applicant]
US 20060150229A1 · Blair et al. · 2006 [cited by applicant]
US 20060161702A1 · Bowlby et al. · 2006 [cited by applicant]
US 20080005429A1 · Ludwig · 2008 [cited by examiner]
US 20080133891A1 · Salz et al. · 2008 [cited by applicant]
US 20080140971A1 · Dankel et al. · 2008 [cited by applicant]
US 20080162421A1 · Brooks · 2008 [cited by applicant]
US 20100017436A1 · Wolge · 2010 [cited by applicant]
US 20100138587A1 · Hutson · 2010 [cited by applicant]
US 20110119432A1 · Yoon · 2011 [cited by applicant]
US 20110299581A1 · Le-Gall · 2011 [cited by applicant]
US 20120016839A1 · Yueh · 2012 [cited by applicant]
US 20120114310A1 · Hymel et al. · 2012 [cited by applicant]
US 20120233135A1 · Tofano · 2012 [cited by applicant]
US 20120233417A1 · Kalach · 2012 [cited by examiner]
US 20130226881A1 · Sharma et al. · 2013 [cited by applicant]
US 20130308589A1 · Liu et al. · 2013 [cited by applicant]
US 20130346703A1 · Mccauley et al. · 2013 [cited by applicant]
US 20140118541A1 · Lasko · 2014 [cited by applicant]
US 20140279874A1 · Reiter et al. · 2014 [cited by applicant]
US 20160103757A1 · Liu et al. · 2016 [cited by applicant]
US 20160316049A1 · Byrne et al. · 2016 [cited by applicant]
US 20170220593A1 · Tripathy et al. · 2017 [cited by applicant]
US 20180309815A1 · Dangi et al. · 2018 [cited by applicant]
US 20190034450A1 · Dangi et al. · 2019 [cited by applicant]
US 20190042590A1 · Dangi et al. · 2019 [cited by applicant]
US 20200029096A1 · Rusanovskyy · 2020 [cited by applicant]
US 20200034243A1 · Venkatesan et al. · 2020 [cited by applicant]
US 20200334215A1 · Dangi et al. · 2020 [cited by applicant]
US 20220164510A1 · Reid et al. · 2022 [cited by applicant]
US 20220391333A1 · Veluswamy et al. · 2022 [cited by applicant]
US 20230048922A1 · Mori · 2023 [cited by examiner]
US 20230072477A1 · Dangi · 2023 [cited by applicant]
US 20230236965A1 · Dangi et al. · 2023 [cited by applicant]
US 20240314704A1 · Li et al. · 2024 [cited by applicant]
CN 103098016A · 2013 [cited by applicant]
CN 104272263A · 2015 [cited by applicant]
CN 106067892A · 2016 [cited by applicant]
WO 2016137203A1 · 2016 [cited by applicant]
AWS, “What is an API?”, Amazon AWS, Dec. 14, 2021. https://aws.amazon.com/what-is/api (Year: 2021). [cited by examiner]
“Data Compression/Evaluating Compression Effectiveness” internet article, Feb. 21, 2017, XP002796742, accessed on Jan. 9, 2020 via: https//en.wikibooks.org/w/index.php?title=Data_Compression/Evaluating_Compression_Effec… [cited by applicant]
Adams, Philip A. & John C. Hax, “A Case for Database Filesystems”, Space Mission Challenges for IT 2009 Conference, Lawrence Livermore National Laboratory, LLNL-CONF-413253, 8 pages. (Year: 2009). [cited by applicant]
International Preliminary Report on Patentability received for PCT Patent Application No. PCT/US2019/053878, mailed on Oct. 28, 2021, 8 pages. [cited by applicant]
International Preliminary Report on Patentability received for PCT Patent Application No. PCT/US2019/066619, mailed on Oct. 28, 2021, 10 pages. [cited by applicant]
International Search Report and Written Opinion for PCT/US2019/053878 mailed Jan. 31, 2020. [cited by applicant]
International Search Report and Written Opinion issued in Application No. PCT/US2019/066632. [cited by applicant]
International Search Report and Written Opinion received for PCT Patent Application No. PCT/US19/066619, mailed on Jun. 23, 2020, 18 pages. [cited by applicant]
U.S. Appl. filed Apr. 19, 2019, Dangi et al., U.S. Appl. No. 16/389,741. [cited by applicant]
U.S. Application Filed on Apr. 19, 2019, by Dangi et al., U.S. Appl. No. 16/389,671. [cited by applicant]
U.S. Application Filed on Apr. 19, 2019, by Dangi et al., U.S. Appl. No. 16/389,700. [cited by applicant]
U.S. Application Filed on Apr. 19, 2019, by Dangi et al., U.S. Appl. No. 16/389,729. [cited by applicant]
U.S. Application Filed on Dec. 25, 2018, by Dangi et al., U.S. Appl. No. 10/163,371. [cited by applicant]
U.S. Application Filed on Jul. 31, 2018, by Dangi et al., U.S. Appl. No. 10/038,733. [cited by applicant]
U.S. Application Filed on Mar. 19, 2018, by Dangi et al., U.S. Appl. No. 10/235,134. [cited by applicant]
U.S. Application Filed on Oct. 30, 2018, by Dangi et al., U.S. Appl. No. 10/114,832. [cited by applicant]
U.S. Application Filed on Oct. 30, 2018, by Dangi et al., U.S. Appl. No. 10/114,850. [cited by applicant]
Universal Mobile Telecommunications System; Multiplexing and channel coding; Technical Specification, European Telecommunications Standards Institute Sophia Antipolis Cedex. France, vol. 3-R1, No. V7.3.0 Dec. 1, 2006, X… [cited by applicant]
Author Unknown, Mac Performance Guide, Understanding Compressible vs. Incompressible Data, May 6, 2012, macperformanceguide.com/SSD-incompressible-vs-compressible-data.html, p. 1. [cited by applicant]
Bach, Matt, Puget Systems, SSDs: Advertised vs. Actual Performance, Jan. 25, 2013, pugetsystems.com/labs/articles/SSDs-Advertised-vs-Actual-Performance-179/, p. 1-2. [cited by applicant]
Jonathan, “How to flip a specific bit in a byte in C?”, Oct. 27, 2013, Stack Overflow (Year: 2013). [cited by applicant]
Murty, M. Ram, Prime Numbers and Irreducible Polynomials, May 2002, The Mathematical Association of America, Monthly 109, p. 452. [cited by applicant]
Weisstein, Eric W., Goldbach Conjecture, Jun. 7, 2000, mathworld.wolfram.com/goldbachconjecture.html, p. 1. [cited by applicant]