IP Library Granted Patent US 12,229,161
Granted Patent B2
US 12,229,161 · App. 18/466,949 · Granted Feb 18, 2025

Dynamic chronometry data orientation

Inventors: Tushar Mahale (Milpitas, CA); Siva Singaram (San Jose, CA); Vishwas Sharma (Foster City, CA); Donko Donjerkovic (San Mateo, CA); Simranjyot Singh Gill (San Jose, CA); Archit Bansal (Cupertino, CA); Rakesh Kothari (San Jose, CA); Sanchit Gupta (Sunnyvale, CA)
Assignee: ThoughtSpot, Inc.
G06F16/27G06F16/2477
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,229,161
App. No.
18/466,949
Granted
Feb 18, 2025
Kind
B2
Abstract

Operating a low-latency database analysis system using domain-specific chronometry may include obtaining chronometry configuration data including chronometric instance data describing an instance of a chronometric unit of a domain-specific chronometry dataset that describes an era, such that the chronometry configuration data includes respective chronometric instance data describing each instance of the first chronometric unit of the domain-specific chronometry dataset for the era of the domain-specific chronometry dataset, generating, in the low-latency database analysis system, a domain-specific chronometry dataset in accordance with the chronometry configuration data, such that the domain-specific chronometry dataset describes a chronometric unit such that a temporal location expressed with reference to the chronometric unit and indicative of an epoch value differs from a temporal location indicative of the epoch value and expressed in accordance with a canonical chronometry, and storing the domain-specific chronometry dataset in the low-latency database analysis system.

Claims (109)

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

obtaining chronometry configuration data;

generating, in the database analysis system, a domain-specific chronometry dataset in accordance with the chronometry configuration data, such that the domain-specific chronometry dataset describes chronometric units including a chronometric unit such that a temporal location expressed with reference to the chronometric unit and indicative of an epoch value differs from a temporal location indicative of the epoch value and expressed in accordance with a canonical chronometry; and

storing the domain-specific chronometry dataset in the database analysis system.

2. The non-transitory computer-readable storage medium of claim 1 , wherein storing the domain-specific chronometry dataset includes:

generating a table in a distributed in-memory database of the database analysis system; and

storing the domain-specific chronometry dataset in the table.

3. The non-transitory computer-readable storage medium of claim 1 , wherein storing the domain-specific chronometry dataset includes:

generating an object representing the domain-specific chronometry dataset; and

storing the object in a distributed in-memory ontology of the database analysis system as ontological data representing the domain-specific chronometry dataset.

4. The non-transitory computer-readable storage medium of claim 3 , wherein storing the domain-specific chronometry dataset includes:

obtaining a descriptor value for the chronometric unit from the domain-specific chronometry dataset, wherein the chronometric unit is associated with a chronometric unit type; and

generating a chronometry index for indexing descriptor values for chronometric units from the domain-specific chronometry dataset associated with the chronometric unit type, wherein generating the chronometry index includes including the descriptor value for the chronometric unit in the chronometry index.

5. The non-transitory computer-readable storage medium of claim 3 , wherein storing the domain-specific chronometry dataset includes:

generating a finite state machine based on the ontological data representing the domain-specific chronometry dataset.

6. The non-transitory computer-readable storage medium of claim 1 , wherein the canonical chronometry describes a Gregorian calendar.

7. The non-transitory computer-readable storage medium of claim 1 , wherein obtaining the chronometry configuration data includes:

obtaining data expressing a usage intent with respect to the database analysis system, the data expressing the usage intent including chronometry boundary configuration data.

8. The non-transitory computer-readable storage medium of claim 7 , wherein the chronometry boundary configuration data includes:

first chronometric location data representing a minimum temporal location for the domain-specific chronometry dataset, the first chronometric location data expressed in the chronometry boundary configuration data in accordance with the canonical chronometry;

second chronometric location data representing a maximum temporal location for the domain-specific chronometry dataset, the second chronometric location data expressed in the chronometry boundary configuration data in accordance with the canonical chronometry, such that the domain-specific chronometry dataset describes an era corresponding to a duration from the minimum temporal location to the maximum temporal location;

