IP Library › Granted Patent US 12,380,126
Granted Patent B2
US 12,380,126 · App. 18/084,421 · Granted Aug 5, 2025

Discovery of source range partitioning information in data extract job

Inventors: Rohit Jaykumar Gattani (Pleasanton, CA); Rahul Gupta (Dublin, CA); Arun Patnaik (Fremont, CA); Vinod Murli Mamtani (Bellevue, WA)
Assignee: Oracle International Corporation
G06F16/27
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,126
App. No.
18/084,421
Granted
Aug 5, 2025
Kind
B2
Abstract

Techniques are described for the discovery of source range partitioning information. An example method includes a device determining a partition boundary value for the data based at least in part on the following steps. The device can determine a first plurality of bounded value sets and a second plurality of bounded value sets. The device can calculate a first average value of a first value and a second average value. The device can determine a first deviation value of the first average value from the first value and a second deviation value of the second average value from a third value. The device can determine the first partition boundary value based at least in part on the first deviation value and the second deviation value, the first partition boundary value being the first candidate partition boundary value or the second candidate partition boundary value.

Claims (88)

1. A method, comprising:

receiving, by a computing device and from a source system, a first set of values from data to be transmitted to a target system and a second set of values from the data to be transmitted to the target system;

determining, by the computing device, a partition boundary value for the data based at least in part on:

determining, by the computing device, a first plurality of bounded value sets based at least in part on the first set of values and a second plurality of bounded value sets based at least in part on the second set of values;

determining, by the computing device, a first deviation value based at least in part on a first upper boundary value of the first plurality of bounded value sets and a first value of the second plurality of bounded value sets;

determining, by the computing device, a second deviation value based at least in part on a second upper boundary value of the second plurality of bounded value sets and a second value of the first plurality of bounded value sets; and

determining, by the computing device, a first partition boundary value based at least in part on the first deviation value and the second deviation value;

partitioning, by the computing device, the data based at least in part on the first partition boundary value; and

transmitting, by the computing device, the partitioned data to the target system.

2. The method of claim 1 , wherein determining a first deviation value based at least in part on the first plurality of bounded value sets and a second deviation value based at least in part on the second plurality of bounded value sets comprises:

determining a first average value of a first value of a first bounded value set of the first plurality of bounded value sets and a second value of a second bounded value set of the second plurality of bounded value sets, the first value corresponding to a first candidate partition boundary value;

determining a second average value of a third value of a third set of bounded values of the first plurality of bounded value sets and a fourth value of a fourth set bounded values of the second plurality of bounded values, the third value corresponding to a second candidate partition boundary value;

determining the first deviation value of the first average value from the first value; and

determining the second deviation value of the second average value from the third value.

3. The method of claim 2 , wherein the method further comprises:

receiving a third set of values from the data to be transmitted to the target system;

determining whether the values of the third set of values are uniformly distributed across a first partition generated using the first partition boundary value and across a second partition generated using the second partition boundary value; and

determining whether to partition the data using the first candidate partition boundary value or the second candidate partition boundary value based at least in part on the determination of uniform distribution.

4. The method of claim 3 , wherein determining whether the values of the third set of values are uniformly distributed across the first partition and across the second partition is based at least in part on determining a first number of values distributed across the first partition is greater by a threshold margin than a second number of values distributed across the second partition.

5. The method of claim 4 , wherein comparing the first deviation value to the second deviation value comprises determining whether the first deviation value is greater than the second deviation value.

6. The method of claim 2 , wherein the method further comprises:

determining a difference between the first average value and the first value;

determining an absolute value of the difference of the first average value and the first value, wherein the first deviation value is the absolute value;

determining a difference between the second average value and the third value; and

determining an absolute value of the difference of the second average value and the third value, wherein the second deviation value is the absolute value.

7. The method of claim 1 , wherein the method further comprises:

identifying a fifth value of the first set of values and a sixth value of the second set of values;

determining a midpoint of the fifth value and the sixth value; and

determining the first plurality of bounded value sets and the second plurality of bounded value sets based at least in part on the midpoint, wherein the first plurality of bounded values is determined by adjusting the fifth value based at least in part on the midpoint, and wherein the second plurality of bounded values is determined by adjusting the sixth value based at least in part on the midpoint.

8. A computing device, comprising:

a processor; and

a non-transitory computer-readable medium including instructions that, when executed by the processor, cause the processor to perform operations comprising:

receiving, from a source system, a first set of values from data to be transmitted to a target system and a second set of values from the data to be transmitted to the target system;

