User Defined Aggregate Functions on Measures: It is now possible for user-defined aggregate
functions to work on measures (instead of facts). This can be achieved using the Copper API. The
documentation is
available here.
Copper Join hierarchy with multiple levels: The Copper API now lets you define Join
hierarchies with several levels.
Option to set the visibility of hierarchies and dimensions through context values: the MDX
context now has a feature that can override the visibility of a hierarchy or a dimension. This
feature can be used through MdxContext::setHierarchyVisibility() or through the MDX context
builder via IMdxContextBuilder::overrideHierarchyVisibility() (analogous methods exist for
dimensions).
Copper Store Lookups: The Copper API lets you define store look-ups measures that run a
get-by-key query on the selected store.
Chunks gained a new compression method: Frequency compression. When the Datastore detects a value
repeated many times in a chunk, the chunk is compressed to store only explicit values, while
recording the implicit values repeated many times.
The compression happens when a value appears more than x % in the chunk.
x can be specified as a ratio through the
property ActiveViamProperty#CHUNK_FREQUENCY_COMPRESSION_RATIO_PROPERTY. The compression can be
enabled or disabled for each of the following five data types: int, float, long, double
and object. This can be controlled through the
property: ActiveViamProperty#ENABLED_FREQUENCY_COMPRESSIONS_PROPERTY.
When a data node is being shutdown, it will send a GoodbyeMessage to the query node which will
immediately trigger an asynchronous task responsible for removing all subsequent contributions of
the former. On success, a GoodbyeMessageApplicationEvent is generated. Otherwise, on failure of
the removal task, a GoodbyeMessageApplicationFailureEvent is generated. This lets ActivePivot
distinguish the clean removal of a data node from one that is momentarily unresponsive.
When executing a query, intermediary results that have been computed and that are not required by
any remaining computations are now discarded and are available for garbage collection.
The Azure Cloud Source has migrated its dependency to the Azure Blob Storage SDK from version 8 to
version 12. This change came along a number of changes in the module's interface. More about this
can be read on the migration notes.