問題タブ [distributed]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - 安全でポータブルな暗号化された構成値 -- 可能ですか?
誰かがこれについて素晴らしいアイデアを持っているかどうか、私はただ興味があります.
多くの C# Windows サービスがあります。各アプリは複数のマシンにインストールされます (アプリに応じて 2 ~ 80 台の任意の場所)。
ネットワークのセキュリティ設定により、SQL サーバーに対して Windows 認証を (一貫して) 使用できないため、接続文字列と資格情報には実際のユーザー名とパスワードが含まれています。
インフラストラクチャ担当者は、ソフトウェアを展開するときに次のことができるようにしたいと考えています。1) 構成を一度編集します。さまざまなデータベース接続に適切なサーバー、ユーザー、およびパスワードを設定します。2) 接続文字列を (少なくとも) 暗号化するか、肉眼では判読できないようにします。3) その構成ファイルを、特定のソフトウェアのすべてのインストールにコピーします。これは、暗号化を特定のマシンに関連付けることができないことを意味します。
DPAPI はこれを行うことができますか? 1 つのキー セットをすべてのターゲットにインストールして、共通の構成ファイルを解読できるようにすることはできますか? この場合、構成はどのように編集されますか? 同じ方法で、他のユーザーが暗号化された構成を表示できないようにするにはどうすればよいですか?
visual-sourcesafe - 分散ソフトウェア開発のための Visual SourceSafe サポート
私は分散ソフトウェア開発環境で働いています。現在使用されている SCM ツールは、Visual SourceSafe 2005 Client/Server です。コードの中断を最小限に抑えるための戦略を立てようとしています。分散環境でより安全な SCM を実現するために使用できる VSS の機能は何ですか?
このトピックに関するインターネット上の参照に関する提案はありますか?
よろしくお願いします
java - キー値ストレージでコレクション (リストまたはセット) を処理する最良の方法は何ですか?
ストレージがmemcachedのようなものである場合、非常に大きなリストからアイテムを追加/削除する効果的な方法は何でしょうか? この問題をうまく処理する Java インターフェースを備えた分散ストレージがいくつかあるのではないでしょうか?
誰かがテラコッタを勧めるかもしれません。私はそれについて知っていますが、それは私が必要としているものではありません。;)
algorithm - ネット上の複数のコンピューターで分散された堅牢なリンクリストを構築する方法は?
RAID(ディスク)のようなアルゴリズムを使用するプログラムを構築することを考えていました。1 台のコンピューターが停止した場合。次が介入します。その場所に。また、1 台から 1000 台のコンピューターに拡張する必要があります。
アドバイスが必要です。
私が学ぶ必要があるアルゴリズムの名前は何ですか?
ある時点で、git の上にビルドすることは可能だと思いました。
database - 分散システムのフェイルオーバーにはどのようなアルゴリズムがありますか?
シェアード ナッシング アーキテクチャとマルチバージョン同時実行制御を使用して、分散データベース システムを作成する予定です。冗長性は、非同期レプリケーションによって実現されます(システム内のデータが一貫している限り、障害が発生した場合に最近の変更を失うことは許されています)。データベース エントリごとに、1 つのノードにマスター コピーがあり (そのノードだけが書き込みアクセス権を持っています)、さらに 1 つ以上のノードにスケーラビリティと冗長性のためにエントリのセカンダリ コピーがあります (セカンダリ コピーは読み取り専用です)。 . エントリのマスター コピーが更新されると、タイムスタンプが付けられ、最終的にエントリの最新バージョンを取得できるように、セカンダリ コピーを持つノードに非同期で送信されます。マスター コピーを持つノードはいつでも変更できます。別のノードがそのエントリを書き込む必要がある場合、マスター コピーの現在の所有者に、そのノードにそのエントリのマスター コピーの所有権を与えるように要求します。
最近、クラスター内のノードがダウンしたときにどうするか、フェイルオーバーにどの戦略を使用するかについて考えています。ここにいくつかの質問があります。少なくともそれらのいくつかに代わる利用可能な代替案を知っていただければ幸いです。
- 分散システムでフェイルオーバーを行うためのアルゴリズムは何ですか?
- 分散システムのコンセンサスにはどのようなアルゴリズムがありますか?
- クラスター内のノードは、ノードがダウンしていることをどのように判断する必要がありますか?
- 他のノードがそれらのエントリを回復できるように、ノードはどのデータベース エントリが障害発生時に障害ノードにマスター コピーを持っていたかをどのように判断する必要がありますか?
- どのノードがいくつかのエントリの最新のセカンダリ コピーを持っているかを判断する方法は?
- どのノードのセカンダリ コピーを昇格させて新しいマスター コピーにするかを決定する方法は?
- ダウンしたはずのノードが突然何事もなかったかのように戻ってきた場合、どのように対処しますか?
- ネットワークが一時的に 2 つに分割され、双方がもう一方の側が停止したと考えるスプリット ブレイン シナリオを回避するにはどうすればよいでしょうか?
design-patterns - ローカル処理と集中処理
私はSAPに多額の投資をしている会社で働いています。また、数十の大規模な.Netシステム(主にエンジニアリングシステム用)とJavaプラットフォーム(主に外部Webアプリケーション用)もあります。そのため、ABAP、C#、およびJavaEEに大規模な開発ショップがあります。
20を超える主要な施設が非常に長距離に分散し、2つのデータセンターがあり、600ほどの小さな施設が都市部、農村部、および遠隔地にあります(北極に近いと考えてください)。
各機能ドメインで使用するプラットフォームについては適切な基準がありますが、ローカル処理をいつ使用するか、分散(中央)処理をいつ使用するかについてはあまり明確ではありません。(つまり、シッククライアントとシンクライアント)
この質問に役立つベストプラクティスに基づいて決定木を構築したいと思います。私が過去に見た基準のいくつかは次のとおりです。
- アプリケーションがインストールされるすべての場所で信頼できるネットワークを利用できますか?(いいえの場合、ローカル処理の方が適している場合があります)
- アプリケーションにはリアルタイムデータが必要ですか?(はいの場合、集中処理がより良いオプションかもしれません)
- アプリケーションは集中的なCPUの労力または高いディスクIOを必要としますか?(はいの場合、集中処理またはシックローカル処理がオプションになる場合があります)
- アプリケーションにはオフライン機能が必要ですか?(はいの場合、ローカル処理の方が適している場合があります)
- リモート環境でデータを統合することに関するセキュリティ上の懸念はありますか?(はいの場合、分散シンクライアントを使用した集中処理の方が適している場合があります)
- アプリケーションを実行するために活用できる既存のハードウェアがサイトにありますか?(はいの場合、集中処理が適切なオプションになる可能性があります。シンクライアントは、展開と保守にかかるコストが低く、安全性が高く、泥棒にとって価値が低くなります)
- 同じユーザーグループが使用している既存のアプリケーションはありますか?また、これらのアプリケーションはどのように展開されますか?(アプリケーションを1つのデザインパターンに統合することで、規模の経済が実現する可能性があります)
sql-server - SQL Server 2000-2005-2008 の分散クエリの問題
新しいサーバーをセットアップするだけです。ワークロードをあるワークロードから別のワークロードに転送しようとしています。このコードを実行するときを除いて、すべてがうまく見えます。
ちなみに、以下は問題なく動作します。
2 つの唯一の違いは、サーバー名のプレフィックスです (p2pindexda と sql2k801)。リンク サーバーに同じオプションが設定されていることを確認しました。また、exec ステートメントが正常に機能することを確認しました...つまり、期待どおりに結果が返されます。
うまくいかないのは、結果をローカルの一時テーブルに挿入しようとしたときです。
何を与える?
c# - Mutex ストアド プロシージャ
データベース テーブルを使用して分散相互排除を作成したいと考えています。ストアド プロシージャに次のインターフェイスがあると便利です。
Wait(一意の識別子)
私はもともと、一意の識別子のテーブルを持つことでこれを実装することを考えていました。プロシージャーの呼び出しは、固有 ID がテーブルに存在しなくなるまで待機します。ただし、指定された一意の識別子がテーブルから削除されたときに、呼び出し元のスレッドを起動する方法がわかりません。
何か案は?データベースがこれを行うのに適切な場所ではない場合、動作するサードパーティのツールはありますか (できればオープンソース)?
(デッドロックを回避するために、待機操作にタイムアウトを含めるか、SqlCommand にタイムアウトを持たせたい)