Tsurugi 1.5.0 をリリースしました。

概要

Tsurugi 1.5.0 では SQL関連機能として LIKE 演算子やいくつかのビルトイン関数の追加、互換性に関する改善などが行われました。
また、トランザクション関連機能では、前バージョンで正式機能に昇格したRTX並列スキャンに対して、クライアント側からトランザクション単位でタスク分割数を指定できるようになりました。

その他、本バージョンではいくつかの重要な不具合修正や安定性の向上を行っています。
前バージョンを利用するすべてのユーザーは本バージョンへのアップグレードを強く推奨します。

機能追加と改善

機能追加と改善 - SQL

機能追加と改善 - Transaction

  • RTX並列スキャン利用時にトランザクション単位でタスク分割数を指定できるよう対応
    • 各クライアントAPIや tgsql からRTX開始時にトランザクションオプションとしてタスク分割数を指定できるようになりました。
      • 例: tgsql では BEGIN READ ONLY WITH PARALLEL=8; のように指定することで、開始するトランザクション内でのタスク分割数を8に設定できます。
    • これにより、例えば大量データのスキャンを伴う可能性があるトランザクションでは、タスク分割数に大きな値を指定することでより高速なスキャンを行う、といったことが可能になります。ただしクエリー実行時には多数のタスクが同時に実行されることでサーバリソースに対する負荷が大きくなる可能性があります。
    • タスク分割数の指定に関する詳細については、以下のドキュメントを参照してください。

機能追加と改善 - Client

  • tgsql  \show table コマンドにおいて、以下の情報が表示されるよう対応
    • 各テーブルのプライマリキーに関する情報
  • Tsubakuro: LoadBuilder による列マッピング方法に BASE64 を追加

機能追加と改善 - Endpoint

  • セッション終了時に自動的に関連リソースを破棄
    • 従来 tgctl session shutdown によるセッション強制終了時やクライアントプロセスの強制終了時などで、セッション終了時に関連するトランザクションやステートメントリソースが自動的に破棄されずに残留してしまうことがありました。これにより、特にLTXに関連するリソースが残留することで他のトランザクションに影響を与えることがありましたが、セッション終了時に自動的に関連リソースを破棄するよう対応しました。
    • ただし、クライアントプロセスの強制終了の状況によってはサーバ側にセッションが残留することがあります。セッションの残留が発生した場合、サーバ側のセッションタイムアウト(デフォルトは5分)によってセッションが解放されます。このタイミングで関連リソースが合わせて解放されるため、関連リソースの解放はクライアントプロセスの終了から遅れることがあります。

機能追加と改善 - Distribution

  • 動作検証プラットフォームの変更
    • (試験的機能) AlmaLinux: 9.5 から 9.6 に変更
    • (試験的機能) Rocky Linux: 9.5 から 9.6 に変更
  • Clang 19 に対応 (前バージョンでは Clang 18 までに対応)
  • インストーラーで導入するJDKのバージョンを11から17に変更
    • インストーラーに同梱しているTsubakuro, Tanzawaのビルド時にはJDK11が利用されます。JDK11がインストールされていない環境では、これらのビルド時にはGradleのJava Toolchainを利用してJDK11が自動的にダウンロードされ、これが利用されます。

バグ修正

バグ修正 - SQL

  • SELECTリストに集約関数とプレースホルダが含まれるとSymbolAnalyzeExceptionが発生する

バグ修正 - Endpoint

  • セッションまたはトランザクションリソースの残留時に tgctl shutdown が正常に動作しないことがある
    • 上述の「セッション終了時に自動的に関連リソースを破棄」に関連し、セッションタイムアウトによるセッションの解放が完了するまで tgctl shutdown の処理が完了しないことがあります。

バグ修正 - Transaction

  • オンラインコンパクションツール実行後にレコードを削除し、その後データベースを再起動すると削除したレコードが復元されることがある

バグ修正 - Client

  • Tsubakuro/Javaにおいて、IPC接続でセッション接続のタイムアウト時間にLong.MAX_VALUEミリ秒を指定した場合、2回目のセッション接続がタイムアウトにより異常終了する

アップグレードについて

クライアント互換性リスト

Tsurugi 1.5.0 では 以下のクライアントに対応しています。
Tsurugi のアップグレードに併せて、必要に応じて各クライアントをアップグレードしてください。

クライアントバージョン
Tsubakuro/Java1.10.0
Iceaxe1.10.0
Tanzawa1.10.0
Tsubakuro/Rust0.3.0
Tsurugi MCP Server0.2.0

アップグレード手順

旧バージョンからのアップグレード手順については、以下のドキュメントを参照してください。

その他

本バージョンにおける変更内容の一覧は、以下のChangelogを参照してください。

本バージョンに対する既知の問題、および本バージョンにて修正された問題の補足情報については、以下のリンクを参照してください。