问题标签 [mnesia]

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 回答
893 浏览

erlang - 合并 Mnesia 的记录

我正在尝试重构一些用于收集呼叫队列中代理当前状态的软件的代码。目前,对于我收听的大约 6 个事件中的每一个,如果代理存在,我会检查 Mnesia 表,并根据事件更改行中的一些值,或者如果代理不存在,则将其添加为新值。目前我在每个事件中都有这个 Mnesia 事务,当然这是一堆重复的代码,用于检查代理的存在等等。

我正在尝试更改它,以便有一个像change_agent/2这样的函数,我从为我处理这个的事件中调用它。

我的问题当然是记录......我找不到动态创建它们或将它们中的两个合并或任何东西的方法。最好有一个我可以调用的函数:

0 投票
2 回答
1439 浏览

erlang - Mnesia 表复制/共享

假设我们有 N erlang 节点,运行相同的应用程序。我想与所有 N 个节点共享一个 mnesia 表 T1,我认为这没有问题。但是,我想与节点对共享另一个 mnesia 表 T2。我的意思是 T2 的内容将是相同的,并且仅复制到/仅共享对。换句话说,我想要 T2 表的 N/2 个不同的内容。这对 mnesia 是否可行,而不是为每对不同的节点重命名 T2?

0 投票
3 回答
2699 浏览

erlang - Mnesia 写入失败

我定义了一个名为log. 我想用 name 创建一个 mnesia 表log_table。当我尝试将记录写入表时,bad_type出现如下错误:

我错过了什么?

0 投票
4 回答
4039 浏览

erlang - 是否可以使用 Erlang、Mnesia 和 Yaws 开发强大的网络搜索引擎?

我正在考虑使用 Erlang、Mnesia 和 Yaws 开发一个网络搜索引擎。是否有可能使用这些软件制作一个功能强大且速度最快的网络搜索引擎?它需要什么来实现这一点,我该如何开始?

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 投票
2 回答
2454 浏览

database - 与 Mnesia 保持关系完整性

我最近一直在研究 Erlang,我决定使用 Mnesia 来完成我的数据库工作,因为它可以毫无问题地存储任何类型的 Erlang 数据结构、轻松扩展、与列表推导一起使用等。

来自标准 SQL 数据库的大多数行可以并且应该由主键标识,通常是自动递增的整数。默认情况下,Mnesia 将行的第一个字段视为其键。据我所知,它也没有办法拥有一个自动递增的整数键。

鉴于我有这些代表我的表的虚构记录:

我认为使用用户名对于某些目的可能已经足够了,就像条目标题一样,为了识别资源,但我该如何保持完整性呢?

假设用户更改了其名称,或者条目的标题在编辑后发生了更改。如何确保我的数据仍然正确相关?在用户名发生变化时使用用户名更新每个表听起来是一个糟糕的主意,无论它是如何放置的。

在 Mnesia 中实施某种主键系统的最佳方法是什么?

另外,如果第一个字段通常是键,那么像“user_entry”这样的中间表会怎么做?否则,在 Mnesia 中表示多对多关系的更好方法是什么?

0 投票
4 回答
1349 浏览

erlang - 如何确保 mnesia 的快速启动时间

带有 mnesia/dets 的 Erlang 以崩溃后的缓慢启动时间而闻名。基本上与旧文件系统上的 fsck 问题相同。

但是我在定期关机后也遇到了缓慢的启动时间:在一台强大的机器上,大约 8 分钟的 250 MB 磁盘数据。

所以除了输入“q()”之外,我还必须在关机时做一些特别的事情?有没有办法加快启动时间?

0 投票
3 回答
11163 浏览

erlang - Mnesia 数据库的存储容量是多少?

有些地方规定2GB期限。有些地方说这取决于节点的数量。

0 投票
2 回答
4492 浏览

erlang - 如何重命名运行 mnesia 数据库的节点

我在 machine1 上创建了一个 Mnesia 数据库/模式。该节点被命名为 mypl@machine1。然后我将所有文件移动到 machine2,因为 machine1 发生故障。只要代码以“mypl@machine1”的名称运行,一切都运行良好。显然这有点令人困惑,因为它现在在 machine2 上运行。

如果我使用节点名称“mypl@machine2”启动 Erlang,Mnesia 数据库将显示为空。

如何将 Mnesia 数据库中的节点从 machine1 重命名为 machine2?

0 投票
3 回答
553 浏览

database - Mnesia 交易

不小心我正在编写的一些代码自己慢慢变成了一个数据库系统,具有增量索引、自由格式的“文档”(又名 CouchDB 类型),它可以具有任意属性...... annyywaay......我决定继续发展它,主要是为了教育目的,并且为了我的需要而真正严格地定制它并保持精简,因为我不想让它对我自己的需要有用(多么慷慨:))......

无论如何,我想知道是否有人对 Mnesia 如何“在幕后”实施交易有意见/更多信息。

Ulf W.,我一直很欣赏你在网上的帖子,所以也许你对此有更深入的信息?