なからなLife

geekに憧れと敬意を抱きながら、SE、ITコンサル、商品企画、事業企画、管理会計、総務・情シス、再び受託でDB屋さんと流浪する人のブログです。

HammerDB 4.0がリリースされていた - 設定まわりの変化

HammerDB 4.0がリリースされていた - リリースノートチェック - なからなLife
HammerDB 4.0がリリースされていた - 環境構築 - なからなLife
の続きです。

基本的な手順は同じなので、差があるところだけ

対象データベースからRedisが消えている件
hammerdb>dbset db help
Unknown prefix help, choose one from ora mssqls db2 mysql pg

Redisが消えてますね。


で、「config.database.xmlコメントアウトを外すと選択できるようになる」とのことでしたので、早速そのファイルを覗きに行くと、何やらもう1つ知らないものが。

どうやら、Apache trafodion(https://trafodion.apache.org/)に対応しようとしている形跡があります。
もちろんサポート外だからコメントアウトされているのだと思います。ドキュメント上にも一切出てきません(Redisもマニュアルから削除されてます)

trafodion環境をサクっと作れる人がいたら、動くかどうか試してみて下さい。


ベンチマーク種別の名称変更

ベンチマークの種類を選択するところ、名称変更の影響は、以下のように従来の名称「TPC-C」「TPC-H」でも通るようになっています。

hammerdb>dbset bm help
Unknown benchmark HELP, choose one from TPROC-C (or compatible names TPC-C)

「print dict」したときに出てくる設定カテゴリは相変わらず「tpcc」、「tpch」のままですね。


余談ですが、ここまで「help」って打っているところ、別にhelpモードじゃなくて、エラー起こしてメッセージ表示させているだけです。。。


MySQL TPC-C (TPROC-C)

項目が増えています。

hammerdb>print dict
Dictionary Settings for MySQL
connection {
 mysql_host   = 127.0.0.1
 mysql_port   = 3306
 mysql_socket = /tmp/mysql.sock
}
tpcc       {
 mysql_count_ware       = 1
 mysql_num_vu           = 1
 mysql_user             = root
 mysql_pass             = mysql
 mysql_dbase            = tpcc
 mysql_storage_engine   = innodb
 mysql_partition        = false
 mysql_prepared         = false
 mysql_total_iterations = 1000000
 mysql_raiseerror       = false
 mysql_keyandthink      = false
 mysql_driver           = test
 mysql_rampup           = 2
 mysql_duration         = 5
 mysql_allwarehouse     = false
 mysql_timeprofile      = false
 mysql_async_scale      = false
 mysql_async_client     = 10
 mysql_async_verbose    = false
 mysql_async_delay      = 1000
 mysql_connect_pool     = false

「connection」に「mysql_socket」が、「tpcc」に「mysql_prepared」「mysql_async_scale」「mysql_async_client」「mysql_async_verbose」「mysql_async_delay」「mysql_connect_pool」が増えています。


増えた項目の説明をざっくりと。

名称 説明 初期値
mysql_socket いわゆるローカル接続(クライアント=HammerDBとMySQLサーバーが同じサーバー上にいるとき、TCP/IPの代わりにソケットファイルで接続する、そのファイルの場所を指定。 /tmp/mysql.sock
mysql_prepared サーバーサイドプリペアドステートメント使用オプション。新機能「XML意味 Connect Pool(クラスター環境での複数インスタンス接続)」実施時にはtrue必須。 false
mysql_async_scale イベント駆動型スケーリング機能を有効化する。連動してKeying and ThinkingTimeオプションも有効になる。 false
mysql_async_client 各仮想ユーザーがデータベースに接続して管理するセッションの数を構成する際の、非同期ユーザの数。num_vu*async_clientがアクティブ接続数になる。 10
mysql_async_verbose キーイングにかかった時間や思考時間などの非同期操作を報告する。 false
mysql_async_delay 各仮想ユーザーが各非同期クライアントにログオンする前に許可する遅延。 1000
mysql_connect_pool クラスター構成における各接続プールに対する挙動をxmlで制御するか否かのスイッチ。 false
MySQL TPC-H (TPROC-H)

項目の増減変更はありません。

PostgreSQL TPC-C (TPROC-C)

項目が増えています。

hammerdb>print dict
Dictionary Settings for PostgreSQL
connection {
 pg_host = localhost
 pg_port = 5432
}
tpcc       {
 pg_count_ware       = 1
 pg_num_vu           = 1
 pg_superuser        = postgres
 pg_superuserpass    = postgres
 pg_defaultdbase     = postgres
 pg_user             = tpcc
 pg_pass             = tpcc
 pg_dbase            = tpcc
 pg_tspace           = pg_default
 pg_vacuum           = false
 pg_dritasnap        = false
 pg_oracompat        = false
 pg_storedprocs      = false
 pg_total_iterations = 1000000
 pg_raiseerror       = false
 pg_keyandthink      = false
 pg_driver           = test
 pg_rampup           = 2
 pg_duration         = 5
 pg_allwarehouse     = false
 pg_timeprofile      = false
 pg_async_scale      = false
 pg_async_client     = 10
 pg_async_verbose    = false
 pg_async_delay      = 1000
 pg_connect_pool     = false
}


「tpcc」に「pg_tspace」「pg_async_scale」「pg_async_client」「pg_async_verbose」「pg_async_delay」「pg_connect_pool」が増えています。

「pg_tspace」以外は、MySQL側に増えたものと同じなので割愛します。

「pg_tspace」は、スキーマを作成するテーブルスペース名で、デフォルトは「pg_default」です。



PostgreSQL TPC-H (TPROC-H)

「pg_tspace」が増えています。TPC-Cのものと同じですので、割愛します。



Oracle TPC-C (TPROC-C)

項目が増えています。

tpcc側に5つ、MySQLと基本的に同じ内容なので、割愛します。

Oracle TPC-H (TPROC-H)

項目の増減変更はありません。

Redis TPC-C (TPROC-C)

項目が増えています。

tpcc側に4つ、connect_poolがないだけで、MySQLと基本的に同じ内容なので、割愛します。

Redisはもう非推奨でサポートしないって言ったのに、律儀にパラメータ増えてる。(そのとおり動くかは不明)

Redis TPC-H (TPROC-H)

従来どおり、RedisではTPC-Hを選択できません。

Trafodion TPC-C (TPROC-C)

ドキュメントに記載がないのですが、print dictすると項目が出てきます。

Trafodion TPC-H (TPROC-H)

TrafodionではTPC-Hを選択できません。

vmconf

buildした環境に対して負荷を走らせる仮想クライアント「VM」の設定情報は各DB、ワークロードともに共通で「print vmconf」で確認できますが、この設定情報の項目について、変更はありませんでした。



設定関係はここまでです。



まとめ

  • 新機能に関連した項目が増えている
  • サポート外のRedisと、さらに隠れキャラのTrafodionについて、設定項目は追加されているが、ドキュメントは一切なし。

次は、とりあえず動かしてみて、普通に動くことを確認したら、新機能の方に移っていこうと思います。