ColumnStore Minimum Hardware Specification
The following table outlines the minimum recommended production server specifications which can be followed for both on premise and cloud deployments.
Architecture and System
Currently ColumnStore is only available for the AMD64 architecture, on Linux systems.
Per Server
CPU architecture
- The CPU must support Intel SSE4.2 or ARM Advanced SIMD instructions.
Physical server resources
- Development environment: 2 core CPU, 32 GB memory
- Production environment: 4 core CPU, 128 GB memory
Storage type
- Development environment: local disk
- Production environment:
- S3 or compatible service
- For multi-node deployments: shared storage
Network
In a multi server deployment data will be passed around via TCP/IP networking. At least a 1G network is recommended.
Details
These are minimum recommendations and in general the system will perform better with more hardware:
- More CPU cores and servers will improve query processing response time.
- More memory will allow the system to cache more data blocks in memory.
- Faster network will allow data to flow faster between UM and PM nodes.
- SSD's may be used, however the system is optimized towards block streaming which may perform well enough with HDD's for lower cost.
- Where it is an option, it is recommended to use bare metal servers for additional performance since ColumnStore will fully consume CPU cores and memory.
- In general it makes more sense to use a higher core count / higher memory server for single server or 2 server combined deployments.
- In a deployment with multiple UM nodes the system will round robin requests from the mysqld handling the query to any ExeMgr in the cluster for load balancing. A higher bandwidth network such as 10g or 40g will be of benefit for large result set queries.
AWS Instance Types
For AWS our own internal testing generally uses m4.4xlarge instance types as a cost effective middle ground. R4.8xlarge has also been tested and performs about twice as fast for about twice the price.
Requirements Verification
Use this line to verify that the CPU supports a suitable instruction set. If the CPU is not adequate, the command will print nothing.
cat /proc/cpuinfo | grep -E 'sse4_2|neon|asimd'