IP Library › Granted Patent US 12,248,476
Granted Patent B2
US 12,248,476 · App. 18/400,568 · Granted Mar 11, 2025

System and method for dynamic database split generation in a massively parallel or distributed database environment

Inventor: Ashok Shivarudraiah (San Mateo, CA)
Assignee: ORACLE INTERNATIONAL CORPORATION
G06F16/24554G06F16/278
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,248,476
App. No.
18/400,568
Granted
Mar 11, 2025
Kind
B2
Abstract

A system and method is described for database split generation in a massively parallel or other distributed database environment including a plurality of databases and a data warehouse layer providing data summarization and querying functionality. A database table accessor of the system obtains, from an associated client application, a query for data in a table of the data warehouse layer, wherein the query includes a user preference. The system obtains table data representative of properties of the table, and determines a splits generator in accordance with one or more of the user preference or the properties of the table. The system generates, by the selected splits generator, table splits dividing the user query into a plurality of query splits, and outputs the plurality of query splits to an associated plurality of mappers for execution by the associated plurality of mappers of each of the plurality of query splits against the table.

Claims (59)

1. A method for database split generation in a database access environment including a plurality of databases and a data warehouse layer executing on one or more microprocessors, the method comprising:

receiving by a database table accessor executing on the one or more microprocessors, from a client application, a query for data in a table of the data warehouse layer;

obtaining a metadata representative of the table containing the data;

determining a splits generator based at least partly on the obtained metadata;

generating, by the splits generator, a plurality of query splits, wherein each of the plurality of query splits is executable by a corresponding associated mapper of a plurality of associated mappers against the table; and

generating a response to the query based on received results of each of the plurality of query splits executed against the table.

2. The method of claim 1 , wherein the determining the splits generator comprises selecting the splits generator from among a plurality of splitter kinds in accordance with a user preference or one or more properties of the table.

3. The method of claim 2 , wherein the determining the splits generator comprises selecting the splits generator for splitting the table based on one or more of partitions, sizes, row limits, and/or ROWID ranges.

4. The method of claim 2 , wherein the determining the splits generator comprises determining the splits generator exclusively in accordance with:

the user preference, or

the one or more properties of the table.

5. The method of claim 1 , wherein the obtaining the metadata comprises obtaining metadata representative of the one or more properties of the table.

6. The method of claim 1 , further comprising:

executing each of the plurality of query splits against the table using a corresponding associated mapper of the plurality of associated mappers.

7. The method of claim 1 , further comprising:

outputting the plurality of query splits for execution against the table by the corresponding associated mappers of the plurality of mappers;

receiving results of each of the plurality of query splits executed against the table using the corresponding associated mappers of the plurality of mappers; and

generating the response based on the received results of each of the plurality of query splits executed against the table using the corresponding associated mappers of the plurality of mappers.

8. The method of claim 1 , wherein:

obtaining metadata comprises obtaining table data representative of one or more properties of the table from a metadata store, wherein the table data comprises one or more of:

partition data representative of a partition scheme of the table as having a partitioned topology wherein the table is logically divided into one or more partitions or an un-partitioned topology wherein the table is logically undivided; and/or

files, data blocks, and row numbers for the table in accordance with the user query for blocks of data in the table.

9. A system for database split generationin a database access environment including a plurality of databases and a data warehouse layer executing on one or more microprocessors, the system comprising:

one or more microprocessors; and

a database table accessor executing on the one or more microprocessors and being configured to perform a method of database split generation comprising:

receiving by a database table accessor executing on the one or more microprocessors, from a client application, a query for data in a table of the data warehouse layer;

obtaining a metadata representative of the table containing the data;

determining a splits generator based at least partly on the obtained metadata;

generating, by the splits generator, a plurality of query splits, wherein each of the plurality of query splits is executable by a corresponding associated mapper of a plurality of associated mappers against the table; and

generating a response to the query based on received results of each of the plurality of query splits executed against the table.

