Hey Tim​ ,
To my understanding;
When a EC is build all imported data is stored on the disk (unless configured otherwise like S3). Whenever a cube is (re)build, the first time a user opens a dashboard, generates a report or does any action concerning data from the EC the EC is queried based on the data stored on the HDD.
This query result is stored in RAM. So for example if you have a dashboard with 10 different widgets , there will be 10 query results stored in the RAM (simply put, it does deserve some nuance).
This way when a (different) user opens the same dashboard the results are loaded quicker. However changing the result, for example with filters, will have longer loading times due to it not being cached (depending on server resources and datagroups configuration). Leading to an increase of RAM usages. In the end depending of the usage of Sisense and the specific EC loading data will be a mix of hdd and ram. The mix is mostly determined if users query same/similar data or if it is more volatile.
As far as I know Sisense handles cache in a 'smart' way meaning that not uses query results are dropped.
How it specifically/technically works on a detail level, is something I think Sisense can answer.
Hamza