データのプルと書き込みに bittorrent プロトコルを使用する分散 SQL データベースのアイデアがあります。
議論のために、これがメッセージング アプリケーションであるとしましょう。このアプリケーションでは、何千人ものユーザーが、メッセージング ウィンドウとメッセージを書き込むための入力ボックスを含むプログラムを実行します。
書き込まれた各メッセージは、独自の sqlite DB に対して INSERT を実行します。
それがどのようにできるか
- 基本的に DB を作成するためのスキーマ/DDL を含む .torrent ファイルをダウンロードし、ローカル マシンに作成します。
- 「書き込み」アクションが実行されると (ユーザーがメッセージを送信したい場合など)、その INSERT 行 (デルタのようなもの) は次の 2 つのことを行います。
- 独自の内部 DB に書き込みます
- その行から、messaging-[my-ip]-[UTC_timestamp].torrent のような名前の .torrent ファイルを作成し、トラッカーに投稿します。
- アプリを実行しているすべての人は、トラッカーを継続的にスキャンして、この特定の名前のファイル (おそらく特定の日付以降) を探し、.torrent をダウンロードしてホストし、ローカル DB で INSERT コマンドを実行します。
その場合、大量のデルタ ファイル、冗長性のためにすべての P2P がホストされ、多くのマシンでローカルの .sqlite DB を更新することになります。
私が抱えているいくつかの問題
特定のファイル名の torrent をスクレイピングするにはどうすればよいですか? http bittorrent トラッカーの仕様を読みましたが、特定の情報名に基づいてファイルを照会することしかできないようです。ファイルのグループ、またはファイル名に基づいてクエリを実行する方法はありませんか?
トラッカーから .torrent ファイルをダウンロードするにはどうすればよいですか? 中央サーバーでファイルをホストする必要がありますか、それともトラッカーを使用して何らかの方法でファイルをダウンロードできますか? .torrent ファイルを自分でホストする必要がある場合は...
- 私のウェブサイトがダウンした場合、アプリケーションは更新を取得できなくなるため、これは分散型 DB の目的を無効にしないでしょうか?
事前に助けてくれてありがとう。