US 12,436,931 B2
Method of performing transactional and analytical data processing using a data structure
Eric Hanson, Bellevue, WA (US); Szu-Po Wang, San Francisco, CA (US); Zhou Sun, San Francisco, CA (US); Connor Gregory Watts, Seattle, WA (US); Nikita Shamgunov, San Francisco, CA (US); and Yevgeniy Kogan, Kirkland, WA (US)
Assigned to SingleStore, Inc., San Francisco, CA (US)
Filed by SingleStore, Inc., San Francisco, CA (US)
Filed on Dec. 14, 2023, as Appl. No. 18/540,374.
Application 18/540,374 is a continuation of application No. 17/368,677, filed on Jul. 6, 2021, granted, now 11,886,407.
Application 17/368,677 is a continuation of application No. 16/579,393, filed on Sep. 23, 2019, granted, now 11,068,454, issued on Jul. 20, 2021.
Prior Publication US 2024/0111744 A1, Apr. 4, 2024
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 16/22 (2019.01); G06F 16/2453 (2019.01)
CPC G06F 16/221 (2019.01) [G06F 16/2282 (2019.01); G06F 16/24549 (2019.01)] 17 Claims
OG exemplary drawing
 
1. A computer-implemented method of updating data, 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 the identified 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 containing data matching a value of the parameter of the query and the row having other entries in different one or more column segments, respectively;
moving the identified row to a rowstore;
manipulating the data of the first entry in the rowstore based upon an update request;
activating an access lock on an identifier of the row whilst the data of the first entry is manipulated in the rowstore, whereby rows other than the identified row for which the access lock has been activated are available for access such that other concurrent queries are allowed to access data within entries of other rows in the segment of the columnstore from which the identified row was moved;
releasing the access lock after the manipulating is completed; and
in response to the manipulating, updating a status of the identified row to indicate that updates to the retrieved data of the first entry of the identified row are located in the rowstore.