ScalarDB 3.16 リリースノート
注記
このページは英語版のページが機械翻訳されたものです。英語版との間に矛盾または不一致がある場合は、英語版を正としてください。
このページには、ScalarDB 3.16 のリリースノートのリストが含まれています。
v3.16.6
リリース日: 2026年8月2日
まとめ
このリリースでは、非推奨ポリシーを更新し、repairTable の動作を改善し、Consensus Commit、クラスターのロールバック/一時停止、SQL メタデー タキャッシュの問題を修正し、Community エディションと Enterprise エディション全体でセキュリティの脆弱性に対処するためにいくつかの依存関係をアップグレードしました。
Community edition
改善点
- 非推奨ポリシーを変更し、API と設定に非推奨のマーク付けされたものは 5.0.0 ではなく 4.0.0 で削除されるようになりました。 (#3520)
- メタデータが既に最新の状態の場合にテーブルのメタデータの再書き込みをスキップする (Cosmos DB の場合は、コンテナーのインデックスポリシーが既に一致する場合にその更新もスキップする) ように
repairTableを改善し、不要な書き込みを回避するようにしました。 (#3613)
バグの修正
- 同じインデックス値を持つ別のレコードが同時に削除および挿入されている場合に、セカンダリインデックスを使用した
Get操作がIllegalArgumentExceptionで失敗する可能性がある Consensus Commit の問題を修正しました。 (#3607) - 読み取り専用でのコーディネーター書き込み省略が無効で、コーディネーターのグループコミットが有効な場合に、読み取り専用トランザクションが失敗する可能性がある Consensus Commit の問題を修正しました。 (#3614)
- コーディネーターのグループコミット機能が有効になっている場合に、
DistributedTransactionManager.rollback(String)/abort(String)を使用して ID でインフライトのグループコミットされたトランザクションをアボートすると、その操作が失われる可能性があるバグを修正しました。 (#3619) - lazy recovery 中に書き込みトランザクションが同時にコミットされたレコードの読み取りが、古い (コミット前の) 値を返す可能性がある Consensus Commit トランザクションマネージャーの問題を修正しました。 (#3621)
- Jackson、Netty、Azure Cosmos DB、および Azure Blob Storage ライブラリをアップグレードしてセキュリティ問題を修正しました: CVE-2026-42579, CVE-2026-42583, CVE-2026-42584, CVE-2026-42587, CVE-2026-44249, CVE-2026-45416, CVE-2026-45674, CVE-2026-47691, CVE-2026-50010, CVE-2026-54512, CVE-2026-54513, CVE-2026-55831, CVE-2026-55833, CVE-2026-56745, CVE-2026-59901, and GHSA-r7wm-3cxj-wff9 (#3754)
- PostgreSQL JDBC ドライバーおよび Netty ライブラリをアップグレード してセキュリティ問題を修正しました: CVE-2026-42198, CVE-2026-42579, CVE-2026-45674, CVE-2026-47691, and CVE-2026-54291 (#3760)
Enterprise edition
改善点
ScalarDB Cluster
- 非推奨ポリシーを変更し、非推奨とマーク付けされた API は 5.0.0 ではなく 4.0.0 で削除されるようになりました。
バグの修正
ScalarDB Cluster
- クラスターのリクエスト転送ホップ制限を超えた
rollbackが失敗を表面化する代わりにサイレントに成功として報告されるバグを修正しました。これにより、lazy recovery までレコードが prepared 状態のままになる可能性がありました。 - クラスターノードまたはトランザクションコーディネーターの一時停止がノードが一時停止されていないにもかかわらず成功と報告されるレースコンディションを修正しました。これは、一時停止解除または別の一時停止リクエストが同時に発行された場合、および以前の一時停止がすでに成功した後に未処理リクエストを待機する一時停止がタイムアウトした場合に発生する可能性がありました。
- Jackson および Netty ライブラリをアップグレードしてセキュリティ問題を修正しました: CVE-2026-42579, CVE-2026-42583, CVE-2026-42584, CVE-2026-42587, CVE-2026-44249, CVE-2026-45416, CVE-2026-45674, CVE-2026-47691, CVE-2026-50010, CVE-2026-54512, CVE-2026-54513, CVE-2026-55831, CVE-2026-55833, CVE-2026-56745, CVE-2026-59901, and GHSA-r7wm-3cxj-wff9
- Bouncy Castle ライブラリおよび grpc_health_probe バイナリをアップグレードしてセキュリティ問題を修正しました: CVE-2025-14813, CVE-2026-5598, CVE-2026-25681, CVE-2026-27136, CVE-2026-27145, CVE-2026-33811, CVE-2026-33814, CVE-2026-39820, CVE-2026-39821, CVE-2026-39822, CVE-2026-39836, CVE-2026-42499, and CVE-2026-42504
ScalarDB SQL
CachedMetadata#invalidateNamespaceNamesCache()が実際に名前空間のキャッシュリストを無効にしなかった問題を修正しました。これによりSHOW NAMESPACESおよび関連操作がキャッシュ TTL が期限切れになるまで古い結果を返す可能性がありました。
v3.16.5
リリース日: 2026年4月15日
概要
このリリースには、いくつかの改善点とバグ修正が含まれています。
破壊的変更
- 既存のテーブルは新しい before-image セカンダリインデックスを作成するために
repairTable()が必要です。 Consensus Commit でのインデックスベースのGet、Scan、およびScanAllは、コンパニオンbefore_<col>インデックスに依存するようになりました。既存のテーブルそれぞれでrepairTable()を実行するまで、ScalarDB はスタートアップ時に警告をログに記録し、インデックスベースの読み取りは前の動作にフォールバックします。これにより、インデックス付き列が同時に更新されているレコードを見逃す可能性があります。設定scalar.db.consensus_commit.index.eventually_consistent_read.enabledはオプトアウトとして提供されていますが、新しいワークロードには推奨されません。 - MySQL Connector/J が MariaDB Connector/J に置き換わりました。 SSL はデフォルトで有効になりません。MySQL 8.0 以降に
caching_sha2_password認証で接続する場合は、JDBC URL にsslMode=REQUIREDまたはallowPublicKeyRetrieval=trueを追加してください。jdbc:mysql://URL の場合、ScalarDB が互換性のために自動的にpermitMysqlSchemeを付加するため、アクションは不要です。
Community edition
改善点
- ライセンスの問題により、MySQL Connector/J を MariaDB Connector/J に置き換えました。 (#3428)
- Consensus Commit プロトコルにおけるワンフェーズコミット最適化の適用範囲を拡張しました。これにより、トランザクションが後で更新するレコードのみを読み取る場合でも、SERIALIZABLE 分離レベルでワンフェーズコミットを使用できるようになり、読み取り-修正-書き込みワークロードのパフォーマンスが向上します。 (#3295)
- DynamoDB のセカンダリインデックス列に null 値を設定するサポートを追加しました。null 値が設定されると、属性はアイテムから削除され、レコードはセカンダリインデックスのスキャンに表示されなくなります。 (#3326)
- TIME (マイクロ秒精度)、TIMESTAMP (ミリ秒精度)、および TIMESTAMPTZ (ミリ秒精度) 列値を持つレコードの挿入または更新時に、範囲外の精度を切り捨てるようになり、例外がスローされなくなりました。 (#3393)
- Consensus Commit におけるインデックスベースの Get および Scan 操作で、PREPARED または DELETED 状態のレコードを見逃す可能性がある問題を修正しました。これにより、before-image セカンダリインデックスのチェックが追加されました。 (#3419)
- Consensus Commit におけるインデックスベースの Get、Scan、および ScanAll 操作で、before-image インデックスが存在する場合に SERIALIZABLE 分離レベルをサポートするようになりました。既存のテーブルに対して before-image インデックスを作成するには、
repairTable()を実行してください。 (#3463) - JDBC インデックス名が基盤となるデータベースでサポートされる最大識別子長を超える場合、ハッシュを使用して短縮されるようになりました。 (#3481)
バグの修正
- Netty ライブラリをアップグレードしてセキュリティ問題 を修正しました: CVE-2026-33870 および CVE-2026-33871 (#3452)
- Lazy リカバリが PREPARED レコードをロールバックした後、after-image インデックス値がクエリに一致しても before-image (復元された) 値が一致しない場合に、インデックスベースの Get および Scan 操作が不正確な結果を返す可能性があるバグを修正しました。 (#3488)
Enterprise edition
改善点
ScalarDB SQL
- TIMESTAMPTZ リテラルを更新し、UTC タイムゾーン
Z文字の前のスペース文字をオプションにしました。例えば、2021-03-04 12:30:45.123Zが現在の形式2021-03-04 12:30:45.123 Zに加えて受け入れられるようになりました。また、TIMESTAMPTZ 列を選択する際、値はZの前にスペースを入れずに表示されます。 - CLI モジュールのシャドウ JAR が不必要に GitHub Packages に公開される問題を修正しました。
- TIME (マイクロ秒精度)、TIMESTAMP (ミリ秒精度)、および TIMESTAMPTZ (ミリ秒精度) 列値を持つレコードの挿入または更新時に、範囲外の精度を切り捨てるようになり、例外がスローされなくなりました。
バグの修正
ScalarDB Cluster
grpc_health_probeをアップグレードしてセキュリティ問題を修正しました: CVE-2025-59250 および CVE-2026-25679- Netty ライブラリをアップグレードしてセキュリティ問題を修正しました: CVE-2026-33870 および CVE-2026-33871
grpc_health_probeをアップグレードしてセキュリティ問題を 修正しました: CVE-2026-34986
ScalarDB SQL
- CREATE TABLE ステートメントで重複する列名が許可されるバグを修正しました。
- 時間関連の型フォーマッタで厳密な日付検証が欠落していた問題を修正しました。これにより、無効な日付 (例: 2月30日) が静かに受け入れられるのではなく、正しく拒否されるようになりました。
v3.16.4
発売日: 2026年3月6日
まとめ
このリリースには、いくつかのバグ修正が含まれています。
Community edition
バグの修正
- Jackson ライブラリをアップグレードしてセキュリティ問題を修正しました: GHSA-72hv-8253-57qq (#3394)
Enterprise edition
バグの修正
ScalarDB Cluster
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
StatementUtils.appendTerm()でDATE、TIME、TIMESTAMP、およびTIMESTAMPTZ値を処理する際に発生していたClassCastExceptionを修正しました。これらの値は、誤って文字列にキャストされるのではなく、正しく文字列リテラルとしてフォーマットされるようになりました。