問題タブ [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.

0 投票する
1 に答える
1652 参照

erlang - ejabberdスーパーバイザモジュール

gen_modプロセスは毎分ループし、クリーンアップを行うため、実行を継続する必要があります。ただし、数日に1回クラッシュするため、手動で再起動する必要があります。

ejabberd_supにスーパーバイザーを実装する基本的な例を使用して、継続できるようにすることができます。gen_serverを使用する例を理解するのに苦労しています。

助けてくれてありがとう。

0 投票する
1 に答える
209 参照

erlang - Erlang:Mnesia:プレフィックスが_fsのファイルを削除しても安全ですか?

mnesiaディレクトリにいくつかのファイルがあります。

データを失うリスクなしに(大きなファイルであるため)それらを削除できますか?

これらのファイルが表示されるのはなぜですか?これらのファイルは何のためのものですか?それらを削除しても安全ですか?

0 投票する
1 に答える
523 参照

erlang - システムの監視と防止により、Erlang システムでの Mnesia のクラッシュが制限されます

多数のクラウド サーバーがあり、リソースのプロビジョニングをテストするために新しいサーバーを構築しています。

ある種のシステム リソースが不足しているため、予期せずに致命的なクラッシュが発生しています。

オペレーティング システムは Ubunut 8.04 (LTS) ですが、他のオペレーティング システムは Ubuntu 9.04 と Ubuntu 9.10 です。これらを標準化する必要があると思います :(

だから私の質問は:

  • 不足しているリソースを特定するにはどうすればよいですか?
  • 再発しないようにするには、どのようなプロアクティブな監視手順を実行できますか?
  • 一般に、Erlang VM で使い果たす可能性のあるシステム リソースはどれですか? また、それらに対してどのような監視手順を実行する必要がありますか?
0 投票する
2 に答える
712 参照

erlang - Mnesia: {local_content, true} モードでリモート ノード データを読み取る

mnesia を使用してローカル書き込みとグローバル読み取り (レプリケーションなし) を行う方法はありますか? 例: ノード A はそのローカル DB に書き込み、ノード B はノード A の DB から読み取ります。ノード B には、ローカルに保存されているスキーマ情報を除いて、独自のデータはありません。

ドキュメントによると、{local_content, true}私が使用する必要があるもののようですが、ノード B にノード A のデータを読み取らせようとして失敗しました。

私のスキーマとテーブルの構成は次のようになります。

nodeA@ip1:

nodeB@ip2:

構成が間違っていますか、それとも他の方法でこれを行うことができますか?

0 投票する
2 に答える
2458 参照

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

0 投票する
3 に答える
497 参照

performance - Web アプリのパフォーマンスを測定する方法

PHP/Apache/Mysql、Python/Ngix/Postgresql、Erlang/Yaws/Mnesia で 3 つのシンプルなブログ システムを開発しました。

この 3 つの異なる構成について、サーバーのパフォーマンスを測定するにはどうすればよいですか?

0 投票する
3 に答える
3245 参照

database - Erlang:MnesiaまたはMysql?

ErlangではどのDBMSを使用していますか?なぜ ?

0 投票する
1 に答える
1197 参照

erlang - Mnesiaのテーブルはどこにありますか?

私はMnesiaをより伝統的なデータベースと比較しようとしています。

私が理解しているように、Mnesiaのテーブルは次の場所に配置できます(Mnesiaのメモリ消費を参照)。

  • ram_copies-テーブルはに格納されるetsため、ACIDのように耐久性はありません。
  • disc_copies-テーブルはとに配置されetsdetsいるので、テーブルは使用可能なメモリより大きくすることはできませんか?また、テーブルが断片化されている場合、データベースは使用可能なメモリより大きくすることはできませんか?
  • disc_only_copies-テーブルが配置detsされているため、メモリにキャッシュがなく、パフォーマンスが低下します。また、テーブルのサイズはのサイズに制限されているdetsか、テーブルを断片化する必要があります。

したがって、RAMからの読み取りのパフォーマンスとディスクへの書き込みの耐久性が必要な場合、MySQLやPostgreSQLなどの従来のRDBMSと比較して、テーブルのサイズは非常に制限されます。

Mnesiaは従来のRDBMSを置き換えることを意図していないことは知っていますが、大きなRDBMSとして使用できますか、それとも別のデータベースを探す必要がありますか?

私が使用するサーバーは、メモリ量が制限された約512MBのVPSですが、データベースのパフォーマンスを向上させたいと考えています。

Mnesiadisc_copiesの他のタイプのテーブルは、私が理解しているように制限されていますか?データベースを部分的にメモリに、完全にディスクにコピーすることはできませんか?

0 投票する
3 に答える
3218 参照

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でこれを行うにはどうすればよいですか?

0 投票する
2 に答える
743 参照

erlang - MNesiaの動的クエリを実装する方法は?

MNesiaの動的クエリを生成する関数を実装しようとしています。

たとえば、これらの引数を使用して関数が呼び出された場合。

MNesiaにクエリを実行して、名前「jack」年齢21歳の個人テーブルのアイテムを一覧表示したいと思います。

qlc:q(ListComprehension)とqlc:string_to_handle( "ListComprehension")を使用してこれを実装しようとしました。コンパイルエラーが原因で最初に失敗しましたが、コンパイラでは、ListComprehentionsの代わりに関数を使用できず、「Item#Table.Field」のようなレコード名の代わりに変数を使用できませんでした。2番目は失敗しました。これは、erl_evalがレコードを処理できず、{undefined_record、person}などの例外をスローしたためです。

どの方法を使用すればよいですか?どうすればこれらの問題を解決できますか?または、別の方法を使用する必要がありますか?

ありがとう。