We are evaluating cluster solutions for high volumes(Several Terabytes of Data) and throughput (several hundreds of thousand SQL requests per second . I would like to assess the scalability factor I can expect from MySQL Cluster.
Starting with a simple table (ID bigint(20) PK, DSC varchar(255)), I ran some "performance" tests. By INSERTing 100k records and SELECTing 100k records. Selects made on PK.
Sharding on Data Nodes done by default (Hash of the PK)
Replication factor set to two.
Hardware (for each node) based on 2 CPU and 16 Gb of RAM.
Request are made from a mutli-threaded java client. 32 java threads having each their connection. Using a jdbc:loadbalance://ip1,ip2 ... URL.
First comparison :
(1) 1 SQL Node + 2 Data Nodes
(2) 1 SQL Node + 4 Data Nodes
Time for inserting and select are quite the same. No differences.
13 seconds for INSERTs. 60 seconds for SELECTs
Second comparison :
(1) 1 SQL Node + 2 Data Nodes
(2) 2 SQL Node + 2 Data Nodes
Tests are running 25 % faster for inserts - No change for SELECTs.
9 seconds for INSERTs. 60 seconds for SELECTs
Can anyone what I am doing wrong and how to achieve better scalability?
Thanks in advance