Showing results for 
Search instead for 
Did you mean: 

Many to Many

7 - Data Storage
7 - Data Storage


I want to know what happens with sisense and the server internally when a many to many relationship is generated, that is, I understand how it is generated and what it affects, but searching the documentation I can't find why sisense decides to take more RAM memory and why that the size of the elasticube increases during the query?

I think a diagram of how Sisense makes the query and what it consumes from the server in the process would be helpful.

I currently have the version Version: L2021.11.0.127  in Linux


8 - Cloud Apps
8 - Cloud Apps
Hi Enrique,
Every ElastiCube in Sisense has its' own pod running on Linux Kubernetes. That pod, should it encounter M2M will start utilizing quite a lot of RAM memory (natural effect of M2M and Cartesian result it produces) until a certain threshold is reached, and then Sisense will kill the query and display appropriate message.
Generally speaking ElastiCube is In-memory entity which will hold in RAM contents of queries. Depending on type of queries it will start using more RAM, but if there are no M2M, memory usage should not be higher than then actual size of ElastiCube on hard drive. Upon rebuild or ElastiCube pod reset all memory is released. ElastiCubes can also utilize Query Recycler whci heffectively caches subsequent query results, so next time same query is executed it will take results from cache. This mechanism will also gradually add memory usage to specific ElastiCube.
Hope that sheds some light on the whole mechanism. If you would have any additional questions feel free to reach out to me.