IP Library Granted Patent US 11,620,306
Granted Patent B2
US 11,620,306 · App. 17/330,685 · Granted Apr 4, 2023

Low-latency predictive database analysis

Inventors: Sanjay Agrawal (Sammamish, WA); Antony Chuxiao Chen (Bellevue, WA); Gunjan Jha (Redmond, WA)
Assignee: ThoughtSpot, Inc.
G06F16/26G06F16/245G06F16/248G06F16/2428G06F16/2457
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 11,620,306
App. No.
17/330,685
Granted
Apr 4, 2023
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 (126)

1. An apparatus comprising:

a memory; and

a processor configured to execute instructions stored in the memory to perform low-latency predictive database analysis, wherein to perform low-latency predictive database analysis the processor is configured to execute the instructions stored in the memory to:

obtain data expressing a usage intent with respect to the low-latency database analysis system, wherein the data expressing the usage intent omits data corresponding to user input expressly requesting low-latency autonomous-analysis;

obtain requested results data based on the data expressing the usage intent;

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

in response to the output of the requested visualization data, obtain low-latency autonomous-analysis data, wherein to obtain the low-latency autonomous-analysis data the processor is configured to execute the instructions stored in the memory to perform low-latency autonomous-analysis based on the data expressing the usage intent, wherein to perform low-latency autonomous-analysis the processor is configured to execute the instructions stored in the memory to:

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

obtain a defined autonomous-analysis latency constraint;

obtain 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

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

2. The apparatus of claim 1 , wherein to obtain the defined autonomous-analysis latency constraint the processor is configured to execute the instructions stored in the memory to identify a defined autonomous-analysis depth constraint.

3. The apparatus of claim 1 , wherein to obtain the low-latency autonomous-analysis data based on the autonomous-analysis predicate in accordance with the defined autonomous-analysis latency constraint the processor is configured to execute the instructions stored in the memory to:

identify measure objects, wherein to identify the measure objects the processor is configured to execute the instructions stored in the memory to

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

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

identify a requested attribute from the autonomous-analysis predicate;

identify exploratory measures based on the requested attribute and in accordance with the defined autonomous-analysis latency constraint, wherein to identify the exploratory measures the processor is configured to execute the instructions stored in the memory to identify probabilistic utility data corresponding to respective exploratory measures; and

include the exploratory measures in the measure objects; and

identify attribute objects, wherein to identify the attribute object the processor is configured to execute the instructions stored in the memory to:

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

identify exploratory attributes based on the measure objects and in accordance with the defined autonomous-analysis latency constraint, wherein to identify the exploratory attributes the processor is configured to execute the instructions stored in the memory to identify probabilistic utility data corresponding to respective exploratory attributes; and

include the exploratory attributes in the attribute objects.

4. The apparatus of claim 3 , wherein to identify the exploratory measures the processor is configured to execute the instructions stored in the memory to, in response to a determination that the defined autonomous-analysis latency constraint indicates a maximum cardinality of exploratory measures, identify up to the maximum cardinality of exploratory measures from a plurality of available measures such that the probabilistic utility of the exploratory measures is maximal.

5. The apparatus of claim 3 , wherein to identify the exploratory attributes the processor is configured to execute the instructions stored in the memory to, in response to a determination that the defined autonomous-analysis latency constraint indicates a maximum cardinality of exploratory attributes, identify up to the maximum cardinality of exploratory attributes from a plurality of available attributes such that the probabilistic utility of the exploratory attributes is maximal.

6. The apparatus of claim 3 , wherein to obtain the low-latency autonomous-analysis data the processor is configured to execute the instructions stored in the memory to:

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

in response to a determination that the data expressing the usage intent includes an expressly-specified request for data, obtain low-latency autonomous-analysis related-request data based on the measure objects and the attribute objects such that the low-latency autonomous-analysis related-request data includes a resolved-request that differs from a resolved-request corresponding to the expressly-specified request for data.

7. The apparatus of claim 6 , wherein to obtain the low-latency autonomous-analysis insight data the processor is configured to execute the instructions stored in the memory to:

in response to a determination that the defined autonomous-analysis latency constraint indicates a defined maximum cardinality of outlier autonomous-analysis insight datasets, automatically generated 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 generate 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 generate 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 generate 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, obtain exploratory results in accordance with the defined exploratory results constraint.

8. The apparatus of claim 1 , wherein:

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

to obtain requested results data based on the data expressing the usage intent the processor is configured to execute the 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 distributed in-memory database of the low-latency database analysis system;

to output the requested visualization data the processor is configured to execute the 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 is configured to execute the instructions stored in the memory to identify the resolved-request as the autonomous-analysis predicate.

9. The apparatus of claim 1 , wherein:

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

