Do I have to use the default sizing "heights" for Kubernetes clusters utilizing the SingleStore Operator?
While we do not recommend changing these values unless you know exactly what you are doing, it is possible to change the height unit sizes.
By default, a height of 1 will allocate 8 CPU cores and 32 GB of memory to the nodes in the associated spec (leafSpec or aggregatorSpec).
In the SingleStore Operator manifest (sdb-operator.yaml) you can add these parameters (cores-per-unit and memory-per-unit) to the arguments section:
... args: [ # Cause the operator to merge rather than replace annotations on services "--merge-service-annotations", # Allow the process inside the container to have read/write access to the `/var/lib/memsql` volume. "--fs-group-id", "5555", "--cluster-id", "sdb-cluster", "--cores-per-unit", "8", "--memory-per-unit", "32", ...
You can see both '--cores-per-unit' and '--memory-per-unit' allow us to define what a height size of 1 will be.
As an example, if cores-per-unit is set to 20 and memory-per-unit is set to 40 then a height of 1 will give the associated nodes 20 CPU cores and 40 GB of RAM. If you set the height to 0.5 then the associated nodes will have 10 CPU cores and 20GB of RAM (in this example).
Never allocate less than 4 CPU cores and 16 GB of RAM to the nodes (never have a height less than 0.5 with default settings) as this is the minimum amount of resources SingleStore needs to properly operate in this environment.
IMPORTANT: The standard licensing structure is accounting for 8 CPUs / 32 GB (the default settings). Ensure you check with your sales representative that you are utilizing a CPU/MEM count that works with your licensing agreements.