IP Library Granted Patent US 12,105,738
Granted Patent B2
US 12,105,738 · App. 18/446,630 · Granted Oct 1, 2024

Methods and systems for indexlet based aggregation

Inventors: Johan Nilsson (Lund, SE); Pawel Rafal Krupinski (Hjärup, SE); Khoa Tan Nguyen (Lund, SE); José Díaz López (Lund, SE)
Assignee: QlikTech International AB
G06F16/283G06F16/2255G06F16/2264G06F16/24556
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,105,738
App. No.
18/446,630
Granted
Oct 1, 2024
Kind
B2
Abstract

Provided are methods and systems for traversing a data model with a plurality of workers to generate a plurality of virtual records for use in evaluating an expression by a plurality of aggregators. Each aggregator may receive a respective virtual record and evaluate a hypercube function and determine a respective hash based on the respective virtual record. The virtual records based on the respective hash values of the respective virtual records may be stored by the plurality of aggregators.

Claims (53)

1. One or more non-transitory computer-readable media storing processor-executable instructions that, when executed by one or more processors of at least one computing device, cause the at least one computing device to:

determine a plurality of dimensions for evaluating a hypercube associated with a data model;

assign, to each worker node of a plurality of worker nodes, a partition of the data model based on the plurality of dimensions, wherein each partition is associated with at least one dimension of the plurality of dimensions, and wherein each partition comprises a block of rows of at least one table, of the data model, comprising values for the at least one dimension of the plurality of dimensions;

traverse, by each worker node of the plurality of worker nodes, the block of rows of the at least one table corresponding to the partition assigned to that worker node to populate a virtual record for the partition, wherein the virtual records are populated by the plurality of worker nodes with the values for the at least one dimension within the partition assigned to the corresponding worker node;

evaluate, via a plurality of aggregators, the hypercube based on the virtual records;

generate, via the plurality of aggregators, a hash value for each of the virtual records; and

store, via the plurality of aggregators, the virtual records based on the hash value for each of the virtual records.

2. The one or more non-transitory computer-readable media of claim 1 , wherein the processor-executable instructions further cause the at least one computing device to:

determine a plurality of tables of the data model, wherein the plurality of tables comprises values for the plurality of dimensions.

3. The one or more non-transitory computer-readable media of claim 1 , wherein the processor-executable instructions further cause the at least one computing device to extract, via a worker node of the plurality of worker nodes, the values for the at least one dimension within the partition assigned to the worker node.

4. The one or more non-transitory computer-readable media of claim 1 , wherein the processor-executable instructions that cause the at least one computing device to determine the plurality of dimensions for evaluating the hypercube further cause the at least one computing device to determine one or more expressions to be evaluated over one or more dimensions of the plurality of dimensions.

5. The one or more non-transitory computer-readable media of claim 4 , wherein the processor-executable instructions that cause the at least one computing device to assign, to each worker node of the plurality of worker nodes, the partition of the data model based on the plurality of dimensions further cause the at least one computing device to:

divide, based on the one or more expressions, values of the plurality of dimensions into a plurality of partitions; and

assign a partition of the plurality of partitions to each worker node of the plurality of worker nodes.

6. The one or more non-transitory computer-readable media of claim 1 , wherein the processor-executable instructions that cause the at least one computing device to assign, to each worker node of the plurality of worker nodes, the partition of the data model based on the plurality of dimensions further cause the at least one computing device to:

determine a quantity of values for each dimension of the plurality of dimensions;

divide the quantity of values into a plurality of partitions; and

assign a partition of the plurality of partitions to each worker node of the plurality of worker nodes.

7. The one or more non-transitory computer-readable media of claim 1 , wherein the processor-executable instructions that cause the at least one computing device to assign, to each worker node of the plurality of worker nodes, the partition of the data model based on the plurality of dimensions further cause the at least one computing device to:

determine one or more timestamps associated with values of the plurality of dimensions;

divide the values of the plurality of dimensions into a plurality of partitions; and

assign a partition of the plurality of partitions to each worker node of the plurality of worker nodes.

8. One or more non-transitory computer-readable media storing processor-executable instructions that, when executed by one or more processors of at least one computing device, cause the at least one computing device to:

determine a plurality of dimensions for evaluating a hypercube associated with a data model;

assign, to each worker node of a plurality of worker nodes, a partition of the data model based on the plurality of dimensions, wherein each partition is associated with at least one dimension of the plurality of dimensions, and wherein each partition comprises a block of rows of at least one table of the data model comprising values for the at least one dimension of the plurality of dimensions;

traverse, via each of the plurality of worker nodes, the block of rows of the at least one table corresponding to the partition assigned to that worker node to populate a virtual record for the partition, wherein the virtual records are populated by the plurality of worker nodes with the values for the at least one dimension within the partition assigned to the corresponding worker node; and

provide, via the plurality of worker nodes, the virtual records to a plurality of aggregators.

