ScalarDB 3.16 リリースノート
注記
このページは英語版のページが機械翻訳されたものです。英語版との間に矛盾または不一致がある場合は、英語版を正としてください。
このページには、ScalarDB 3.16 のリリースノートのリストが含まれています。
v3.16.1
発売日: 2025年07月16日
まとめ
このリリースには、いくつかのバグ修正および脆弱性修正が含まれています。
Community edition
バグの修正
- トランザクションのコミット時に、実際にはコミットされているにもかかわらず CommitException がスローされるバグを修正しました。(#2826)
- Cassandra におけるミューテーションのエラーハンドリングを修正しました。(#2827)
- ワンフェーズコミットでグループコミットが正しく動作しないバグを修正しました。(#2832)
Enterprise edition
バグの修正
ScalarDB Cluster
- update または upsert 操作で data tag が指定されていない場合でも更新されてしま うバグを修正しました。
- リモートレプリケーション機能のメトリクスが不足していた問題を修正しました。
replication-cli
の Jar ファイルが不足していた問題を修正しました。- ABAC が有効な場合に、ABAC ポリシーが設定されていないテーブルで put 操作を実行すると
UnsupportedOperationException
がスローされるバグを修正しました。 - セキュリティ問題を修正するために
grpc_health_probe
をアップグレードしました。CVE-2025-22874 - ワンフェーズコミット最適化が有効な場合にレプリケーション機能が開始されないようにバリデーションを追加しました。
v3.16.0
発売日: 2025年06月20日
まとめ
このリリースには、多くの機能強化、改善、バグ修正、およびパフォーマンスの最適化が含まれています。
Community edition
機能強化
- IBM Db2 LUV 11 および 12 のサポートを追加しました。(#2598)
- 結果を反復的に取得するためのトランザクション抽象にスキャナー API を追加しました。(#2729)
- ストレージアダプターにおけるスキャンフェッチサイズのサポートを追加しました。
scalar.db.scan_fetch_size
プロパティを設定することで、ストレージ層でスキャン API によってフェッチされるレコード数を制御できます。(#2731) - Schema Loader に
replication-tables
オプションを追加しました。(#2747) - 読み取り専用モードでトランザクションを開始するサポートを追加しました。(#2749)
- Javadoc および errorprone に関する警告を修正しました。(#2614)
- ストレージに関するメタデータを提供する
StorageInfo
を導入しました。DistributedStorageAdmin.getStorageInfo()
メソッドを介してStorageInfo
インスタンスを取得できます。(#2756) - ScalarDB Data Loader CLI の Docker サポートを追加し、データロード機能のコンテナ化されたデプロイメントを可能にしました。(#2758)
- Data Loader CLI ビルドのCIワークフローを追加しました。(#2761)
- より良いパフォーマンスを提供する
READ_COMMITTED
分離レベルを追加しました。特に低競合のワークロードに対して効果的です。(#2803) - Consensus Commit における1フェーズコミット最適化のサポートを追加し、すべての変更が原子的にコミットできる場合にプレパレコードとコミットステートをスキップすることでパフォーマンスを大幅に向上させます。この最適化は
scalar.db.consensus_commit.one_phase_commit.enabled
プロパティで有効にできます。(#2811)
改善点
- ScalarDB BIGINT データ型が Oracle の
NUMBER(16)
にマッピングされるように変更しました。(#2566) - Consensus Commit から
EXTRA_WRITE
戦略を削除しました。この変更により、Consensus Commit を使用する際にEXTRA_WRITE
戦略が指定された場合、代わりにEXTRA_READ
戦略が使用されます。(#2597) - Consensus Commit において、削除後に同じレコードに対してスキャン操作を不許可にするように変更し、一貫性のない動作を防ぎ、書き込み後のスキャンに関する既存の制限と整合させました。(#2610)
- Consensus Commit において、読み取り専用トランザクションのコミットステートを省略するように変更し、パフォーマンスを向上させました。この動作はデフォルトで有効ですが、
scalar.db.consensus_commit.coordinator.write_omission_on_read_only.enabled
プロパティをfalse
に設定することで無効にできます。(#2765) - Consensus Commit において、レコードのコミットまたはロールバック後に前の画像を削除するようにコードを更新し、ディスク使用量を削減しました。(#2787)
- Consensus Commit における読み取りアルゴリズムを改善し、不必要な再試行を減少させました。(#2798)
バグの修正
- セキュリティ問題を修正するために Netty ライブラリをアップグレードしました。 CVE-2025-24970 (#2552)
- スキャンに制限をかけた後にトランザクションが常に中断される
SERIALIZABLE
分離レベルにおける Consensus Commit のバグを修正しました。(#2621) - DynamoDB ストレージを使用している際に、名前空間プレフィックス設定
scalar.db.dynamo.namespace.prefix
を用いた場合のDistributedStorageAdmin.getNamespaceNames()
API の問題を修正しました。このメソッドによって返される名前空間名に誤ってプレフィックスが含まれていました。(#2641) - 列値変換時の
DateTimeParseException
に対する例外処理を追加しました。(#2662) SERIALIZABLE
トランザクション内での二次インデックスを使用したGet
操作が、検証中にScan
操作に変換されることによりIllegalArgumentException
をスローする問題を修正しました。(#2683)- トランザクション内で二次インデックスの
Get
操作によって取得されたレコードを更新する際に、不必要な暗黙のプレリードが発生するバグを修正しました。(#2700) - データローダーコアのマイナーなバグと問題を修正しました。(#2752)
- Consensus Commit において、結合を 伴う
Get
またはScan
を実行する際にレコードが見逃されるバグを修正しました。(#2786) - Consensus Commit において、ストレージから同じレコードを複数回読み取ることが、更新の喪失などの異常を引き起こす可能性がある問題を修正しました。この問題を解決するために、読み取りセットは繰り返し読み取り時に更新されなくなりました。(#2797)
jdbc
ストレージを使用している際に、ターゲットテーブルが存在しないためにScan
操作が失敗した場合の潜在的な接続リークを修正しました。(#2766)
Enterprise edition
機能強化
ScalarDB Cluster
- ScalarDB Cluster におけるトランザクション機能の有効または無効を設定するための構成オプション(
scalar.db.transaction.enabled
)を追加しました。デフォルト値はtrue
です。 - ScalarDB Cluster におけるトランザクション抽象にスキャナー API のサポートを追加し、結果を反復的に取得できるようにしました。
- ScalarDB Cluster において、読み取り専用モードでトランザクションを開始するサポートを追加しました。
- ScalarDB Cluster において、SQL を使用して読み取り専用モードでトランザクションを開始するサポートを追加しました。
- ScalarDB Cluster において、セミ同期レプリケーション機能を追加しました。
ScalarDB SQL
- ScalarDB SQL において、読み取り専用モードでトランザクションを開始するサポートを追加しました。
改善点
ScalarDB Cluster
- Omnistrate サービスのサポートを追加しました。これにより、ScalarDB Cluster を Omnistrate サービス内で実行できるようになりました。
- ScalarDB Cluster に対してポーズコマンドが発行された際に、読み取り専用トランザクションが一時停止しないように変更しました。
バグの修正
ScalarDB Cluster
- SQL インターフェースで認証を使用する際のメタデータキャッシュの動作に関するバグを修正しました。
- 埋め込み機能の設定を修正しました。
- スーパーユーザーが存在しないユーザーに対して ABAC 管理操作を実行できるバグを修正しました。
- 空の ABAC システムテーブルを削除する際にテーブルが見つからないエラーが発生するバグを修正しました。
- コーディネーターグループコミット機能が有効なときのメモリリークの問題を修正しました。