IP Library › Granted Patent US 11,068,454
Granted Patent B2
US 11,068,454 · App. 16/579,393 · Granted Jul 20, 2021

Method of performing transactional and analytical data processing using a data structure

Inventors: Eric Hanson (Bellevue, WA); Szu-Po Wang (San Francisco, CA); Zhou Sun (San Francisco, CA); Connor Gregory Watts (Seattle, WA); Nikita Shamgunov (San Francisco, CA); Yevgeniy Kogan (Kirkland, WA)
Assignee: SingleStore, Inc.
G06F16/221G06F16/2282G06F16/24549
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,068,454
App. No.
16/579,393
Granted
Jul 20, 2021
Kind
B2
Abstract

Disclosed herein is a computer-implemented method of processing a query using a columnstore comprising a plurality of segments, the method comprising: receiving a query comprising a parameter; determining a key corresponding to the parameter; identifying a mapping structure, from a plurality of mapping structures, relating to said key, wherein each mapping structure corresponds to a respective segment of the columnstore; interrogating the identified mapping structure to determine a value corresponding to the key, wherein the value identifies an entry of an index table of a plurality of index tables that corresponds to the respective segment, wherein the entry of the index table identifies a row of the respective segment of the columnstore relating to the parameter; and retrieving data relating to the parameter from a data source based on data stored in the entry of the index table.

Claims (24)

1. A computer-implemented method of processing a query, the method comprising:

obtaining a columnstore comprising a plurality of columns and a plurality of rows, wherein the columnstore is segmented into a plurality of segments and each of the plurality of columns is segmented into a plurality of column segments, wherein each segment of the columnstore comprises a plurality of column segments of the respective columns and each column segment of a respective column comprises a plurality of rows;

receiving a query comprising a parameter;

determining a key corresponding to the parameter;

identifying a mapping structure, from a plurality of mapping structures, relating to said key, wherein each mapping structure corresponds to a respective segment of the columnstore;

interrogating the identified mapping structure to determine a value corresponding to the key, wherein the value identifies an entry of an index table of a plurality of index tables that corresponds to a first said respective segment of the columnstore, wherein the identified entry of the index table identifies a row of a first column segment of the first said respective segment of the columnstore that contains a first entry relating to the parameter;

determining an offset within a second column segment of a different column in the first said respective segment of the columnstore based on a location of the first entry within the first column segment; and

retrieving, from the second column segment and based on the offset, data of a second entry of the identified row that relates to the parameter, wherein the data of the second entry is used to generate a response to the query.

2. The computer-implemented method of claim 1 , further comprising:

merging the plurality of mapping structures to form a single mapping structure.

3. The computer-implemented method of claim 1 , wherein the data of the first entry identifies a row of a rowstore table or another columnstore table that contains an entry relating to the parameter.

4. The computer-implemented method of claim 1 , comprising:

generating the plurality of mapping structures and the plurality of index tables as the columnstore is generated.

5. The computer-implemented method of claim 4 , wherein the parameter is a first parameter and the query further comprises a second parameter, and the method comprises:

determining that the second parameter is less selective than the first parameter;

determining a second key relating to the second parameter;

identifying a further mapping structure, from a second plurality of mapping structures, relating to said second key, wherein each mapping structure of the second plurality of mapping structures corresponds to a respective segment of the columnstore;

interrogating the identified further mapping structure to determine a further value corresponding to the second key, wherein the further value identifies an entry of a further index table of a second plurality of index tables that corresponds to a second said respective segment of the columnstore, wherein the entry of the further index table identifies a row of a first column segment of the second said respective segment of the columnstore relating to the second parameter;

comparing the identified values relating to the first and second parameters;

identifying one or more intersections of the identified values based on the comparison; and

retrieving data relating to the first parameter and the second parameter from the data source based on the one or more intersections.

6. The computer-implemented method of claim 1 , comprising generating a data structure relating to the columnstore and for use in processing a query according to claim 1 , the generating comprising:

generating a mapping structure and an index table for each of the plurality of segments of the columnstore, wherein each mapping structure and each index table comprise at least one entry, each entry of the respective mapping structure comprising a mapping between a key and a value identifying at least one entry of the corresponding index table comprising a mapping between the key and a row in a respective segment of the plurality of segments.

7. A non-transitory computer readable medium comprising instructions that, when executed by a processor of a computer, cause a computer comprising the processor to carry out the method of claim 1 .

Assignments (7)
PATENT SECURITY AGREEMENT Recorded Oct 20, 2025
From: SINGLESTORE, INC.
To: MONROE CAPITAL MANAGEMENT ADVISORS, LLC, AS AGENT
Reel/Frame 073122/0161 →
RELEASE OF SECURITY INTEREST Recorded Oct 9, 2025
From: SILICON VALLEY BANK
To: SINGLESTORE, INC.
Reel/Frame 072524/0652 →
SECURITY INTEREST Recorded Jul 9, 2021
From: SINGLESTORE, INC.
To: SILICON VALLEY BANK
Reel/Frame 056805/0312 →
RELEASE OF SECURITY INTEREST Recorded Jun 30, 2021
From: HERCULES CAPITAL, INC.
To: SINGLESTORE, INC.; MEMSQL USG, INC.
Reel/Frame 056723/0449 →
CHANGE OF NAME Recorded Nov 13, 2020
From: MEMSQL, INC.
To: SINGLESTORE, INC.
Reel/Frame 054414/0655 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Apr 29, 2020
From: MEMSQL, INC.
To: HERCULES CAPITAL, INC., AS COLLATERAL AND ADMINISTRATIVE AGENT
Reel/Frame 052523/0977 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 10, 2019
From: HANSON, ERIC; WANG, SZU-PO; SUN, ZHOU; WATTS, CONNOR GREGORY; SHAMGUNOV, NIKITA; KOGAN, YEVGENIY
To: MEMSQL, INC.
Reel/Frame 051235/0549 →
Continuity (1)
Related Publication 20210089537A1 · Mar 25, 2021