9. The one or more non-transitory computer-readable media of claim 8 , wherein the processor-executable instructions further cause the at least one computing device to:

evaluate, via the plurality of aggregators, the hypercube based on the virtual records;

generate, via the plurality of aggregators, a hash value for each of the virtual records; and

store, via the plurality of aggregators, the virtual records based on the hash value for each of the virtual records.

10. The one or more non-transitory computer-readable media of claim 9 , wherein the processor-executable instructions that cause the at least one computing device to store, via the plurality of aggregators, the virtual records based on the hash values further cause the at least one computing device to store, via the plurality of aggregators, based on a consistent hashing strategy, the virtual records based on the hash value for each of the virtual records.

11. The one or more non-transitory computer-readable media of claim 8 , wherein the processor-executable instructions further cause the at least one computing device to determine a plurality of tables of the data model, wherein the plurality of tables comprises values for the plurality of dimensions.

12. The one or more non-transitory computer-readable media of claim 8 , wherein the processor-executable instructions further cause the at least one computing device to extract, via a worker node of the plurality of worker nodes, the values for the at least one dimension within the partition assigned to the worker node.

13. The one or more non-transitory computer-readable media of claim 9 , wherein the processor-executable instructions that cause the at least one computing device to determine the plurality of dimensions for evaluating the hypercube further cause the at least one computing device to determine one or more expressions to be evaluated over one or more dimensions of the plurality of dimensions.

14. The one or more non-transitory computer-readable media of claim 13 , wherein the processor-executable instructions that cause the at least one computing device to assign, to each worker node of the plurality of worker nodes, the partition of the data model based on the plurality of dimensions further cause the at least one computing device to:

divide, based on the one or more expressions, values of the plurality of dimensions into a plurality of partitions; and

assign a partition of the plurality of partitions to each worker node of the plurality of worker nodes.

15. One or more non-transitory computer-readable media storing processor-executable instructions that, when executed by one or more processors of at least one computing device, cause the at least one computing device to:

receive, via each aggregator of a plurality of aggregators, a virtual record comprising values for at least one dimension of a plurality of dimensions of a data model, wherein each virtual record received by each aggregator is based on a partition, of the data model, comprising a block of rows of at least one table of the data model comprising the values for the at least one dimension, and wherein each virtual record is populated with the values for the at least one dimension within the corresponding partition;

evaluate, via each aggregator of the plurality of aggregators, a portion of a hypercube based on the values for the at least one dimension within the virtual record for that aggregator;

generate, via each aggregator of the plurality of aggregators, a hash value for the virtual record for that aggregator; and

store, via the plurality of aggregators, the virtual records based on the hash values.

16. The one or more non-transitory computer-readable media of claim 15 , wherein the processor-executable instructions further cause the at least one computing device to:

assign, to each worker node of a plurality of worker nodes, a partition of the data model based on the plurality of dimensions;

traverse, via each worker node of the plurality of worker nodes, the partition of the data model assigned to that worker node to populate the virtual record; and

provide, via the plurality of worker nodes, the virtual records to the plurality of aggregators.

17. The one or more non-transitory computer-readable media of claim 16 , wherein the processor-executable instructions further cause the at least one computing device to determine a plurality of tables of the data model, wherein the plurality of tables comprises values for the plurality of dimensions.

18. The one or more non-transitory computer-readable media of claim 17 , wherein the processor-executable instructions that cause the at least one computing device to traverse, via each worker node of the plurality of worker nodes, the partition of the data model to populate the virtual record further cause the at least one computing device to extract, via a worker node of the plurality of worker nodes, the values for the at least one dimension.

19. The one or more non-transitory computer-readable media of claim 16 , wherein the processor-executable instructions further cause the at least one computing device to determine one or more expressions to be evaluated over the plurality of dimensions.

20. The one or more non-transitory computer-readable media of claim 19 , wherein the processor-executable instructions that cause the at least one computing device to assign, to each worker node of the plurality of worker nodes, a partition of the data model based on the plurality of dimensions further cause the at least one computing device to:

divide, based on the one or more expressions, values of the plurality of dimensions into a plurality of partitions; and

assign a partition of the plurality of partitions to each of the plurality of worker nodes.

Assignments (3)
SECOND LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded May 8, 2025
From: QLIKTECH INTERNATIONAL AB
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 071224/0394 →
SECURITY INTEREST Recorded Apr 18, 2024
From: QLIKTECH INTERNATIONAL AB
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 067168/0117 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 10, 2023
From: NILSSON, JOHAN; KRUPINSKI, PAWEL RAFAL; NGUYEN, KHOA TAN; DIAZ LÓPEZ, JOSÉ
To: QLIKTECH INTERNATIONAL AB
Reel/Frame 064549/0931 →
Continuity (3)
Continuation 16736586 · Jan 7, 2020
Provisional Application 62789315 · Jan 7, 2019
Related Publication 20240028615A1 · Jan 25, 2024