【发布时间】:2023-03-16 08:35:01
【问题描述】:
我正在用 erlang 编写一个 bittorrent 跟踪器。鉴于服务的性质, 我不需要绝对的一致性(即,客户端可以对稍微过时的对等列表或种子状态感到非常满意)。
到目前为止,我的策略是在 RAM 中创建启用 disc_copies 的 mnesia 表,以便当日志大小超过一定大小时让 mnesia 自动将内存转储到磁盘。
如果服务器崩溃,一些信息将会丢失。没什么大不了的。
另一种方法是实例化两个表(仅一个内存和一个磁盘),并每隔一分钟左右将进程从内存复制到磁盘。这更天真,但允许仅转储内存中的一部分内容,从而减少整体磁盘开销并可能完全避免使用日志(我实际上不确定最后一条语句)。
我相信还有很多其他方法可以做到这一点。你的是什么?
-teo
【问题讨论】:
标签: erlang mnesia eventual-consistency