Systems and methods for memory optimization interest-driven business intelligence systems
First Claim
1. A system comprising:
- at least two processors; and
a memory storing an application wherein the application directs the at least two processors to;
receive raw data that has a plurality of dimensions;
generate one or more partitions of a dictionary for each dimension of the plurality of dimensions of the raw data, wherein each of the one or more partitions includes an entry for at least one dimension of the plurality of dimensions, wherein the entry at least includes a corresponding dictionary identifier and a corresponding value;
determine a number of entries in each of the one or more partitions;
determine whether the number of entries in a partition of the one or more partitions is greater than a threshold value;
in the event the number of entries for the partition of the one or more partitions is greater than the threshold value, store the partition in a common memory;
in the event the number of entries for the partition of the one or more partitions is not greater than the threshold number;
combine the partition with another partition having the number of entries less than the threshold value into a single partition in which the number of entries is greater than the threshold value; and
store the single partition in the common memory.
2 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for optimizing memory in an interest-driven business intelligence system in accordance with embodiments of the invention are illustrated. A dictionary for storing values of a dataset may be partitioned in accordance with some embodiments. The partitions of the dictionary may be generated by mapping and reducer processes. The mapping processes receive a value, determine the dimension of the data to which the value belongs, and provides the value to a reducer process that handles the determined dimension. Each reducer process generates partitions of the dictionary for each dimension. The number of values in each partition is determined and compared to a threshold value. Partitions that have a number of values greater than the threshold are stored in a common memory. Partitions smaller than the threshold value can be combined with other partitions such that the cardinality of the combined partition exceeds the threshold value.
76 Citations
21 Claims
-
1. A system comprising:
-
at least two processors; and a memory storing an application wherein the application directs the at least two processors to; receive raw data that has a plurality of dimensions; generate one or more partitions of a dictionary for each dimension of the plurality of dimensions of the raw data, wherein each of the one or more partitions includes an entry for at least one dimension of the plurality of dimensions, wherein the entry at least includes a corresponding dictionary identifier and a corresponding value; determine a number of entries in each of the one or more partitions; determine whether the number of entries in a partition of the one or more partitions is greater than a threshold value; in the event the number of entries for the partition of the one or more partitions is greater than the threshold value, store the partition in a common memory; in the event the number of entries for the partition of the one or more partitions is not greater than the threshold number; combine the partition with another partition having the number of entries less than the threshold value into a single partition in which the number of entries is greater than the threshold value; and store the single partition in the common memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method, comprising:
-
receiving raw data that has a plurality of dimensions; generating, by a processor, one or more partitions of a dictionary for each dimension of the plurality of dimensions of the raw data, wherein each of the one or more partitions includes an entry for at least one dimension of the plurality of dimensions, wherein entry at least includes a dictionary identifier and a value; determining, by the processor, a number of entries in each of the one or more partitions; determining, by the processor whether the number of entries in a partition of the one or more partitions is greater than a threshold value; in the event the number of entries for the partition of the one or more partitions is greater than the threshold value, storing the partition in a common memory; in the event the number of entries for the partition of the one or more partitions is not greater than the threshold value; combining the partition with another partition having the number of entries less than the threshold value into a single partition in which the number of entries is greater than the threshold value; and storing the single partition in the common memory. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A computer program product, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:
-
receiving raw data that has a plurality of dimensions; generating one or more partitions of a dictionary for each dimension of the plurality of dimensions of the raw data, wherein each of the one or more partitions includes an entry for at least one dimension of the plurality of dimensions, wherein the entry at least includes a dictionary identifier and a value; determining a number of entries in each of the one or more partitions; determining whether the number of entries in a partition of the one or more partitions is greater than a threshold value; in the event the number of entries for the partition of the one or more partitions is greater than the threshold value, storing the partition in a common memory; and in the event the number of entries for the partition of the one or more partitions is not greater than the threshold value; combining the partition with another partition having the number of entries less than the threshold value into a single partition in which the number of entries is greater than the threshold value; and storing the single partition in the common memory.
-
Specification