ローカルコンピューティングと分散コンピューティングの違いに関する講演

すべてのジャーナルの著者は、いかなる形で作者に連絡してください再現しました。
著者:tison(クレソンから)
出典:https://www.douban.com/note/720831988/

古紙「分散コンピューティング上の注意」(ローカル・コンピューティング)の主な違い四時分散コンピューティング(分散コンピューティング)とローカル・コンピューティングについて説明し、計算衰弱の異なるタイプを区別するために、リモート・メソッド呼び出し(リモート・メソッド呼び出し)を批判ローカル・コンピューティングとビューの分散コンピューティング点を明確に区別することが提案されています。

それはRPCとRMI人気のある紙の生産時間と1994年。ソフトウェア開発者は、オブジェクト指向する分散コンピューティング環境を提案した拡張子のすべてを統一するモデルを開発しようとすると、オブジェクトを区別することなく、オブジェクトへのアクセスを作ることは、ローカルオブジェクトまたはリモートオブジェクトです。このスローガンは、最初に魅力的に聞こえるが、ユニバーサル・アクセスが避難所にアクセスするために、さまざまな言語のトリュフFrameworkオブジェクトとは異なり、ローカルおよびリモートのアクセス機構間の意味の違いは、より基本的なだけでなく、異なる言語で持ち込まオブジェクトから遠く離れています差、分散システムに固有の問題のいくつかをカバーするローカルメソッド呼び出しとリモートメソッド呼び出しを遮蔽する試みを行います。

その1、呼び出し遅延(レイテンシ)の問題。この方法は、ネットワーク通信用のリモートオブジェクトのニーズにアクセスするには、ローカル歩行ネットワークを呼び出す必要がないので、これは明らかです。これは、2つの同様の通話性能分析におけるメソッドコードは全く異なっていてもよくなり、この差は、コードレベルで反映することが困難です。しかし、遅延は表現の唯一の問題である、我々はまだハードウェアのアップグレードは、パフォーマンスの進歩をもたらすことができる期待することができます。遅延とより深刻な手続き正しさの問題につながることはありません。

メモリアクセス(メモリアクセス)との差2のどちらです。これは、プロセスの遠位端に伝達ローカル参照は、この基準は、基本的に無効であることポイントアウト後にも明らかです。現代の例では、アッカフレーム、プロセスの遠位端からActorSystemパスに特定の環境に応じて再度ActorProviderによって生成された対応するパスへの変換のローカル基準配列の下ActorRefあります。渡すの参照は無効性は、ローカル状態に関連付けられているため、通常は、特にアドレス空間で引用しました。ローカル状態に関連付けられた、プロセスの遠位端でローカル・オブジェクトの基準点は、単に無意味です。この値は、ネットワーク通信における情報に私たちを触発するだけでなく、さまざまな追加作業は、アプリケーションレベルのマスキングの参照であることが必要示して最初に渡す必要があります。ローカルオブジェクトとリモートオブジェクト上のこのような作業を無差別に適用した場合、ローカルオブジェクトへのアクセスのコストが不要な部分になります。

そのTERは、部分的な障害(部分的な障害が)による分散コンピューティングに単一故障メカニズムエクスプローラ(ローカル環境では、オペレーティング・システムとすることができる)が存在しない、障害の計算は検出が困難であるという問題であり、識別し回復。典型的なシナリオは、プロセスAのプロセスBが応答を受信した場合に、アクションを実行するために、プロセスBを要求するプロセスは、それを知ることができるアクションが完了したということです。プロセスが応答プロセスBを受信しない場合でも、プロセスAは、自分の情報が過去に送信されないためであるかどうかを知る、またはアクションを逃した後、フィードバックのプロセスを完了するために実装プロセスB、またはBの故障ではありません。すべてのリモート呼び出しの故障発生の一部と考えた場合、その後、地元のために、すべての考慮さ市内通話で、システムがダウン一部または故障発生で立ち往生される場合、この問題は、それを隠そう、客観的な現実でありますコールはまだ避けられないオーバーヘッドです。

うち4つは、同時(並行処理)の問題です。、無視リモートメソッド呼び出しが戻らないかもしれない場合は、リモートコール分散コンピューティングの可能性は、同時同じである、無差別の方法は、ローカルおよびリモートのメソッド呼び出し統一モデリング、並行処理を呼び出します。すべての場合潜在的な同時性を想定し、ローカルメソッド呼び出しは、追加の複雑さをもたらすでしょう。

要約すると、問題は、プログラムの性能劣化や故障ではなく、さまざまなニーズに合わせて適切なトレードオフとモデリングのためのさまざまなシナリオを区別するために、モデルの違いにローカルコンピューティングと分散コンピューティングに対処する必要性を強調する。

アッカの例について話しました第二の点、上でも、また同じ努力gRPCや他のフレームワークで発生した、非常に明確になっています。リモートメソッド呼び出しの参照の失敗のために、最も重要なポイントは、プログラマが、それについての知識を持っている必要があるということです。実際にActorRefの裸の送信動作でリモートシリアライズに直接ローカルゲートウェイを起動しようとしたとき、私はFLINK-11603に取り組んでいます。その後、接続を再確立し、遠端での値に基づいてゲートウェイを取得するには、問題に学んだの参照の失敗、代わりのオブジェクト転送経路名の値の後に。

第三点について、あなたは記事「誰もが信頼できるメッセージングを必要としない」(参照することができhttps://www.infoq.com/articles/no-reliable-messaging/)。長距離電話は[そう]と考え、ローカル電話の正しさは、最初の市内通話、長距離通話を区別する必要がある、深刻な問題につながることができます。長距離は、私たちが選ぶどの程度の信頼性を提供するために呼び出すためにしかし、それはまだ問題を探索する価値があります。

第四の点では、並行処理は、ソフトウェア開発者の新しい時代が、過去の周りの問題であるかです。ローカルコールのIO動作も輻輳を低減する必要性によって複雑にされてもよく、さらには単純なコンピューティング動作は、並列コンピューティングを介してパフォーマンスを向上させるために、同時に異なるコアに送信することができます。いくつかの簡単な同時呼び出しが存在しないためもちろん、我々はコンテキストの導入によって複雑にする必要はありません。これはまだそれが並行処理を正確に理解している必要があり、ソフトウェア開発者のための必要条件です。

おすすめ

転載: www.cnblogs.com/tisonkun/p/10959151.html