US 11,669,521 B2
Accelerated filtering, grouping and aggregation in a database system
Michal Nowakiewicz, Redmond, WA (US); and Eric Boutin, Bellevue, WA (US)
Assigned to SINGLESTORE, INC., San Francisco, CA (US)
Filed by Singlestore, Inc., San Francisco, CA (US)
Filed on Feb. 22, 2022, as Appl. No. 17/677,631.
Application 17/677,631 is a continuation of application No. 16/206,364, filed on Nov. 30, 2018, granted, now 11,275,731.
Claims priority of provisional application 62/593,767, filed on Dec. 1, 2017.
Prior Publication US 2022/0179849 A1, Jun. 9, 2022
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 16/242 (2019.01); G06F 16/2453 (2019.01); G06F 16/22 (2019.01); G06F 16/2455 (2019.01)
CPC G06F 16/244 (2019.01) [G06F 16/221 (2019.01); G06F 16/2237 (2019.01); G06F 16/2453 (2019.01); G06F 16/2455 (2019.01)] 14 Claims
OG exemplary drawing
 
1. A method of performing a query on a column-store table of encoded values, the method comprising:
receiving the query, the query comprising an indication of a plurality of column vectors having encoded values;
for each column vector of the plurality of column vectors, loading a subset of encoded values of the column vector into respective lanes of a respective register, thereby forming an array comprising the respective registers;
adding bits to encoded values in each of the respective registers, thereby generating unpacked encoded values of the plurality of column vectors, each unpacked encoded value having a predetermined length;
transposing the array such that unpacked encoded values previously loaded into a single respective register are now loaded in corresponding lanes of the respective registers; and
for each respective register, adding the unpacked encoded value in each lane of the respective register to a corresponding lane in a further register, thereby generating, in the corresponding lanes of the further register, sums of unpacked encoded values from corresponding lanes of each respective register.