問題タブ [ets]

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 に答える
641 参照

r - ets関数から実際の予測を取得するには?

etsRのパッケージの関数を使用していて、モデルを次のようなforecast単一の時系列に適合させたとしますt

コンソールに入力すると予測を見ることができますが、fcast実際にこの値を抽出してプログラムの一部として使用するにはどうすればよいでしょうか? の内容を検索しましたがstr(fcast)、実際の予測はどこにも見つかりません。

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

erlang - Erlang ets 要素の削除/フィルタ

elang ets テーブルを単純なキャッシュとして使用します。テーブルをスキャンして期限切れの要素を削除するプロセスを使用したい (複数)。

ets:foldl を使用

私は得た

これを修正するにはどうすればよいですか?

他のAPIはこれをよりうまく行うでしょうか?

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

elixir - テーブル全体をスキャンせずにetsキーのリストを取得する方法は?

キーを保存および取得するための単純なメモリ内永続レイヤーとして、また異なる値を持つ多くの重複キーを減らすことを含む時折のfoldlのために、エリクサー経由でetsを使用しています。バッグオプションを使用しています。

より複雑なテーブル トラバーサル、マッチ、またはフォールドを実行することなく、現在のキーだけのリストを取得する簡単な、おそらく O(1) 方法はありますか?

Erlang または Elixir 構文の応答を歓迎します。

挿入を支援するために使用している整数でインデックス付けされたアトム キーの静的マップがあります。しかし、すべてのキーが使用されるわけではありません..

簡単な方法がない場合は、ets:lookup を実行して静的アトム キー値をそれぞれ試し、!= [] をテストして独自のリストを生成できることは承知していますが、ets がそのような機能をサポートしているかどうかを確認したかったのです。

ありがとう

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

erlang - Erlang ETS テーブル イベント

共有状態に使用したい場合、ETS テーブルへの挿入を待機するための確立されたメカニズムはありますか?

私は mnesia サポート テーブル イベントを知っています。必要なデータがロードされるまでプロセスが待機できるように、同様のメカニズムがプレーンな ETS に役立つと考えていました。これを行う唯一の方法は、ループをスピンして、指定されたキーが到着するまで継続的に要求することだと思いますが、それは非常に非効率的です。私はむしろメッセージのコールバックを受け取りたいです。私と ETS の間にプロセスを挿入すると、問題を先送りしたことになります。

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

caching - Elixir の分散キャッシング

どのpidがどのユーザーに属しているかのマッピングを保存するためにレジストリを必要とするElixirアプリを書いています。監視対象のアプリで、ユーザーごとに GenServer を用意します。ETS を使用して 1 つのノードで動作する基本的な例がありますが、2 つ以上のノードでは、クラスタリング/レプリケーションをサポートしていないため、ETS を使用できません。分散キャッシュを使用するためのその他のオプションは何ですか? いくつかの調査を行った結果、私のオプションは、Redis などのデータベースを使用するか、Amensia を使用することです。

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

erlang - ets およびファイルの読み取りに関するエラー

免責事項: このコードは私が書いたものではありません。機能させようとしているだけです。

ここからコードを機能させようとしています。セットアップは、Erlang がインストールされた Ubuntu 14.04 64 ビット マシンです。

アクションのシーケンスは次のとおりです。私がやっていることは次のとおりです。

  1. コードを複製する
  2. cdコードを含むフォルダーとerlターミナルに
  3. make:all([load]).
  4. polis:create().
  5. polis:start().
  6. benchmarker:start(slidingwindow50).

私が得るエラーは次のとおりです。

のコードを fx.erl確認すると、問題の原因はおそらくetsパーツと.txtファイルがディスクからメモリ内のテーブルに読み取られていないことにあることがわかります。

更新: の機能を調査しようとしていますfx。これまでのところ、次のような結果が得 られました。 fx:sim(anything)「開始」を出力し、シェルが応答しなくなります。 fx:init().結果は

FX 通貨テーブルの初期化:[metadata,'EURUSD15','EURUSD30','EURUSD60'] FX メタデータと通貨テーブルが初期化され、ファイルに書き込まれました。わかった

fx:loop().たくさん出力します

テーブルに挿入された新しいレコード:「EURUSD15」

最後の行は

新しい FOREX_DB の更新:{2009,6,16,7,30,0,15}

その後

=エラー レポート==== 2016 年 3 月 22 日::16:41:26 === プロセス <0.357.0> で終了値 {badarg,[{fx,insert_ForexRaw,2,[{file," fx.erl"},{line,767}]},{fx,updater,1,[{file,"fx.erl"},{line,698}]},{fx,heartbeat,3,[{ファイル,"fx.erl"},{行,692}]}]}

ets:i().後に実行すると、fx:init().というテーブルが表示されませんEURUSD15

それはなぜですか、どうすれば修正できますか?

PS 有効な解決策が見つかった場合は、変更を元のコードにマージするように依頼する予定です (基本的には、プッシュ リクエストを試みます)。

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

erlang - スーパーバイザーが複数の子を作成するときの問題

スーパーバイザーがいます。gen_server である子から child_specs を取得します。私は最初に単一のスーパーバイザーと子の関係についてこれを書きました。後で私はそのスーパーバイザーに多くの子供を育ててもらいたいと思いました。しかし、私はいくつかの ets テーブルを子 gen_server の状態として持っています。したがって、スーパーバイザーが 2 番目の子を作成しようとすると、次のような例外がスローされます。

ets は共有されているため、スーパーバイザーが 2 番目の子の init 関数に移動すると、すでに ets テーブルが表示されているため、例外が発生しますが、回避方法がわかりません。ただし、推測にすぎません。

これは、子の gen_server から子の仕様を取得する方法です

gen_server の init() 関数は

私はerlangの完全な初心者なので、苦労しています。

ありがとうございました !

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

erlang - Erlang ets は複数のテーブルに挿入します

私はErlangの初心者です。ets テーブルについて質問がありました。

2 つの ets テーブルがあり、両方から値を挿入または削除する必要があります。

操作が成功したか、両方で失敗したかを保証するにはどうすればよいですか?

例えば挿入操作で、ets:insert(table_cp,V) に何か問題があった場合、talbe_test から値を削除しますか?

同じように削除します。ets:delete(table_cp,V) が失敗した場合、値を再挿入しますか?

助けてください。