问题标签 [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.

0 投票
5 回答
1674 浏览

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 驱动程序来完成这项任务。它会在上述情况下工作吗?有没有人有在类似条件下在生产中使用它的经验?

0 投票
3 回答
1419 浏览

erlang - Erlang DETS 可以有多大,如果太小怎么办?

我所需要的只是 Erlang 中的一个大型持久查找表,dets 似乎就是这样,尽管我需要一个明确的答案:

  • 表中二进制文件的总大小可以有多大。
  • 每个条目可以有多大
  • 第一个问题的答案小于100G怎么办
0 投票
1 回答
348 浏览

clojure - Clojure 相当于 Erlang 的 DETS / Persistent-Maps

我正在寻找等效于 Erlangs DETS 的持久键/值存储,
但没有 DETS 2G 表大小限制。

0 投票
2 回答
802 浏览

erlang - Erlang dets to txt

如何将存储在 dets 中的信息写入 txt 文件?

谢谢你。

0 投票
3 回答
1220 浏览

erlang - 大多只读使用 DETS

所以我一直在使用 ETS - 效果很好。但是,我将它用作路由数据的缓存 - 我在加载模块时加载它,并在进行更改时保存(读取远多于写入)。

我在想 DETS 会让事情变得更干净——我不必担心管理表的持久性。这会很好地使用 DETS 吗?(大小不是问题,主要关注读取性能的大幅提高 - 所有数据都可以轻松放入内存)。

0 投票
2 回答
940 浏览

ets - dets 示例导入数据

dets:to_ets/2 有问题

有人可以在网上给我举个例子吗?我查看了手册页,但看不到任何示例用法。在谷歌上找不到任何东西..

我的问题似乎与实际的 dets:to_ets() 函数本身有关,而不是 dets 的创建。我自己测试过,没问题。

0 投票
2 回答
637 浏览

erlang - 随机 bad_object_header mnesia/dets 错误

我对 mnesia 有一个非常奇怪的错误。我有大约 10 个 mnesia 正在记录的表,通常它工作正常。但是,在我的代码中的某个位置,每当我尝试从特定表中读取(尝试从其他表中读取很好)时,我都会收到 DETS 错误。

我将代码减少到

我在交易周围有一个try/catch块,我得到的错误是:

不幸的是,我无法通过一个简短的示例重现该错误。即使我从 REPL 调用该函数,它也不会出错。只有在我的实际代码中发生时才会出错。但它确实每次都可靠地发生。

如果我取出mnesia:read线路,一切正常。我曾尝试重新制作架构和表格,但这并没有帮助。这真的很奇怪,因为我的代码稍后会成功使用该表。只有从这一点使用它才会失败。

可能出了什么问题?

更新

我进行了更多实验,似乎只有当其中两个事务几乎同时发生(在不同的进程中)时才会发生错误。mnesia 不是要以这种方式使用吗?

更新 2

事实证明,通过将我在 Arch Linux 上的 erlang 安装从 R16B-6 降级到 R16B-3,问题得到了解决。希望这个错误很快就会被解决。

0 投票
1 回答
361 浏览

erlang - Erlang:我应该保持开放和监督吗?

我正在将数据移入和移出 dets,并且我有一个选择:我可以:

1)在访问它之前立即打开dets并在之后立即关闭它,或者

2) 将 dets 链接到在发生崩溃时重新打开它的主管;例如,通过带有主管的 gen-server 访问 dets,例如:

哪个最好?或者还有更好的选择吗?

非常感谢,

LRP

0 投票
1 回答
379 浏览

erlang - 如何删除 DETS 文件?

我遇到了 DETS 文件问题,我找不到如何从驱动器中完成删除 DETS 文件的功能。让我们演示一下场景,您创建 DETS 文件插入一个元素,然后您想将该文件作为临时但持久的存储来销毁。

如何删除文件“TestFile.db”?

0 投票
2 回答
84 浏览

erlang - 当 EUnit 测试失败时,Dets 离开开放进程

我一直在玩 EUnit,这很好,但我遇到了问题另一个过程(当我运行测试时)。

你遇到过同样的问题吗?我可以有效地尝试在 EUnit 中捕获吗?

感谢您的任何意见!