Estimating the memory requirements of a Jedox In-Memory Database depends on several factors, but as a general rule, the data storage needs approximately 10-16 bytes in RAM for a numeric cube cell. Note that more bytes might be needed for large models.
The main drivers for the “bytes per cell” value are:
- number of dimensions used in the cube
- size of dimensions (number of elements)
- density of data in last dimensions (dense data can be stored more efficiently)
- value format (integral values need less memory than floating point values)
Only filled cells are stored in memory. Note that in productive use, more available memory will typically be required (e.g. caches for query and rule processing, data consistency management, or session handling).
Available memory requirements
Generally, the factor 2.5 can be used to estimate memory requirements for a given size of storage data.
memory required = storage data * 2.5
- 8 dimensions
- 20k elements in largest dimension
- 12 bytes per cell
- 25 million filled cells
- 300 MB storage data (see cube .bin file)
Available memory requirement: 300 MB * 2.5 = 750 MB
GPU memory requirements
The “bytes per cell” value for GPU memory differs from its CPU counterpart. At least 16 bytes are needed for each value. For large models (number or size of dimensions), more 8 byte blocks might be needed, but typically 24 or 32 bytes are sufficient.
GPU memory consumption is independent of data density and value format.
Factor 2.5 should also be applied in order to estimate the available memory required.