メインコンテンツへスキップ
見出し画像

【検証】次世代高速RDB劔"Tsurugi"を用いて200万件を超える業務データを処理した結果

    概要

    劔“Tsurugi”(以下、Tsurugi)は、多重処理においてその性能を最大限に発揮するよう設計された国産のリレーショナルデータベースで、最新のハードウェアアーキテクチャに最適化されており、メニーコア環境での処理能力を高めることができます。
    この特性により、アプリケーションは並列処理を活用して、高速かつ効率的にデータを処理することが可能です。

    本検証では、この特性を活かして多数の処理を同時に実行できるように実装したアプリケーションで、実際の業務データを用いて200万件を超える大量データ処理を行い、Tsurugiのスレッド数設定による処理時間の違いを測定・分析しました。

    検証環境

    ・ クラウド: AWS EC2インスタンス r7a.4xlarge
    ・ vCPU の数: 16
    ・ メモリ: 128(GiB)
    ・ Java: openjdk version "17.0.15"
    ・ Tsurugi : 1.5.0(2025-07-03T03:22Z)

    処理について

    1. Tsurugiに接続します。

    2. 原価影響額の計算対象のリストを取得します。

    3. 取得した計算対象リストに対して、個別の処理タスクを生成します(BOMを展開して子ノードを再帰で処理していく内容で、詳細については「処理フロー図」を参照してください)。
      ・ タスク数: 209,297

    4. 生成されたタスクのリストを指定されたスレッド数を持つスレッドプールに投入し、並列で原価影響額の計算を実行し、その結果をレコードを追加します。
      ・ 作成されたレコード件数: 2,132,133
      ・ 出力先テーブルのカラム数:46(各種 VARCHAR, BIGINT, DECIMAL, TIMESTAMP etc...)

    画像

    cf. 処理フロー図

    画像

    実行結果

    処理結果は下記のとおりとなりました。

    画像

    スレッド数「1」 では、1時間以上経過しても処理が終わりませんでした。
    スレッド数を増やすほど処理時間は短縮されますが、適度なスレッド数を超えると逆効果になり、処理時間がかえって伸びる傾向を確認しました。

    今回のケースでは、スレッド数36~52付近(vCPU数の3〜4倍程度)が最短になりました。
    最短のケースでは、2,132,133件のレコードが作成が13分39秒で処理が完了していますので、1秒あたり「約2,603件」のレコードを処理している、という結果になりました。

    まとめ

    今回の検証から、Tsurugi を用いたバッチ処理では以下のことが分かりました。

    •  Tsurugi の真価は並列処理にあり、単一スレッドでは完了しなかった処理が多重スレッドでは十数分で完了

    •  スレッド数は多ければ良いというものではなく、適切な設定が必要

    • 最適なスレッド数の見極めがパフォーマンス最大化の鍵になる

    Tsurugi は大量データの高速処理に特化した構造を持つデータベースであり、今後の大規模データ処理やリアルタイム分析にも大きな効果を期待できます。


    その他の劔"Tsurugi"を使う際に役立つTips集はコチラ!

    次世代高速RDB劔"Tsurugi"は、オープンソースで公開中です。
    どなたでも無料でダウンロードできますので、是非触ってみてください。

    ダウンロードはコチラから
    https://www.tsurugidb.com/

    あなたへのおすすめ