2009-08-04 8 views
1

負荷の高いアプリケーションでは、クライアントストレージをレジストリまたはデータベースに格納する方が良いでしょうか?負荷が高いほどクライアントストレージ情報のデータベース接続が増え、すべてが遅くなることが懸念されます。 参考:Linux上でColdFusionを使用していますColdFusionクライアントストレージ

考えられますか?

答えて

5

レジストリ(IMHO)にクライアント変数を格納すると、高負荷でパフォーマンスが向上します。 ColdFusionは、データベース変数にクライアント変数を格納すると、ページ要求の開始時に読み取られ、ページが遵守された後、データベースに再格納されます。管理者の接続プーリングが有効になっている場合、これは変数を格納するための非常に効果的な方法です。

参照:http://www.coldfusionmuse.com/index.cfm/2009/7/8/client.variables.reserved.word

+0

「接続プール」と言えば、Coldfusion管理者のデータソースを設定するときに「クライアント要求を越えた接続を維持する」という意味ですか? –

+0

はい、申し訳ありませんが、私は現在、私のCF管理画面を持っていません。基本的には、これをオンにすると、ページによって行われたすべてのDB呼び出しで同じオープン接続が使用され、呼び出しが完了すると接続が閉じられます。 DBコールごとの接続のオープンとクローズは、大きなオーバーヘッドを発生させます。 – andrewWinn

0

データベースを確認するために。 IMOレジストリは、<ユーザー20人のイントラネット、内部システムの場合にのみ実行可能です。

+3

ここであなたはかなり自由な境界を設定したようです。 21人のユーザーを持つイントラネットはどうですか? 25? 30?結局のところ、私はあなたが間違った要因についてこの意見に基づいていると思います。 Windowsレジストリは、最初からやっかいなハックであり、一時的なデータ(クライアント変数)を格納しようとすると、ただ問題を求めているだけです。例えば、レジ​​ストリはおそらく、マシンが減速したときに決して「クリーンアップ」を起こさない1つのものです。それを掃除する唯一の方法は、再フォーマットすることです。

0

Linux上でクライアントストレージを使用している場合は、* nixでの使用がColdFusionでサポートされていないため、レジストリは問題ありません。

その他のオプションは、データベースまたはCookieのみです。

クッキーには、クッキーが有効または無効になっている場合、およびクライアントストレージを使用しているものによってはセキュリティの影響がある場合、ユーザーが使用しているブラウザによって制限があります。

高負荷が懸念される場合、データベースはクライアントストレージにとって最も効率的なソリューションであり、クラスタにスケールアウトする可能性が最も高いでしょう。

+0

* nixはWindowsのようなレジストリを持っていませんが、CFはデフォルトのclientstorage = "registry"とにかく動作します。 – Henry

+0

クライアントストレージをテキストファイルに書き込むか、レジストリサービスが利用できないというメッセージをログに記録しますか? – Jayson

+0

@Jayson、私はそう信じています。 – Henry

2

http://livedocs.adobe.com/coldfusion/7/htmldocs/wwhelp/wwhimpl/common/html/wwhelp.htm?context=ColdFusion_Documentation&file=00001154.htmから「一般的には、データベースにクライアント変数を格納するための最も効率的である。レジストリオプションがデフォルトですが、レジストリは、クライアントデータストレージのための重要な制限があります。レジストリはクラスタ化で使用することはできませんColdFusion MXでは、UNIX上のクライアント変数に対するシステムとその使用はサポートされていません。

0

ストレージとしてクライアントクッキーのみを使用します。私の経験のレジストリでは、質問から外れていても、オプションであるべきではありません。データベースストレージは最終的には大きくなり、パフォーマンスの問題が発生します。

特に大きなウェブサイトの場合、cookieベースは最も拡張性があります。