分散ログストレージシステム - LogDevice

分散ログストレージシステム - LogDevice

序文

分散システムに取り組んだことがある人なら誰でも、大規模クラスターで高同時実行トランザクションを処理するときに、CAP (一貫性、可用性、およびパーティション耐性) を同時に満たすことは理論的に不可能であることを知っています。もちろん、Google が最近そのような分散システムを実装したと聞いていますが、一般的には確かに非常に困難です。ソーシャルメディアの膨大なログファイルについても、高可用性の確保、継続的なデータ書き込み、レコード順にデータを返すという3つの要件を掲げれば、実現できると思いますか? FaceBook の LogDevice がそれを実現しました。

[[206398]]

ログとは何か

ログは、一連のシリアル化されたシステム動作を記録する情報です。信頼できる場所に保存できるようにする必要があります。アプリケーションの場合、ログには通常、トラブルシューティングとプログラムの実行状態の表示という 2 つの機能があります。適切なログ記録方法は、問題を特定するための十分な根拠を提供します。データベースなどの一部の複雑なシステムでは、ログをデータのバックアップと同期に使用できます。多くの分散データベースでは、ノード データが同期されるときに、ログ ファイルを通じてデータを復元するために「先行書き込み」ソリューションが使用されます。

ログには一般的に 3 つの特性があります。

1. レコード指向: ログに書き込まれる内容は、バイトではなく、独立した行である必要があります。ログは本質的に問題の最小単位であり、ユーザーはログの全行を読む必要があります。原則として、ログは LSN (ログシーケンス番号) に従って順番に保存されますが、これは必ずしも必要なわけではないため、ログ システムは高い書き込み要件を優先し、書き込みの失敗を許容することができます。

2. ログは本質的に増分的です。つまり、ログは変更されません。つまり、ログ システムの設計は、更新操作によるデータの一貫性の問題を気にすることなく、書き込みと読み取りのターゲットを高く設定する必要があります。

3. ログの保存期間は長く、1 日、1 か月、さらには 1 年になることもあります。つまり、ログ削除ルールは一般的に時間や空間に応じて設定され、固定されたルールを持っています。

仮定してみましょう

分散ログストレージシステムを設計したい場合、どのように設計しますか?

ログ情報を送信して保存する必要があります。安定したデータ交換を実現するために、メッセージミドルウェアとして Kafka を使用できます。

Kafka は実際にはメッセージの公開およびサブスクリプション システムです。

プロデューサーはトピックにメッセージを公開し、コンシューマーはトピックのメッセージをサブスクライブします。トピックに関する新しいメッセージがあると、ブローカーはそのメッセージをサブスクライブしているすべてのコンシューマーに渡します。 Kafka では、メッセージはトピックごとに整理され、各トピックは複数のパーティションに分割されるため、データの管理と負荷分散が容易になります。同時に、負荷分散のために Zookeeper も使用します。

ディスク上の Kafka のストレージコストは O(1) です。通常のサーバーでも、1 秒あたり数十万件のメッセージを処理できます。さらに、分散アーキテクチャであり、Hadoop へのデータの並列ロードをサポートします。

上の図は、ログ データ交換にメッセージ ミドルウェアを使用する典型的なシステム設計アーキテクチャですが、データ ストレージは実装されておらず、データが抽出されて Kafka に送信される方法も説明されていません。

データストレージを実装し、内部処理フローを明確に記述したい場合、どのようなログ処理システムアーキテクチャを採用できますか?ここで私がお勧めするのは、Facebook 内で広く使用されているオープンソースのログ収集システムである FaceBook の Scribe です。さまざまなログ ソースからログを収集し、中央ストレージ システム (NFS、分散ファイル システムなど) に保存して、集中的な統計分析と処理を容易にすることができます。

Scribe の最も重要な機能は、優れた耐障害性です。バックエンド ストレージ システムがクラッシュすると、Scribe はデータをローカル ディスクに書き込みます。ストレージ システムが正常に戻ると、Scribe はログをストレージ システムに再ロードします。

Scribe のアーキテクチャは比較的シンプルで、Scribe Agent、Scribe、ストレージ システムという 3 つの主要部分で構成されています。 Scribe Agent は実際には Thrift Client です。 Scribe は Thrift Client からデータを受信し、構成ファイルに従ってさまざまなトピックからさまざまなオブジェクトにデータを送信します。ストレージ システムは、実際には Scribe の Store です。現在、Scribe は多数のストアをサポートしています。

