- 浏览: 2682443 次
- 性别:
- 来自: 北京
最新评论
-
80后的童年2:
深入浅出MongoDB应用实战开发网盘地址:https://p ...
MongoDB入门教程 -
shliujing:
楼主在不是精通java和php的前提下,请不要妄下结论。
PHP、CakePHP哪凉快哪呆着去 -
安静听歌:
希望可以一给一点点注释
MySQL存储过程之代码块、条件控制、迭代 -
qq287767957:
PHP是全宇宙最强的语言!
PHP、CakePHP哪凉快哪呆着去 -
rryymmoK:
深入浅出MongoDB应用实战开发百度网盘下载:链接:http ...
MongoDB入门教程
文章列表
本章详细介绍了设计Mnesia数据库和编程结构的基本步骤:
1)定义schema
2)数据模型
3)启动Mnesia
4)创建新表
1,定义schema
Mnesia系统的配置在schema里描述
schema是一个特殊的表,它包含了表名、每个表的存储类型(表应该存储为RAM ...
- 2008-08-27 21:46
- 浏览 9221
- 评论(1)
本章介绍了Mnesia:
1)启动一个Erlang session并制定Mnesia数据库的目录
2)初始化数据库结构
3)启动Mnesia并创建必要的表
1,初次启动Mnesia
以下是Mnesia系统启动的一个简单展示:
unix> erl -mnesia dir '"/tmp/funky"'
Erlang (BEAM) em ...
- 2008-08-27 14:09
- 浏览 9105
- 评论(0)
Mnesia是一个分布式数据库管理系统DBMS,适合于需要连续运算和软实时特性的电信应用及其他Erlang应用
目录
1,介绍
2,Mnesia快速上手
3,构建一个Mnesia数据库
4,事务和其他访问上下文
5,多种Mnesia特性
6,Mnesia系统信息
7,联合Mn ...
- 2008-08-26 15:47
- 浏览 7786
- 评论(1)
Supervisor Behaviour是一个用来实现一个supervisor进程来监控其他子进程的模块
子进程可以是另一个supervisor,也可以是一个worker进程
worker进程一般使用gen_event,gen_fsm或gen_server behaviour来实现
一个使用该模块来实现的supervisor有一个接口方法的标准集,包括跟踪和错误报告的功能
supervisor用来构建一个分层进程结构,称为supervision tree,这是组织一个容错系统的好方式
1,Supervision原则
supervisor负责启动、停止和监控它的子进程
supervisor在必要 ...
- 2008-08-26 00:06
- 浏览 3096
- 评论(0)
定义三个terminal_logger:
$$ terminal_logger1.erl
-module(terminal_logger1).
-behaviour(gen_event).
-export([init/1, handle_event/2, handle_call/2, handle_info/2, code_change/3, terminate/2]).
init(_Args) ->
{ok, []}.
handle_event(ErrorMsg, State) ->
io:format("*** Error1 *** ...
- 2008-08-25 16:23
- 浏览 1657
- 评论(0)
1,事件处理原则
在OTP里,event manager是一个命名对象,它可以接收event
一个event可以是一个error、alarm或者一些应该被log的信息
在event manager里会安装一些event handler
当event manager被通知一个event时,event会被所有安装的event handler来处理
event manager实现为一个进程,而每个event handler实现为一个callback模块
event manager本质上是维护一个{Module, State}对的list,每个Module是一个event handler,State是e ...
- 2008-08-25 16:06
- 浏览 1801
- 评论(0)
改了一下代码,可以run了:
%% code_lock.erl
-module(code_lock).
-behaviour(gen_fsm).
-export([start/1, button/1]).
-export([locked/2, open/2]).
-export([init/1, handle_event/3, handle_sync_event/4, handle_info/3, code_change/4, terminate/3]).
start(Code) ->
gen_fsm:start_link({local, code_lock} ...
- 2008-08-22 18:35
- 浏览 2132
- 评论(1)
1,有限状态机
FSM,有限状态机,可以用以下形式来描述做一个关系集:
State(S) x Event(E) -> Actions(A), State(S')
意思是,如果我们位于状态S,然后事件E发送了,则我们应该执行动作A,并且将状态改为S'
2,例子
有一个代码锁的 ...
- 2008-08-22 17:29
- 浏览 1826
- 评论(0)
简单的gen_server Hello World程序
代码:
-module(genserver).
-behaviour(gen_server).
-export([start/0, hello/1]).
-export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, code_change/3]).
start() ->
gen_server:start_link({local, ?MODULE}, ?MODULE, [], []).
hello(Name) -> ...
- 2008-08-22 13:45
- 浏览 1688
- 评论(0)
OTP Design Principles: Gen_Server Behaviour
1,Client-Server原则
client-server模型由一个中心服务器和任意多的客户端组成
该模型主要用来做资源管理操作,不同的客户端共享一个通用的资源,服务器负责管理该资源
2,例子
-module(ch3).
-behaviour(gen_server).
-export([start_link/0]).
-export([alloc/0, free/1]).
-export([init/1, handle_call/3, handle_cast/2]).
start ...
- 2008-08-22 12:19
- 浏览 1780
- 评论(0)
1,Supervision Trees
来源于workers和supervisor模型
workers就是实际执行计算的进程
supervisors是监控workers的进程,如果workers进程崩溃,supervisors可以负责重启workers进程
supervision tree将代码分层为supervisors和workers,方便构建容错系统
2,Behaviours
Behaviours将代码分成两部分,一部分为通用性代码(一个behaviour模块),另一部分为特别性代码(一个callback模块)
使用Behaviour来实现一个supervisor进程,用户只需要实现ca ...
- 2008-08-21 17:28
- 浏览 1597
- 评论(0)
为什么OO很恶心
原文: http://www.sics.se/~joe/bluetail/vol1/v1_oo.html
作者:Joe Armstrong
当我第一次知道OOP的概念时,我非常疑惑,但是不知道为啥——它仅仅在感觉上“不对”。
在OOP问世之后变得粉流行(稍后解释为什么),而批评OOP ...
附标题:如何构建超强伸缩性的游戏服务器而集容错、负载均衡和无限伸缩性于一身
原文:Writing Low-Pain Massively Scalable Multiplayer Servers
介绍
本文以我的OpenPoker项目为例子,讲述了一个构建超强伸缩性的在线多游戏玩家系统。
Ope ...
- 2008-08-20 12:55
- 浏览 4350
- 评论(2)
原文:Ten Questions with Joe Armstrong about Parallel Programming and Erlang
第一部分:关于并行编程的通用问题
1)
Michael:我们进入了多核时代,你认为并行计算最终会成为主流吗?或者这仅仅是一个阶段并且很快对并行编程感兴趣的人将 ...
- 2008-08-18 22:24
- 浏览 2930
- 评论(0)
参考: http://weblambdazero.blogspot.com/2008/08/mapreduce-in-erlang.html
MapReduce的主要原理是将一个数据集上的计算分发到许多单独的进程上(map),然后收集它们的结果(reduce)。
在Erlang里实现MapReduce非常细节也十分简单,例如Erlang的作者Joe Armstrong发表了一段代码来表示MapReduce版本的Erlang标准lists:map/2方法:
pmap.erl
-module(pmap).
-export([pmap/2]).
pmap(F, L) ->
...
- 2008-08-17 23:35
- 浏览 4128
- 评论(3)