to obtain requested results data based on the data expressing the usage intent the processor is configured to execute the instructions stored in the memory to:

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

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

to output the requested visualization data the processor is configured to execute the instructions stored in the memory to include, 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

to identify the autonomous-analysis predicate the processor is configured to execute the instructions stored in the memory to identify 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.

10. The apparatus of claim 1 , wherein:

in response to a determination that the data expressing the usage intent includes a requested object identifier of a previously generated object:

to obtain requested results data based on the data expressing the usage intent the processor is configured to execute the instructions stored in the memory to:

obtain object data for the previously generated object based on the requested object identifier;

in response to a determination that the object data for the previously generated object indicates a plurality of previously generated analytical-objects, obtain object data for respective previously generated analytical-objects from the plurality of previously generated analytical-objects; and

include the object data in the requested results data;

to output the requested visualization data the processor is configured to execute the instructions stored in the memory to:

in response to the determination that the previously generated object indicates the plurality of previously generated analytical-objects, include, in the requested visualization data, requested visualization data portions, wherein a requested visualization data portion from the requested visualization data portions is based on the object data for a corresponding previously generated analytical-object from the previously generated analytical-objects and represents the corresponding previously generated analytical-object from the previously generated analytical-objects; and

in response to a determination that the previously generated object omits indicating the plurality of previously generated analytical-objects, include, in the requested visualization data, visualization data based on the object data and representing the previously generated object; and

to identify the autonomous-analysis predicate the processor is configured to execute the instructions stored in the memory to:

in response to the determination that the previously generated object indicates the plurality of previously generated analytical-objects, identify 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

in response to the determination that the previously generated object omits indicating the plurality of previously generated analytical-objects, identify the previously generated object as the autonomous-analysis predicate.

11. The apparatus of claim 1 , wherein:

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

obtain requested results data based on the data expressing the usage intent includes:

identify previously generated objects based on the data expressing the usage intent; and

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

to output the requested visualization data the processor is configured to execute the instructions stored in the memory to include, 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 the corresponding previously generated object from the previously generated objects; and

to identify the autonomous-analysis predicate the processor is configured to execute the instructions stored in the memory to identify 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.

12. The apparatus of claim 1 , wherein to output the portion of the low-latency autonomous-analysis data the processor is configured to execute the instructions stored in the memory to:

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

13. The apparatus of claim 12 , wherein the processor is configured to execute the instructions stored in the memory to:

obtain data expressing a second usage intent with respect to the low-latency database analysis system, wherein the data expressing the second usage intent omits data corresponding to user input expressly requesting autonomous-analysis, and wherein the data expressing the second usage intent includes data indicating the first object;

obtain second requested results data based on the first object;

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

in response to the output of the second requested visualization data, obtain second low-latency autonomous-analysis data, wherein to obtain second low-latency autonomous-analysis data the processor is configured to execute the instructions stored in the memory to perform low-latency autonomous-analysis based on the data expressing the second usage intent, wherein to perform low-latency autonomous-analysis the processor is configured to execute the instructions stored in the memory to identify a second autonomous-analysis predicate based on the first object, such that the second low-latency autonomous-analysis data differs from the second requested results data.

14. An apparatus comprising:

a memory; and

a processor configured to execute instructions stored in the memory to perform low-latency predictive database analysis, wherein to perform low-latency predictive database analysis the processor is configured to execute the instructions stored in the memory to:

obtain data expressing a usage intent with respect to the low-latency database analysis system, wherein the data expressing the usage intent omits data corresponding to user input expressly requesting low-latency autonomous-analysis;

obtain requested results data based on the data expressing the usage intent;

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

in response to the output of the requested visualization data:

obtain a defined autonomous-analysis latency constraint, wherein to obtain the defined autonomous-analysis latency constraint the processor is configured to execute the instructions stored in the memory to identify a value of an autonomous-analysis depth constraint, wherein a first candidate value of the autonomous-analysis depth constraint indicates the omission of low-latency autonomous-analysis;

in response to a determination that the value of the autonomous-analysis depth constraint is a second candidate value of the autonomous-analysis depth constraint that differs from the first candidate value of the autonomous-analysis depth constraint, to obtain low-latency autonomous-analysis data the processor is configured to execute the instructions stored in the memory to:

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

identify a requested data portion based on the autonomous-analysis predicate;

obtain the low-latency autonomous-analysis data, in accordance with the autonomous-analysis depth constraint, based on the requested data portion; and

output a visualization card representing at least a portion of the low-latency autonomous-analysis data for presentation to a user.

15. The apparatus of claim 14 , wherein, the value of the autonomous-analysis depth constraint is a third candidate value of the autonomous-analysis depth constraint that differs from the first candidate value of the autonomous-analysis depth constraint and the second candidate value of the autonomous-analysis depth constraint, or a fourth candidate value of the autonomous-analysis depth constraint that differs from the first candidate value of the autonomous-analysis depth constraint, the second candidate value of the autonomous-analysis depth constraint, and the third candidate value of the autonomous-analysis depth constraint.

