跳至主要內容

Klustron(原KunlunBase) TPC-H 和 TPC-DS 测试结果

Klustron大约 4 分钟

Klustron(原KunlunBase) TPC-H 和 TPC-DS 测试结果

前言

Klustron 是 HTAP 分布式数据库,在 OLTP 方面 Klustron 具有极致的性能(Klustron 与 OceanBase 对比 TPC-C 结果Klustron 和 TiDB 的 TPC-C 测试对比),在 OLAP 方面 Klustron 也具备完整的功能,那么 Klustron 在 OLAP 方面性能如何呢?本文就是我们对 Klustron-1.1.1 做 TPC-H 和 TPC-DS 的性能测试结果。

我们对每个测例设置超时时间是 1200 秒,超过则自动停止改测例。因此有少量测例发生了超时。如果给更多时间,或者数据量较小,则这些测例都可以通过。

Klustron 未来会持续改进 OLAP 查询性能,确保所有这些目前超时的查询都可以有更好的性能。

测试服务器说明:

IPCPUMemoryDiskOperation System
132(enp5s0)AMD Ryzen 9 5950X 16 cores 32 threads128G2T.m2 + 1T.m2 + 4THDDCentos8.3
134(enp5s0)AMD Ryzen 9 5950X 16 cores 32 threads128G2T.m2 + 1T.m2 + 4THDDCentos8.3
140(enp5s0)AMD Ryzen 9 5950X 16 cores 32 threads64G1T.m2 + 1T.m2Centos8.3

测试说明:

  • 本次 TPC-DS 及 TPC-H 测试都灌 10G 数据。

  • 在灌完 10G 数据后,需要对所有表进入 analyze 操作,可以使用以下脚本快速完成

echo 'show tables;' > tmp.sql
for i in `psql postgres://abc:abc@ip:port/tpcds -f tmp.sql | sed '1,2d' | sed '$d' | sed '$d'`
do
        echo "select * from $i limit 1;" > a.sql
        clomun=`psql postgres://abc:abc@ ip:port /tpcds -f a.sql | sed -n 1p | sed 's/|/,/g'`
        analyze="analyze $i($clomun)"
        echo $analyze; echo $analyze > tmp.sql
        psql postgres://abc:abc@192.168.0.132:35001/tpcds -f tmp.sql
done

集群说明:

  • 集群模式为 rbr;
  • 三台服务器各部署一个 Cluster_mgr、Node_mgr、计算节点、元数据节点;
    • 三台服务器上部署两个存储分片,其中132和134上各一个主;
    • 每个存储分片都以一主两备的形式存在。

集群配置说明:

{
        "comp":[{
                        "statement_timeout":1200000,
                        "mysql_read_timeout":1200,
                        "mysql_write_timeout":1200,
                        "lock_timeout":1200000,
                        "autovacuum": "off",
                        "log_min_duration_statement":1200000
                }
        ],
        "metadata":[{
                        "lock_wait_timeout":1200,
                        "innodb_lock_wait_timeout":1200
                }
        ],
        "storage":[{
                "lock_wait_timeout":1200,
                "innodb_lock_wait_timeout":1200,
                "fullsync_timeout":1200,
                "enable_fullsync": "OFF",
                "innodb_flush_log_at_trx_commit": 0,
                "sync_binlog": 0,
                "innodb_buffer_pool_size": "10*1024*1024*1024",
                "max_binlog_size": "1*1024*1024*1024"
                }
        ]
}

TPC-H 结果:

sqlresultcosterror
Q1succ147.86
Q2fail1200.01psql:query/2.sql:47: ERROR: canceling statement due to statement timeout
Q3succ32.63
Q4succ28.82
Q5succ49.18
Q6succ18.07
Q7succ29.88
Q8succ56.75
Q9succ105.17
Q10succ30.52
Q11succ7.67
Q12succ28.27
Q13succ14.72
Q14succ19.07
Q15succ38.29
Q16succ10.65
Q17succ85.78
Q18succ100.61
Q19succ21.61
Q20succ37.63
Q21fail1200.07psql:query/21.sql:43: ERROR: canceling statement due to statement timeout
Q22succ6.97

