IP Library Granted Patent US 12,554,740
Granted Patent B2
US 12,554,740 · App. 18/186,228 · Granted Feb 17, 2026

Low-latency predictive database analysis

Inventors: Sanjay Agrawal (Sammamish, WA); Gunjan Jha (Redmond, WA); Antony Chuxiao Chen (Bellevue, WA)
Assignee: ThoughtSpot, Inc.
G06F16/26G06F16/2428G06F16/245G06F16/2457G06F16/248
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,554,740
App. No.
18/186,228
Granted
Feb 17, 2026
Kind
B2
Abstract

Low-latency autonomous-analysis includes obtaining data expressing a usage intent with respect to a low-latency database analysis system that intent omits data corresponding to user input expressly requesting low-latency autonomous-analysis, obtaining requested results data based on the data expressing the usage intent, outputting requested visualization data representing at least a portion of the requested results data for presentation to a user, and, in response to outputting the requested visualization data, obtaining low-latency autonomous-analysis data by performing low-latency autonomous-analysis based on the data expressing the usage intent by identifying an autonomous-analysis predicate based on the requested visualization data, obtaining a defined autonomous-analysis latency constraint, obtaining the low-latency autonomous-analysis data based on the autonomous-analysis predicate in accordance with the defined autonomous-analysis latency constraint, such that the low-latency autonomous-analysis data differs from the requested results data, and outputting at least a portion of the low-latency autonomous-analysis data for presentation to a user.

Claims (81)

1 . A method comprising:

in response to outputting requested results data responsive to a request for data and absent user input data expressly requesting autonomous analysis, obtaining autonomous analysis data in accordance with the request for data and in accordance with a defined autonomous-analysis latency constraint, wherein the autonomous analysis data differs from the requested results data, wherein:

outputting the requested results data includes:

obtaining the request for data;

obtaining the requested results data in accordance with the request for data; and

outputting requested visualization data representing at least a portion of the requested results data for presentation to a user;

obtaining the autonomous analysis data includes:

identifying an autonomous-analysis predicate based on the requested visualization data; and

obtaining the autonomous analysis data in accordance with the autonomous-analysis predicate; and

in response to a determination that the request for data omits an expressly-specified request for data, an expressly-specified request for objects, and a requested object identifier:

obtaining the requested results data includes:

identifying previously generated objects based on the request for data; and

including, in the requested results data, requested results data portions respectively representing the previously generated objects;

outputting the requested visualization data includes including, in the requested visualization data, requested visualization data portions, wherein a requested visualization data portion from the requested visualization data portions is based on a respective requested results data portion from the requested results data portions and represents a corresponding previously generated object from the previously generated objects; and

identifying the autonomous-analysis predicate includes identifying a plurality of autonomous-analysis predicates, such that an autonomous-analysis predicate from the plurality of autonomous-analysis predicates corresponds to a respective requested visualization data portion from the requested visualization data portions; and

outputting at least a portion of the autonomous analysis data for presentation to the user.

2 . The method of claim 1 , wherein obtaining the autonomous analysis data includes:

identifying measure objects, wherein identifying the measure objects includes:

in response to a determination that the autonomous-analysis predicate includes a requested measure, including the requested measure in the measure objects; and

in response to a determination that the autonomous-analysis predicate omits the requested measure:

identifying a requested attribute from the autonomous-analysis predicate;

identifying exploratory measures based on the requested attribute and in accordance with the defined autonomous-analysis latency constraint, wherein identifying the exploratory measures includes identifying probabilistic utility data corresponding to respective exploratory measures; and

including the exploratory measures in the measure objects; and identifying attribute objects, wherein identifying the attribute objects includes:

in response to a determination that the autonomous-analysis predicate includes the requested attribute, including the requested attribute in the attribute objects;

identifying exploratory attributes based on the measure objects and in accordance with the defined autonomous-analysis latency constraint, wherein identifying the exploratory attributes includes identifying probabilistic utility data corresponding to respective exploratory attributes; and

including the exploratory attributes in the attribute objects.

3 . The method of claim 2 , wherein in response to a determination that the defined autonomous-analysis latency constraint indicates a maximum cardinality of exploratory measures, identifying the exploratory measures includes identifying up to the maximum cardinality of exploratory measures from a plurality of available measures such that a probabilistic utility of the exploratory measures is maximal.

