This feature is not about distributed transactions, which would allow you to create a branch from a query cube and commit data to each data cube.
Principle
Starting a simulation in a data cube creates a new branch.If it is connected to a cluster with a query node, the latter detects the new branch and also creates a new version, which targets the branch with the corresponding name in the data cube. If another data cube creates another scenario, another branch appears in the query cube, and so on. The query cube’s branches are the union of all the data cubes’ branches.
Please be aware that this induces more network traffic within your application.
Querying for Distributed Branches
A query cube that has detected several branches applies the following logic when treating a query:- if the branch exists in the data cube, the query is performed on that branch.
- if the branch does not exist in the data cube, the query is performed on the master branch.
| Currency | Cube A master | Cube A scenario | Cube B master | Cube B test |
|---|---|---|---|---|
| Grand total | 12 | 13 | 22 | 1 |
| BTC | 1 | 1 | ||
| EUR | 1 | 3 | 6 | 1 |
| USD | 2 | 4 | ||
| JPY | 5 | |||
| GBP | 8 | 7 | ||
| CHF | 9 |
| Currency | Measure |
|---|---|
| Grand total | 35 |
| BTC | 1 |
| EUR | 9 |
| USD | 4 |
| JPY | 5 |
| GBP | 7 |
| CHF | 9 |
- EUR is modified in branch scenario, so the value is the aggregation of this modified value with the unmodified value from cube B.
- JPY, present in data cube A for branch scenario, is present in the result. This currency is expected to appear in the query if in the scenario, the company acquires some JPY.
- GBP, only present in data cube B for branch master, has a value of 7 because it does not exist in data cube A for the branch scenario.
- BTC’s value did not change in the branch scenario, and the result’s value stays the same.