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

概要

Tsurugi 1.7.0では、Javaの標準的なデータベース接続APIであるJDBCに対応しました。
これに伴い、JDBC 4.3 をベースにした JDBCドライバ Tsurugi JDBC を公開しました。

Tsurugi JDBCを利用することによって、ORMフレームワーク、アプリケーションサーバー、開発ツールなどの豊富なJavaエコシステムとの連携や、レガシーシステムをはじめとする他のRDBMS向けに開発されたJavaアプリケーションの互換性が大きく向上します。
また、接続オプションなどを介して多くのTsurugi固有機能も利用可能になっています。

Tsurugiでは従来より、高レベルのJava APIとして Iceaxe を提供しています。
Iceaxeは、Tsurugi固有の機能(特にTsurugiのトランザクション関連機能)を最大限に活用しつつ、高性能なアプリケーションの開発を容易にすることを目的としたライブラリです。
このような方向性から、IceaxeのAPIはJDBCとは異なる独自のインターフェースを提供しています。

Tsurugi JDBCとIceaxeはそれぞれ異なる目的を持つデータベース接続ライブラリとして補完関係にあります。用途に応じて適切なライブラリを選択してご利用ください。

サーバ側では、JDBCの対応にあたって互換性に関する機能追加や調整を行ったほか、重要な不具合修正や安定性の向上を行っています。
前バージョンを利用するすべてのユーザーは本バージョンへのアップグレードを強く推奨します。

機能追加と改善

機能追加と改善 - SQL

  • 非等価演算子 != に対応
    • 従来から提供していた 非等価演算子 <> と機能は同じです。SQL 標準では <> を採用していますが、多くの LLM が SQL を生成する際に != を採用するため対応しました。
  • SQL実行エンジン上で AtomType.UNKNOWN に対する処理を追加
    • AtomType.UNKNOWN は SQL における NULL 値を表す式の型です。プレースホルダに整数型や文字列型などを指定せずに NULL 値を利用したい場合、これを利用してください。

機能追加と改善 - Transaction

  • トランザクションエンジンのGC対象の検出アルゴリズムを改善し、GC処理のオーバーヘッドを削減

機能追加と改善 - Client

機能追加と改善 - Distribution

  • インストーラーで環境にインストールする Apache Arrow のバージョンを 16.1.0 から 21.0.0 に変更
  • インストール構成から現在利用されていないモジュール Ogawayama Bridge を削除

バグ修正

バグ修正 - SQL

  • データベース起動直後にサイズが大きいBLOB/CLOBを並列に処理するとデータベースが異常終了することがある
  • REAL 型同士の一部の二項演算を伴うクエリーがエラーとなり、クライアントに応答が返らない
  • DECIMAL 型同士の演算で算術エラーが発生した場合にエラーメッセージが想定外エラーとなることがある

バグ修正 - Transaction

  • Ubuntu 22.04上で異なるファイルシステム間での tgctl restore backup が失敗する

バグ修正 - Endpoint

  • IPC接続利用時に、まれに接続情報の共有メモリ格納時に不整合が発生することでデータベースが異常終了することがある

バグ修正 - Client

  • Tsubakuro/Java において、まれに不正なタイムアウトが発生する
  • データベース停止時に tgctl backup create を実行し失敗するとデータベースが不正に起動したままになる
  • Tsubakuro/Java でタイムアウト時間に 0 を指定して FutureResponse.await() を呼ぶと高頻度で不正にタイムアウトする
  • Tsubakuro/Java でTCP接続利用時に FutureResponse  get せず close するとまれにデータベースが異常終了することがある

アップグレードについて

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

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

Client Version
Tsubakuro/Java 1.11.0+
Iceaxe 1.11.0+
Tanzawa 1.11.0+
Tsubakuro/Rust 0.5.0+
Tsurugi MCP Server 0.3.0+
Tsurugi JDBC 0.1.0+

アップグレード手順

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

その他

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

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