4 . The method of claim 2 , wherein in response to a determination that the defined autonomous-analysis latency constraint indicates a maximum cardinality of exploratory attributes, identifying the exploratory attributes includes identifying up to the maximum cardinality of exploratory attributes from a plurality of available attributes such that a probabilistic utility of the exploratory attributes is maximal.

5 . The method of claim 2 , wherein obtaining the autonomous analysis data includes:

obtaining autonomous-analysis insight data based on the measure objects and the attribute objects such that the autonomous-analysis insight data includes autonomous-analysis data other than the requested results data; and

in response to a determination that the request for data is an expressly-specified request for data, obtaining autonomous-analysis related-request data based on the measure objects and the attribute objects such that the autonomous-analysis related-request data includes a resolved-request that differs from a resolved-request corresponding to the expressly-specified request for data.

6 . The method of claim 5 , wherein obtaining the autonomous-analysis insight data includes:

in response to a determination that the defined autonomous-analysis latency constraint indicates a defined maximum cardinality of outlier autonomous-analysis insight datasets, automatically generating outlier autonomous-analysis insight datasets up to the defined maximum cardinality of outlier autonomous-analysis insight datasets;

in response to a determination that the defined autonomous-analysis latency constraint indicates a defined maximum cardinality of trend autonomous-analysis insight datasets, automatically generating trend autonomous-analysis insight datasets up to the defined maximum cardinality of trend autonomous-analysis insight datasets;

in response to a determination that the defined autonomous-analysis latency constraint indicates a defined maximum cardinality of cross-correlation autonomous-analysis insight datasets, automatically generating cross-correlation autonomous-analysis insight datasets up to the defined maximum cardinality of cross-correlation autonomous-analysis insight datasets;

in response to a determination that the defined autonomous-analysis latency constraint indicates a defined maximum cardinality of comparative autonomous-analysis insight datasets, automatically generating comparative autonomous-analysis insight datasets up to the defined maximum cardinality of comparative autonomous-analysis insight datasets; and

in response to a determination that the defined autonomous-analysis latency constraint indicates a defined exploratory results constraint, obtaining exploratory results in accordance with the defined exploratory results constraint.

7 . The method of claim 1 , wherein outputting the portion of the autonomous analysis data includes:

generating a first object representing the portion of the autonomous analysis data, such that the first object includes a resolved-request corresponding to the portion of the autonomous analysis data.

8 . The method of claim 7 , further comprising:

outputting second requested results data for presentation to a user, wherein outputting the second requested results data includes:

obtaining the second requested results data, wherein obtaining the second requested results data includes:

obtaining a second request for data indicating the first object; and

obtaining the second requested results data in accordance with the first object;

in response to outputting the second requested results data and absent user input data expressly requesting autonomous analysis, obtaining second autonomous analysis data in accordance with the second request for data and in accordance with the defined autonomous-analysis latency constraint, wherein the second autonomous analysis data differs from the second requested results data; and

outputting at least a portion of the second autonomous analysis data for presentation to the user.

9 . An apparatus comprising:

a memory; and

a processor that executes instructions stored in the memory to:

in response to outputting requested results data responsive to a request for data and absent user input data expressly requesting autonomous analysis, obtain autonomous analysis data in accordance with the request for data and in accordance with a defined autonomous-analysis latency constraint, wherein the autonomous analysis data differs from the requested results data, wherein:

to output the requested results data the processor executes instructions stored in the memory to:

obtain the request for data;

obtain the requested results data in accordance with the request for data; and

output requested visualization data representing at least a portion of the requested results data for presentation to a user;

to obtain the autonomous analysis data the processor executes instructions stored in the memory to:

identify an autonomous-analysis predicate based on the requested visualization data; and

obtain the autonomous analysis data in accordance with the autonomous-analysis predicate; and

in response to a determination that the request for data includes an expressly-specified request for data:

to obtain the requested results data the processor executes instructions stored in the memory to:

generate a resolved-request based on the expressly-specified request for data;

generate a data query based on the resolved-request; and

obtain the requested results data from a database in response to execution of the data query by the database;

to output the requested visualization data the processor executes instructions stored in the memory to generate the requested visualization data such that the requested visualization data represents the requested results data; and

to identify the autonomous-analysis predicate the processor executes instructions stored in the memory to identify the resolved-request as the autonomous-analysis predicate; and

output at least a portion of the autonomous analysis data for presentation to the user.

10 . A non-transitory computer-readable storage medium, comprising executable instructions that, when executed by a processor, facilitate performance of operations, comprising:

