Concurrency DETS并发性?(爱尔兰)

Concurrency DETS并发性?(爱尔兰),concurrency,erlang,datastore,Concurrency,Erlang,Datastore,我知道ETS具有有限的并发性,例如,同时对同一行的两次写入不会发生冲突。但我似乎找不到这方面的信息。有人知道吗 请注意,我并不是问在Mnesia主持下运行的DET,也不是问任何特定的方案——比如为DETS表的每行分配一个进程。我只想知道DET的有限并发保证是什么,如果有的话 谢谢。据我所知,DETS目前不支持并发 来自(我的亮点): 值得注意的是,Ets中存在的有序集合类型尚未确定 由Dets实现,对并发操作的有限支持也不是这样 更新,使第一次和下一次调用序列可以安全地在上使用 修正了Ets表格

我知道ETS具有有限的并发性,例如,同时对同一行的两次写入不会发生冲突。但我似乎找不到这方面的信息。有人知道吗

请注意,我并不是问在Mnesia主持下运行的DET,也不是问任何特定的方案——比如为DETS表的每行分配一个进程。我只想知道DET的有限并发保证是什么,如果有的话


谢谢。

据我所知,DETS目前不支持并发

来自(我的亮点):

值得注意的是,Ets中存在的有序集合类型尚未确定 由Dets实现,对并发操作的有限支持也不是这样 更新,使第一次和下一次调用序列可以安全地在上使用 修正了Ets表格这两个功能都将由Dets在 Erlang/OTP的未来版本。在此之前,Mnesia应用程序(或 必须使用一些用户实现的方法(用于锁定)来实现 安全并发。目前,没有Erlang/OTP库支持 基于磁盘的有序术语存储


我只是想避免DET,因为它的大小限制和腐蚀倾向。我想避免它,但由于性能要求,mnesia事务和锁定不会减少它,所以我有一个计划来处理大小限制问题。谢谢-我在前面的文档中看到了这一点,然而,目前还不清楚,似乎在讨论有序集,或者使用first和next。对于这个特定的应用程序,我不需要顺序集或first/next,我只需要多个进程同时添加新记录的能力。我确实运行了一个测试,其中100个进程都同时写入了一个新记录,它工作了,但是我想知道它是否保证工作良好。仅仅尝试一下,打开一个DETS表就会在内核中的
DETS\u sup
下产生一个子进程。然而,向表中写入数据并不会改变这个过程。这让我相信写操作是直接写入文件的。我不确定,但我认为在Erlang中写入文件是“线程安全的”(当然也没有文档)。顺序可能无法保证,但每次写入都应该以原子方式执行。一般来说,由于Erlang的工作方式,我认为很少有(如果有的话)标准库不是“线程安全的”。当然,锁定和一致性是另一回事。