摘要:现象:查看页面,发现数据出现异常,今天生成数据比平常水平偏低好多,不大正常原因查找:查看日志文件,发现有出现了几个这样的警告:** WARNING ** Mnesia is overloaded: {dump_log, write_threshold}在查询时发现好多老外遇到这个问题,这儿要说一点,老外在描述问题上很厉害,这儿把它描述的原因copy下来,和我这儿的情况差不多(当然最后他也没得到想要的结果,不过这是另一说,非重点)view sourceprint?01we encountered the following mnesia warning report in our system
阅读全文
摘要:I have a fragmented mnesia table that I need to add a second index to. It appears that to get this working I need to call mnesia:add_table_index/2 for each fragment. i.e. mnesia:add_table_index(conten...
阅读全文
摘要:2、Mnesia 入门一个演示用的数据库例子。这个例子以后还会用到,也会做些修改。首先要做以下事情:●启动Erlang会话,指定Mnesia数据库的位置●初始化数据库结构●启动Mnesia,创建所需数据表格2.1 第一次启动 Mnesia打开DOS命令控制台窗口,执行这句:D:\Program Files\erl5.6.5\bin > erl -mnesia dir '"d:/erlang/...
阅读全文
摘要:F = fun() -> qlc:e(qlc:q([X || X <- mnesia:table(user)])) end, mnesia:activity(transaction, F, [], mnesia_frag).按条件查询:mnesia:activity(transaction, fun() -> qlc:e(qlc:q([R || R <- mnesia:ta...
阅读全文
摘要:直接使用table_info得到的size总是0,需要使用下面的方法mnesia:activity(transaction,fun() -> mnesia:table_info(player,size) end,mnesia_frag).
阅读全文
摘要:假设一个线上的节点使用下面的命令行运行/usr/local/erlang/bin/erl -boot game_server-1 -config sasl -sname chatserver01 -mnesia dir '"/game/game_chat_server/gamedb"' -detached如果要管理gamedb的数据,用 -sname chatserver01 -mnesia di...
阅读全文
摘要:-record(old, {key, val}).-record(new, {key, val, extra}).Transformer = fun(X) -> #new{key = X#old.key, val = X#old.val,extra = 42}end,{atomic, ok} = mnesia:transform_table(foo, Transformer, record_...
阅读全文
摘要:本章讲述Mnesia事务系统和事务属性,它们让Mnesia成为一个容错的、分布式的数据库管理系统 讲述内容包括锁(table lock和sticky lock)、如何绕开事务(dirty operation)、嵌套事务(nested transaction): 1)事务属性,包括原子性,一致性,隔离性,持久性(ACID) 2)锁 3)脏操作 4)Record名与Table名 5)activity概...
阅读全文
摘要:本章描述了构建分布式、容错的Mnesia数据库相关的高级特性: 1)索引 2)分布和容错 3)表分片 4)本地内容表 5)无盘节点 6)更多的schema管理 7)Mnesia事件处理 8)Mnesia应用调试 9)Mnesia里的并发进程 10)原型 1,索引 如果我们知道record的key,那么数据获取和匹配在执行起来都很高效 相反如果不知道record的key,那么表里所有的record都...
阅读全文
摘要:本章详细介绍了设计Mnesia数据库和编程结构的基本步骤: 1)定义schema 2)数据模型 3)启动Mnesia 4)创建新表 1,定义schema Mnesia系统的配置在schema里描述 schema是一个特殊的表,它包含了表名、每个表的存储类型(表应该存储为RAM、硬盘或两者)以及表的位置等信息 不像数据表,schema表里包含的信息只能通过schema相关的方法来访问和修改 Mnes...
阅读全文
摘要:本章介绍了Mnesia: 1)启动一个Erlang session并制定Mnesia数据库的目录 2)初始化数据库结构 3)启动Mnesia并创建必要的表 1,初次启动Mnesia 以下是Mnesia系统启动的一个简单展示: Java代码 unix>erl-mnesiadir'"/tmp/funky"'Erlang(BEAM)emulatorversion4.9EshellV4.9(abor...
阅读全文
摘要:Mnesia是一个分布式数据库管理系统DBMS,适合于需要连续运算和软实时特性的电信应用及其他Erlang应用 目录 1,介绍 2,Mnesia快速上手 3,构建一个Mnesia数据库 4,事务和其他访问上下文 5,多种Mnesia特性 6,Mnesia系统信息 7,联合Mnesia和SNMP 8,Mnesia错误消息 9,备份callback接口 10,活动访问callback接口 11,碎片表...
阅读全文