Apache Cassandra 4.0 DBMS が利用可能

Apache Software Foundation は、分散 DBMS Apache Cassandra 4.0 のリリースを発表しました。これは noSQL システムのクラスに属し、連想配列 (ハッシュ) の形式で保存される大量のデータの拡張性と信頼性の高いストレージを作成するように設計されています。 Cassandra 4.0 リリースは実稼働実装の準備が整っていると考えられており、1000 ノードを超えるクラスターを備えた Amazon、Apple、DataStax、Instaclustr、iland、Netflix のインフラストラクチャですでにテストされています。プロジェクト コードは Java で書かれており、Apache 2.0 ライセンスに基づいて配布されます。

Cassandra DBMS はもともと Facebook によって開発され、2009 年に Apache Foundation の後援のもとに移管されました。 Cassandra をベースとした産業用ソリューションは、Apple、Adobe、CERN、Cisco、IBM、HP、Comcast、Disney、eBay、Huawei、Netflix、Sony、Rackspace、Reddit、Twitter などの企業のサービスを強化するために導入されています。たとえば、Apple が導入した Apache Cassandra ベースのストレージ インフラストラクチャには、160 万個のノードを含む 100 個を超えるクラスターがあり、300 ペタバイトを超えるデータが保存されています。ファーウェイは、30 ノードで構成される 100 を超える Apache Cassandra クラスターを使用し、Netflix は 10 を超えるクラスターを使用して、XNUMX ノードをカバーし、XNUMX 日あたり XNUMX 兆を超えるリクエストを処理します。

Cassandra DBMS は、完全に分散された Dynamo ハッシュ システムを組み合わせており、データ量の増加に応じてほぼ線形のスケーラビリティを提供します。 Cassandra は、列ファミリー (ColumnFamily) に基づくデータ ストレージ モデルを使用します。これは、キー/バリュー チェーンにのみデータを格納する memcachedb のようなシステムとは異なり、複数のレベルのネストでハッシュのストレージを編成できます。データベースとの対話を簡素化するために、構造化クエリ言語 CQL (Cassandra Query Language) がサポートされています。これは SQL を彷彿とさせますが、機能は削減されています。機能には、名前空間と列ファミリーのサポート、および「CREATE INDEX」式を使用したインデックスの作成が含まれます。

DBMS を使用すると、障害に強いストレージを作成できます。データベースに配置されたデータは、異なるデータ センターにまたがる分散ネットワークの複数のノードに自動的に複製されます。ノードに障害が発生すると、その機能は他のノードによってオンザフライで引き継がれます。クラスターへの新しいノードの追加と Cassandra バージョンの更新は、追加の手動介入や他のノードの再構成を必要とせずに、その場で実行されます。 CQL をサポートするドライバーは、Python、Java (JDBC/DBAPI2)、Ruby、PHP、C++、JavaScript (Node.js) 用に用意されています。

主な革新:

  • パフォーマンスと拡張性が向上しました。ノード間のSSTable(Sorted Strings Table)形式でのデータ交換の効率が向上しました。ノード間メッセージング プロトコルが最適化されました。ノード間のデータ ストリームの転送速度は最大 5 倍に向上し (主にゼロ コピー テクニックの使用と SSTable 全体の転送により)、読み取りおよび書き込み操作のスループットは 25% に向上しました。増分回復プロセスが最適化されました。ガベージ コレクションの一時停止による遅延は数ミリ秒に短縮されます。
  • ユーザー認証操作と実行されたすべての CQL クエリを追跡できる監査ログのサポートが追加されました。
  • 完全なバイナリ要求ログを維持する機能が追加され、すべての要求と応答のトラフィックを保存できるようになりました。管理のために、コマンド「nodetool Enablefullquerylog|disablefullquerylog|resetfullquerylog」が提案され、ログ分析のために fqltool ユーティリティが提供されます。ログを読み取り可能な形式に変換する (Dump)、アクティビティ スライスを比較する (Compare)、および実際の負荷に固有の状態を再現する分析のための再実行 (Replay) ためのコマンドが提供されます。
  • SSTable に保存されたデータではなく、API 経由で出力された情報 (パフォーマンス メトリクス、設定情報、キャッシュの内容、接続されたクライアントに関する情報など) を反映する仮想テーブルのサポートが追加されました。
  • 圧縮データ ストレージの効率が向上し、ディスク容量の消費が削減され、読み取りパフォーマンスが向上しました。
  • システム キースペース (system.*) に関連するデータは、すべてのデータ ディレクトリに分散されるのではなく、デフォルトで最初のディレクトリに配置されるようになりました。これにより、追加ディスクのいずれかに障害が発生した場合でもノードは動作し続けることができます。
  • 一時的なレプリケーションと安価なクォーラムの実験的サポートが追加されました。一時レプリカはすべてのデータを保存するわけではなく、完全レプリカとの一貫性を保つために増分復元を使用します。ライト クォーラムは書き込みの最適化を実装しており、十分な完全レプリカのセットが利用可能になるまで一時レプリカへの書き込みは行われません。
  • Java 11 の実験的サポートが追加されました。
  • すべてのマークル ツリーを比較する実験的なオプションを追加しました。たとえば、3 つのレプリカが同一で XNUMX つが古いレプリカがある XNUMX ノード クラスタでこのオプションを有効にすると、現在のレプリカのコピー操作を XNUMX 回だけ使用して、古いレプリカが更新されます。
  • 新しい関数 currentTimestamp、currentDate、currentTime、currentTimeUUID を追加しました。
  • CQL クエリでの算術演算のサポートが追加されました。
  • 「タイムスタンプ」/「日付」および「期間」タイプのデータ間で算術演算を実行する機能が提供されます。
  • 回復に必要なデータ ストリームをプレビューするモード (nodetool Repair -preview) と、復元されるデータの整合性をチェックする機能 (nodetool Repair -validate) が追加されました。
  • SELECT クエリに Map 要素と Set 要素を処理できる機能が追加されました。
  • マテリアライズドビューの初期構築段階の並列化のサポートが追加されました (cassandra.yaml:concurrent_materialized_view_builders)。
  • 「nodetool cfstats」コマンドに、特定のメトリックによる並べ替えと、表示される行数の制限のサポートが追加されました。
  • ユーザーの接続を特定のデータセンターのみに制限する設定が提供されます。
  • スナップショットの作成および消去操作の強度 (レート制限) を制限する機能が追加されました。
  • cqlsh と cqlshlib は Python 3 をサポートするようになりました (Python 2.7 は引き続きサポートされます)。
  • Windows プラットフォームのサポートは終了しました。 Windows 上で Cassandra を実行するには、WSL2 サブシステム (Windows Subsystem for Linux 2) または仮想化システムに基づいて作成された Linux 環境を使用することをお勧めします。



出所: オープンネット.ru

コメントを追加します