問題タブ [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 - mnesia との間で単一のテーブルのみをバックアップ/復元する方法は?
disk_only_copies タイプの大きなテーブルがいくつかあります。ここで、短いノード名を長い名前に変更する必要がありますが、RAM の制限により変更できません...
データベースのバックアップ/リストアを部分的に (テーブルごとに) 使用できますか?
erlang - Mnesiaクラスタリング
2つのノードをクラスター化する場合、オンラインでの実験と読み取りから、ノードAは「マスター」ノードのようになり、ノードBは必要に応じてテーブルをコピーすることを理解しています。(それ以外の場合は、リモートでアクセスするだけです。)
ノードBがダウンした場合はどうなりますか?最後に更新されてから変更されたデータを再コピーするだけですか?
また、ノードAがダウンした場合はどうなりますか。ノードBはまだ使用できますか?その場合、ノードBでデータが変更された場合、ノードAはそれを自分自身にコピーしますか?これまでの私の理解では、ノードAはノードBの発言を気にしませんが、誰かが私が間違っていると言ってください。
erlang - Mnesia(NoSQL)モデリングを理解するのを手伝ってください
Mnesiaを理解するための私の探求において、私はまだリレーショナル用語で考えることに苦労しています。だから私はここに私の闘争を置き、それらを解決するための最良の方法を求めます。
1対多の関係 私にはたくさんの人がいると言ってください、
今、私は電話を常にリストとして保存するように定義できることを知っているので、人々は複数の電話番号を持つことができます、そしてそれがそれを行う方法だと思います(そうですか?それでは、これを逆に調べるにはどうすればよいですか?たとえば、番号の名前を見つけますか?)。
多対多の関係 では、人を入れることができる複数のグループがあると仮定しましょう。グループ名には意味がなく、単なる名前です。概念は「unixシステムグループ」または「ラベル」です。素朴に、私はこのメンバーシップをプロップリストとしてモデル化します。
たとえば、上からの「連絡先」レコード内のフィールドとして。グループ名に基づいてグループのすべてのメンバーをすばやく検索できるようにし、個人が登録されているすべてのグループを検索できるようにする場合、mnesia内でこれをモデル化するための最良の方法は何ですか?もちろん、これをグループ識別子だけを含むリストとしてモデル化することもできます。mnesiaで使用する場合、これをモデル化するための最良の方法は何ですか?
この質問がばかげている場合はお詫び申し上げます。mnesiaに関するドキュメントはたくさんありますが、全体的な使用法の良い例がいくつか欠けています(IMO)。
erlang - Erlang: MNesia: 冗長性を実装していますか?
Erlang / MNesia で開発されたアプリケーションがあり、MNesia の冗長性を実装しようとしています。
追加したい-実行時にノードを動的に削除し、新しい参加ノードごとにテーブルの同期を処理します。
Erlang と MNesia を使用してこれを実装する最良の方法は何ですか?
ありがとう。
database - 記憶喪失の分布についての質問
mnesiaを実行している2つのノードがあります。ノード1にスキーマといくつかのテーブルを作成し、ノード2で使用mnesia:add_table_copy
してノード1からノード2にテーブルをコピーしました。
ノード1を呼び出しq()
てから、ノード2を呼び出すまで、すべてが正常に機能します。ノード1を再度起動すると、戻らないことがわかりました。ノード2を再度起動したときにのみ戻ります。q()
mnesia:wait_for_tables([sometable], infinity)
これを修正する方法はありますか?ノード2がダウンしていると、ノード1を再開できないため、これは問題です。
events - Mnesiaイベントの注文
分散システム内の異なるノード上の複数のプロセスが mnesia イベントにサブスクライブするアプリケーションを開発しています。テーブルは、ノードの 1 つで 1 つのプロセスから書き込まれます。
ただし、テーブル上の操作と同じ順序でイベントを確実に受け取ることができるかどうかについて、不確実性が生じています。
例えば:
書き込みイベントの後に削除イベントが発生することがある場合、設計が機能せず、別の種類の通知メカニズムを作成する必要があります。
また、(同じプロセスからの)異なるテーブルでの操作はどうですか?
tab2 からのイベントの前に、常に tab1 からのイベントを確実に取得できますか? すべてのプロセスとすべてのノードで?
ejabberd - ejabberd が mnesia を使用しないようにする方法
クラッシュしたサーバーから新しいサーバーにデータベースを復元する手順を確立しようとしています。私のサーバーは XMPP サーバーとして Ejabberd を実行しており、mnesia の代わりに postgresql を使用するように構成しました。
私の手順は、「元のDBの内容をダンプし、新しいサーバーを実行し、psqlを使用してDBの内容を復元してから、システムを実行する」のようなものです。ただし、Ejabberd を再度実行しようとすると、クラッシュが発生します。
ここで、システムは PostgreSQL で実行されていると考えていましたが、まだ Mnesia を使用しているようです。いくつか質問があります:
- 記憶喪失が使用されていないことを確認するにはどうすればよいですか?
- すべての ejabberd アクティビティを PGSQL に転送するにはどうすればよいですか?
これは、私の ejabberd.cfg ファイルのモジュール部分です。
私は何が欠けていますか?
クラッシュの原因は mnesia DB が Ejabberd によって使用されているためだと思います.PGSQL DB と同期していないため、正しく動作しません.
編集:1つの問題が解決しました。私は Amazon クラウドを使用しているため、ERLANG_NODE をハードコーディングして、ホスト名 (再起動時に変更される) で定義されないようにする必要がありました。これで ejabberd が動作するようになりましたが、mnesia の使用をやめたいと思っています。
erlang - Mnesiaスキーマを視覚化する方法は?
Erlang Mnesiaスキーマを視覚化するために利用できるツール/スクリプトはありますか?
理想的には、Graphvizまたは他の同様のソフトウェアで読み取るための.dotファイルを生成する必要があります。
erlang - Mnesiaでテーブルを開始する方法は?
テーブルの1つが2Gのリッチサイズで、その後このテーブルを操作できない場合があります。
'mynode @ localhost' 5> mnesia:dirty_first(my_table)。**終了しました:{中止、{badarg、[my_table]}} **
フラグメンテーションを適用する必要があることは理解していますが、実行時にどのように適用しますか?そして主な質問は-実行時にmy_tableを起動してサイズを小さくする方法は?(つまり、再起動せずに記憶喪失)
erlang - キーがタプルで、検索基準に「_」アンダースコアが含まれる mnesia テーブルの読み取り
私は 3 番目または 4 番目の正規形記憶喪失データベースを持っており、問題のテーブルはキー/値ハッシュである必要がありますが、アーキテクトはキーと値をレコードのキー部分に入れました。
次のようになります。
問題は...請求書番号しか知らない場合でも、タプルではなく請求書が唯一のキーであるかのように、DBからデータを取得できますか?