in response to outputting requested results data responsive to a request for data and absent user input data expressly requesting autonomous analysis, obtaining autonomous analysis data in accordance with the request for data and in accordance with a defined autonomous-analysis latency constraint, wherein the autonomous analysis data differs from the requested results data, wherein:

outputting the requested results data includes:

obtaining the request for data;

obtaining the requested results data in accordance with the request for data; and

outputting requested visualization data representing at least a portion of the requested results data for presentation to a user;

obtaining the autonomous analysis data includes:

identifying an autonomous-analysis predicate based on the requested visualization data; and

obtaining the autonomous analysis data in accordance with the autonomous-analysis predicate; and

in response to a determination that the request for data includes an expressly-specified request for objects:

obtaining the requested results data includes:

identifying previously generated analytical objects responsive to the expressly-specified request for objects; and

including, in the requested results data, requested results data portions respectively representing the previously generated analytical objects;

outputting the requested visualization data includes including, in the requested visualization data, requested visualization data portions, wherein a requested visualization data portion from the requested visualization data portions is based on a respective requested results data portion from the requested results data portions and represents a corresponding previously generated analytical object from the previously generated analytical objects; and

identifying the autonomous-analysis predicate includes identifying a plurality of autonomous-analysis predicates, such that an autonomous-analysis predicate from the plurality of autonomous-analysis predicates corresponds to a respective requested visualization data portion from the requested visualization data portions; and

outputting at least a portion of the autonomous analysis data for presentation to the user.

