mnesia】的更多相关文章

先推荐一篇:mnesia源码分析(yufeng)   - linear hash   ETS/DETS/mnesia 都使用了linear hash算法 http://en.wikipedia.org/wiki/Linear_hashing     redis dict 的实现类似于linear hash,渐进式rehash,保证操作是O(1).不过除了每次操作时执行一个bucket的rehash,而且每100ms内使用1ms 执行加快rehash进程. 虽然虽然rehash过程渐进式的,但在k…
http://www.iteye.com/topic/643187 1.启动两个互通的节点a.b: 2.在a节点net_adm:ping(b) 查看ab之间是否联通(nodes()). 3.在保持通的情况下a节点插入数据到数据库(必须把表建立成多节点分布式的表) 4.b节点 mnesia:start()启动数据库,并且用mnesia:change_config(extra_db_nodes, Nodelists)连接到各节点. 5.b节点就可以访问到a节点数据表中数据了.…
Mnesia是一个分布式数据库管理系统,适合于电信和其它需要持续运行和具备软实时特性的Erlang应用,越来越受关注和使用,但是目前Mnesia资料却不多,很多都只有官方的用户指南.下面的内容将着重说明  Mnesia 数据库如何实现SQL查询,实现select / insert / update / where / order by / join / limit / delete等SQL操作. 示例中表结构的定义: %% 账号表结构 -record( y_account,{ id, accou…
Mnesia是erlang/otp自带的分布式数据库管理系统.mnesia配合erlang的实现近乎理想,但在实际使用当中差强人意,总会有一些不足.mnesia数据表没有主键自增的功能,但在mnesia函数中有一个自增函数可以用来生成自增的id,在后面的内容将讲述如何实现主键自增的功能. 参照SQLite的做法,就是在数据库中单独建立一个的sqlite_sequence表来做其他表的自增索引表.同样,我们也创建这样一个表erlang_sequence,用来索引其他表的自增id,看似麻烦,效果还是…
Mnesia是一个分布式数据库管理系统,适合于电信和其它需要持续运行和具备软实时特性的Erlang应用,越来越受关注和使用,但是目前Mnesia资料却不多,很多都只有官方的用户指南.下面的内容将着重说明 如何做 Mnesia 数据库查询. 示例中表结构的定义: %% 账号表结构 -record( y_account,{ id, account, password }). %% 资料表结构 -record( y_info, { id, nickname, birthday, sex }). 1.查…
查看表结构 查看mnesia表的结构: mnesia:info(). 查看此表的基本信息: mnesia:table_info(<tableName>, all). Mnesia初使化 mnesia:stop(), mnesia:create_schema([node()]), mnesia:start(). 创建表 mnesia:create_table(<tableName>, [{attributes, record_info(fields,<tableName>…
mnesia是erlang自带的分布式数据库,基于ets和dets实现的.mnesia兼顾了dets的持久性和ets的高性能,可以自动在多个erlang节点间同步数据库.最关键的是,mnesia实现了事务机制. mnesia数据库有一个schema表,保存着数据库相关的一些信息,例如如何将表保存到磁盘.如何加载这些表.在哪些节点间同步数据.构建集群,关键是处理这个schema表. 调用函数mnesia:create_schema(ListOfNodes)可以创建schema,这必须在启动mnes…
1.模式创建 mnesia:create_schema([node()|nodes()]).集群的节点之间创建模式 2.启动和停止 application:start(mnesia). application:stop(mnesia). 3.创建表 rd(usr,{msisdn,id,status,plan,services}).                                                                        usr(om@publi…
[root@iZbp1iiexwyqe7tpjigcg9Z rabbitmq]# cat startup_err /usr/lib/rabbitmq/bin/rabbitmq-env: line 91: cd: /var/lib/rabbitmq/mnesia/rabbit@iZbp1iiexwyqe7tpjigcg9Z-plugins-expand: Permission denied Crash dump was written to: erl_crash.dumpinit terminat…
原文地址: http://www.cnblogs.com/bluefrog/archive/2012/05/16/2504625.html 本来是项目合作的,可是你却一而再再而三的使用这招,我处理愤怒了,自己来.先学习下 mnesia 的操作先: -module(test_mnesia). -compile(export_all). -include_lib("stdlib/include/qlc.hrl"). %% 定义记录结构 -record(shop,{item,quantity…
环境: rabbitmq集群   2台机器,挂了一台后重启服务,发现在服务启动不了错误如下: 这里rabbit连接不商rabbit02这里这个服务也无法启动 解决办法: rabbitmq默认的数据库位置 [root@controller01 ~]# ls /var/lib/rabbitmq/mnesia/ 一般命名规则(rabbit@主机名字) rabbit@controller01  rabbit@controller01.pid  rabbit@controller01-plugins-ex…
由于服务器是server版本,所以很难直观的看到mnesia的数据.所以对于初学者来说非常的困惑. 特地在qq群中请教了别人.别人说只要pong通了就行,就能通过rpc去操作远程的mnesia数据库.初学者太懂这个意思.然后特地搜索了一下,终于搜到了别人关于两台erl节点服务器ping通的文章. ok,接下来远程连接ejabber的mnesia数据库吧. ejabberd默认节点是ejabberd@localhost,这种节点是无法正常ping通的.我也尝试修改ejabberdctl.cfg配置…
mnesia创建的时候须要指定表record结构,假设定义的record结构改动了,就要更新数据的表结构.否则mnesia无法正常读取和写入数据. 我们最開始是这样定义结构的 -record(person, {name, age}). 然后这样建表 mnesia:create_table(person, [{disc_only_copies, nodes()}, {attributes, record_info(fields,person)}]). 有一天我们改变了这个person结构 -rec…
[Erl_Question12] Mnesia分布式应用 情景: 设计一个图书管理系统,需求: 1. 基本的增删查改功能; 2. 支持多节点备份(其中一个节点挂了进,对外接口不影响). 方案一: Erlang 代码如下:https://gist.github.com/zhongwencool/28f7db8d52134b082f97 启动shell: erl -name cloud_server@127.0.0.1 -pa "../ebin/" -setcookie best -run…
在之前的文章中,测试了脏读和事物读之间性能差别,下面测试下脏写和事物写之间的性能差别: 代码如下: -module(mnesia_text). -compile(export_all). -record(r_test, {id, name}). start(N) -> timer:tc(mnesia_text,dirty,[N]). start2(X) -> timer:tc(mnesia_text,t_w1,[X]). init() -> case mnesia:create_sche…
在mnesia中,有脏读脏写等以及事物读写,它们的差异通过测试不难发现: 代码如下: -module(mnesia_read_test). -compile(export_all). -record(r_test, {id, name}). start(N) -> timer:tc(mnesia_read_test,dirty_read,[N]). start2(Num) -> timer:tc(mnesia_read_test,t_read,[Num]). init() ->     …
Mnesia基本用法 查看表结构 查看mnesia表的结构: mnesia:info(). 查看此表的基本信息: mnesia:table_info(<tableName>, all). Mnesia初使化 mnesia:stop(), mnesia:create_schema([node()]), mnesia:start(). 创建表 mnesia:create_table(<tableName>, [{attributes, record_info(fields,<ta…
创建mnesia数据库的步骤简述: 1)定义脚本: -module(mns). -export([setup/0, clean/0]). -record(user, { id, coin, diamond, strength, heros }). setup() -> mnesia:create_table(user, [{attributes, record_info(fields, user)}, {disc_copies, [node()]}]), mnesia:create_table(…
http://blog.csdn.net/erlib/article/details/40743687 情景: 设计一个图书管理系统,需求: 1. 基本的增删查改功能; 2. 支持多节点备份(其中一个节点挂了进,对外接口不影响). 方案一: Erlang 代码如下:https://gist.github.com/zhongwencool/28f7db8d52134b082f97 启动shell: erl -name cloud_server@127.0.0.1 -pa "../ebin/&quo…
mnesia数据库学习笔记一 mnesia数据库学习笔记二 mnesia数据库学习笔记三 mnesia数据库学习笔记四…
FAQ List: 1. 如果动态的添加一个节点到Mnesia cluster中 2. 如何动态的从mnesia cluster中删除一个节点 3. 在一个节点上演示将当前已有的表格分片fragment存储, 增加删除分片的方法 4. 多个节点的分片测试 5. 节点池node_pool如何保持存储的fragment在各个节点中的平衡? 6. 总结Mnesia使用linear hashing线性哈希的特点? 7. 在Centos上多节点不能连通net_adm:ping/1返回pang ------…
  上周Erlang讨论群里面提到lists的++实现,争论大多基于猜测,其实打开代码看一下就都明了.贴出代码截图后有同学问这代码是哪里找的?   "代码去哪里找?",关于Erlang源码阅读的路线图江湖上只有一份残卷了.我觉得"代码在哪儿?"这类问题是信息不对称造成的,本身难度不大,就像<贫民窟的百万富翁>里面的情节:贾马尔知道市井生活中的零零碎碎却说不出国徽上的文字,我们就从电影中的这一幕开始本文的探索吧     内景,演播室—夜晚 普瑞姆:这个问题…
在2014年的开头就有这样一个令人振奋的好消息,Erlang有一本新书即将出版 <The Erlang Runtime System>,其作者happi在2013年3月份公布了这本书的写作计划:"The plan is to have the book done by the end of 2013 and published early 2014. ",出版方是O’Reilly,按照O’Reilly近一两年的管理,都会有电子版(PDF epub)的版本,所以我们还是有机会…
升级Rabbitmq 3.6.3版本至3.6.6版本,升级过程中的一些关键步骤记录 Step 1: 顺序关闭集群所有节点,这里注意最后一个关闭的节点必须保证为硬盘节点,而非RAM节点: centOS 7.x+可使用systemctl工具关闭: Step 2: 备份mnesia数据库,数据库路径如下: /var/lib/rabbitmq/mnesia 其中包含该节点集群信息及持久化内容: 并将该数据库目录名变更为mnesia_xxxx(如mnesia_backup_20161213),因为新的ra…
rick 的两个ppt整理 下载:2012 2013  ,使用半年erlang后,重新看这两个ppt才发现更多值的学习的地方,从ppt中整理如下: - Prefer os:timestamp to erlang:now 应该禁止使用erlang:now(),稍微用得多,整个node的%si 飙满,且整体性能数量级下降. - Implement cross-node gen_server calls without  using monitors (reduces dist traffic and…
1.安装erlang 语言环境 安装依赖文件 #yum install ncurses-devel 进入 http://www.erlang.org/download.html 选择源文件下载 wget http://www.erlang.org/download/ otp_src_17.1.tar.gz tar zxvf  otp_src_17.1.tar.gz cd  otp_src_17.1 阅读HOTO/INSTALL.md文件 #./configure #make && make…
很多事情要做,一件一件来; Erlang Resources 小站 2013年1月~6月资讯合集,方便检索.      小站地址: http://site.douban.com/204209/     1 月   A few thoughts about Open Source Software Antirez http://dou.bz/1pyUXj Erlang's biggest missing feature: globals http://dou.bz/22GYw7 DTrace, F…
RabbitMQ是流行的开源消息队列系统,是AMQP(Advanced Message Queuing Protocol高级消息队列协议)的标准实现,用erlang语言开发.RabbitMQ据说具有良好的性能和时效性,同时还能够非常好的支持集群和负载部署,非常适合在较大规模的分布式系统中使用,具体特性还在验证中,待检验.由于项目需要,安装并配置了RabbitMQ,服务器操作系统是CentOS7,服务器是阿里云主机.具体步骤如下: 安装依赖文件: yum install gcc glibc-dev…
系统版本 CentOS Linux release 7.2.1511 (Core) MySQL安装 一.下载mysql的repo源 wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm 二.安装mysql-community-release-el7-5.noarch.rpm包 rpm -ivh mysql-community-release-el7-5.noarch.rpm 安装这个包后,会获得两个MySQL的yu…