By Felipe Cardeneti Mendes 2008年に、Apache Cassandraはデータベースのスケーラビリティの新しい基準を設定しました。FacebookのInbox Searchをサポートするために生まれ、それ以来、Uber、Netflix、Appleなどのテクノロジーの巨人によって採用されています - それはまたCassandraの貢献者として機能する専門家によって運営されています(DataStax/IBMと一緒に)。 効率性?効率性?効率性?柔軟性? 2015年 - ScyllaDB KVMを作成し、Linuxカーネルをハッキングした後、創設者たちは、 ベースのインフラストラクチャからより多くのパワーを圧迫することができた。タイミングは理想的だった:ちょうど1年前、Netflixは、推進方法を示す数字を公表していた。 これは印象的な業績でしたが、インフラ投資と調節努力が必要でした。 キャサンドラの非最適な資源利用を超えるために生まれた 低レベルのエンジニアリング アパッチ・カサンドラが100万RPSを書く アイデアはかなりシンプルでした(理論的には少なくとも):Apache Cassandraのスケーラブルアーキテクチャを取って、金属に近づいて再実装し、ワイヤープロトコル互換性を維持します。 トラブルを防ぐために、すべてがアシンクロン化され、これらの最適化はすべて、最小限のオペレーティングオーバーヘッドのために自動的な内部スケジュールと組み合わされました。 shard-per-core 建築 それは10年前のことだったが、私はカッサンドラの現在の方向に話すことができないが、それ以来、ScyllaDBはかなり大きく進化してきた。 「独自のアイデンティティとユニークな機能セットを持つデータベースへのCassandraのより迅速な実装。 たった Spoiler: このビデオでは、ScyllaDBのいくつかの主要な違いと、それがApache Cassandraとどのように異なっているかについてお話しします。私は、パフォーマンス、柔軟性、およびワークロード優先化などの機能の違いについてお話します。あなたは、ScyllaDBがCPUコアごとにデータをマッピングする方法、並行してスケール、およびリスク解消トポロジーの変更を見ることができます。 ScyllaDBの進化 最初の世代のScyllaDBはすべて原始的なパフォーマンスに関連していました。そこで、我々はシールド・パー・コア・アシンクロン・アーキテクチャ、行ベースのキャッシュ、および予測可能な低い遅延を達成する高度なスケジュールを導入しました。 ScyllaDB の第 2 世代は、Cassandra と機能の対等性を目標にしましたが、実際にはそれ以上に行きました。 (カッサンドラが 同様に、ScyllaDBも導入しました。 同年、これらはカッサンドラ5(少なくともその後)に導入されたばかりである。 さらに、軽量取引のためのPaxosの実装は廃止された。 カサンドラの代替アプリケーション 物質化された見解と生産準備のグローバル・セクター・インデックス 実験としての旗 地元二次指数のサポート 3 異なるインデックスの実装 ほとんどのオーバーヘッドと制限 第3世代は、継続的なイノベーションとともに、クラウドへの移行を象徴しました ScyllaDB Alternator が、当社の DynamoDB 対応の API が導入されました。 2020年(何か) この期間中、リードレベルの修理で修理速度を劇的に向上させ、ワークロードの優先化を導入しました(次のセクションでさらに説明します)。 ZSTD 圧縮 キャサンドラは2021年遅くに採用した。 ScyllaDBの4世代は、i3enインスタンスファミリーをAWSが発表した時点で現れ、高密度ノードが最大60TBのデータを保持している( この期間にわたって、我々は増加圧縮戦略(ICS)を導入し、ユーザーがスケールアップする前に最大70%のストレージを活用できるようになりました。 何かにカッサンドラは依然として効果的に対処するために苦労している We also introduced 基本的にカサンドラのアプローチとは異なりますが、我々は といった概念とともに、 BYPASS CACHE、per-query 設定可能な TIMEOUTs、およびその他。 Change Data Capture(CDC)について CQL プロトコルを拡張 Shard意識 最後に、まだ展開中である第5世代のScyllaDBに到達しました。この段階は、Raftとタブレットとの強力な一貫性と柔軟性への私たちの道を表しています。 ScyllaDBを区別する機能 私たちのエンジニアは、過去10年間で多くの興味深い機能を導入してきました。以前のCassandraユーザーとのインタラクションに基づいて、これらはここで議論する上で最も興味深いものだと思います。 Tablets Data Distribution 各 ScyllaDB テーブルは、データと負荷をシステム全体に均等に配布するために、より小さな断片(「タブレット」)に分割されています。タブレットは、スカイルラDB に柔軟性を提供し、クラスターのサイズを瞬時に倍増、三倍、または10倍にし、予測できないトラフィックの増加に対応することができます。それらはまた、最大 90% の利用率を達成するために、ストレージのより効率的な使用を可能にします。 Raft-Based: Strong Consistency for Metadata(ラフトベース:メタデータの強力な一貫性) Raft は ScyllaDB のメタデータに強力な一貫性を導入します。 スケジュールの変更がクラスターを異議に陥らせるか、認証キースペースの複製因子を更新するのを忘れたためアクセスを失う可能性がある日々は過ぎ去りました(カサンドラをまだ苦しめている問題)。 Workload Prioritization それは、基本的に、異なるワークロードがシステムリソースのために競合する方法を制御します。チームは、即時応答時間を必要とする緊急アプリケーションリクエストを優先するために使用し、より軽い遅延(例えば、大きなスキャン)を許容できる他のものに比べて優先します。 仕事の優先順位 Repair-based Operations Repair-based operations ensure your cluster data stays in sync, even during topology changes. これによりクラスターデータは、トポロジーの変更時にさえ同期されます。 失敗したノードを置き換えるような操作は、 ScyllaDB はまた、データ復活の問題を完全に排除します。 . Apache Cassandra でのデータの一貫性の長期的な欠陥 result in data loss 修理基盤の墓石ゴミ収集 Incremental Compaction Incremental Compression (ICS) は ScyllaDB で 5 年以上にわたりデフォルトの圧縮戦略となっています. ICS は一時的な空間強化を大幅に削減し、ユーザのデータを格納するためのディスクスペースを増やすことで、デスクに 50% の空きスペースが必要な典型的な要件を排除します. 比較可能な Cassandra 機能はありません. Cassandra は最近、Unified Compaction を導入しました。 Row-based Cache ScyllaDB の行ベースのキャッシュもユニークです。 デフォルトで有効で、手動の調節は必要ありません。 拡張機能では、重要なアイテムを無効にするのを防ぐことでキャッシュ汚染を防ぐことができます。 ディスクからデータを取得する際にI/Oアクセス時間を大幅に短縮します。 bypass キャッシュ SSTABLE INDEX CACHING Per-shard Concurrency Limits and Rate Limiters ScyllaDB には、予期せぬピークから保護するために、パーティションごとにシェールドコンコレクション制限と割合制限が含まれています。間違ったクライアントや特定のキーへのリクエストの洪水に関わるかに関わらず、Cassandra が頻繁に短縮する場所で、ScyllaDB は抵抗性を確保します。 DynamoDB Compatibility ScyllaDB はまた、DynamoDB に互換性のあるレイヤーを提供し、Apache Cassandra の起源からさらに距離を置くことで、チームがDynamoDB ワークロードをクラウドまたはプリームで実行できるようになり、コードの変更なしで、コストが50%低くなっています。 次は何? 最近のMonster SCALEサミットで、CEO/共同創設者Dor Laorは、ScyllaDBの次に何が起きるかについての見解を共有しました。 Ready Now (こちらをご覧ください) そして 詳細については): ブログ記事 製品ページ 90%の貯蔵利用率で安全に動作する能力 混合インスタンス型ノードを持つクラスターのサポート ダイナミック・プロビジョニング&FLEX CREDIT ベクター検索 短期: 非常に一貫したテーブル エラー 注射サービス 透明修理 Object and Tiered Storage(オブジェクトと階層貯蔵) 強く一貫したテーブルのためのラフト 長期 マルチキー取引 UDFsによる分析と変換 自動大型パーティションバランス より大きな安定性と信頼性のための不変なインフラ より柔軟かつ効率的なインフラ変革のための複製モード 詳細については、こちらで全文をご覧ください: ScyllaDB をダウンロード Cassandraよりも速い(私は近いうちに私の最新のベンチマークの結果をここで共有します)。しかし、ScyllaDBとCassandraは、ScyllaDBがもはや「単に」より速いCassandraではないという点に進化した。 は ScyllaDB についてもっと知るには、訪問してください。 https://www.scylladb.com/ 無料のデータベースブック、マスタークラス、その他にアクセスできます。 https://resources.scylladb.com/ https://www.scylladb.com/ https://resources.scylladb.com/