determining a partition boundary value for the data based at least in part on:

determining a first plurality of bounded value sets based at least in part on the first set of values and a second plurality of bounded value sets based at least in part on the second set of values;

determining a first deviation value based at least in part on a first upper boundary value of the first plurality of bounded value sets and a first value of the second plurality of bounded value sets;

determining a second deviation value based at least in part on a second upper boundary value of the second plurality of bounded value sets and a second value of the first plurality of bounded value sets; and

determining a first partition boundary value based at least in part on the first deviation value and the second deviation value;

partitioning the data based at least in part on the first partition boundary value; and

transmitting the partitioned data to the target system.

9. The computing device of claim 8 , wherein determining a first deviation value based at least in part on the first plurality of bounded value sets and a second deviation value based at least in part on the second plurality of bounded value sets comprises:

determining a first average value of a first value of a first bounded value set of the first plurality of bounded value sets and a second value of a second bounded value set of the second plurality of bounded value sets, the first value corresponding to a first candidate partition boundary value;

determining a second average value of a third value of a third set of bounded values of the first plurality of bounded value sets and a fourth value of a fourth set bounded values of the second plurality of bounded values, the third value corresponding to a second candidate partition boundary value;

determining the first deviation value of the first average value from the first value; and

determining the second deviation value of the second average value from the third value.

10. The computing device of claim 9 , wherein the instructions that, when executed by the processor, further cause the processor to perform operations comprising:

receiving a third set of values from the data to be transmitted to the target system;

determining whether the values of the third set of values are uniformly distributed across a first partition generated using the first partition boundary value and across a second partition generated using the second partition boundary value; and

determining whether to partition the data using the first candidate partition boundary value or the second candidate partition boundary value based at least in part on the determination of uniform distribution.

11. The computing device of claim 10 , wherein determining whether the values of the third set of values are uniformly distributed across the first partition and across the second partition is based at least in part on determining a first number of values distributed across the first partition is greater by a threshold margin than a second number of values distributed across the second partition.

12. The computing device of claim 9 , wherein the instructions that, when executed by the processor, further cause the processor to perform operations comprising:

determining a difference between the of the first average value and the first value;

determining an absolute value of the difference of the first average value and the first value, wherein the first deviation value is the absolute value;

determining a difference between the second average value and the third value; and

determining an absolute value of the difference of the second average value and the third value, wherein the second deviation value is the absolute value.

13. The computing device of claim 8 , wherein the instructions that, when executed by the processor, further cause the processor to perform operations comprising:

identifying a fifth value of the first set of values and a sixth value of the second set of values;

determining a midpoint of the fifth value and the sixth value; and

determining the first plurality of bounded value sets and the second plurality of bounded value sets based at least in part on the midpoint, wherein the first plurality of bounded values is determined by adjusting the fifth value based at least in part on the midpoint, and wherein the second plurality of bounded values is determined by adjusting the sixth value based at least in part on the midpoint.

14. The computing device of claim 13 , wherein comparing the first deviation value to the second deviation value comprises determining whether the first deviation value is greater than the second deviation value.

15. A non-transitory computer-readable medium having stored thereon a sequence of instructions that, when executed by a processor, causes the processor to perform operations comprising:

receiving, from a source system, a first set of values from data to be transmitted to a target system and a second set of values from the data to be transmitted to the target system;

determining a partition boundary value for the data based at least in part on:

determining a first plurality of bounded value sets based at least in part on the first set of values and a second plurality of bounded value sets based at least in part on the second set of values;

determining a first deviation value based at least in part on a first upper boundary value of the first plurality of bounded value sets and a first value of the second plurality of bounded value sets;

determining a second deviation value based at least in part on a second upper boundary value of the second plurality of bounded value sets and a second value of the first plurality of bounded value sets; and

determining a first partition boundary value based at least in part on the first deviation value and the second deviation value;

partitioning the data based at least in part on the first partition boundary value; and

transmitting the partitioned data to the target system.

16. The non-transitory computer-readable medium of claim 15 , wherein determining a first deviation value based at least in part on the first plurality of bounded value sets and a second deviation value based at least in part on the second plurality of bounded value sets comprises:

determining a first average value of a first value of a first bounded value set of the first plurality of bounded value sets and a second value of a second bounded value set of the second plurality of bounded value sets, the first value corresponding to a first candidate partition boundary value;

determining a second average value of a third value of a third set of bounded values of the first plurality of bounded value sets and a fourth value of a fourth set bounded values of the second plurality of bounded values, the third value corresponding to a second candidate partition boundary value;

