标签: dets

在 elixir 中的每个测试之间设置/拆卸 det 表?

我们试图在一个完全干净的 dets 环境中运行每个测试,每个测试负责自己的设置。我们遇到了无法在测试之间完全删除目录的问题。

我们如何重置dets?我们是否错误地认为吹走整个目录并重新启动应用程序就足够了?在运行之间删除所有记录是否更好?

认为:

  • async: true 未设置任何测试。
  • dets 是必须的
  • 大多数回答的代码应该(如果可能的话)在 elixir 中,而不是在 erlang 中。

示例代码:

setup do
  #clean up anything that wasn't already clean (failed teardown, etc)
  TestSetup.teardown_dets(:myappatom, "dets")

  on_exit fn ->
    TestSetup.teardown_dets(:myappatom, "dets")
    Application.ensure_all_started(:myappatom)
    Process.sleep(300)
  end
end
Run Code Online (Sandbox Code Playgroud)

和拆卸功能的胆量......

def teardown_dets(application_atom, directory) when is_bitstring(directory) do
  teardown_dets(application_atom, [directory])
end
def teardown_dets(application_atom, directories)
  when is_atom(application_atom) and is_list(directories)
do
  #stop the applications completely
  Application.stop(application_atom)

  #blow away all dets while the application is stopped
  try do
    directories
    |> Enum.map(&File.rm_rf(&1))
  rescue
    error …
Run Code Online (Sandbox Code Playgroud)

elixir dets ex-unit

6
推荐指数
0
解决办法
696
查看次数

当数据不适合内存时,适用于Erlang应用程序的数据存储后端

我正在研究如何为Erlang应用程序组织数据存储的可能选项.它应该使用的数据基本上是由短字符串id索引的大量二进制blob集合.每个斑点都低于10 Kb,但其中有很多.我希望总共有200 Gb的大小,所以很明显它不能适应内存.对此数据的典型操作是通过其id读取blob或通过其id更新blob或添加新的blob.在每个给定的时段,仅使用一部分ID,因此数据存储访问性能可能受益于内存缓存.谈到性能 - 这非常关键.目标是在商用硬件上(例如在EC2 VM上)每秒进行大约500次读取和500次更新.

有什么建议可以在这里使用吗?据我所知,dets是不可能的,因为它仅限于2G(或者它是4G?).Mnesia可能也不成问题; 我的印象是它主要是为数据适合内存的情况而设计的.我正在考虑尝试使用EDTK的Berkeley DB驱动程序.它会在上述情况下起作用吗?有没有人在类似条件下的生产中使用它的经验?

erlang data-storage mnesia dets

4
推荐指数
1
解决办法
1615
查看次数

Erlang DETS有多大,如果它太小,该怎么办?

我需要的只是Erlang中的一个大型持久查找表,而dets似乎就是这样的东西,虽然我需要一个明确的答案:

  • 表中二进制文件的总大小可以是多大.
  • 每个条目有多大
  • 如果第一个问题的答案小于100G该怎么办

erlang dets

4
推荐指数
1
解决办法
1298
查看次数

如何删除DETS文件?

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

dets:open_file("TestFile",[{file, "TestFile.db"}]).
{ok,"TestFile"}
dets:insert("TestFile", {a,b,c}).
ok
dets:delete_all_objects("TestFile").
ok
dets:info("TestFile").
[{type,set},
{keypos,1},
{size,0},
{file_size,5432},
{filename,"TestFile.db"}]
Run Code Online (Sandbox Code Playgroud)

如何删除文件"TestFile.db"?

erlang dets erl

2
推荐指数
1
解决办法
309
查看次数

如何在实时应用程序上检查 DETS?

我是 Erlang 的新手,但我想知道是否有可能以某种方式附加到一个工作应用程序并检查它正在使用的 ETS 或 DETS。如果是,你愿意举一个小例子吗?

谢谢!

debugging erlang dets ets

2
推荐指数
1
解决办法
364
查看次数

Erlang dets to txt

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

谢谢.

erlang dets text-files

0
推荐指数
1
解决办法
725
查看次数

标签 统计

dets ×6

erlang ×5

data-storage ×1

debugging ×1

elixir ×1

erl ×1

ets ×1

ex-unit ×1

mnesia ×1

text-files ×1