a chronometry type identifier;

first chronometric relationship data indicating, for a first chronometric unit of the domain-specific chronometry dataset, wherein the first chronometric unit corresponds with an ordered sequence of second chronometric units of the domain-specific chronometry dataset, a sequentially earliest second chronometric unit expressed in the chronometry boundary configuration data with reference to a month-ordinal of the canonical chronometry;

second chronometric relationship data indicating, for a third chronometric unit of the domain-specific chronometry dataset, wherein the third chronometric unit corresponds with an ordered sequence of fourth chronometric units of the domain-specific chronometry dataset, a sequentially earliest fourth chronometric unit expressed in the chronometry boundary configuration data with reference to a day-ordinal of the canonical chronometry;

third chronometric relationship data indicating, for the third chronometric unit, a fourth chronometric unit from the ordered sequence of fourth chronometric units, represented with reference to a day-ordinal of the canonical chronometry, such that an instance of a chronometric unit of the domain-specific chronometry dataset that includes an instance of the fourth chronometric unit from the ordered sequence of fourth chronometric units includes an instance of the third chronometric unit that includes the instance of the fourth chronometric unit; and

descriptor data for the first chronometric unit of the domain-specific chronometry dataset.

9. The non-transitory computer-readable storage medium of claim 8 , wherein obtaining the chronometry configuration data includes automatically generating primary chronometry configuration data in response to obtaining the chronometry boundary configuration data.

10. The non-transitory computer-readable storage medium of claim 9 , wherein:

the chronometry boundary configuration data includes output location data indicating a computer storage location for outputting the primary chronometry configuration data generated based on the chronometry boundary configuration data; and

obtaining the chronometry configuration data includes outputting the primary chronometry configuration data in accordance with the output location data.

11. The non-transitory computer-readable storage medium of claim 1 , wherein the chronometry configuration data includes chronometric instance data describing an instance of a first chronometric unit of the domain-specific chronometry dataset.

12. The non-transitory computer-readable storage medium of claim 11 , wherein the domain-specific chronometry dataset describes an era corresponding to a duration from a minimum chronometric location of the domain-specific chronometry dataset to a maximum chronometric location of the domain-specific chronometry dataset, such that the chronometry configuration data includes respective chronometric instance data describing each instance of the first chronometric unit of the domain-specific chronometry dataset for the era of the domain-specific chronometry dataset.

13. The non-transitory computer-readable storage medium of claim 12 , wherein the chronometric instance data includes:

a first temporal location expressed in accordance with the canonical chronometry;

a descriptor for the instance of the first chronometric unit with respect to an ordered sequence of first chronometric units within an instance of a second chronometric unit of the domain-specific chronometry dataset;

a descriptor for an instance of a third chronometric unit, wherein the instance of the third chronometric unit includes the instance of the first chronometric unit;

a descriptor for an instance of a fourth chronometric unit, wherein the instance of the fourth chronometric unit includes the instance of the first chronometric unit;

a descriptor for an instance of a fifth chronometric unit, wherein the instance of the fifth chronometric unit includes the instance of the first chronometric unit;

an ordinal value for the instance of the first chronometric unit with respect to the ordered sequence of first chronometric units within the instance of the second chronometric unit of the domain-specific chronometry dataset;

an ordinal value for the instance of the second chronometric unit with respect to an ordered sequence of second chronometric units within the instance of the third chronometric unit of the domain-specific chronometry dataset;

an ordinal value for the instance of the second chronometric unit with respect to an ordered sequence of second chronometric units within the instance of the fourth chronometric unit of the domain-specific chronometry dataset; and

an ordinal value for the instance of the second chronometric unit with respect to an ordered sequence of second chronometric units within the instance of the fifth chronometric unit of the domain-specific chronometry dataset.

14. The non-transitory computer-readable storage medium of claim 13 , wherein obtaining the chronometry configuration data includes automatically generating secondary chronometric instance data describing the instance of the first chronometric unit of the domain-specific chronometry dataset, wherein the secondary chronometric instance data includes:

