IP Library Granted Patent US 12,380,113
Granted Patent B2
US 12,380,113 · App. 18/671,089 · Granted Aug 5, 2025

Processing formatted record data with fixed and variable lengths

Inventors: George Kondiles (Chicago, IL); Jacob Walker Trueb (Chicago, IL); Philip Joseph Dakin (Chicago, IL)
Assignee: Ocient Holdings LLC
G06F16/24573G06F16/221G06F16/2455
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,380,113
App. No.
18/671,089
Granted
Aug 5, 2025
Kind
B2
Abstract

A record processing and storage system operates by: receiving formatted row data that includes a fixed-length batch section and a temporary variable-length batch section; storing, in a compressed data format, at least one variable-length data value of each of a plurality of temporary variable-length row sections of each of the plurality of formatted row data; generating a plurality of modified formatted row data from the plurality of formatted row data by, for each formatted row data, replacing a fixed-length offset value for each variable-length field stored in the compressed data format with a key value utilized to access the corresponding variable-length data value in the compressed data format; and truncating the each formatted row data to remove inclusion of the temporary variable-length batch section; and storing the plurality of modified formatted row data as a plurality of pages in a page storage system.

Claims (79)

1. A method for execution by a record processing and storage system, comprising:

sending, via a communication network, data formatting requirements to a data source;

receiving, via the communication network, a plurality of formatted row data from the data source in accordance with the data formatting requirements, wherein each formatted row data of the plurality of formatted row data includes:

a fixed-length batch section that includes a plurality of fixed-length row sections corresponding to a plurality of records of the each formatted row data, wherein each of the plurality of fixed-length row sections includes:

at least one fixed-length data value of a corresponding one of the plurality of records for at least one fixed-length field; and

at least one fixed-length offset value for at least one variable-length field of the corresponding one of the plurality of records;

a temporary variable-length batch section, separate from the fixed-length batch section, that includes a plurality of temporary variable-length row sections corresponding to the plurality of records of the each formatted row data, wherein each of the plurality of variable-length row sections includes:

at least one variable-length data value of a corresponding one of the plurality of records for at least one variable-length field, wherein the fixed-length offset value for the corresponding one of the plurality of records indicates an offset of the at least one variable-length data value in the each formatted row data;

storing, in a compressed data format, the at least one variable-length data value of each of the plurality of temporary variable-length row sections of each of the plurality of formatted row data;

generating a plurality of modified formatted row data from the plurality of formatted row data by, for each formatted row data,

replacing the fixed-length offset value for each variable-length field stored in the compressed data format with a key value utilized to access the corresponding variable-length data value in the compressed data format; and

truncating the each formatted row data to remove inclusion of the temporary variable-length batch section;

storing the plurality of modified formatted row data as a plurality of pages in a page storage system.

2. The method of claim 1 , further comprising:

sending data formatting requirements to the data source;

wherein the plurality of formatted record data is received from the data source in accordance with the data formatting requirements.

3. The method of claim 1 , wherein the plurality of fixed-length row sections are concatenated in sequence, and wherein the variable-length batch section is appended after a final one of the plurality of fixed-length row sections.

4. The method of claim 1 , wherein the plurality of formatted record data is in accordance with row schema data for the plurality of records that indicates a plurality of columns of a corresponding relational database table of the relational database that include the at least one fixed-length field and the at least one variable-length field.

5. The method of claim 4 , wherein the plurality of columns includes a set of multiple fixed-length fields, and wherein the each of the plurality of fixed-length row sections includes a set of multiple fixed-length data values, wherein each fixed-length data value of the set of multiple fixed-length data values corresponds to one of the set of multiple fixed-length fields.

6. The method of claim 5 , wherein a first one of the set of multiple fixed-length fields has a first fixed-length, wherein a second one of the set of multiple fixed-length fields has a second fixed-length different from the first fixed-length, wherein a first fixed-length data value of the each of the plurality of fixed-length row sections has the first fixed-length based on corresponding to the first one of the set of multiple fixed-length fields, and wherein a second fixed-length data value of the each of the plurality of fixed-length row sections has the second fixed-length based on corresponding to the second one of the set of multiple fixed-length fields.

7. The method of claim 4 , wherein the plurality of columns includes a set of multiple variable-length fields, and wherein the each of the plurality of fixed-length row sections includes a set of multiple fixed-length offset values for the set of multiple variable-length field of the corresponding one of the plurality of records, wherein each fixed-length data value of the set of multiple fixed-length offset values for corresponds to one of the set of multiple variable-length fields.

8. The method of claim 1 , further comprising:

executing a read of a variable-length data value of a variable-length field of one of the plurality of records in one of the plurality of pages by:

determining a fixed-length batch section offset value to access the fixed-length offset value for the variable-length field in one of the plurality of fixed-length row sections corresponding to the one of the plurality of records;

