Skip to content

Commit

Permalink
Add SSL options to MySQL (#376)
Browse files Browse the repository at this point in the history
* Save/load parameter to SQLite

* updated code indentation and comment

* Add SSL option for MySQL

* Remove debug trace

* Check schema version of xml and sqlite

* Enhancement for storing configuration on sqlite - check hammerdb version

* Enhancement for storing configuration on sqlite - check hammerdb version

* Enhancement for storing configuration on sqlite - check hammerdb version

Co-authored-by: Your Name <[email protected]>
Co-authored-by: Steve Shaw <[email protected]>
  • Loading branch information
3 people authored Jul 6, 2022
1 parent ae0ba66 commit 7121bd4
Show file tree
Hide file tree
Showing 13 changed files with 1,167 additions and 512 deletions.
58 changes: 29 additions & 29 deletions config/connectpool/mariacpool.xml
Original file line number Diff line number Diff line change
@@ -1,53 +1,53 @@
<connpool>
<connections>
<c1>
<maria_host>host1</maria_host>
<maria_host>host1</maria_host>
<maria_port>3306</maria_port>
<maria_socket>/tmp/mariadb.sock</maria_socket>
<maria_ssl_options>-ssl false</maria_ssl_options>
<maria_user>root</maria_user>
<maria_ssl_options>-ssl false</maria_ssl_options>
<maria_user>root</maria_user>
<maria_pass>maria</maria_pass>
<maria_dbase>tpcc</maria_dbase>
</c1>
<c2>
<maria_host>host2</maria_host>
<maria_host>host2</maria_host>
<maria_port>3306</maria_port>
<maria_socket>/tmp/mariadb.sock</maria_socket>
<maria_ssl_options>-ssl false</maria_ssl_options>
<maria_user>root</maria_user>
<maria_ssl_options>-ssl false</maria_ssl_options>
<maria_user>root</maria_user>
<maria_pass>maria</maria_pass>
<maria_dbase>tpcc</maria_dbase>
</c2>
<c3>
<maria_host>host3</maria_host>
<maria_host>host3</maria_host>
<maria_port>3306</maria_port>
<maria_socket>/tmp/mariadb.sock</maria_socket>
<maria_ssl_options>-ssl false</maria_ssl_options>
<maria_user>root</maria_user>
<maria_ssl_options>-ssl false</maria_ssl_options>
<maria_user>root</maria_user>
<maria_pass>maria</maria_pass>
<maria_dbase>tpcc</maria_dbase>
</c3>
</connections>
<sprocs>
<neworder>
<connections>c1 c2 c3</connections>
<policy>round_robin</policy>
</neworder>
<payment>
<connections>c1 c2 c3</connections>
<policy>round_robin</policy>
</payment>
<delivery>
<connections>c1 c2 c3</connections>
<policy>round_robin</policy>
</delivery>
<stocklevel>
<connections>c1 c2 c3</connections>
<policy>round_robin</policy>
</stocklevel>
<orderstatus>
<connections>c1 c2 c3</connections>
<policy>round_robin</policy>
</orderstatus>
<neworder>
<connections>c1 c2 c3</connections>
<policy>round_robin</policy>
</neworder>
<payment>
<connections>c1 c2 c3</connections>
<policy>round_robin</policy>
</payment>
<delivery>
<connections>c1 c2 c3</connections>
<policy>round_robin</policy>
</delivery>
<stocklevel>
<connections>c1 c2 c3</connections>
<policy>round_robin</policy>
</stocklevel>
<orderstatus>
<connections>c1 c2 c3</connections>
<policy>round_robin</policy>
</orderstatus>
</sprocs>
</connpool>
55 changes: 29 additions & 26 deletions config/connectpool/mysqlcpool.xml
Original file line number Diff line number Diff line change
@@ -1,50 +1,53 @@
<connpool>
<connections>
<c1>
<mysql_host>host1</mysql_host>
<mysql_host>host1</mysql_host>
<mysql_port>3306</mysql_port>
<mysql_socket>/tmp/mysql.sock</mysql_socket>
<mysql_user>root</mysql_user>
<mysql_ssl_options>-ssl false</mysql_ssl_options>
<mysql_user>root</mysql_user>
<mysql_pass>mysql</mysql_pass>
<mysql_dbase>tpcc</mysql_dbase>
</c1>
<c2>
<mysql_host>host2</mysql_host>
<mysql_host>host2</mysql_host>
<mysql_port>3306</mysql_port>
<mysql_socket>/tmp/mysql.sock</mysql_socket>
<mysql_user>root</mysql_user>
<mysql_ssl_options>-ssl false</mysql_ssl_options>
<mysql_user>root</mysql_user>
<mysql_pass>mysql</mysql_pass>
<mysql_dbase>tpcc</mysql_dbase>
</c2>
<c3>
<mysql_host>host3</mysql_host>
<mysql_host>host3</mysql_host>
<mysql_port>3306</mysql_port>
<mysql_socket>/tmp/mysql.sock</mysql_socket>
<mysql_user>root</mysql_user>
<mysql_ssl_options>-ssl false</mysql_ssl_options>
<mysql_user>root</mysql_user>
<mysql_pass>mysql</mysql_pass>
<mysql_dbase>tpcc</mysql_dbase>
</c3>
</connections>
<sprocs>
<neworder>
<connections>c1 c2 c3</connections>
<policy>round_robin</policy>
</neworder>
<payment>
<connections>c1 c2 c3</connections>
<policy>round_robin</policy>
</payment>
<delivery>
<connections>c1 c2 c3</connections>
<policy>round_robin</policy>
</delivery>
<stocklevel>
<connections>c1 c2 c3</connections>
<policy>round_robin</policy>
</stocklevel>
<orderstatus>
<connections>c1 c2 c3</connections>
<policy>round_robin</policy>
</orderstatus>
<neworder>
<connections>c1 c2 c3</connections>
<policy>round_robin</policy>
</neworder>
<payment>
<connections>c1 c2 c3</connections>
<policy>round_robin</policy>
</payment>
<delivery>
<connections>c1 c2 c3</connections>
<policy>round_robin</policy>
</delivery>
<stocklevel>
<connections>c1 c2 c3</connections>
<policy>round_robin</policy>
</stocklevel>
<orderstatus>
<connections>c1 c2 c3</connections>
<policy>round_robin</policy>
</orderstatus>
</sprocs>
</connpool>
6 changes: 3 additions & 3 deletions config/generic.xml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<hammerdb>
<theme>
<scaling>auto</scaling>
<scaletheme>auto</scaletheme>
<pixelsperpoint>auto</pixelsperpoint>
<scaling>auto</scaling>
<scaletheme>auto</scaletheme>
<pixelsperpoint>auto</pixelsperpoint>
</theme>
<sqlitedb>
<sqlitedb_dir>TMP</sqlitedb_dir>
Expand Down
34 changes: 17 additions & 17 deletions config/mariadb.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,41 +3,41 @@
<connection>
<maria_host>127.0.0.1</maria_host>
<maria_port>3306</maria_port>
<maria_socket>/tmp/mariadb.sock</maria_socket>
<maria_ssl>false</maria_ssl>
<maria_ssl_two_way>false</maria_ssl_two_way>
<maria_ssl_linux_capath>/etc/mysql/certs</maria_ssl_linux_capath>
<maria_ssl_windows_capath>C:\mysql\certs</maria_ssl_windows_capath>
<maria_ssl_ca>ca-cert.pem</maria_ssl_ca>
<maria_ssl_cert>client-cert.pem</maria_ssl_cert>
<maria_ssl_key>client-key.pem</maria_ssl_key>
<maria_ssl_cipher>server</maria_ssl_cipher>
<maria_socket>/tmp/mariadb.sock</maria_socket>
<maria_ssl>false</maria_ssl>
<maria_ssl_two_way>false</maria_ssl_two_way>
<maria_ssl_linux_capath>/etc/mysql/certs</maria_ssl_linux_capath>
<maria_ssl_windows_capath>C:\mysql\certs</maria_ssl_windows_capath>
<maria_ssl_ca>ca-cert.pem</maria_ssl_ca>
<maria_ssl_cert>client-cert.pem</maria_ssl_cert>
<maria_ssl_key>client-key.pem</maria_ssl_key>
<maria_ssl_cipher>server</maria_ssl_cipher>
</connection>
<tpcc>
<tpcc>
<schema>
<maria_count_ware>1</maria_count_ware>
<maria_num_vu>1</maria_num_vu>
<maria_user>root</maria_user>
<maria_pass>maria</maria_pass>
<maria_dbase>tpcc</maria_dbase>
<maria_storage_engine>innodb</maria_storage_engine>
<maria_partition>false</maria_partition>
<maria_prepared>false</maria_prepared>
<maria_partition>false</maria_partition>
<maria_prepared>false</maria_prepared>
</schema>
<driver>
<maria_total_iterations>10000000</maria_total_iterations>
<maria_raiseerror>false</maria_raiseerror>
<maria_keyandthink>false</maria_keyandthink>
<maria_driver>test</maria_driver>
<maria_rampup>2</maria_rampup>
<maria_rampup>2</maria_rampup>
<maria_duration>5</maria_duration>
<maria_allwarehouse>false</maria_allwarehouse>
<maria_timeprofile>false</maria_timeprofile>
<maria_async_scale>false</maria_async_scale>
<maria_async_scale>false</maria_async_scale>
<maria_async_client>10</maria_async_client>
<maria_async_verbose>false</maria_async_verbose>
<maria_async_delay>1000</maria_async_delay>
<maria_connect_pool>false</maria_connect_pool>
<maria_connect_pool>false</maria_connect_pool>
</driver>
</tpcc>
<tpch>
Expand All @@ -47,7 +47,7 @@
<maria_tpch_pass>maria</maria_tpch_pass>
<maria_tpch_dbase>tpch</maria_tpch_dbase>
<maria_num_tpch_threads>1</maria_num_tpch_threads>
<maria_tpch_storage_engine>innodb</maria_tpch_storage_engine>
<maria_tpch_storage_engine>innodb</maria_tpch_storage_engine>
</schema>
<driver>
<maria_total_querysets>1</maria_total_querysets>
Expand All @@ -57,7 +57,7 @@
<maria_update_sets>1</maria_update_sets>
<maria_trickle_refresh>1000</maria_trickle_refresh>
<maria_refresh_verbose>false</maria_refresh_verbose>
<maria_cloud_query>false</maria_cloud_query>
<maria_cloud_query>false</maria_cloud_query>
</driver>
</tpch>
</mariadb>
26 changes: 17 additions & 9 deletions config/mysql.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,33 +3,41 @@
<connection>
<mysql_host>127.0.0.1</mysql_host>
<mysql_port>3306</mysql_port>
<mysql_socket>/tmp/mysql.sock</mysql_socket>
<mysql_socket>/tmp/mysql.sock</mysql_socket>
<mysql_ssl>false</mysql_ssl>
<mysql_ssl_two_way>false</mysql_ssl_two_way>
<mysql_ssl_linux_capath>/etc/mysql/certs</mysql_ssl_linux_capath>
<mysql_ssl_windows_capath>C:\mysql\certs</mysql_ssl_windows_capath>
<mysql_ssl_ca>ca-cert.pem</mysql_ssl_ca>
<mysql_ssl_cert>client-cert.pem</mysql_ssl_cert>
<mysql_ssl_key>client-key.pem</mysql_ssl_key>
<mysql_ssl_cipher>server</mysql_ssl_cipher>
</connection>
<tpcc>
<tpcc>
<schema>
<mysql_count_ware>1</mysql_count_ware>
<mysql_num_vu>1</mysql_num_vu>
<mysql_user>root</mysql_user>
<mysql_pass>mysql</mysql_pass>
<mysql_dbase>tpcc</mysql_dbase>
<mysql_storage_engine>innodb</mysql_storage_engine>
<mysql_partition>false</mysql_partition>
<mysql_prepared>false</mysql_prepared>
<mysql_partition>false</mysql_partition>
<mysql_prepared>false</mysql_prepared>
</schema>
<driver>
<mysql_total_iterations>10000000</mysql_total_iterations>
<mysql_raiseerror>false</mysql_raiseerror>
<mysql_keyandthink>false</mysql_keyandthink>
<mysql_driver>test</mysql_driver>
<mysql_rampup>2</mysql_rampup>
<mysql_rampup>2</mysql_rampup>
<mysql_duration>5</mysql_duration>
<mysql_allwarehouse>false</mysql_allwarehouse>
<mysql_timeprofile>false</mysql_timeprofile>
<mysql_async_scale>false</mysql_async_scale>
<mysql_async_scale>false</mysql_async_scale>
<mysql_async_client>10</mysql_async_client>
<mysql_async_verbose>false</mysql_async_verbose>
<mysql_async_delay>1000</mysql_async_delay>
<mysql_connect_pool>false</mysql_connect_pool>
<mysql_connect_pool>false</mysql_connect_pool>
</driver>
</tpcc>
<tpch>
Expand All @@ -39,7 +47,7 @@
<mysql_tpch_pass>mysql</mysql_tpch_pass>
<mysql_tpch_dbase>tpch</mysql_tpch_dbase>
<mysql_num_tpch_threads>1</mysql_num_tpch_threads>
<mysql_tpch_storage_engine>innodb</mysql_tpch_storage_engine>
<mysql_tpch_storage_engine>innodb</mysql_tpch_storage_engine>
</schema>
<driver>
<mysql_total_querysets>1</mysql_total_querysets>
Expand All @@ -49,7 +57,7 @@
<mysql_update_sets>1</mysql_update_sets>
<mysql_trickle_refresh>1000</mysql_trickle_refresh>
<mysql_refresh_verbose>false</mysql_refresh_verbose>
<mysql_cloud_query>false</mysql_cloud_query>
<mysql_cloud_query>false</mysql_cloud_query>
</driver>
</tpch>
</mysql>
44 changes: 34 additions & 10 deletions src/generic/geninit.tcl
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
package require sqlite3
global hdb_version

#Get generic config data
set genericdict [ ::XML::To_Dict config/generic.xml ]
Expand All @@ -10,9 +11,40 @@ if { [ dict exists $genericdict sqlitedb sqlitedb_dir ] } {
set sqlitedb_dir ""
}

#Set hammerdb version to genericdict
set hdb_version_dict [ dict create version $hdb_version ]
dict append genericdict hdb_version $hdb_version_dict

#Try to get generic config data from SQLite
set genericdictdb [ SQLite2Dict "generic" ]
if { $genericdictdb eq "" } {
#No SQLite found, save genericdict from XML to SQLite
Dict2SQLite "generic" $genericdict
} else {
if { [ dict exists $genericdictdb hdb_version version ] } {
set sqlite_hdb_version [ dict get $genericdictdb hdb_version version ]
} else {
set sqlite_hdb_version "unknown"
}

#SQLite found, check whether the schema versions from SQLite and XML are consistent
if { $sqlite_hdb_version ne $hdb_version } {
puts "The existing SQLite DBs are from version $sqlite_hdb_version. SQLite DBs will be reset to $hdb_version."
foreach { dbname } { generic database db2 mariadb mssqlserver mysql oracle postgresql } {
set dbfile [ CheckSQLiteDB $dbname ]
#Remove SQLite file
file delete $dbfile
}
#After remove old SQLite, save genericdict to SQLite DB
Dict2SQLite "generic" $genericdict
} else {
#Use configration from SQLite
set genericdict $genericdictdb
}
}

#Load database config from SQLite database.db
set dbdict [ SQLite2Dict "database" ]

if { $dbdict eq "" } {
#Load database config from database.xml
set dbdict [ ::XML::To_Dict config/database.xml ]
Expand Down Expand Up @@ -42,16 +74,8 @@ foreach { key } [ dict keys $dbdict ] {
lappend dbsrclist "$key/$prefix\opt.tcl" "$key/$prefix\oltp.tcl" "$key/$prefix\olap.tcl" "$key/$prefix\otc.tcl" "$key/$prefix\met.tcl"
}

#Get generic config data
set genericdictdb [ SQLite2Dict "generic" ]
if { $genericdictdb eq "" } {
Dict2SQLite "generic" $genericdict
} else {
set genericdict $genericdictdb
}

#get_xml_data
set_globle_config $genericdict
set_global_config $genericdict

#Make generics global
tsv::set application genericdict $genericdict
Expand Down
Loading

0 comments on commit 7121bd4

Please sign in to comment.