问题标签 [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.
erlang - 如何使用辅助键进行 ets 表查找
我有一个具有以下属性的表:
SortCode
是主键,Index
是辅助键。给定一个Index
值,我如何获得关联的SortCode
值?
我试过ets:lookup/3
了,但它只需要一个主键。
r - 如何从 ets 函数获取实际预测?
假设我正在使用Rets
中的包中的函数,forecast
并且我已经将模型拟合到单个时间序列t
,例如
如果我fcast
在控制台中输入,我可以看到预测,但我如何实际提取这个值以便我可以将它用作程序的一部分?我一直在搜索内容,str(fcast)
但在任何地方都找不到实际的预测。
elixir - 在不同流程中使用 Elixir ETS
我正在尝试围绕 ETS 实施一个非常简单的示例,但没有取得多大成功。我想让多个worker
进程写入 ETS 表,然后让一个(和不同的)读取器进程定期检索值作为总和。我似乎无法在没有崩溃的情况下插入表格,并且阅读器在执行时返回零......这是我的代码,非常感激地收到任何帮助:
Supervisor
模块:
Writer
模块:
Table
模块:
Reader
模块:
erlang - Erlang ets 移除/过滤元素
我使用 elang ets 表作为一个简单的缓存。我想使用一个进程来扫描表并删除过期元素(多个)。
与 ets:foldl
我有
我怎样才能解决这个问题?
任何其他 API 会做得更好吗?
elixir - 如何在不扫描整个表的情况下检索 ets 键列表?
我通过 elixir 使用 ets 作为一个简单的内存持久层来存储和检索键,也用于偶尔的 foldl,这涉及减少许多具有不同值的重复键。我正在使用包选项。
是否有一种简单的,可能是 O(1) 的方法来检索仅包含当前键的列表,而无需进行更复杂的表遍历或匹配或折叠?
欢迎 Erlang 或 Elixir 语法响应。
我有一个由整数索引的原子键的静态映射,用于协助插入。但并不是所有的键都被使用..
如果没有快速的方法,我知道我可以做一个 ets:lookup 尝试我的每个静态原子键值并测试 != [] 并生成我自己的列表,但想看看 ets 是否支持这样的功能。
谢谢
erlang - Erlang ETS 表事件
如果我想将它用于共享状态,是否有任何已建立的机制来等待插入 ETS 表?
我知道 mnesia 支持表事件,我在想一个类似的机制对于普通的 ETS 很有用,这样一个进程可以等到它需要的数据被加载。我认为这样做的唯一方法是旋转循环并不断请求给定的密钥,直到它到达,但这似乎非常低效。我宁愿得到一个消息回调。如果我在我的和 ETS 之间插入一个流程,我只是将问题推到了底线。
caching - Elixir 中的分布式缓存
我正在编写一个 Elixir 应用程序,它需要一个注册表来存储哪个 pid 属于哪个用户的映射。我将在受监督的应用程序中为每个用户提供一个 GenServer。我有一个使用 ETS 处理一个节点但有 2 个以上节点的基本示例,我不能使用 ETS,因为它不支持集群/复制。拥有分布式缓存还有哪些其他选择?通过一些研究,我的选择是使用 Redis 等数据库或使用 Amensia。
erlang - ets和读取文件出错
免责声明:我没有编写此代码,我只是想让它工作。
我正在尝试从这里获取代码。设置是安装了 Erlang 的 Ubuntu 14.04 64 位机器。
动作顺序如下: 我正在做的事情如下:
- 克隆代码
cd
到带有代码的文件夹和erl
终端make:all([load]).
polis:create().
polis:start().
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 如果找到可行的解决方案,我打算要求将更改与原始代码合并(基本上,我会尝试推送请求)。
erlang - 主管创建多个孩子时的问题
我有一个主管。我从作为 gen_server 的孩子那里得到 child_specs。我首先为一个主管 - 孩子关系写了这个。后来我想让那个主管开始生很多孩子。但是我在子 gen_server 中有一些 ets 表作为状态。因此,当主管试图创建第二个孩子时,它会抛出如下异常:
我猜测由于 ets 是共享的,当主管转到第二个孩子的 init 函数时,它已经看到了一个 ets 表,因此出现异常,但不知道如何解决。不过,这只是一个猜测。
这就是我从子 gen_server 获取子规格的方式
gen_server 的 init() 函数是
我是 erlang 的一个完整的初学者,因此很难。
谢谢 !
erlang - Erlang ets插入多个表
我是二郎新手。我有一个关于 ets 表的问题。
我有两个 ets 表,我需要从两个表中插入或删除值。
我如何保证手术成功或失败?
比如insert操作,如果ets:insert(table_cp,V)有问题,要不要把talbe_test的值删掉?
与删除相同,如果 ets:delete(table_cp,V) 失败,我应该重新插入该值吗?
请帮忙。