a descriptor for the instance of the third chronometric unit of the domain-specific chronometry dataset with respect to the instance of the fifth chronometric unit of the domain-specific chronometry dataset;

a descriptor for the instance of the fourth chronometric unit of the domain-specific chronometry dataset with respect to the instance of the fifth chronometric unit of the domain-specific chronometry dataset;

an ordinal value for the instance of the first chronometric unit with respect to the ordered sequence of first chronometric units within the instance of the third chronometric unit of the domain-specific chronometry dataset;

an ordinal value for the instance of the first chronometric unit with respect to the ordered sequence of first chronometric units within the instance of the fourth chronometric unit of the domain-specific chronometry dataset;

an ordinal value for the instance of the first chronometric unit with respect to the ordered sequence of first chronometric units within the instance of the fifth chronometric unit of the domain-specific chronometry dataset;

an ordinal value for the instance of third chronometric unit with respect to an ordered sequence of third chronometric units within the instance of the fourth chronometric unit of the domain-specific chronometry dataset;

an ordinal value for the instance of third chronometric unit with respect to an ordered sequence of third chronometric units within the instance of the fifth chronometric unit of the domain-specific chronometry dataset;

an ordinal value for the instance of fourth chronometric unit with respect to an ordered sequence of fourth chronometric units within the instance of the fifth chronometric unit of the domain-specific chronometry dataset;

a sequence value for the instance of the second chronometric unit with respect to an ordered sequence of second chronometric units within the era of the domain-specific chronometry dataset;

a second temporal location expressed in accordance with the canonical chronometry, the second temporal location corresponding to a minimum first chronometric unit with respect to the ordered sequence of first chronometric units within the instance of the second chronometric unit of the domain-specific chronometry dataset;

a third temporal location expressed in accordance with the canonical chronometry, the third temporal location corresponding to a maximum first chronometric unit with respect to the ordered sequence of first chronometric units within the instance of the second chronometric unit of the domain-specific chronometry dataset;

a sequence value for the instance of the third chronometric unit with respect to an ordered sequence of third chronometric units within the era of the domain-specific chronometry dataset;

a fourth temporal location expressed in accordance with the canonical chronometry, the fourth temporal location corresponding to a minimum first chronometric unit with respect to the ordered sequence of first chronometric units within the instance of the third chronometric unit of the domain-specific chronometry dataset;

a fifth temporal location expressed in accordance with the canonical chronometry, the fifth temporal location corresponding to a maximum first chronometric unit with respect to the ordered sequence of first chronometric units within the instance of the third chronometric unit of the domain-specific chronometry dataset;

a sequence value for the instance of the fourth chronometric unit with respect to an ordered sequence of fourth chronometric units within the era of the domain-specific chronometry dataset;

a sixth temporal location expressed in accordance with the canonical chronometry, the sixth temporal location corresponding to a minimum first chronometric unit with respect to the ordered sequence of first chronometric units within the instance of the fourth chronometric unit of the domain-specific chronometry dataset;

a seventh temporal location expressed in accordance with the canonical chronometry, the seventh temporal location corresponding to a maximum first chronometric unit with respect to the ordered sequence of first chronometric units within the instance of the fourth chronometric unit of the domain-specific chronometry dataset;

a sequence value for the instance of the fifth chronometric unit with respect to an ordered sequence of fifth chronometric units within the era of the domain-specific chronometry dataset;

an eighth temporal location expressed in accordance with the canonical chronometry, the eighth temporal location corresponding to a minimum first chronometric unit with respect to the ordered sequence of first chronometric units within the instance of the fifth chronometric unit of the domain-specific chronometry dataset; and

a ninth temporal location expressed in accordance with the canonical chronometry, the ninth temporal location corresponding to a maximum first chronometric unit with respect to the ordered sequence of first chronometric units within the instance of the fifth chronometric unit of the domain-specific chronometry dataset.

15. The non-transitory computer-readable storage medium of claim 14 , wherein storing the domain-specific chronometry dataset includes storing the chronometric instance data and the secondary chronometric instance data.

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

