Tsurugi 1.0.0-BETA4 をリリースしました。

1.0.0-BETA4では、1.0.0-BETA3までに発生していたいくつかの重要な問題を解消しています。

  • 3つ以上のLTXの競合状態を伴う特定のケースでSerializability違反が検出されない。
  • OSリソース制限超過などによりセッションの生成に失敗した場合にクラッシュすることがある。
  • データベース起動ユーザと異なるユーザでIPC接続を行った場合にいくつかのコンポーネントが正常に動作しない。
  • 特定条件下でINSERT OR REPLACEとDELETEのトランザクション競合結果が不正となる。
  • 特定の状況下で不正な `CC_OCC_PHANTOM_AVOIDANCE` エラーが発生しトランザクションが異常終了する。
  • 桁数の多いDECIMAL型の二項演算結果に誤差が発生する場合がある。
  • 浮動小数点数のNaNの比較ロジックが結合条件とそれ以外で一貫していない。
  • 仕様上変換可能ないくつかのキャスト変換がエラーとなる。
    https://github.com/project-tsurugi/tsurugidb/blob/master/docs/sql-features.md#cast-conversions
  • DECIMAL型の負の値をファイルにダンプした場合、結果が正しくないことがある。
また、1.0.0-BETA4では以下のようなケースに対する性能改善が行われています。

  • 複数のLTXの競合によりコミット待ちが発生する状況下において、待ち時間を短縮する最適化の適用。
  • OCCとLTXの競合時に、競合エラー検出のタイミング調整により競合エラーの発生頻度を低減。
  • セカンダリインデックスがあるテーブルに対してINSERT OR REPLACEでレコードを追加する際の性能を改善。
  • セカンダリインデックスを持つカラムに対する範囲検索時に適切な実行計画が選択されるよう改善。
  • トランザクションエンジンに対する最適化機能のデフォルト設定を変更。
    ※ この設定はユーザが直接変更することは非推奨ですが、一部のワークロードでこの変更が問題となる場合、以下のドキュメントに従って設定を変更することができます。
    https://github.com/project-tsurugi/shirakami/blob/master/docs/environment_variables.md

運用管理機能として、トランザクションログのメンテナンス用コマンド `tglogutil` を追加しました。 その他、トラブルシューティングに関する以下のドキュメントを追加しました。
その他、細かい安定性の向上や動作の改善などが行われています。
過去バージョンからの一般的なアップグレード手順については、以下のドキュメントを参照してくだいさい。