IP Library › Granted Patent US 12,259,886
Granted Patent B2
US 12,259,886 · App. 18/532,294 · Granted Mar 25, 2025

Utilizing query approval data determined based on query cost data for a query request

Inventors: S. Christopher Gladwin (Chicago, IL); Andrew D. Baptist (Mt. Pleasant, WI); George Kondiles (Chicago, IL); Jason Arnold (Chicago, IL)
Assignee: Ocient Holdings LLC
G06F16/24545
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,259,886
App. No.
18/532,294
Filed
Dec 7, 2023
Granted
Mar 25, 2025
Kind
B2
Art Unit
2154
USPC
707/719
Abstract

A user device is operable to determine a query request based on first user input to a graphical user interface displayed by the user device. Query cost data is determined based on the query request. A prompt is displayed via the graphical user interface that indicates the query cost data. Query approval data is determined based on second user input to the graphical user interface in response to the prompt. The query request is transmitted to an analytics system for execution against a database system when the query approval data indicates approval to transmit the query request.

Claims (83)

1. A method for execution by an analytics system, the method comprising:

receiving a query request from a user device;

determining query cost data based on the query request by utilizing a query pricing scheme, wherein the query cost data indicates a total query cost computed as a function of at least one of:

a plurality of provider costs for each of a plurality of data providers that supplied data accessed in the query request;

a plurality of query function costs for each of a plurality of query functions indicated in the query request;

a plurality of field costs for each of a plurality of fields accessed in the query request; or

a plurality of record type costs for each of a plurality of record types accessed in the query request:

transmitting the query cost data to the user device;

receiving query approval data from the user device, wherein the query approval data is generated by the user device based on user input to a graphical user interface;

when the query approval data indicates approval of query request:

transmitting a query response to the user device based on facilitation of execution of the query request against a database system; and

generating billing data for based on the query cost data; and

when the query approval data does not indicate approval to transmit the query request:

foregoing transmission of the query response to the user device; and

foregoing generation of the billing data.

2. The method of claim 1 , wherein determining the query cost data includes facilitating the execution of at least one query function of the query request against the database system, wherein the query cost data is based on a query result generated based on the execution of the at least one query function of the query request against the database system, and wherein the query response is based on the query result.

3. A method for execution by a user device, the method comprising:

determining a query request based on first user input to a graphical user interface displayed by the user device;

determining query cost data based on the query request, wherein determining the query cost data is based on:

transmitting the query request to an analytics system for execution against a database system; and

receiving query cost data from the analytics system, wherein a query result is generated by the analytics system based on facilitating execution of at least one query function against the database system, and wherein the query cost data is generated by the analytics system by utilizing a query pricing scheme based on the execution of the at least one query function;

displaying a prompt via the graphical user interface that indicates the query cost data;

determining query approval data based on second user input to the graphical user interface in response to the prompt;

when the query approval data indicates approval to receive the query results:

transmitting a request for the query results to the analytics system for execution against the database system; and

receiving the query results in a transmission from the analytics system; and

when the query approval data does not indicate approval to receive the query results:

foregoing transmission of the request for the query results to the analytics system.

4. The method of claim 3 , wherein the analytics system caches the query result in a query result cache in response to generating the query result further comprising:

when the query approval data does not indicate approval to transmit the query request:

transmitting a message to the analytics system indicating the query approval data does not indicate approval to transmit the query request;

wherein the analytics system removes the query result from the query result cache based on receiving the message.

5. The method of claim 3 , wherein a result set is generated based on the execution of the at least one query function against the database system, and wherein the query cost data is generated based on a size of the result set.

6. A method for execution by a user device, the method comprising:

determining a query request based on first user input to a graphical user interface displayed by the user device;

determining query cost data based on the query request, wherein the query cost data indicates estimated query cost data generated based on the query request;

displaying a prompt via the graphical user interface that indicates the query cost data;

determining query approval data based on second user input to the graphical user interface in response to the prompt;

when the query approval data indicates approval to transmit the query request for execution:

transmitting the query request to an analytics system for execution against a database system; and

when the query approval data does not indicate approval to transmit the query request for execution:

foregoing transmission of the query request to the analytics system.

7. The method of claim 6 , further comprising:

receiving user application data from the analytics system; and

executing the user application data, wherein displaying the graphical user interface, determining the query request, determining the query cost data is determined, and determining the query approval data is based on the execution of the user application data.

8. The method of claim 6 , further comprising:

when the query approval data does not indicate approval to transmit the query request for execution:

determining an amended query request based on third user input to the graphical user interface displayed by the user device in response to a prompt to amend the query request displayed by the graphical user interface;

determining second query cost data based on the amended query request;

displaying a second prompt via the graphical user interface that indicates the second query cost data;

determining second query approval data based on fourth user input to the graphical user interface in response to the second prompt;

when the second query approval data indicates approval to transmit the amended query request for execution:

transmitting the amended query request to the analytics system for execution against the database system; and

when the second query approval data does not indicate approval to transmit the amended query request for execution:

foregoing transmission of the amended query request to the analytics system.

9. The method of claim 6 , further comprising:

receiving query pricing scheme data from the analytics system;

wherein determining the query cost data includes calculating the query cost data by utilizing the query pricing scheme data.

10. The method of claim 6 , wherein determining the query cost data includes:

transmitting the query request to the analytics system, wherein the analytics system generates the query cost data based on the query request by utilizing a query pricing scheme, and wherein the analytics system transmits the query cost data to the user device; and

receiving the query cost data from the analytics system.

11. The method of claim 10 , wherein the analytics system generates the query cost data based on executing at least one query function of the query request.

12. The method of claim 6 , wherein the query cost data indicates a plurality of provider costs for each of a plurality of data providers that supplied data accessed in the query request, and wherein a total query cost indicated in the query cost data is computed as a function of the plurality of provider costs.

13. The method of claim 6 , wherein the query cost data indicates a plurality of query function costs for each of a plurality of query functions indicated in the query request, and wherein a total query cost indicated in the query cost data is computed as a function of the plurality of query function costs.

14. The method of claim 6 , wherein the query cost data indicates a plurality of field costs for each of a plurality of fields accessed in the query request, and wherein a total query cost indicated in the query cost data is computed as a function of the plurality of field costs.

15. The method of claim 6 , wherein the query cost data indicates a plurality of record type costs for each of a plurality of record types accessed in the query request, and wherein a total query cost indicated in the query cost data is computed as a function of the plurality of record type costs.

16. The method of claim 6 , wherein at least one of:

the query cost data indicates a plurality of provider cost ratios for each of a plurality of data providers that supplied data accessed in the query request;

the query cost data indicates a plurality of query function cost ratios for each of a plurality of query functions indicated in the query request;

the query cost data indicates a plurality of field cost ratios for each of a plurality of fields accessed in the query request; or

the query cost data indicates a plurality of record type cost ratios for each of a plurality of record types accessed in the query request.

17. The method of claim 6 , wherein the estimated query cost data is based on an estimated result set size generated based on at least one of:

a current size of a table indicated in the query request for access;

a recent size of the table indicated in the query request for access;

a current total number of records supplied by a provider supplying data indicated in the query request for access;

a recent total number of records supplied by the provider supplying data indicated in the query request for access;

result set size of a result set generated via execution of at least one previous query queries based on filtering via same filtering parameters indicated in the query request;

a known number of records meeting filtering parameters indicated in the query request; or

an estimate number of records meeting filtering parameters indicated in the query request.

18. The method of claim 6 , wherein the estimated query cost data indicates at least one of: an estimated minimum query cost, or an estimated maximum query cost.

19. The method of claim 6 , wherein the query approval data indicates approval to transmit the query request for execution, further comprising:

receiving a query response from the analytics system based on the execution of the query request against the database system; and

displaying the query response via the graphical user interface.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 8, 2023
From: GLADWIN, S. CHRISTOPHER; BAPTIST, ANDREW D.; KONDILES, GEORGE; ARNOLD, JASON
To: OCIENT HOLDINGS LLC
Reel/Frame 065834/0423 →
Continuity (4)
Continuation 18165029 · Feb 6, 2023
Continuation 17150415 · Jan 15, 2021
Continuation 16665571 · Oct 28, 2019
Related Publication 20240134857A1 · Apr 25, 2024
References Cited (61)
US 5548770A · Bridges · 1996 [cited by applicant]
US 5778354A · Leslie · 1998 [cited by applicant]
US 6230200B1 · Forecast · 2001 [cited by applicant]
US 6633772B2 · Ford · 2003 [cited by applicant]
US 7499907B2 · Brown · 2009 [cited by applicant]
US 7908242B1 · Achanta · 2011 [cited by applicant]
US 8903803B1 · Aly · 2014 [cited by applicant]
US 8977558B2 · Nielsen · 2015 [cited by examiner]
US 20010051949A1 · Carey · 2001 [cited by applicant]
US 20020032676A1 · Reiner · 2002 [cited by applicant]
US 20040162853A1 · Brodersen · 2004 [cited by applicant]
US 20080133456A1 · Richards · 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 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 20110295833A1 · Narasayya · 2011 [cited by applicant]
US 20120065944A1 · Nielsen · 2012 [cited by examiner]
US 20120109888A1 · Zhang · 2012 [cited by applicant]
US 20120151118A1 · Flynn · 2012 [cited by applicant]
US 20120185866A1 · Couvee · 2012 [cited by applicant]
US 20120254252A1 · Jin · 2012 [cited by applicant]
US 20120311246A1 · McWilliams · 2012 [cited by applicant]
US 20130246336A1 · Ahuja et al. · 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 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 20170353395A1 · Richardson et al. · 2017 [cited by applicant]
US 20180018727A1 · Abuelsaad et al. · 2018 [cited by applicant]
US 20180157711A1 · Lee · 2018 [cited by applicant]
US 20180336639A1 · Dziabiak et al. · 2018 [cited by applicant]
JP 2012155358A · 2012 [cited by applicant]
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]
Anonymous; Database; Wikipedia; Sep. 22, 2019; 21 pgs [Retrieved from the Internet: https://en.wikipedia.org/w/index.php?title=Databases&oldid=917129682; retrieved on Jul. 14, 2023]. [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]
European Patent Office; extended EP Search Report; Application No. 20881989.6; Jul. 27, 2023; 10 pgs. [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]
International Searching Authority; International Search Report and Written Opinion; International Application No. PCT/US2020/056315; Feb. 9, 2021; 11 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]
European Patent Office; Communication pursuant to Article 94(3) EPC; Application No. 20881989.6; Sep. 6, 2024; 8 pgs. [cited by applicant]