obtaining chronometry configuration data;

generating, in the database analysis system, a domain-specific chronometry dataset in accordance with the chronometry configuration data, such that the domain-specific chronometry dataset describes chronometric units including a chronometric unit such that a temporal location expressed with reference to the chronometric unit and indicative of an epoch value differs from a temporal location indicative of the epoch value and expressed in accordance with a canonical chronometry;

generating a chronometry table in a distributed in-memory database of the database analysis system;

storing the domain-specific chronometry dataset in the chronometry table in the database analysis system;

generating an object representing the domain-specific chronometry dataset;

storing the object in a distributed in-memory ontology of the database analysis system as ontological data representing the domain-specific chronometry dataset;

generating a chronometry index for indexing descriptor values for chronometric units from the domain-specific chronometry dataset associated with a chronometric unit type; and

generating a finite state machine based on the ontological data representing the domain-specific chronometry dataset.

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

obtaining chronometry configuration data;

generating, in the database analysis system, a domain-specific chronometry dataset in accordance with the chronometry configuration data, wherein the chronometry configuration data includes chronometric instance data describing an instance of a first chronometric unit of the domain-specific chronometry dataset, wherein the domain-specific chronometry dataset describes an era corresponding to a duration from a minimum chronometric location of the domain-specific chronometry dataset to a maximum chronometric location of the domain-specific chronometry dataset, such that the chronometry configuration data includes respective chronometric instance data describing each instance of the first chronometric unit of the domain-specific chronometry dataset for the era of the domain-specific chronometry dataset, such that the domain-specific chronometry dataset describes a chronometric unit such that a temporal location expressed with reference to the chronometric unit and indicative of an epoch value differs from a temporal location indicative of the epoch value and expressed in accordance with a canonical chronometry; and

storing the domain-specific chronometry dataset in the database analysis system.

18. The non-transitory computer-readable storage medium of claim 17 , wherein the chronometric instance data includes:

a first temporal location expressed in accordance with the canonical chronometry;

a descriptor for the instance of the first chronometric unit with respect to an ordered sequence of first chronometric units within an instance of a second chronometric unit of the domain-specific chronometry dataset;

a descriptor for an instance of a third chronometric unit, wherein the instance of the third chronometric unit includes the instance of the first chronometric unit;

a descriptor for an instance of a fourth chronometric unit, wherein the instance of the fourth chronometric unit includes the instance of the first chronometric unit;

a descriptor for an instance of a fifth chronometric unit, wherein the instance of the fifth chronometric unit includes the instance of the first chronometric unit;

an ordinal value for the instance of the first chronometric unit with respect to the ordered sequence of first chronometric units within the instance of the second chronometric unit of the domain-specific chronometry dataset;

an ordinal value for the instance of the second chronometric unit with respect to an ordered sequence of second chronometric units within the instance of the third chronometric unit of the domain-specific chronometry dataset;

an ordinal value for the instance of the second chronometric unit with respect to an ordered sequence of second chronometric units within the instance of the fourth chronometric unit of the domain-specific chronometry dataset; and

an ordinal value for the instance of the second chronometric unit with respect to an ordered sequence of second chronometric units within the instance of the fifth chronometric unit of the domain-specific chronometry dataset.

19. The non-transitory computer-readable storage medium of claim 18 , wherein obtaining the chronometry configuration data includes automatically generating secondary chronometric instance data describing the instance of the first chronometric unit of the domain-specific chronometry dataset, wherein the secondary chronometric instance data includes:

a descriptor for the instance of the third chronometric unit of the domain-specific chronometry dataset with respect to the instance of the fifth chronometric unit of the domain-specific chronometry dataset;

a descriptor for the instance of the fourth chronometric unit of the domain-specific chronometry dataset with respect to the instance of the fifth chronometric unit of the domain-specific chronometry dataset;

an ordinal value for the instance of the first chronometric unit with respect to the ordered sequence of first chronometric units within the instance of the third chronometric unit of the domain-specific chronometry dataset;

