What's new
This section provides a brief overview of the new features and improvements of Atoti Server.
For a detailed list of all changes, see our Changelog.
For migration tips, see our Migration Notes.
6.1
Atoti server 6.1 requires :
- Java 21
- Spring 6
- Spring boot 3.2
Public and Internal APIs
In this new release, the boundaries of public and non-public classes/APIs have been clearly delimited.
There are now two broad types of classes for use in Atoti:
- Public apis, marked with
.api.
. These classes can be used in any project. The public API are guaranteed to remain compatible between bug fix releases. Moving to the latest bug fix will in time become frictionless. - Not public, marked with
.private.
,.internal.
or.avinternal
are not destined for use outside ActiveViam’s own developer teams. These classes have no guarantee to be compatible between bug fix releases.
A tool for automatically reorganizing imports is available in the migration notes.
This major change aims to simplify maintenance for both ActiveViam and customers.
Projects that still utilize classes that reside in a package that is not part of the delimited public API after migration to this new version should contact ActiveViam's support teams to find a suitable solution.
Discussing the technical challenges behind the use of an internal API will shed light on how Atoti Server is used, what it is used for, and will help shape the future of the product's API.
New features
Distribution
- Copper in distributed cubes is now stable [doc]
Copper calculations can now be defined in Query cubes.
DirectQuery
- DQ API V2 [doc]
Full control on table and field building.
Common runtime interface for all databases. - Emulated time travel (experimental) [doc]
Direct query can now leverage defined versioning columns in tables to provide a versioned experience on external databases which does not supports time travel. - Official support of Dremio database [doc]
- Aggregate table is now stable [doc]
- Incremental refresh is now stable [doc]
AI-based Optimizer
- AI-based aggregate provider recommendation (experimental) [doc]
Project building
Spring Boot Starters [doc]
Spring Boot Starters are now available to help with building an Atoti Server application.
As of now, the following modules can be used in your projects:com.activeviam.springboot:atoti-server-starter
com.activeviam.springboot:atoti-ui-starter
com.activeviam.springboot:atoti-admin-ui-starter
com.activeviam.springboot:atoti-server-apm-starter
com.activeviam.springboot:excel-addin-starter
See the Sandbox for an example of their usage in a project.
Data structure
- SameValueVector:
Newcomer in vector computation components allowing to manipulate a same value vector.
Improvements
DirectQuery
- Multithreaded result set parsing
- Queries with inequality operators (<, <=, > and >=) can now use aggregate table
- Clustering fields can be used by runtime queries (not only feeding)
Copper
Mdx Engine
- Calculated measures evaluation [doc]
The Mdx engine will now analyze the expression of each calculated member in order to find a better companion thancontributors.COUNT
. This will reduce the computation time of some calculated measures. Also, this optimization aims to improve polymorphic cluster performance by reducing the number of queried data nodes in some cases.
Distribution
- Option to conceal branches from the distributed application
The query node will have no knowledge of some of all the branches created on the data nodes. One can also change if a branch is concealed or not on the fly. - Execution of PostProcessors in horizontal distribution [doc]
PostProcessors will now be executed in data nodes only if they opt-in for.
Test API
- Public API for testing [doc]
Atoti Server now ships an official API to test your Atoti Server project. This API is available in the modulecom.activeviam:atoti-server-test
. It provides a series of helper classes to run queries on ActivePivot instances and check the results as well as a helper class to write tests involving the Distribution layer.
Observability
- Observability is now implemented with OpenTelemetry [doc]