問題タブ [scalability]
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.
c# - 大規模エンタープライズ システムの構築に関する情報を検索する
1 つのセッションで 500000 のデータ レコードをアップロードして処理することが通常の操作 (C# .NET 3.5 + MS SQL 2005) である場合、情報管理システムの DB レイヤー、ビジネス ロジック、およびクロスプラットフォーム API をどのように編成しますか?
私は特に、並行性、スケーラビリティ、および信頼性に優れた、実稼働環境で実証済みのページング パターンに関心があります。
どの方向に掘り下げるか、誰かアイデアはありますか?
- オープン ソース プロジェクト (OK でない限り、言語やプラットフォームは気にしません)
- 本
- 記事
- Google キーワード
- フォーラムまたはニュースグループ
どんな助けでも大歓迎です!
アップデート:
- 単純なページング (つまり、SQL 2005 の行番号) は機能しません。これは、データベースに対して多数の同時変更が行われるためです。ページ要求の間に削除または挿入されたアイテムは、現在のページ インデックスを自動的に無効にします。
ruby-on-rails - Rails リクエストの初期化
Rails のスケーリングの問題についてよく耳にします。
Rails フレームワークで HTTP リクエストを処理するための実際のコストがどのくらいか知りたいです。つまり、入ってくるすべてのリクエストに対して何が起こらなければならないのでしょうか? クラス解析はありますか?構成?データベース接続の確立?
asp.net - ASP.NETアプリケーションに最適なMemCacheソリューションは何ですか?
Windowsサーバー環境で実行されているASP.NETアプリケーションに最適なMemCacheソリューションは何ですか?なんで?
algorithm - ログの高速テキスト検索
これが私が抱えている問題です。ログのセットがかなり急速に大きくなる可能性があります。それらは毎日個々のファイルに分割され、ファイルのサイズは簡単にギグにまで大きくなります。サイズを抑えるために、30 日ほど前のエントリは消去されます。
問題は、これらのファイルで特定の文字列を検索する場合です。現在、Boyer-Moore 探索は実行不可能なほど遅いです。dtSearch のようなアプリケーションがインデックス作成を使用して非常に高速な検索を提供できることは知っていますが、ログがすでに占有しているスペースの 2 倍を消費せずにそれを実装する方法がよくわかりません。
確認できる参考になるリソースはありますか? インデックスを作成し、それを使用して検索するために何をすべきかを説明する標準アルゴリズムを本当に探しています。
編集:
この検索はクロスプラットフォーム アプリケーションに統合する必要があるため、grep は機能しません。外部プログラムを含めてスイングできる方法はありません。
それが機能する方法は、ログ ブラウザーを備えた Web フロント エンドがあることです。これは、カスタム C++ Web サーバー バックエンドと通信します。このサーバーは、妥当な時間内にログを検索する必要があります。現在、数ギグのログを検索するには時間がかかります。
編集 2: これらの提案のいくつかは素晴らしいものですが、別のアプリケーションを統合できないことを繰り返し述べなければなりません。これは契約の一部です。ただし、いくつかの質問に答えるために、ログ内のデータは、ヘルスケア固有の形式で受信したメッセージまたはこれらに関連するメッセージのいずれかによって異なります。インデックスの再構築には最大 1 分かかる場合がありますが、現在、検索には非常に長い時間がかかるため (最大 2.5 分かかることがわかりました)、インデックスに依存することを検討しています。また、多くのデータは、記録する前に破棄されます。一部のデバッグ ログ オプションがオンになっていない限り、ログ メッセージの半分以上が無視されます。
検索は基本的に次のように行われます: Web フォーム上のユーザーには、最新のメッセージのリストが表示されます (スクロールするとディスクからストリーミングされます。ajax の場合はそうです)。それは、おそらく患者ID、または送信した文字列であり、その文字列を検索に入力できます。検索は非同期的に送信され、カスタム Web サーバーは一度に 1MB ずつログを直線的に検索して結果を取得します。ログが大きくなると、このプロセスに非常に長い時間がかかることがあります。そして、それは私が最適化しようとしているものです。
performance - 動的でパーソナライズされた Web アプリケーションの適切な応答時間はどれくらいですか?
動的コンテンツとパーソナライゼーションを含む複雑な Web アプリケーションの場合、サーバーからの適切な応答時間 (ネットワーク遅延とブラウザーのレンダリング時間を除く) はどれくらいですか? Facebook、Amazon、MyYahoo などのサイトについて考えています。関連する質問として、バックエンド サービスの適切な応答時間はどれくらいですか?
asp.net - ソフトウェア ロード バランシングとハードウェア ロード バランサーの使用経験はありますか?
私が現在本業で担当している ASP.NET アプリケーションは、1 台のサーバー内でスケーリングする能力の点で限界に達しています。明らかに、私たちはセッションをプロセス外に移動することに取り組んでおり、テストとうまくいけば展開の日付が近づいています. Windows のビルトイン ロード バランシングと、Baracudda、Coyote Point、F5 などのアプライアンス ソリューションを使用している人々の経験を利用したいと思います。
事前に考えやアドバイスをいただければ幸いです...
database - BigTable、SimpleDB などのデータベースのプロ
Google BigTable や Amazon SimpleDB などの新しい学校のデータストア パラダイムは、特にスケーラビリティを考慮して設計されています。基本的に、結合の禁止と非正規化は、これを達成する方法です。
ただし、このトピックでは、大きなテーブルでの結合は必ずしも高価である必要はなく、非正規化はある程度「過大評価」されているというのがコンセンサスのようです。スケーラビリティを達成するために単一のテーブル?これらのシステムに格納する必要があるのは、膨大な量のデータ (数テラバイト) ですか?
データベースの一般的な規則は、これらの尺度には当てはまりませんか? これらのデータベースの種類は、多くの類似オブジェクトを格納するように特別に調整されているためですか?
それとも、全体像が欠けていますか?
performance - 許容できない Web アプリケーションの応答時間に関する業界標準はありますか?
私がカスタマイズに取り組んでいる cots (市販の市販) アプリケーションがあります。このアプリケーションでは、特定のデータ分布のロードに非常に長い時間がかかるページがいくつかあります。(この場合、ページが読み込まれるのに約 3 分かかります...そして、時間は指数関数的に増加しています)。
明らかにこれは受け入れられませんが、許容できる応答時間とは何かを指摘できる研究はありますか?
応答時間を議論する良い研究があればいいのですが。
database - データベースのパフォーマンスの向上を遅らせるものは何ですか?
私はデータベースを作成しており、最初にプロトタイピングとベンチマークを行っています。私は、オープンソースで商用無料の組み込み可能なリレーショナル Java データベースである H2 を使用しています。現在、どの列にもインデックスを作成していません。
データベースが約 5GB に拡大した後、バッチ書き込み速度は 2 倍になりました (書き込み速度は元の速度の 2 倍に低下しました)。私は新鮮でクリーンなデータベースでミリ秒あたり約 25 行を書き込んでいましたが、現在は 7GB で約 7 行/ミリ秒を書き込んでいます。私の行は、short、int、float、および byte[5] で構成されています。
データベースの内部構造や、H2 がどのようにプログラムされているかについても、私はあまり知りません。また、これは私がテストした他の DBMS の問題であるため、H2 を悪口を言っているわけではありません。
インデックス作成のオーバーヘッドがない場合、このようにデータベースの速度を低下させる要因は何ですか? 主にファイルシステム構造と関係がありますか? 私の結果から、Windows XP と ntfs がファイルを処理する方法により、ファイルが大きくなるにつれてファイルの末尾にデータを追加するのが遅くなると思います。
http - GoogleのようなHTTPサーバーをどのように拡張しますか?
私は、世界中のどこからでもいつでもwww.google.comにアクセスして、返されるページをすばやく取得する方法にしばしば驚かされます。
確かに、彼らは出力を圧縮し、最小限の設計を維持します-それは助けになります。
ただし、DNSが「www.google.com」としてリストしているWeb上にあるボックスに対して、何百万もの同時ヒットが必要です。
Apacheまたは他のWebサーバーをセットアップしたすべての人は、数百万は言うまでもなく、数千の同時接続を取得し始めるまで、物事が素晴らしく、超高速であることを知っています。
それで、彼らはどのようにそれをしますか?彼らはサーバーマシンのファーム全体を持っていると思いますが、あなたはそれを決して知りません。私がちょうど今ベライゾンに行ったとき、URLはwww22.verizon.comでした。「www22.google.com」は表示されません。
彼らが使用している特定のテクノロジー、またはGoogle以外の人間が同じことを行うために使用できるテクノロジーについてのアイデアはありますか?