an ordinal value for the instance of the first chronometric unit with respect to the ordered sequence of first chronometric units within the instance of the fourth chronometric unit of the domain-specific chronometry dataset;

an ordinal value for the instance of the first chronometric unit with respect to the ordered sequence of first chronometric units within the instance of the fifth chronometric unit of the domain-specific chronometry dataset;

an ordinal value for the instance of third chronometric unit with respect to an ordered sequence of third chronometric units within the instance of the fourth chronometric unit of the domain-specific chronometry dataset;

an ordinal value for the instance of third chronometric unit with respect to an ordered sequence of third chronometric units within the instance of the fifth chronometric unit of the domain-specific chronometry dataset;

an ordinal value for the instance of fourth chronometric unit with respect to an ordered sequence of fourth chronometric units within the instance of the fifth chronometric unit of the domain-specific chronometry dataset;

a sequence value for the instance of the second chronometric unit with respect to an ordered sequence of second chronometric units within the era of the domain-specific chronometry dataset;

a second temporal location expressed in accordance with the canonical chronometry, the second temporal location corresponding to a minimum first chronometric unit with respect to the ordered sequence of first chronometric units within the instance of the second chronometric unit of the domain-specific chronometry dataset;

a third temporal location expressed in accordance with the canonical chronometry, the third temporal location corresponding to a maximum first chronometric unit with respect to the ordered sequence of first chronometric units within the instance of the second chronometric unit of the domain-specific chronometry dataset;

a sequence value for the instance of the third chronometric unit with respect to an ordered sequence of third chronometric units within the era of the domain-specific chronometry dataset;

a fourth temporal location expressed in accordance with the canonical chronometry, the fourth temporal location corresponding to a minimum first chronometric unit with respect to the ordered sequence of first chronometric units within the instance of the third chronometric unit of the domain-specific chronometry dataset;

a fifth temporal location expressed in accordance with the canonical chronometry, the fifth temporal location corresponding to a maximum first chronometric unit with respect to the ordered sequence of first chronometric units within the instance of the third chronometric unit of the domain-specific chronometry dataset;

a sequence value for the instance of the fourth chronometric unit with respect to an ordered sequence of fourth chronometric units within the era of the domain-specific chronometry dataset;

a sixth temporal location expressed in accordance with the canonical chronometry, the sixth temporal location corresponding to a minimum first chronometric unit with respect to the ordered sequence of first chronometric units within the instance of the fourth chronometric unit of the domain-specific chronometry dataset;

a seventh temporal location expressed in accordance with the canonical chronometry, the seventh temporal location corresponding to a maximum first chronometric unit with respect to the ordered sequence of first chronometric units within the instance of the fourth chronometric unit of the domain-specific chronometry dataset;

a sequence value for the instance of the fifth chronometric unit with respect to an ordered sequence of fifth chronometric units within the era of the domain-specific chronometry dataset;

an eighth temporal location expressed in accordance with the canonical chronometry, the eighth temporal location corresponding to a minimum first chronometric unit with respect to the ordered sequence of first chronometric units within the instance of the fifth chronometric unit of the domain-specific chronometry dataset; and

a ninth temporal location expressed in accordance with the canonical chronometry, the ninth temporal location corresponding to a maximum first chronometric unit with respect to the ordered sequence of first chronometric units within the instance of the fifth chronometric unit of the domain-specific chronometry dataset.