市場にはすでに多くの分散ログ収集システムが存在しているようですが、なぜ FaceBook が LogDevice を立ち上げる必要があるのでしょうか?そして、FaceBook にはすでに Scribe があるのに、なぜ LogDevice の設計を続けるのでしょうか? Scribe は主にログデータの収集を実装しているためです。完全なログ処理、保存、読み取りサービスではありません。システム設計も比較的堅牢で、ストレージは HDFS に大きく依存しています。使用の過程で、それ自体のニーズを満たすことができない状況が必ずあるはずです。オープンソースの分散ログ収集システムの場合、さまざまなオープンソース コンポーネントを統合して、ログ ストレージ システムの設計要件を共同で満たすことが重要です。 FaceBook のエンジニアたちは、常にイノベーションの精神に取り組んできました。 Apache Cassandra について考えてみましょう。実は当時、HBase などの成熟した NoSQL データベースはすでに存在していましたが、中央ノードなどの設計上の制限が多かったため、FaceBook は新しい分散型設計アーキテクチャを開発しました。初期には疑問視されていたものの、その後も継続的に改良されていきました。これまでのところ、Cassandra はまさに黄金時代を迎えています。

<<:  クラウドでビジネスを変革する方法

>>:  LianjiaのFeng Yang氏:不動産業界でデータと機械学習が輝く

推薦する

ブロックチェーンが分散資産市場に参入

[[266858]]デジタル2.0時代では、「モノのインターネット+ブロックチェーン」の組み合わせが...

CP2Cモデルによるネットワークマーケティングモデルの応用と考察

百度は毎年、百度のプロモーション顧客75万人を対象とした「マーケティング・チャイナ・ツアー」という最...

高級B2Cは次のバブルになるでしょうか?

中国における消費の転換とアップグレードの波の中で、贅沢品や汎贅沢品ウェブサイトは、共同購入後の狂った...

Kafka の消費とハートビートのメカニズム

1. 概要最近、カフカの消費とハートビートのメカニズムについて相談する学生もいます。今日は、このブロ...

extravm: 米国製高周波サーバー (5.3GHz)、複数のモデル、月額 149 ドル、i9-10900K/32GDDR4/1TNVMe/4IP/1Gbps 帯域幅

extravm は、メインの DDoS 対策 VPS サービスに加えて、ハイエンド、高性能、高周波数...

画像ウェブサイトの簡単な最適化テクニック

2012年に引き継いだウェブサイト最適化のクライアントから、ウェブサイトの画像コンテンツが徐々に大部...

namecheap-.pw 3.98 ドル

Namecheap の最新の pw ドメイン名プロモーションの価格はわずか 3.98 ドルで、25 ...

Baixing.com はなぜ軽い会社でなければならないのでしょうか? 58.comと他のプラットフォーム間の論争

文/シン・ハイグアン先週の木曜日、私は弟の葛佳と一緒に58で姚金波の実践情報共有セッションに参加しま...

分析から逃れる方法を学ぶことについての記事、yyds!

[[428823]]みなさんこんにちは、Bingheです〜〜 JVM の実装では、JVM のパフォー...

ウェブサイトの包含を改善する方法

ウェブサイトの組み込みは、検索エンジンのキーワードランキングの基礎です。組み込まれていないウェブペー...

ブランドマーケティングへの正しいアプローチ

従来のeコマースのキーワードとは異なり、ブランドのコアキーワードはサイトの内外両方で作成する必要があ...

DDoS 状況レポート: DDoS 攻撃は二極化している

最近、国内のネットワーク セキュリティ企業 NSFOCUS が 2015 年上半期の DDoS 脅威...

大規模なロングテールキーワードデータベースを構築する方法

ウェブサイトの中期におけるロングテールキーワードの運用は、私たちがやらなければならないことです。トラ...

ジュメイの米国IPOでは偽造品が依然として大きな懸念事項

ウー・ウェンティンJD.comに続き、今年、別の国内電子商取引会社が米国での上場に向けた道を歩み始め...

Baidu は、Web サイトにブラック ハット SEO 行為があるかどうかをどのように判断しますか?

Baidu は、Web サイトにブラック ハット SEO 行為があるかどうかをどのように判断しますか...