Assignments (2)
SECURITY INTEREST Recorded Mar 7, 2025
From: THOUGHTSPOT, INC.; THOUGHTSPOT, LLC
To: TRIPLEPOINT CAPITAL LLC
Reel/Frame 070442/0499 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 20, 2023
From: AGRAWAL, SANJAY; JHA, GUNJAN; CHEN, ANTONY CHUXIAO
To: THOUGHTSPOT, INC.
Reel/Frame 063028/0753 →
Continuity (4)
Continuation 17330685 · May 26, 2021
Continuation 16681208 · Nov 12, 2019
Provisional Application 62760419 · Nov 13, 2018
Related Publication 20230259525A1 · Aug 17, 2023
References Cited (53)
US 8577913B1 · Hansson et al. · 2013 [cited by applicant]
US 9275132B2 · Roberts et al. · 2016 [cited by applicant]
US 9405794B2 · Prakash · 2016 [cited by examiner]
US 10248720B1 · Wesley · 2019 [cited by examiner]
US 11023486B2 · Agrawal et al. · 2021 [cited by applicant]
US 20040267730A1 · Dumais · 2004 [cited by examiner]
US 20050027717A1 · Koudas · 2005 [cited by examiner]
US 20050289124A1 · Kaiser et al. · 2005 [cited by applicant]
US 20060122976A1 · Baluja · 2006 [cited by examiner]
US 20070192300A1 · Reuther et al. · 2007 [cited by applicant]
US 20070219974A1 · Chickering et al. · 2007 [cited by applicant]
US 20080109422A1 · Dedhia · 2008 [cited by applicant]
US 20090019019A1 · Jones et al. · 2009 [cited by applicant]
US 20090019022A1 · Schallert · 2009 [cited by examiner]
US 20110113048A1 · Njemanze · 2011 [cited by applicant]
US 20120066217A1 · Eder · 2012 [cited by applicant]
US 20120162265A1 · Heinrich et al. · 2012 [cited by applicant]
US 20130339370A1 · Holstege et al. · 2013 [cited by applicant]
US 20140156639A1 · Shridhar et al. · 2014 [cited by applicant]
US 20140201241A1 · Wood et al. · 2014 [cited by applicant]
US 20140337371A1 · Li · 2014 [cited by applicant]
US 20150026153A1 · Gupta et al. · 2015 [cited by applicant]
US 20160371317A1 · Sharma · 2016 [cited by examiner]
US 20170270159A1 · Wang et al. · 2017 [cited by applicant]
US 20190095510A1 · Cruise · 2019 [cited by examiner]
US 20220327127A1 · Anand · 2022 [cited by examiner]
EP 268367A2 · 1988 [cited by applicant]
EP 1587011A1 · 2005 [cited by applicant]
EP 2202658A2 · 2010 [cited by applicant]
EP 2207106A2 · 2010 [cited by applicant]
WO 0141002A1 · 2001 [cited by applicant]
WO 2015009353A1 · 2015 [cited by applicant]
Sayyadian et al., “Efficient Keyword Search Across Heterogeneous Relational Databases”, 2007, IEEE, 346-355 (10 pp). [cited by applicant]
Wu et al: “Towards Keyword-Driven Analytical Processing”, Proceedings of the 2007 ACM Sigmod International Conference on Management of Data, Sigmo '07, Jun. 12, 2007, (12 pp). [cited by applicant]
Anonymous: “File System Permission—Wikipedia, The Free Encyclopedia.” Jun. 11, 2013 (Jun. 11, 2013); URL: http://en.wikipedia.org/w/index/php?title.sub.-File.sub.-system.sub.-p- ermissions&oldid=559455322 [retrieved… [cited by applicant]
Shi et al.: “50x Faster. Speeding Up an SQL-Based Legacy System With Few Changes”, Oct. 4, 2011 Retrieved from Internet: URL: http://www.user.tu-berline.de/komm/CD/paper/040221.pdf [retrieved on Jun. 11, 2014]. (12 pp). [cited by applicant]
Li et al: “Efficient Type-Ahead Search on Relational Data: a Tastier Approach”, Sigmod-Pods '09: Compilation Proceedings of the International Conference on Management Data & 28th Symposium on Principles of Database … [cited by applicant]
Blunschi et al: “SODA: Generating SQL for Business Users”, Proceedings of the VLDB Endowment, vol. 5, No. 10, Aug. 27, 2012 pp. 932-935 (12 pp). [cited by applicant]
Baid et al: “Toward Scalable Keyword Search over Relational Data”, Proceedings of the VLDS Endowment, vol. 3, No. 1-2, Sep. 1, 2010, pp. 140-149 (10 pp). [cited by applicant]
Jajodia et al., “Flexible Support for Multiple Access Control Policies”, ACM Transactions on Database Systems, ACM New York, NY, USA, vol. 26, No. 2, Jun. 1, 2001, pp. 217-228 (48 pp). [cited by applicant]
Anonymous, “Natural Language Processing”, Wikipedia, Downloaded Jan. 30, 2019, https://en.wikipedia.org/wiki/Natural_language_processing, (8 pp). [cited by applicant]
Seif, G., “An Easy Introduction to Natural Language Processing—Using Computers to Understand Human Language”, Oct. 1, 2018 (Downloaded Jan. 30, 2019), https://towardsdatascience.com/an-easy-introduction-to-natural-langu… [cited by applicant]
Extended European Search Report received in co-pending Application No. EP 19160657.3 dated Apr. 4, 2019 (11 pp). [cited by applicant]
International Search Report and Written Opinion for PCT/US14/39230; Date of mailing Nov. 24, 2014 (16 pp). [cited by applicant]
Avrach, A., thoughtspot.com, “What the Bleep is a Chasm Trap?”, https://www.thoughtspot.com/fact-and-dimension/what-bleep-chasm-trap 9/, Date Unknown, Downloaded Apr. 2, 2019 (9 pp). [cited by applicant]
Sisense, “Chasm and Fan Traps”, https://documentation.sisense.com/latest/managing-data/working-with-data/chasm-fan-traps.htm, Date Unknown, Downloaded Apr. 2, 2019 (8 pp). [cited by applicant]
Thoughtspot, “Chasm Traps”, https://docs.thoughtspot.com/4.4/admin/loading/chasm-trap.html, Version 4.4 Guides, Date Unknown, Downloaded Apr. 2, 2019 (4 pp). [cited by applicant]
Morton, K., et al., “Dynamic Workload Driven Data Integration in Tableau”, Proceedings of the 2012 International Conference on Management of Data, SIGMOD '12, Jan. 1, 2012, p. 807 (9 pp). [cited by applicant]
Extended European Search Report dated Jul. 26, 2019, issued in co-pending EP Application No. 19166422.6 (11 pp). [cited by applicant]
Wikipedia, “Consistent hashing”, https://en.wikipedia.org/wiki/Consistent_hashing, Date Unknown, Downloaded Aug. 15, 2019, (5 pp). [cited by applicant]
Eades, Peter, et al., “A Fast & Effective Heuristic for the Feedback Arc Set Problem,” Information Processing Letters, vol. 47, Issue 6, Oct. 18, 1993, pp. 319-323. [cited by applicant]
Wikipedia, “Dijkstra's algorithm”, Date Unknown, downloaded Jul. 16, 2019, https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm (11 pp). [cited by applicant]
Extended European Search Reported issued in co-pending European Application No. 19208974.6 on Mar. 30, 2020 (9 pp). [cited by applicant]