determining the first deviation value of the first average value from the first value; and

determining the second deviation value of the second average value from the third value.

17. The non-transitory computer-readable medium of claim 16 , wherein the instructions that, when executed by the processor, further cause the processor to perform operations comprising:

receiving a third set of values from the data to be transmitted to the target system;

determining whether the values of the third set of values are uniformly distributed across a first partition generated using the first partition boundary value and across a second partition generated using the second partition boundary value; and

determining whether to partition the data using the first candidate partition boundary value or the second candidate partition boundary value based at least in part on the determination of uniform distribution.

18. The non-transitory computer-readable medium of claim 17 , wherein determining whether the values of the third set of values are uniformly distributed across the first partition and across the second partition is based at least in part on determining a first number of values distributed across the first partition is greater by a threshold margin than a second number of values distributed across the second partition.

19. The non-transitory computer-readable medium of claim 16 , wherein the instructions that, when executed by the processor, further cause the processor to perform operations comprising:

determining a difference between the first average value and the first value;

determining an absolute value of the difference of the first average value and the first value, wherein the first deviation value is the absolute value;

determining a difference between the second average value and the third value; and

determining an absolute value of the difference of the second average value and the third value, wherein the second deviation value is the absolute value.

20. The non-transitory computer-readable medium of claim 15 , wherein the instructions that, when executed by the processor, further cause the processor to perform operations comprising:

identifying a fifth value of the first set of values and a sixth value of the second set of values;

determining a midpoint of the fifth value and the sixth value; and

determining the first plurality of bounded value sets and the second plurality of bounded value sets based at least in part on the midpoint, wherein the first plurality of bounded values is determined by adjusting the fifth value based at least in part on the midpoint, and wherein the second plurality of bounded values is determined by adjusting the sixth value based at least in part on the midpoint.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 20, 2022
From: GATTANI, ROHIT JAYKUMAR; GUPTA, RAHUL; PATNAIK, ARUN; MAMTANI, VINOD MURLI
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 062158/0111 →
Continuity (1)
Related Publication 20240202210A1 · Jun 20, 2024
References Cited (23)
US 7024401B2 · Harper et al. · 2006 [cited by applicant]
US 7814142B2 · Mamou et al. · 2010 [cited by applicant]
US 10356150B1 · Meyers · 2019 [cited by examiner]
US 10459918B1 · Edwards, Jr. · 2019 [cited by examiner]
US 11621966B1 · Yu et al. · 2023 [cited by applicant]
US 20050160055A1 · Boulle · 2005 [cited by applicant]
US 20080313246A1 · Shankar et al. · 2008 [cited by applicant]
US 20110066593A1 · Ahluwalia · 2011 [cited by examiner]
US 20120143090A1 · Hay et al. · 2012 [cited by applicant]
US 20150356149A1 · Dagli et al. · 2015 [cited by applicant]
US 20200125666A1 · Eadon et al. · 2020 [cited by applicant]
US 20200311062A1 · Mihm et al. · 2020 [cited by applicant]
US 20220261390A1 · Creasey et al. · 2022 [cited by applicant]
US 20240202210A1 · Gattani et al. · 2024 [cited by applicant]
CN 110737683A · 2020 [cited by applicant]
KR 20220096049A · 2022 [cited by applicant]
“Dynamic Partitioning in Kinesis Data Firehose”, Available Online at: https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning.html, 2022, 11 pages. [cited by applicant]
“Patentability Search Report”, Nov. 7, 2021, 15 pages. [cited by applicant]
“Source Partitioning”, Amazon Redshift Connectors, Cloud Data Integration Connectors, Nov. 29, 2022, 1 page. [cited by applicant]
Ives et al., “Adapting to Source Properties in Processing Data Integration Queries”, Available Online at: https://homes.cs.washington.edu/˜alon/files/aqp04.pdf, Jun. 13-18, 2004, 12 pages. [cited by applicant]
Vieira , “Use PK Chunking to Extract Large Data Sets from Salesforce”, Available Online at: https://developer.salesforce.com/blogs/engineering/2015/03/use-pk-chunking-extract-large-data-sets-salesforce, Mar. 23, 2015, 4… [cited by applicant]
U.S. Appl. No. 18/225,827 , Notice of Allowance, Mailed on Dec. 6, 2024, 20 pages. [cited by applicant]
U.S. Appl. No. 18/225,827 , “Non-Final Office Action”, Jun. 4, 2024, 19 pages. [cited by applicant]