ScalarDB 3.17 リリースノート
注記
このページは英語版のページが機械翻訳されたものです。英語版との間に矛盾または不一致がある場合は、英語版を正としてください。
このページには、ScalarDB 3.17 のリリースノートのリストが含まれています。
v3.17.2
発売日: 2026年3月6日
まとめ
このリリースには、いくつかの改善点とバグ修正が含まれています。
Community edition
改善点
- コンセンサスコミットプロトコルにおけるワンフェーズコミット最適化の適用範囲を拡張しました。これにより、トランザクションが後で更新するレコードのみを読み取る場合でも、SERIALIZABLE 分離レベルでワンフェーズコミットを使用できるようになり、読み取り-修正-書き込みワークロードのパフォーマンスが向上します。(#3295)
バグの修正
- SERIALIZABLE 分離レベルを使用する場合に、Oracle データベースで明示的なコミットを追加し、各操作後のスナップショット更新を保証しました。(#3294)
- Jackson ライブラリをアップグレードしてセキュリティ問題を修正しました: GHSA-72hv-8253-57qq (#3394)
Enterprise edition
バグの修正
ScalarDB Cluster
- バッチ操作でピギーバックコミットを使用した場合に、コミット競合が発生した際に
CrudExceptionがスローされる問題を修正しました。これにより、クライアントはコミット競合を適切に検出して処理できるようになりました。 - ピギーバックコミットを使用した
batch()が予期しない gRPC エラーでCrudExceptionをスローするバグを修正しました。これにより、ピギーバックコミットが有効な場合にトランザクションのステータスが実際には不明であるにもかかわらず、クライアント側で誤ったエラー処理が行われる可能性がありました。 grpc_health_probeをアップグレードしてセキュリティ問題を修正しました: CVE-2025-68121, CVE-2025-61726, CVE-2025-61728, CVE-2025-61729, および CVE-2025-61730- Kubernetes Java Client をアップグレードしてセキュリティ問題を修正しました: CVE-2024-29371
- Kubernetes Java Client から
com.microsoft.azure:adal4jを除外してセキュリティ問題を修正しました: CVE-2023-52428, CVE-2021-31684, および CVE-2023-1370 - Jackson ライブラリをアップグレードしてセキュリティ問題を修正しました: GHSA-72hv-8253-57qq
ScalarDB SQL
- ORDER BY および HAVING 句で曖昧な列名が検出されました。
StatementUtils.appendTerm()でDATE、TIME、TIMESTAMP、およびTIMESTAMPTZ値を処理する際に発生していたClassCastExceptionを修正しました。これらの値は、誤って文字列にキャストされるのではなく、正しく文字列リテラルとしてフォーマットされるようになりました。SelectStatement.toSql()を修正し、SUM()やCOUNT()などの集約関数を使用した ORDER BY 句を正しく生成するようにしました。以前は、列ベースの並べ替えのみが処理されており、関数ベースの並べ替えを使用した場合に不正な SQL 出力が生成されていました。
v3.17.1
発売日: 2025年12月09日
まとめ
このリリースは主にいくつかのマイナーなバグ修正と小さな改善で構成されています。
Community edition
機能強化
AuthAdmin.getRole(roleName)を追加しました。(#3238)
改善点
- アクティブトランザクション管理を有効/無効にするための
scalar.db.active_transaction_management.enabled設定オプションを追加しました(デフォルト:true)。(#3233)
バグの修正
- Oracle において、通常 BOOLEAN データに使用される
NUMBER(1)データ型を使用する列を持つテーブルをインポートする際、その列を ScalarDB Schema Loader のoverride-columns-type設定を使用して ScalarDB BOOLEAN にマッピングできるようになりました。(#3239) - Object Storage アダプターのオプションの問題を修正しました。(#3237)
- Object Storage での許可される最大文字列長を増加させる修正を行いました。(#3248)
- Object Storage アダプターでのデータサイズ制限のエラーメッセージに表示される上限値を更新しました。(#3264)
Enterprise edition
機能強化
ScalarDB Cluster
- 名前で単一のロールを取得する
getRole()API と同等の機能を追加しました。
ScalarDB SQL
Metadata.getRole(roleName)を追加しました。
バグの修正
ScalarDB Cluster
GRANT ROLEコマンドを冪等にし、重複した権限付与を許可し、再付与時にWITH ADMIN OPTIONへのアップ グレードができるようになりました。- トランザクションが期限切れになった際にポーズ機能が正しく動作しないバグを修正しました。
- scalar-metering をアップグレードすることで、ScalarDB Cluster が Omnistrate 環境にデプロイできないバグを修正しました。
v3.17.0
発売日: 2025年11月26日
まとめ
このリリースには、多くの機能強化、改善、セキュリティ問題の修正、およびバグ修正が含まれています。
Community edition
機能強化
- add column 操作において
ifNotExistsオプションのサポートを追加しました。(#2960) - ScalarDB での列削除のサポートを追加しました。(#2983)
- ScalarDB での列名変更のサ ポートを追加しました。(#2990)
- ScalarDB でのテーブル名変更のサポートを追加しました。(#3021)
- ScalarDB での列タイプ変更のサポートを追加しました。(#3028)
- PostgreSQL JDBC ドライバーを使用することで、AlloyDB バージョン 15 および 16 が基盤ストレージとしてサポートされるようになりました。(#3029)
- MySQL Connector/J JDBC ドライバーを使用することで、TiDB バージョン 6.5、7.5、および 8.5 が基盤ストレージとしてサポートされるようになりました。(#3001)
- Transaction API で複数の操作を実行するバッチ操作のサポートを追加しました。(#3082)
- Azure Blob Storage に対する管理操作のサポートを追加しました。(#3104)
- Azure Blob Storage に対するデータ操作のサポートを追加しました。(#3124)
- Amazon S3 アダプターを追加しました。(#3141)
- Cassandra 4 および 5 の統合テストを追加しました。(#3143)
- Google Cloud Storage アダプターを追加しました。(#3179)
- Storage 抽象レイヤーにバーチャルテーブルを導入しました。バーチャルテーブルは、2つのソーステーブルのプライマリキーでの論理結合を公開することで、別々のテーブルに格納された関連データを単一の論理エンティティとしてアクセスできるようにします。(#3180)
StorageInfoインターフェースにisConsistentVirtualTableReadGuaranteed()メソッドを追加し、ストレージがバーチャルテーブルの一貫した読み取りを保証するかどうかを示すようにしました。(#3204)- Consensus Commit でトランザクションメタデータの分離サポートを追加しました。この機能により、ユーザーはスキーマの変更やデータ移行なしに、既存データに対して Consensus Commit ScalarDB トランザクションを実行できるようになります。(#3207)
改善点
- Db2 を使用する場合、Db2 から ScalarDB BLOB 列に使用されるデフォルトのデータ型が
VARBINARY(32672)からBLOB(2G)に変更され、最大 2GB のデータを格納できるようになりました。これにより、BLOB 列はパーティションキー、クラスタリングキー、セカンダリインデックス、またはクロスパーティション スキャン(つまり ScanAll)操作での順序列として使用できないという新しい制限が生じます。(#3000) - Oracle を使用する場合、Oracle から ScalarDB BLOB 列に使用されるデフォルトのデータ型が
RAW(2000)からBLOBに変更され、最大 2GB のデータを格納できるようになりました。これにより新しい制限が導入されます:BLOB 列は、パーティションキー、クラスタリングキー、セカンダリインデックス、または Get や Scan 操作の条件として使用できなくなります。(#3070) - JDBC トランザクションマネージャーを使用する場合、設定
scalar.db.jdbc.isolation_levelが設定されていない場合に JDBC トランザクション分離レベルを SERIALIZABLE に設定しないようになりました。デフォルトは、ストレージによって設定されたデフォルト値になります。(#3076) - ScalarDB Data Loader CLI の Maven パブリッシュサポートを追加し、Maven アーティファクトとしての配布を可能にしました。(#3120)
バグの修正
- トランザクションのコミット時に、実際にはコミットされているにもかかわらず CommitException がスローされるバグを修正しました。(#2826)
- Cassandra におけるミューテーションのエラーハンドリングを修正しました。(#2827)
- ワンフェーズコミットでグループコミットが正しく動作しないバグを修正しました。(#2832)
- データローダーの CSV エクスポートで
--no-headerオプションが無視される問題を修正しました。(#2924) - Get と Scan 操作がトランザクション読み取りと Serializable 検証で異なって準備される不整合を修正しました。これにより、一貫しない順序が発生し、Serializable 検証の失敗を引き起こす可能性がありました。(#3113)
- ログ動作を修正するために、alloydb 依存関係から slf4j-api を除外しました。(#3119)
--log-success引数を非推奨とし、新しい置換オプション--enable-log-successを導入しました。(#3117)- maxThreads が必須として扱われる不正な検証を修正しました。(#3128)
- Consensus Commit トランザクションマネージャーで分離レベルが SERIALIZABLE の場合に、セカンダリインデックスを使用した Get と Scan 操作を禁止しました。これらの操作は結果整合性として定義されており、SERIALIZABLE 分離が要求する厳密な一貫性を保証できないためです。(#3133)
- 4つの CLI 引数のデフォルト値を含むように import コマンドのヘルプテキストを更新しました。(#3059)
- インポート時のトランザクション処理中の予期しない例外を適切に処理するようにデータローダーを修正し、トランザクションが中断され、適切なコンテキストでエラーがログに記録されるようにしました。(#3183)
- Data Loader インポートのストレージモードでの失敗ログ書き込み問題を修正しました。(#3189)
- CSV インポートでの非TEXT列に対する "null" 値の処理を修正しました。(#3160)
Enterprise edition
機能強化
ScalarDB Cluster
- ScalarDB Cluster で add column 操作における
ifNotExistsオプションのサポートを追加しました。 - ScalarDB Cluster での列削除のサポートを追加しました。
- ScalarDB Cluster での列名変更のサポートを追加しました。
- ScalarDB Cluster でのテーブル名変更のサポートを追加しました。
- ScalarDB Cluster での列タイプ変更のサポートを追加しました。
- ScalarDB Cluster のトランザクションサービスで複数の操作を実行するバッチ操作のサポートを追加しました。
- ScalarDB Cluster で gRPC 接続エージングを制御する設定オプションを追加しました。ユーザーは
scalar.db.cluster.node.grpc.max_connection_age_millisとscalar.db.cluster.node.grpc.max_connection_age_grace_millisを設定して、gRPC 接続がリフレッシュされ、適切 に閉じられるタイミングを細かく調整できるようになりました。 - ScalarDB Cluster Data Loader CLI のサポートを、Docker イメージビルド、脆弱性スキャン、リリースアーティファクト公開を含む完全な CI/CD パイプライン統合とともに追加しました。
- ScalarDB Cluster でロールベースアクセス制御 (RBAC) のサポートを追加しました。
- 複数の名前付きインスタンスの埋め込みストアとモデルの設定と使用のサポートを追加しました。
ScalarDB SQL
- ScalarDB SQL で集約機能をサポートしました。
- ScalarDB SQL の
ADD COLUMNステートメントでIF NOT EXISTS句のサポートを追加しました。 - ScalarDB SQL での列削除のサポートを追加しました。
- ScalarDB SQL での列名変更のサポートを追加しました。
- ScalarDB SQL でのテーブル名変更のサポートを追加しました。
- ScalarDB SQL での列タイプ変更のサポートを追加しました。
- SUM、MIN、MAX、および AVG 関数を追加しました。
- HAVING 句をサポートしました。
改善点
ScalarDB Cluster
- すべての脆弱性チェックワークフローから
CR_PATシークレットを削除しました。 - 埋め込みクライアントライブラリの最小 JDK を 17 に引き上げました。
- 最新の Lang4j バージョン 1.8.0 に更新しました。
ScalarDB SQL
WITH GRANT OPTIONを使用する代替手段として、GRANTステートメントの権限リストで直接GRANT OPTIONを指定するサポートを追加しました。
バグの修正
ScalarDB Cluster
- update または upsert 操作で data tag が指定されていない場合でも更新されてしまうバグを修正しました。
- リモートレプリケーション機能のメトリクスが不足していた問題を修正しました。
replication-cliの Jar ファイルが不足していた問題を修正しました。- ABAC が有効な場合に、ABAC ポリシーが設定されていないテーブルで put 操作を実行すると
UnsupportedOperationExceptionがスローされるバグを修正しまし た。 - セキュリティ問題を修正するために
grpc_health_probeをアップグレードしました。CVE-2025-22874 - ワンフェーズコミット最適化が有効な場合にレプリケーション機能が開始されないようにバリデーションを追加しました。
- 重複する列名が存在する場合に SQL API の
ResultSetが不正な結果を返すバグを修正しました。 - セキュリティ問題を修正するために
grpc_health_probeをアップグレードしました:CVE-2025-47907、CVE-2025-58183、CVE-2025-58186、CVE-2025-58187、および CVE-2025-58188。