20. The non-transitory computer-readable storage medium of claim 19 , wherein storing the domain-specific chronometry dataset includes storing the chronometric instance data and the secondary chronometric instance data.

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 Sep 14, 2023
From: MAHALE, TUSHAR; SINGARAM, SIVA; SHARMA, VISHWAS; DONJERKOVIC, DONKO; GILL, SIMRANJYOT SINGH; BANSAL, ARCHIT; KOTHARI, RAKESH; GUPTA, SANCHIT
To: THOUGHTSPOT, INC.
Reel/Frame 064900/0987 →
Continuity (3)
Continuation 18067452 · Dec 16, 2022
Continuation 16834149 · Mar 30, 2020
Related Publication 20240004900A1 · Jan 4, 2024
References Cited (41)
US 5719826A · Lips · 1998 [cited by applicant]
US 7099659B1 · Schnake et al. · 2006 [cited by applicant]
US 7349920B1 · Feinberg et al. · 2008 [cited by applicant]
US 7533348B2 · D'Hers et al. · 2009 [cited by applicant]
US 7543125B2 · Gokhale · 2009 [cited by applicant]
US 7870016B2 · Fazal et al. · 2011 [cited by applicant]
US 8266193B2 · Fong et al. · 2012 [cited by applicant]
US 8966381B2 · Dong et al. · 2015 [cited by applicant]
US 9576007B1 · Sivathanu et al. · 2017 [cited by applicant]
US 10324956B1 · Tang · 2019 [cited by applicant]
US 10929486B1 · Chau et al. · 2021 [cited by applicant]
US 11550817B2 · Mahale et al. · 2023 [cited by applicant]
US 20020194014A1 · Starnes et al. · 2002 [cited by applicant]
US 20030105852A1 · Das et al. · 2003 [cited by applicant]
US 20030115188A1 · Srinivasa et al. · 2003 [cited by applicant]
US 20050071396A1 · Stroud et al. · 2005 [cited by applicant]
US 20050091269A1 · Gerber et al. · 2005 [cited by applicant]
US 20050094494A1 · Parees et al. · 2005 [cited by applicant]
US 20060190331A1 · Tollinger et al. · 2006 [cited by applicant]
US 20060253475A1 · Stewart · 2006 [cited by examiner]
US 20080125965A1 · Carani et al. · 2008 [cited by applicant]
US 20090271791A1 · Gokhale · 2009 [cited by applicant]
US 20100174583A1 · Passova et al. · 2010 [cited by applicant]
US 20120054623A1 · Guan · 2012 [cited by examiner]
US 20120239451A1 · Caligor · 2012 [cited by applicant]
US 20120303425A1 · Katzin et al. · 2012 [cited by applicant]
US 20150172330A1 · Kaplan · 2015 [cited by applicant]
US 20160180294A1 · Simon et al. · 2016 [cited by applicant]
US 20180157729A1 · Lee · 2018 [cited by applicant]
US 20180174160A1 · Gupta et al. · 2018 [cited by applicant]
US 20180302443A1 · Weiss et al. · 2018 [cited by applicant]
US 20200090130A1 · Penzo et al. · 2020 [cited by applicant]
US 20200143304A1 · Schwartz et al. · 2020 [cited by applicant]
WO WO2012048163A2 · 2012 [cited by examiner]
Anuka Teggart. How to Create a Calendar in Tableau. <https://web.archive.org/web/20170609001239/http://www.thedataschool.co.uk/author/anuka-teggart/>. (Year: 2017). [cited by examiner]
ISO/TC 154 N, “Data elements and interchange formats—Information interchange—Representation of dates and times—Part 1: Basic rules”, Oct. 26, 2016, www.iso.org (48 pp). [cited by applicant]
NRF, “4-5-4 Calendar”, NRF Protect, National Retail Federalation, NRF Job Board, https://nrf.com/resources/4-5-4-calendar, Date Unknown, Downloaded Mar. 30, 2020 (4 pp). [cited by applicant]
Wikipedia, “ISO week date”, https://en.wikipedia.org/wiki/ISO_week_date, Date Unknown, Downloaded Jan. 8, 2020 (8 pp). [cited by applicant]
Zhang, Hao, et al., “In-Memory Big Data Management and Processing: A Survey”, IEEE Transactions on Knowledge and Data Engineering, IEEE Service Centre, Los Alamitos, CA, US, vol. 27, No. 7, Jul. 2, 2015, pp. 1920-1948 X… [cited by applicant]
Extended European Search Report dated Aug. 2, 2021, in co-pending EP Application No. 21165981.8 (13 pp). [cited by applicant]
De Jong, K., et al., “A Physical Data Model For Spatio-Temporal Objects”, Environmental Modelling and Software, vol. 122, Oct. 16, 2019, XP085913515 (15 pp). [cited by applicant]