determining a variable-length batch section offset value to access the variable-length data value in the variable-length batch section by performing a first read of the one of the plurality of pages based on the fixed-length offset value; and

reading the variable-length data value by performing a second read of the one of the plurality of pages based on the variable-length batch section offset value.

9. The method of claim 8 , wherein determining the fixed-length batch section offset value to access the fixed-length offset value for the variable-length field in one of the plurality of fixed-length row sections corresponding to the one of the plurality of records is based on at least one of:

a fixed-length row section size of the each of the plurality of fixed-length row sections;

an ordering of the plurality of records in the fixed-length batch section;

an ordering of the at least one fixed-length field and the at least one fixed-length offset value in the each of the plurality of fixed-length row sections; or

fixed-lengths of the at least one fixed-length field and the at least one fixed-length offset value.

10. The method of claim 8 , wherein determining the variable-length batch section offset value to access the variable-length data value in the variable-length batch section by performing the first read of the one of the plurality of pages is further based on applying another offset value corresponding to a start of the variable-length batch section.

11. The method of claim 1 , wherein the offset of the at least one variable-length data value in the each formatted record data is a bit offset indicating a location of the at least one variable-length data value in one of the plurality of pages.

12. The method of claim 1 , wherein the plurality of formatted record data is in accordance with a row-based format, further comprising:

generating a plurality of segments from the plurality of pages that include the plurality of records in a column-based format based on; and

storing the plurality of segments via a segment storage system.

13. The method of claim 12 , wherein the plurality of segments are generated based on segment generation determination data indicating segments be generated.

14. A record processing and storage system comprises:

at least one processor; and

a memory that stores operational instructions that, when executed by the at least one processor, cause the record processing and storage system to perform operations that include:

sending, via a communication network, data formatting requirements to a data source;

receiving, via the communication network, a plurality of formatted row data from the data source in accordance with the data formatting requirements, wherein each formatted row data of the plurality of formatted row data includes:

a fixed-length batch section that includes a plurality of fixed-length row sections corresponding to a plurality of records of the each formatted row data, wherein each of the plurality of fixed-length row sections includes:

at least one fixed-length data value of a corresponding one of the plurality of records for at least one fixed-length field; and

at least one fixed-length offset value for at least one variable-length field of the corresponding one of the plurality of records;

a temporary variable-length batch section, separate from the fixed-length batch section, that includes a plurality of temporary variable-length row sections corresponding to the plurality of records of the each formatted row data, wherein each of the plurality of variable-length row sections includes:

at least one variable-length data value of a corresponding one of the plurality of records for at least one variable-length field, wherein the fixed-length offset value for the corresponding one of the plurality of records indicates an offset of the at least one variable-length data value in the each formatted row data;

storing, in a compressed data format, the at least one variable-length data value of each of the plurality of temporary variable-length row sections of each of the plurality of formatted row data;

generating a plurality of modified formatted row data from the plurality of formatted row data by, for each formatted row data,

replacing the fixed-length offset value for each variable-length field stored in the compressed data format with a key value utilized to access the corresponding variable-length data value in the compressed data format; and

truncating the each formatted row data to remove inclusion of the temporary variable-length batch section;

storing the plurality of modified formatted row data as a plurality of pages in a page storage system.

15. The record processing and storage system of claim 14 , wherein the operational instructions, when executed by the at least one processor, further cause the record processing and storage system to:

send data formatting requirements to the data source;

wherein the plurality of formatted record data is received from the data source in accordance with the data formatting requirements.

16. The record processing and storage system of claim 14 , wherein the plurality of fixed-length row sections are concatenated in sequence, and wherein the variable-length batch section is appended after a final one of the plurality of fixed-length row sections.

17. The record processing and storage system of claim 14 , wherein the plurality of formatted record data is in accordance with row schema data for the plurality of records that indicates a plurality of columns of a corresponding relational database table of the relational database that include the at least one fixed-length field and the at least one variable-length field.

18. The record processing and storage system of claim 14 , wherein the operational instructions, when executed by the at least one processor, further cause the record processing and storage system to:

execute a read of a variable-length data value of a variable-length field of one of the plurality of records in one of the plurality of pages by:

determining a fixed-length batch section offset value to access the fixed-length offset value for the variable-length field in one of the plurality of fixed-length row sections corresponding to the one of the plurality of records;

determining a variable-length batch section offset value to access the variable-length data value in the variable-length batch section by performing a first read of the one of the plurality of pages based on the fixed-length offset value; and

reading the variable-length data value by performing a second read of the one of the plurality of pages based on the variable-length batch section offset value.

19. The record processing and storage system of claim 14 , wherein the plurality of formatted record data is in accordance with a row-based format, wherein the operational instructions, when executed by the at least one processor, further cause the record processing and storage system to:

