Insert a list of 10000 records (in a Java ArrayList) repeatedly by 100000 iterations, into one MergeTree table. That is, to insert 1 billion records in total.
Each record has 38 columns (mostly String columns), and is 384 byte on average.
We insert them from a ClickHouse client to a ClickHouse server on the same local machine:
CPU: Intel(R) Xeon(R) CPU E5-2603 v3 @ 1.60GHz,6 cores
Memory: 64GB
Disk write throughput: 94.78 MB/sec, measured by "time dd if=/dev/zero of=test.dbf bs=8k count=300000 oflag=direct"
Disk read throughput: 141MB/sec, measured by "dd if=test.dbf bs=8k count=300000 of=/dev/null"
The above benchmark to insert 1 billion records by the official JDBC driver took 3 hours to complete.
Is this performance expected ? Any room to improve ?