TPC-DS 结果:

sqlresultcosterror
Q1fail1199.99psql:query/q1.sql:22: ERROR: canceling statement due to statement timeout
Q2succ33.47
Q3succ13.15
Q4fail1206.71psql:query/q4.sql:113: ERROR: canceling statement due to statement timeout
Q5succ35.67
Q6fail1199.99psql:query/q6.sql:23: ERROR: canceling statement due to statement timeout
Q7succ36.00
Q8succ15.79
Q9succ78.69
Q10succ37.90
Q11succ607.60
Q12succ3.17
Q13succ15.21
Q14fail1199.99psql:query/q14.sql:105: ERROR: canceling statement due to statement timeout
Q15succ34.71
Q16succ0.11
Q17succ73.08
Q18fail1199.99psql:query/q18.sql:35: ERROR: canceling statement due to statement timeout
Q19fail1199.99psql:query/q19.sql:26: ERROR: canceling statement due to statement timeout
Q20succ10.08
Q21succ42.76
Q22succ165.87
Q23succ194.73
Q24succ29.57
Q25fail1222.80psql:query/q25.sql:49: ERROR: canceling statement due to statement timeout
Q26fail1200.00psql:query/q26.sql:22: ERROR: canceling statement due to statement timeout
Q27succ0.06
Q28succ52.84
Q29fail1199.99psql:query/q29.sql:48: ERROR: canceling statement due to statement timeout
Q30fail1200.00psql:query/q30.sql:32: ERROR: canceling statement due to statement timeout
Q31succ125.51
Q32fail1199.99psql:query/q32.sql:29: ERROR: canceling statement due to statement timeout
Q33succ27.31
Q34succ11.47
Q35succ19.57
Q36succ85.41
Q37succ41.47
Q38succ126.61
Q39succ213.64
Q40succ8.29
Q41succ39.71
Q42succ243.83
Q43succ67.13
Q44succ32.96
Q45succ4.31
Q46succ23.64
Q47succ59.03
Q48succ15.10
Q49succ25.74
Q50fail1199.99psql:query/q50.sql:60: ERROR: canceling statement due to statement timeout
Q51succ38.30
Q52succ244.98
Q53succ13.55
Q54succ164.25
Q55succ126.09
Q56succ34.33
Q57succ29.45
Q58succ21.54
Q59succ53.23
Q60succ25.27
Q61fail1199.99psql:query/q61.sql:45: ERROR: canceling statement due to statement timeout
Q62succ12.35
Q63succ14.06
Q64succ42.16
Q65succ44.58
Q66succ16.99
Q67succ99.05
Q68succ28.37
Q69succ56.41
Q70succ106.87
Q71succ21.69
Q72fail1200.10psql:query/q72.sql:30: ERROR: canceling statement due to statement timeout
Q73succ0.24
Q74fail1200.05psql:query/q74.sql:62: ERROR: canceling statement due to statement timeout
Q75succ59.52
Q76succ14.52
Q77fail0.00psql:query/q77.sql:109: ERROR: syntax error at or near "returns"
Q78succ229.67
Q79succ25.25
Q80succ29.31
Q81succ0.42
Q82succ53.84
Q83succ0.91
Q84succ2.89
Q85succ76.26
Q86succ6.56
Q87succ123.08
Q88fail1200.10psql:query/q88.sql:95: ERROR: canceling statement due to statement timeout
Q89succ38.94
Q90succ17.84
Q91succ1.86
Q92succ687.43
Q93succ16.96
Q94succ467.21
Q95fail1200.24psql:query/q95.sql:33: ERROR: canceling statement due to statement timeout
Q96succ1101.59
Q97succ25.18
Q98succ12.29
Q99succ15.71

END