16. The apparatus of claim 15 , wherein, in response to a determination that the value of the autonomous-analysis depth constraint is the third candidate value, to obtain the low-latency autonomous-analysis data the processor is configured to execute the instructions stored in the memory to:

obtain at least one exploratory data portion, in accordance with the autonomous-analysis depth constraint, based on the requested data portion and probabilistic utility data, wherein to obtain the at least one exploratory data portion the processor is configured to execute the instructions stored in the memory to:

obtain up to one exploratory measure; and

obtain up to one exploratory attribute; and

obtain the low-latency autonomous-analysis data based on the requested data portion and the exploratory data portions.

17. The apparatus of claim 15 , wherein, in response to a determination that the value of the autonomous-analysis depth constraint is the fourth candidate value, to obtain the low-latency autonomous-analysis data the processor is configured to execute the instructions stored in the memory to:

obtain at least one exploratory data portion, in accordance with the autonomous-analysis depth constraint, based on the requested data portion and probabilistic utility data, wherein to obtain the at least one exploratory data portion the processor is configured to execute the instructions stored in the memory to:

obtain up to one exploratory measure;

determine a maximum cardinality of exploratory attributes as a result of raising two to the power of the value of the autonomous-analysis depth constraint minus two; and

obtain up to the maximum cardinality of exploratory attributes; and

obtain the low-latency autonomous-analysis data based on the requested data portion and the exploratory data portions.

18. An apparatus comprising:

a memory; and

a processor configured to execute instructions stored in the memory to perform low-latency predictive database analysis, wherein to perform low-latency predictive database analysis the processor is configured to execute the instructions stored in the memory to:

obtain data expressing a usage intent with respect to the low-latency database analysis system, wherein the data expressing the usage intent omits data corresponding to user input expressly requesting low-latency autonomous-analysis;

obtain requested results data based on the data expressing the usage intent, wherein

to obtain the requested results data the processor is configured to execute the instructions stored in the memory to identify a first resolved-request corresponding to an expressly-specified request for data;

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

in response to the output of the requested visualization data, and in response to a determination that the data expressing the usage intent includes an expressly-specified request for data, obtain low-latency autonomous-analysis related-request data, wherein to obtain the low-latency autonomous-analysis related-request data the processor is configured to execute the instructions stored in the memory to:

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

obtain a defined autonomous-analysis related-request latency constraint;

obtain the low-latency autonomous-analysis related-request data based on the autonomous-analysis predicate in accordance with the defined autonomous-analysis related-request latency constraint, such that the low-latency autonomous-analysis related-request data includes a second resolved-request that differs from the first resolved-request; and

output at least a portion of the low-latency autonomous-analysis related-request data for presentation to a user.

19. The apparatus of claim 18 , wherein:

in response to a determination that the first resolved-request includes a requested measure and a requested attribute, to obtain the low-latency autonomous-analysis related-request data the processor is configured to execute the instructions stored in the memory to identify the second resolved-request, such that:

a first portion of the second resolved-request includes the requested measure, the requested attribute, and an exploratory attribute;

a second portion of the second resolved-request includes the requested measure and an exploratory attribute and omits the requested attribute;

in response to a determination that the first resolved-request includes a requested filter, a third portion of the second resolved-request includes the requested measure, the requested attribute, and an exploratory filter and omits the requested filter; and

a fourth portion of the second resolved-request:

omits the requested measure and the requested attribute;

includes an exploratory measure and the exploratory attribute; and

is generated based on probabilistic similarity of the fourth portion of the second resolved-request to the first resolved-request.

20. The apparatus of claim 18 , wherein the processor is configured to execute the instructions stored in the memory to:

obtain data expressing a second usage intent with respect to the low-latency database analysis system, wherein the data expressing the second usage intent omits data corresponding to user input expressly requesting autonomous-analysis includes the second resolved-request;

obtain second requested results data based on the second resolved-request;

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

in response to the output of the second requested visualization data, obtain second low-latency autonomous-analysis related-request data based on the second resolved-request, such that the second low-latency autonomous-analysis related-request data includes a third resolved-request that differs from the second resolved-request.

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 May 26, 2021
From: AGRAWAL, SANJAY; CHEN, ANTONY CHUXIAO; JHA, GUNJAN
To: THOUGHTSPOT, INC.
Reel/Frame 056356/0393 →
Continuity (3)
Continuation 16681208 · Nov 12, 2019
Provisional Application 62760419 · Nov 13, 2018
Related Publication 20210311935A1 · Oct 7, 2021