10. The system of claim 9 , wherein the determining the splits generator comprises selecting the splits generator from among a plurality of splitter kinds in accordance with a user preference or one or more properties of the table.

11. The system of claim 10 , wherein the determining the splits generator comprises selecting the splits generator for splitting the table based on one or more of partitions, sizes, row limits, and/or ROWID ranges.

12. The system of claim 10 , wherein the determining the splits generator comprises determining the splits generator exclusively in accordance with:

the user preference, or

the one or more properties of the table.

13. The system of claim 9 , wherein the obtaining the metadata comprises obtaining metadata representative of the one or more properties of the table.

14. The system of claim 9 , further comprising:

executing each of the plurality of query splits against the table using a corresponding associated mapper of the plurality of associated mappers.

15. The system of claim 9 , further comprising:

outputting the plurality of query splits for execution against the table by the corresponding associated mappers of the plurality of mappers;

receiving results of each of the plurality of query splits executed against the table using the corresponding associated mappers of the plurality of mappers; and

generating the response based on the received results of each of the plurality of query splits executed_against the table using the corresponding associated mappers of the plurality of mappers.

16. The system of claim 9 , wherein:

obtaining metadata comprises obtaining table data representative of one or more properties of the table from a metadata store, wherein the table data comprises one or more of:

partition data representative of a partition scheme of the table as having a partitioned topology wherein the table is logically divided into one or more partitions or an un-partitioned topology wherein the table is logically undivided; and/or

files, data blocks, and row numbers for the table in accordance with the user query for blocks of data in the table.

17. A non-transitory computer readable storage medium, including instructions stored thereon which when read and executed by one or more computers, cause the one or more computers to perform a method of database split generation comprising:

receiving_by a database table accessor executing on the one or more microprocessors, from a client application, a query for data in a table of the data warehouse layer;

obtaining a metadata representative of the table containing the data;

determining a splits generator based at least partly on the obtained metadata;

generating, by the splits generator, a plurality of query splits, wherein each of the plurality of query splits is executable by a corresponding associated mapper of a plurality of associated mappers against the table; and

generating a response to the query based on received results of each of the plurality of query splits executed against the table.

18. The non-transitory computer readable storage medium of claim 17 , wherein the determining the splits generator comprises selecting the splits generator from among a plurality of splitter kinds in accordance with a user preference or one or more properties of the table.

19. The non-transitory computer readable storage medium of claim 17 , further comprising:

executing each of the plurality of query splits against the table using a corresponding associated mapper of the plurality of associated mappers.

20. The non-transitory computer readable storage medium of claim 17 , further comprising:

outputting the plurality of query splits for execution against the table by the corresponding associated mappers of the plurality of mappers;

receiving results of each of the plurality of query splits executed against the table using the corresponding associated mappers of the plurality of mappers; and

