問題タブ [mnesia]
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.
erlang - ejabberdスーパーバイザモジュール
gen_modプロセスは毎分ループし、クリーンアップを行うため、実行を継続する必要があります。ただし、数日に1回クラッシュするため、手動で再起動する必要があります。
ejabberd_supにスーパーバイザーを実装する基本的な例を使用して、継続できるようにすることができます。gen_serverを使用する例を理解するのに苦労しています。
助けてくれてありがとう。
erlang - Erlang:Mnesia:プレフィックスが_fsのファイルを削除しても安全ですか?
mnesiaディレクトリにいくつかのファイルがあります。
データを失うリスクなしに(大きなファイルであるため)それらを削除できますか?
これらのファイルが表示されるのはなぜですか?これらのファイルは何のためのものですか?それらを削除しても安全ですか?
erlang - システムの監視と防止により、Erlang システムでの Mnesia のクラッシュが制限されます
多数のクラウド サーバーがあり、リソースのプロビジョニングをテストするために新しいサーバーを構築しています。
ある種のシステム リソースが不足しているため、予期せずに致命的なクラッシュが発生しています。
オペレーティング システムは Ubunut 8.04 (LTS) ですが、他のオペレーティング システムは Ubuntu 9.04 と Ubuntu 9.10 です。これらを標準化する必要があると思います :(
だから私の質問は:
- 不足しているリソースを特定するにはどうすればよいですか?
- 再発しないようにするには、どのようなプロアクティブな監視手順を実行できますか?
- 一般に、Erlang VM で使い果たす可能性のあるシステム リソースはどれですか? また、それらに対してどのような監視手順を実行する必要がありますか?
erlang - Mnesia: {local_content, true} モードでリモート ノード データを読み取る
mnesia を使用してローカル書き込みとグローバル読み取り (レプリケーションなし) を行う方法はありますか? 例: ノード A はそのローカル DB に書き込み、ノード B はノード A の DB から読み取ります。ノード B には、ローカルに保存されているスキーマ情報を除いて、独自のデータはありません。
ドキュメントによると、{local_content, true}
私が使用する必要があるもののようですが、ノード B にノード A のデータを読み取らせようとして失敗しました。
私のスキーマとテーブルの構成は次のようになります。
nodeA@ip1:
nodeB@ip2:
構成が間違っていますか、それとも他の方法でこれを行うことができますか?
erlang - 記憶喪失クエリのクエリ リスト内包表記を作成する
erlang+mnesia を使用して小さなテスト アプリを構築しようとしています。
ここで定義されているように、#user レコードから作成されたユーザー テーブルがあります。
次に、その関数を使用してユーザーを挿入します。
クエリ[U#user.details || U <- mnesia:table(user)]
は空でないリストを返します。今、名前に一致する details.name を持つレコードがない場合、または一致するレコードがある場合は、ゼロレコードを含むリストを返すクエリを作成しようとしています。
これが私が使用する方法です(これは機能します):
このチュートリアルからいくつかのものをコピーしました。同様の問題はメソッド (スライド 19) で解決されmnesia:select
ますmne_fun_query({sport, Sport})
が、今度は qlc で解決したいと思います。
さまざまな組み合わせを試しましたが、成功しませんでした (コンパイル時に失敗することがよくあります..)。
私は本当に erlang に慣れていません。どのクエリが機能するかを教えて、それを少し説明していただければ幸いです。
マット。
編集
これは機能しないバージョンですが、私の問題をよりよく説明しているかもしれません
そして私が持っているエラー:
mathieu@evangeneer:~/projects/nopair$ make再コンパイル
: src/resources/user_resource
src/resources/user_resource.erl:22: 前の構文エラー: '.'
src/resources/user_resource.erl:6: function user_exists/2 undefined make:
*** [erl] エラー 1
performance - Web アプリのパフォーマンスを測定する方法
PHP/Apache/Mysql、Python/Ngix/Postgresql、Erlang/Yaws/Mnesia で 3 つのシンプルなブログ システムを開発しました。
この 3 つの異なる構成について、サーバーのパフォーマンスを測定するにはどうすればよいですか?
database - Erlang:MnesiaまたはMysql?
ErlangではどのDBMSを使用していますか?なぜ ?
erlang - Mnesiaのテーブルはどこにありますか?
私はMnesiaをより伝統的なデータベースと比較しようとしています。
私が理解しているように、Mnesiaのテーブルは次の場所に配置できます(Mnesiaのメモリ消費を参照)。
ram_copies
-テーブルはに格納されるets
ため、ACIDのように耐久性はありません。disc_copies
-テーブルはとに配置されets
てdets
いるので、テーブルは使用可能なメモリより大きくすることはできませんか?また、テーブルが断片化されている場合、データベースは使用可能なメモリより大きくすることはできませんか?disc_only_copies
-テーブルが配置dets
されているため、メモリにキャッシュがなく、パフォーマンスが低下します。また、テーブルのサイズはのサイズに制限されているdets
か、テーブルを断片化する必要があります。
したがって、RAMからの読み取りのパフォーマンスとディスクへの書き込みの耐久性が必要な場合、MySQLやPostgreSQLなどの従来のRDBMSと比較して、テーブルのサイズは非常に制限されます。
Mnesiaは従来のRDBMSを置き換えることを意図していないことは知っていますが、大きなRDBMSとして使用できますか、それとも別のデータベースを探す必要がありますか?
私が使用するサーバーは、メモリ量が制限された約512MBのVPSですが、データベースのパフォーマンスを向上させたいと考えています。
Mnesiadisc_copies
の他のタイプのテーブルは、私が理解しているように制限されていますか?データベースを部分的にメモリに、完全にディスクにコピーすることはできませんか?
database - Erlang Mnesia SQL Select FROM WHERE Field IN (value1, value2, value3, ...) に相当するもの
f1、f2、f3などのフィールドを持つmnesiaテーブルがあります。ここで、フィールド値が V1 のすべての行を選択する場合は、mnesia:select
仕様または単純な を使用して一致させmnesia:match_object
ます。ここで、フィールド f1 の値として V1、V2、V3 ... または Vn (任意の長さのリスト) を持つすべての行を選択する必要があります。SQLでは、次のようなことをします
mnesiaでこれを行うにはどうすればよいですか?
erlang - MNesiaの動的クエリを実装する方法は?
MNesiaの動的クエリを生成する関数を実装しようとしています。
たとえば、これらの引数を使用して関数が呼び出された場合。
MNesiaにクエリを実行して、名前が「jack」で年齢が21歳の個人テーブルのアイテムを一覧表示したいと思います。
qlc:q(ListComprehension)とqlc:string_to_handle( "ListComprehension")を使用してこれを実装しようとしました。コンパイルエラーが原因で最初に失敗しましたが、コンパイラでは、ListComprehentionsの代わりに関数を使用できず、「Item#Table.Field」のようなレコード名の代わりに変数を使用できませんでした。2番目は失敗しました。これは、erl_evalがレコードを処理できず、{undefined_record、person}などの例外をスローしたためです。
どの方法を使用すればよいですか?どうすればこれらの問題を解決できますか?または、別の方法を使用する必要がありますか?
ありがとう。