generate a plurality of segments from the plurality of pages that include the plurality of records in a column-based format based on; and

store the plurality of segments via a segment storage system.

20. A non-transitory computer readable storage medium comprises:

at least one memory section that stores operational instructions that, when executed by a processing module that includes a processor and a memory, causes the processing module to perform operations that include:

sending, via a communication network, data formatting requirements to a data source;

receiving, via the communication network, a plurality of formatted row data from the data source in accordance with the data formatting requirements, wherein each formatted row data of the plurality of formatted row data includes:

a fixed-length batch section that includes a plurality of fixed-length row sections corresponding to a plurality of records of the each formatted row data, wherein each of the plurality of fixed-length row sections includes:

at least one fixed-length data value of a corresponding one of the plurality of records for at least one fixed-length field; and

at least one fixed-length offset value for at least one variable-length field of the corresponding one of the plurality of records;

a temporary variable-length batch section, separate from the fixed-length batch section, that includes a plurality of temporary variable-length row sections corresponding to the plurality of records of the each formatted row data, wherein each of the plurality of variable-length row sections includes:

at least one variable-length data value of a corresponding one of the plurality of records for at least one variable-length field, wherein the fixed-length offset value for the corresponding one of the plurality of records indicates an offset of the at least one variable-length data value in the each formatted row data;

storing, in a compressed data format, the at least one variable-length data value of each of the plurality of temporary variable-length row sections of each of the plurality of formatted row data;

generating a plurality of modified formatted row data from the plurality of formatted row data by, for each formatted row data,

replacing the fixed-length offset value for each variable-length field stored in the compressed data format with a key value utilized to access the corresponding variable-length data value in the compressed data format; and

truncating the each formatted row data to remove inclusion of the temporary variable-length batch section;