generating the response based on the received results of each of the plurality of query splits executed against the table using the corresponding associated mappers of the plurality of mappers.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 29, 2023
From: SHIVARUDRAIAH, ASHOK
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 065983/0577 →
Continuity (4)
Continuation 16502727 · Jul 3, 2019
Continuation 14864765 · Sep 24, 2015
Provisional Application 62056400 · Sep 26, 2014
Related Publication 20240134861A1 · Apr 25, 2024
References Cited (139)
US 5864840A · Leung · 1999 [cited by applicant]
US 5878409A · Baru · 1999 [cited by applicant]
US 6681218B1 · Zou · 2004 [cited by applicant]
US 6748377B1 · Attaluri · 2004 [cited by applicant]
US 6959373B2 · Testardi · 2005 [cited by applicant]
US 7177855B2 · Witkowski · 2007 [cited by applicant]
US 7337163B1 · Srinivasan · 2008 [cited by applicant]
US 7647354B2 · Norcott · 2010 [cited by applicant]
US 7716173B2 · Stolte · 2010 [cited by applicant]
US 7756889B2 · Yu · 2010 [cited by applicant]
US 7818349B2 · Frost · 2010 [cited by applicant]
US 7895186B2 · Yu · 2011 [cited by applicant]
US 7930294B2 · Shuf · 2011 [cited by applicant]
US 7930297B2 · Yu · 2011 [cited by applicant]
US 7979425B2 · Garg · 2011 [cited by applicant]
US 8244715B2 · Cole · 2012 [cited by applicant]
US 8326821B2 · Andrade · 2012 [cited by applicant]
US 8341120B2 · Barton · 2012 [cited by applicant]
US 8380702B2 · Baby · 2013 [cited by applicant]
US 8386508B2 · Krishnamoorthy · 2013 [cited by applicant]
US 8392482B1 · McAlister · 2013 [cited by applicant]
US 8510263B2 · Essawi · 2013 [cited by applicant]
US 8533181B2 · Hu · 2013 [cited by applicant]
US 8539504B2 · Bidelis · 2013 [cited by applicant]
US 8589357B2 · Radhakrishnan · 2013 [cited by applicant]
US 8589361B2 · Hu · 2013 [cited by applicant]
US 8601000B1 · Stefani · 2013 [cited by examiner]
US 8631028B1 · Pettovello · 2014 [cited by applicant]
US 8725882B2 · Neel · 2014 [cited by applicant]
US 8793287B2 · Peh · 2014 [cited by applicant]
US 8799284B2 · Jagtiani · 2014 [cited by applicant]
US 8825629B2 · Lawande · 2014 [cited by applicant]
US 8838919B2 · Shi · 2014 [cited by applicant]
US 8856083B2 · Ganesh · 2014 [cited by applicant]
US 8874600B2 · Gupta · 2014 [cited by applicant]
US 8880565B2 · Fricke · 2014 [cited by applicant]
US 8886631B2 · Abadi · 2014 [cited by applicant]
US 8892599B2 · Lindblad · 2014 [cited by applicant]
US 8893131B2 · Ramakrishnan · 2014 [cited by applicant]
US 8918388B1 · Chen · 2014 [cited by applicant]
US 8924426B2 · Chattopadhyay · 2014 [cited by applicant]
US 8996464B2 · Zhou · 2015 [cited by applicant]
US 9015114B2 · Chatterjee · 2015 [cited by applicant]
US 9015197B2 · Richards · 2015 [cited by applicant]
US 9146959B2 · Chen · 2015 [cited by applicant]
US 9218379B2 · Grondin · 2015 [cited by applicant]
US 9229982B2 · Cras · 2016 [cited by applicant]
US 9239741B2 · Dai · 2016 [cited by applicant]
US 9256639B2 · Shironoshita · 2016 [cited by applicant]
US 9348641B2 · Mupparti · 2016 [cited by applicant]
US 9400815B2 · Poppitz · 2016 [cited by applicant]
US 9442994B2 · Carvalho · 2016 [cited by applicant]
US 9460186B2 · Liu · 2016 [cited by applicant]
US 9489443B1 · Muniswamy-Reddy · 2016 [cited by applicant]
US 9495296B2 · Subramanyam · 2016 [cited by applicant]
US 9495427B2 · Abadi · 2016 [cited by applicant]
US 9501483B2 · Srivas · 2016 [cited by applicant]
US 9575966B2 · Goyal · 2017 [cited by applicant]
US 9576000B2 · Balmin · 2017 [cited by applicant]
US 9600513B2 · Bourbonnais · 2017 [cited by applicant]
US 9607042B2 · Long · 2017 [cited by applicant]
US 9652496B1 · Antova · 2017 [cited by applicant]
US 9659039B2 · Ziauddin · 2017 [cited by applicant]
US 9684874B2 · Cichosz · 2017 [cited by applicant]
US 9697476B1 · Prieditis · 2017 [cited by applicant]
US 9747335B2 · Lee · 2017 [cited by applicant]
US 9910860B2 · Eltabakh · 2018 [cited by applicant]
US 9922088B2 · Nica · 2018 [cited by applicant]
US 9965497B2 · Raghavan · 2018 [cited by applicant]
US 10007698B2 · Delafranier · 2018 [cited by applicant]
US 10055509B2 · Hong · 2018 [cited by applicant]
US 10078684B2 · Shivarudraiah · 2018 [cited by applicant]
US 10089357B2 · Shivarudraiah · 2018 [cited by applicant]
US 10089377B2 · Shivarudraiah · 2018 [cited by applicant]
US 10180973B2 · Shivarudraiah · 2019 [cited by applicant]
US 10248685B2 · Kulkarni · 2019 [cited by applicant]
US 10248691B2 · Das · 2019 [cited by applicant]
US 10303682B2 · Macnicol · 2019 [cited by applicant]
US 10360269B2 · Baby · 2019 [cited by applicant]
US 10380114B2 · Shivarudraiah · 2019 [cited by applicant]
US 10387421B2 · Shivarudraiah · 2019 [cited by applicant]
US 10394818B2 · Shivarudraiah · 2019 [cited by applicant]
US 10528596B2 · Shivarudraiah · 2020 [cited by applicant]
US 11544268B2 · Shivarudraiah · 2023 [cited by applicant]
US 11899666B2 · Shivarudraiah · 2024 [cited by applicant]
US 20040186832A1 · Jardin · 2004 [cited by applicant]
US 20050131893A1 · Von Glan · 2005 [cited by applicant]
US 20070043751A1 · Chen · 2007 [cited by applicant]
US 20070226176A1 · Bestgen · 2007 [cited by applicant]
US 20070288529A1 · Ganesh · 2007 [cited by applicant]
US 20100235606A1 · Oreland · 2010 [cited by applicant]
US 20120239688A1 · Yanase · 2012 [cited by applicant]
US 20120310916A1 · Abadi · 2012 [cited by applicant]
US 20130205028A1 · Crockett · 2013 [cited by applicant]
US 20130275367A1 · Shuma · 2013 [cited by applicant]
US 20140012817A1 · Kim · 2014 [cited by applicant]
US 20140280019A1 · Elias · 2014 [cited by applicant]
US 20140379691A1 · Teletia · 2014 [cited by applicant]
US 20150149413A1 · Lee · 2015 [cited by examiner]
US 20150317345A1 · Liu · 2015 [cited by applicant]
US 20150379077A1 · Grosse · 2015 [cited by applicant]
US 20160092543A1 · Shivarudraiah · 2016 [cited by applicant]
US 20160092544A1 · Shivarudraiah · 2016 [cited by applicant]
US 20160092548A1 · Shivarudraiah · 2016 [cited by applicant]
US 20160342653A1 · Chen · 2016 [cited by applicant]
US 20170116278A1 · Baby · 2017 [cited by applicant]
US 20170116334A1 · Kruglikov · 2017 [cited by applicant]
US 20180081922A1 · Brown · 2018 [cited by applicant]
US 20180253463A1 · Bastawala · 2018 [cited by applicant]
US 20190163545A1 · Singh · 2019 [cited by applicant]
US 20190171763A1 · Cai · 2019 [cited by applicant]
US 20190238653A1 · Syomichev · 2019 [cited by applicant]
US 20190324967A1 · Shivarudraiah · 2019 [cited by applicant]
WO 2015152868 · 2015 [cited by applicant]
United States Patent and Trademark Office, Office Communication mailed Feb. 7, 2018 for U.S. Appl. No. 14/864,788, 29 pages. [cited by applicant]
United States Patent and Trademark Office, Office Communication mailed Sep. 25, 2017 for U.S. Appl. No. 14/864,773, 20 pages. [cited by applicant]
United States Patent and Trademark Office, Office Communication mailed Sep. 21, 2017 for U.S. Appl. No. 14/864,782, 26 pages. [cited by applicant]
United States Patent and Trademark Office, Office Communication mailed Nov. 2, 2017 for U.S. Appl. No. 14/864,776, 13 pages. [cited by applicant]
United States Patent and Trademark Office, Office Communication dated Nov. 2, 2017 for U.S. Appl. No. 14/864,785, 26 pages. [cited by applicant]
United States Patent and Trademark Office, Office Communication dated Oct. 5, 2018 for U.S. Appl. No. 14/864,765 , 17 pages. [cited by applicant]
United States Patent and Trademark Office, Notice of Allowance and Fee(s) Due dated Apr. 8, 2019 for U.S. Appl. No. 14/864,765 , 20 pages. [cited by applicant]
United States Patent and Trademark Office, Office Communication dated Oct. 4, 2018 for U.S. Appl. No. 14/864,769 , 15 pages. [cited by applicant]
United States Patent and Trademark Office, Notice of Allowance and Fee(s) Due dated Apr. 8, 2019 for U.S. Appl. No. 14/864,769 , 21 pages. [cited by applicant]
United States Patent and Trademark Office, Office Communication dated May 26, 2022 for U.S. Appl. No. 16/502,720 , 26 pages. [cited by applicant]
United States Patent and Trademark Office, Notice of Allowance and Fee(s) Due dated Oct. 6, 2022 for U.S. Appl. No. 16/502,720 , 12 pages. [cited by applicant]
United States Patent and Trademark Office, Office Communication dated Jul. 27, 2018 for U.S. Appl. No. 14/864,773 , 8 pages. [cited by applicant]
United States Patent and Trademark Office, Notice of Allowance and Fee(s) Due dated Mar. 27, 2019 for U.S. Appl. No. 14/864,773 , 8 pages. [cited by applicant]
United States Patent and Trademark Office, Notice of Allowance and Fee(s) Due dated May 31, 2018 for U.S. Appl. No. 14/864,776 , 21 pages. [cited by applicant]
United States Patent and Trademark Office, Notice of Allowance and Fee(s) Due dated May 31, 2018 for U.S. Appl. No. 14/864,782 , 23 pages. [cited by applicant]
United States Patent and Trademark Office, Notice of Allowance and Fee(s) Due dated May 22, 2018 for U.S. Appl. No. 14/864,785 , 25 pages. [cited by applicant]
United States Patent and Trademark Office, Notice of Allowance and Fee(s) Due dated Sep. 6, 2018 for U.S. Appl. No. 14/864,788 , 6 pages. [cited by applicant]
United States Patent and Trademark Office, Office Communication dated Nov. 1, 2018 for U.S. Appl. No. 14/864,792 , 33 pages. [cited by applicant]
United States Patent and Trademark Office, Office Communication dated May 22, 2019 for U.S. Appl. No. 14/864,792 , 38 pages. [cited by applicant]
United States Patent and Trademark Office, Notice of Allowance and Fee(s) Due dated Aug. 26, 2019 for U.S. Appl. No. 14/864,792 , 13 pages. [cited by applicant]
United States Patent and Trademark Office, Notice of Allowance and Fee(s) Due dated Sep. 29, 2023 for U.S. Appl. No. 16/502,727 , 8 pages. [cited by applicant]
United States Patent and Trademark Office, Office Communication dated Mar. 14, 2023 for U.S. Appl. No. 16/502,727 , 34 pages. [cited by applicant]
United States Patent and Trademark Office, Office Communication dated Sep. 13, 2022 for U.S. Appl. No. 16/502,727 , 23 pages. [cited by applicant]
United States Patent and Trademark Office, Office Communication dated Apr. 11, 2022 for U.S. Appl. No. 16/502,727 , 27 pages. [cited by applicant]
Balmin, A et al., “A platform for extreme Analytics”, © 2013 IBM, IBM Journal of Research and Development vol. 57, No. 3/4 Paper 4, May/Jul. 2013, 11 pages. [cited by applicant]