问题标签 [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 投票
2 回答
1411 浏览

erlang - 如何使用辅助键进行 ets 表查找

我有一个具有以下属性的表:

SortCode是主键,Index是辅助键。给定一个Index值,我如何获得关联的SortCode值?

我试过ets:lookup/3了,但它只需要一个主键。

0 投票
1 回答
641 浏览

r - 如何从 ets 函数获取实际预测?

假设我正在使用Rets中的包中的函数,forecast并且我已经将模型拟合到单个时间序列t,例如

如果我fcast在控制台中输入,我可以看到预测,但我如何实际提取这个值以便我可以将它用作程序的一部分?我一直在搜索内容,str(fcast)但在任何地方都找不到实际的预测。

0 投票
1 回答
722 浏览

elixir - 在不同流程中使用 Elixir ETS

我正在尝试围绕 ETS 实施一个非常简单的示例,但没有取得多大成功。我想让多个worker进程写入 ETS 表,然后让一个(和不同的)读取器进程定期检索值作为总和。我似乎无法在没有崩溃的情况下插入表格,并且阅读器在执行时返回零......这是我的代码,非常感激地收到任何帮助:

Supervisor模块:

Writer模块:

Table模块:

Reader模块:

0 投票
3 回答
1078 浏览

erlang - Erlang ets 移除/过滤元素

我使用 elang ets 表作为一个简单的缓存。我想使用一个进程来扫描表并删除过期元素(多个)。

与 ets:foldl

我有

我怎样才能解决这个问题?

任何其他 API 会做得更好吗?

0 投票
3 回答
6103 浏览

elixir - 如何在不扫描整个表的情况下检索 ets 键列表?

我通过 elixir 使用 ets 作为一个简单的内存持久层来存储和检索键,也用于偶尔的 foldl,这涉及减少许多具有不同值的重复键。我正在使用包选项。

是否有一种简单的,可能是 O(1) 的方法来检索仅包含当前键的列表,而无需进行更复杂的表遍历或匹配或折叠?

欢迎 Erlang 或 Elixir 语法响应。

我有一个由整数索引的原子键的静态映射,用于协助插入。但并不是所有的键都被使用..

如果没有快速的方法,我知道我可以做一个 ets:lookup 尝试我的每个静态原子键值并测试 != [] 并生成我自己的列表,但想看看 ets 是否支持这样的功能。

谢谢

0 投票
3 回答
311 浏览

erlang - Erlang ETS 表事件

如果我想将它用于共享状态,是否有任何已建立的机制来等待插入 ETS 表?

我知道 mnesia 支持表事件,我在想一个类似的机制对于普通的 ETS 很有用,这样一个进程可以等到它需要的数据被加载。我认为这样做的唯一方法是旋转循环并不断请求给定的密钥,直到它到达,但这似乎非常低效。我宁愿得到一个消息回调。如果我在我的和 ETS 之间插入一个流程,我只是将问题推到了底线。

0 投票
1 回答
1154 浏览

caching - Elixir 中的分布式缓存

我正在编写一个 Elixir 应用程序,它需要一个注册表来存储哪个 pid 属于哪个用户的映射。我将在受监督的应用程序中为每个用户提供一个 GenServer。我有一个使用 ETS 处理一个节点但有 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)输出“Started”并且使 shell 无响应; 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,[{file ,"fx.erl"},{line,692}]}]}

运行ets:i().fx:init().显示 no table called EURUSD15

为什么会这样,我该如何解决?

PS 如果找到可行的解决方案,我打算要求将更改与原始代码合并(基本上,我会尝试推送请求)。

0 投票
2 回答
61 浏览

erlang - 主管创建多个孩子时的问题

我有一个主管。我从作为 gen_server 的孩子那里得到 child_specs。我首先为一个主管 - 孩子关系写了这个。后来我想让那个主管开始生很多孩子。但是我在子 gen_server 中有一些 ets 表作为状态。因此,当主管试图创建第二个孩子时,它会抛出如下异常:

我猜测由于 ets 是共享的,当主管转到第二个孩子的 init 函数时,它已经看到了一个 ets 表,因此出现异常,但不知道如何解决。不过,这只是一个猜测。

这就是我从子 gen_server 获取子规格的方式

gen_server 的 init() 函数是

我是 erlang 的一个完整的初学者,因此很难。

谢谢 !

0 投票
1 回答
359 浏览

erlang - Erlang ets插入多个表

我是二郎新手。我有一个关于 ets 表的问题。

我有两个 ets 表,我需要从两个表中插入或删除值。

我如何保证手术成功或失败?

比如insert操作,如果ets:insert(table_cp,V)有问题,要不要把talbe_test的值删掉?

与删除相同,如果 ets:delete(table_cp,V) 失败,我应该重新插入该值吗?

请帮忙。