问题标签 [dets]
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 - 当数据不适合内存时,适合 Erlang 应用程序的数据存储后端
我正在研究如何为 Erlang 应用程序组织数据存储的可能选项。它应该使用的数据基本上是由短字符串 id 索引的大量二进制 blob 集合。每个 blob 小于 10 Kb,但其中有很多。我希望它们的总大小可达 200 Gb,因此显然它无法装入内存。对该数据的典型操作是通过其 id 读取 blob 或通过其 id 更新 blob 或添加新的 blob。在一天中的每个给定时间段,只有一个 id 子集被使用,因此数据存储访问性能可能会受益于内存缓存。谈到性能 - 这是非常关键的。目标是在商用硬件(比如 EC2 VM)上每秒进行大约 500 次读取和 500 次更新。
有什么建议在这里使用吗?据我了解,dets 是毫无疑问的,因为它仅限于 2G(或者是 4G?)。Mnesia 也可能没有问题;我的印象是它主要是为数据适合内存的情况设计的。我正在考虑尝试 EDTK 的 Berkeley DB 驱动程序来完成这项任务。它会在上述情况下工作吗?有没有人有在类似条件下在生产中使用它的经验?
erlang - Erlang DETS 可以有多大,如果太小怎么办?
我所需要的只是 Erlang 中的一个大型持久查找表,dets 似乎就是这样,尽管我需要一个明确的答案:
- 表中二进制文件的总大小可以有多大。
- 每个条目可以有多大
- 第一个问题的答案小于100G怎么办
clojure - Clojure 相当于 Erlang 的 DETS / Persistent-Maps
我正在寻找等效于 Erlangs DETS 的持久键/值存储,
但没有 DETS 2G 表大小限制。
erlang - Erlang dets to txt
如何将存储在 dets 中的信息写入 txt 文件?
谢谢你。
erlang - 大多只读使用 DETS
所以我一直在使用 ETS - 效果很好。但是,我将它用作路由数据的缓存 - 我在加载模块时加载它,并在进行更改时保存(读取远多于写入)。
我在想 DETS 会让事情变得更干净——我不必担心管理表的持久性。这会很好地使用 DETS 吗?(大小不是问题,主要关注读取性能的大幅提高 - 所有数据都可以轻松放入内存)。
ets - dets 示例导入数据
dets:to_ets/2 有问题
有人可以在网上给我举个例子吗?我查看了手册页,但看不到任何示例用法。在谷歌上找不到任何东西..
我的问题似乎与实际的 dets:to_ets() 函数本身有关,而不是 dets 的创建。我自己测试过,没问题。
erlang - 随机 bad_object_header mnesia/dets 错误
我对 mnesia 有一个非常奇怪的错误。我有大约 10 个 mnesia 正在记录的表,通常它工作正常。但是,在我的代码中的某个位置,每当我尝试从特定表中读取(尝试从其他表中读取很好)时,我都会收到 DETS 错误。
我将代码减少到
我在交易周围有一个try
/catch
块,我得到的错误是:
不幸的是,我无法通过一个简短的示例重现该错误。即使我从 REPL 调用该函数,它也不会出错。只有在我的实际代码中发生时才会出错。但它确实每次都可靠地发生。
如果我取出mnesia:read
线路,一切正常。我曾尝试重新制作架构和表格,但这并没有帮助。这真的很奇怪,因为我的代码稍后会成功使用该表。只有从这一点使用它才会失败。
可能出了什么问题?
更新
我进行了更多实验,似乎只有当其中两个事务几乎同时发生(在不同的进程中)时才会发生错误。mnesia 不是要以这种方式使用吗?
更新 2
事实证明,通过将我在 Arch Linux 上的 erlang 安装从 R16B-6 降级到 R16B-3,问题得到了解决。希望这个错误很快就会被解决。
erlang - Erlang:我应该保持开放和监督吗?
我正在将数据移入和移出 dets,并且我有一个选择:我可以:
1)在访问它之前立即打开dets并在之后立即关闭它,或者
2) 将 dets 链接到在发生崩溃时重新打开它的主管;例如,通过带有主管的 gen-server 访问 dets,例如:
哪个最好?或者还有更好的选择吗?
非常感谢,
LRP
erlang - 如何删除 DETS 文件?
我遇到了 DETS 文件问题,我找不到如何从驱动器中完成删除 DETS 文件的功能。让我们演示一下场景,您创建 DETS 文件插入一个元素,然后您想将该文件作为临时但持久的存储来销毁。
如何删除文件“TestFile.db”?
erlang - 当 EUnit 测试失败时,Dets 离开开放进程
我一直在玩 EUnit,这很好,但我遇到了问题另一个过程(当我运行测试时)。
你遇到过同样的问题吗?我可以有效地尝试在 EUnit 中捕获吗?
感谢您的任何意见!