storing the plurality of modified formatted row data as a plurality of pages in a page storage system.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2024
From: KONDILES, GEORGE; TRUEB, JACOB WALKER; DAKIN, PHILIP JOSEPH
To: OCIENT HOLDINGS LLC
Reel/Frame 067496/0809 →
Continuity (3)
Continuation 18353950 · Jul 18, 2023
Continuation 16985723 · Aug 5, 2020
Related Publication 20240311382A1 · Sep 19, 2024
References Cited (83)
US 5509131A · Smith · 1996 [cited by applicant]
US 5548770A · Bridges · 1996 [cited by applicant]
US 5628023A · Bryant · 1997 [cited by applicant]
US 5787416A · Tabb · 1998 [cited by examiner]
US 5921582A · Gusack · 1999 [cited by applicant]
US 6195661B1 · Filepp · 2001 [cited by applicant]
US 6230200B1 · Forecast · 2001 [cited by applicant]
US 6473847B1 · Kamiya · 2002 [cited by applicant]
US 6571244B1 · Larson · 2003 [cited by examiner]
US 6633772B2 · Ford · 2003 [cited by applicant]
US 6816280B1 · Davenport · 2004 [cited by applicant]
US 6816957B1 · Halladay · 2004 [cited by applicant]
US 7499907B2 · Brown · 2009 [cited by applicant]
US 7783858B2 · Chiang · 2010 [cited by applicant]
US 7908242B1 · Achanta · 2011 [cited by applicant]
US 8880695B2 · Sakai · 2014 [cited by applicant]
US 9547435B2 · Kim · 2017 [cited by applicant]
US 9870386B1 · Madhavarapu · 2018 [cited by examiner]
US 10354423B2 · Ozawa · 2019 [cited by applicant]
US 10740404B1 · Hjermstad · 2020 [cited by examiner]
US 10909091B1 · Shah · 2021 [cited by examiner]
US 10909143B1 · Brahmadesam · 2021 [cited by examiner]
US 10990571B1 · Zhang · 2021 [cited by examiner]
US 11080253B1 · Leshinsky · 2021 [cited by examiner]
US 20010051949A1 · Carey · 2001 [cited by applicant]
US 20020032676A1 · Reiner · 2002 [cited by applicant]
US 20020116417A1 · Weinberg · 2002 [cited by applicant]
US 20040162853A1 · Brodersen · 2004 [cited by applicant]
US 20040215919A1 · Emmes · 2004 [cited by applicant]
US 20060212944A1 · Hara · 2006 [cited by applicant]
US 20080077570A1 · Tang · 2008 [cited by examiner]
US 20080133456A1 · Richards · 2008 [cited by applicant]
US 20080204806A1 · Tao · 2008 [cited by applicant]
US 20090063893A1 · Bagepalli · 2009 [cited by applicant]
US 20090183167A1 · Kupferschmidt · 2009 [cited by applicant]
US 20100082577A1 · Mirchandani · 2010 [cited by applicant]
US 20100115172A1 · Gillingham · 2010 [cited by applicant]
US 20100241646A1 · Friedman · 2010 [cited by applicant]
US 20100274983A1 · Murphy · 2010 [cited by applicant]
US 20100312756A1 · Zhang · 2010 [cited by applicant]
US 20110219169A1 · Zhang · 2011 [cited by applicant]
US 20120109888A1 · Zhang · 2012 [cited by applicant]
US 20120150008A1 · Kaib · 2012 [cited by applicant]
US 20120151118A1 · Flynn · 2012 [cited by applicant]
US 20120185866A1 · Couvee · 2012 [cited by applicant]
US 20120210095A1 · Nellans · 2012 [cited by applicant]
US 20120254252A1 · Jin · 2012 [cited by applicant]
US 20120311246A1 · McWilliams · 2012 [cited by applicant]
US 20130117270A1 · Sullivan · 2013 [cited by examiner]
US 20130166690A1 · Shatzkamer · 2013 [cited by applicant]
US 20130332484A1 · Gajic · 2013 [cited by applicant]
US 20140047095A1 · Breternitz · 2014 [cited by applicant]
US 20140136510A1 · Parkkinen · 2014 [cited by applicant]
US 20140188841A1 · Sun · 2014 [cited by applicant]
US 20140201351A1 · Fransen · 2014 [cited by applicant]
US 20150205607A1 · Lindholm · 2015 [cited by applicant]
US 20150244804A1 · Warfield · 2015 [cited by applicant]
US 20150248366A1 · Bergsten · 2015 [cited by applicant]
US 20150293966A1 · Cai · 2015 [cited by applicant]
US 20150310045A1 · Konik · 2015 [cited by applicant]
US 20160034547A1 · Lerios · 2016 [cited by applicant]
US 20160062805A1 · Kumar · 2016 [cited by applicant]
US 20170330596A1 · Segal · 2017 [cited by applicant]
US 20180089867A1 · Ozawa · 2018 [cited by applicant]
US 20180198842A1 · Chandran · 2018 [cited by applicant]
US 20190297143A1 · Anadon · 2019 [cited by applicant]
US 20210383109A1 · Mukherji · 2021 [cited by examiner]
US 20220237230A1 · Zovic · 2022 [cited by examiner]
A new high performance fabric for HPC, Michael Feldman, May 2016, Intersect360 Research. [cited by applicant]
Alechina, N. (2006-2007). B-Trees. School of Computer Science, University of Nottingham, http://www.cs.nott.ac.uk/˜psznza/G5BADS06/lecture13-print.pdf. 41 pages. [cited by applicant]
Amazon DynamoDB: ten things you really should know, Nov. 13, 2015, Chandan Patra, http://cloudacademy. .com/blog/amazon-dynamodb-ten-thing. [cited by applicant]
An Inside Look at Google BigQuery, by Kazunori Sato, Solutions Architect, Cloud Solutions team, Google Inc., 2012. [cited by applicant]
Big Table, a NoSQL massively parallel table, Paul Krzyzanowski, Nov. 2011, https://www.cs.rutgers.edu/pxk/417/notes/contentlbigtable.html. [cited by applicant]
Distributed Systems, Fall2012, Mohsen Taheriyan, http://www-scf.usc.edu/-csci57212011Spring/presentations/Taheriyan.pptx. [cited by applicant]
International Searching Authority; International Search Report and Written Opinion; International Application No. PCT/US2017/054773; Feb. 13, 2018; 17 pgs. [cited by applicant]
International Searching Authority; International Search Report and Written Opinion; International Application No. PCT/US2017/054784; Dec. 28, 2017; 10 pgs. [cited by applicant]
International Searching Authority; International Search Report and Written Opinion; International Application No. PCT/US2017/066145; Mar. 5, 2018; 13 pgs. [cited by applicant]
International Searching Authority; International Search Report and Written Opinion; International Application No. PCT/US2017/066169; Mar. 6, 2018; 15 pgs. [cited by applicant]
International Searching Authority; International Search Report and Written Opinion; International Application No. PCT/US2018/025729; Jun. 27, 2018; 9 pgs. [cited by applicant]
International Searching Authority; International Search Report and Written Opinion; International Application No. PCT/US2018/034859; Oct. 30, 2018; 8 pgs. [cited by applicant]
MapReduce: Simplified Data Processing on Large Clusters, OSDI 2004, Jeffrey Dean and Sanjay Ghemawat, Google, Inc., 13 pgs. [cited by applicant]
Rodero-Merino, L.; Storage of Structured Data: Big Table and HBase, New Trends In Distributed Systems, MSc Software and Systems, Distributed Systems Laboratory; Oct. 17, 2012; 24 pages. [cited by applicant]
Step 2: Examine the data model and implementation details, 2016, Amazon Web Services, Inc., http://docs.aws.amazon.com/amazondynamodb/latestldeveloperguide!Ti . . . . [cited by applicant]