自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

Mnesia用户手册:四,事务和其他访问上下文

本章讲述Mnesia事务系统和事务属性,它们让Mnesia成为一个容错的、分布式的数据库管理系统讲述内容包括锁(table lock和sticky lock)、如何绕开事务(dirty operation)、嵌套事务(nested transaction):1)事务属性,包括原子性,一致性,隔离性,持久性(ACID)2)锁3)脏操作4)Record名与Table名5)act...

2008-08-29 00:06:51 163

Rails程序开发的最大问题是代码规范

使用Rails开发大型复杂B2B应用一年了,这个项目目前开发人员达到近20人现在感觉最痛苦的事情就是大家没有遵循统一的代码规范我一直建议PM要设立一个项目架构师的角色,来统一大家的代码规范,但是PM不听因为Ruby这种动态语言太灵活,大家各自写个各自的代码,相互之间很难看懂别人的代码Controller、Model、View、Js、CSS等等文件目录的设立也是各模块小组之间各自为政...

2008-08-28 11:56:20 134

Mnesia用户手册:三,构建Mnesia数据库

本章详细介绍了设计Mnesia数据库和编程结构的基本步骤:1)定义schema2)数据模型3)启动Mnesia4)创建新表1,定义schemaMnesia系统的配置在schema里描述schema是一个特殊的表,它包含了表名、每个表的存储类型(表应该存储为RAM、硬盘或两者)以及表的位置等信息不像数据表,schema表里包含的信息只能通过schema相关的方法来...

2008-08-27 21:46:06 136

Mnesia用户手册:二,Mnesia快速上手

本章介绍了Mnesia:1)启动一个Erlang session并制定Mnesia数据库的目录2)初始化数据库结构3)启动Mnesia并创建必要的表1,初次启动Mnesia以下是Mnesia系统启动的一个简单展示:[code]unix> erl -mnesia dir '"/tmp/funky"'Erlang (BEAM) emulator version 4....

2008-08-27 14:09:15 186

Mnesia用户手册:一,介绍

Mnesia是一个分布式数据库管理系统DBMS,适合于需要连续运算和软实时特性的电信应用及其他Erlang应用目录1,介绍2,Mnesia快速上手3,构建一个Mnesia数据库4,事务和其他访问上下文5,多种Mnesia特性6,Mnesia系统信息7,联合Mnesia和SNMP8,Mnesia错误消息9,备份callback接口10,活动访问call...

2008-08-26 15:47:50 227

原创 OTP Design Principles: Supervisor Behaviour

Supervisor Behaviour是一个用来实现一个supervisor进程来监控其他子进程的模块子进程可以是另一个supervisor,也可以是一个worker进程worker进程一般使用gen_event,gen_fsm或gen_server behaviour来实现一个使用该模块来实现的supervisor有一个接口方法的标准集,包括跟踪和错误报告的功能supervis...

2008-08-26 00:06:48 205

原创 gen_event例子:terminal_logger

定义三个terminal_logger:$$ terminal_logger1.erl[code]-module(terminal_logger1).-behaviour(gen_event).-export([init/1, handle_event/2, handle_call/2, handle_info/2, code_change/3, terminate/2])...

2008-08-25 16:23:08 141

原创 OTP Design Principles: Gen_Event Behaviour

1,事件处理原则在OTP里,event manager是一个命名对象,它可以接收event一个event可以是一个error、alarm或者一些应该被log的信息在event manager里会安装一些event handler当event manager被通知一个event时,event会被所有安装的event handler来处理event manager实现为一个进程,而...

2008-08-25 16:06:37 119

原创 gen_fsm例子:code_lock

改了一下代码,可以run了:%% code_lock.erl[code]-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...

2008-08-22 18:35:48 92

原创 OTP Design Principles: Gen_Fsm Behaviour

1,有限状态机FSM,有限状态机,可以用以下形式来描述做一个关系集:[code]State(S) x Event(E) -> Actions(A), State(S')[/code]意思是,如果我们位于状态S,然后事件E发送了,则我们应该执行动作A,并且将状态改为S'2,例子有一个代码锁的门,如果输入的代码顺序是对的,那么将门打开30秒如果输入代码不完全,则等待...

2008-08-22 17:29:33 116

原创 gen_server Hello World

简单的gen_server Hello World程序代码:[code]-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_...

2008-08-22 13:45:57 105

原创 OTP Design Principles: Gen_Server Behaviour

OTP Design Principles: Gen_Server Behaviour1,Client-Server原则client-server模型由一个中心服务器和任意多的客户端组成该模型主要用来做资源管理操作,不同的客户端共享一个通用的资源,服务器负责管理该资源2,例子[code]-module(ch3).-behaviour(gen_server)....

2008-08-22 12:19:52 91

原创 OTP Design Principles Overview

1,Supervision Trees来源于workers和supervisor模型workers就是实际执行计算的进程supervisors是监控workers的进程,如果workers进程崩溃,supervisors可以负责重启workers进程supervision tree将代码分层为supervisors和workers,方便构建容错系统2,Behaviours...

2008-08-21 17:28:32 106

Why OO sucks

为什么OO很恶心原文: [url]http://www.sics.se/~joe/bluetail/vol1/v1_oo.html[/url]作者:Joe Armstrong当我第一次知道OOP的概念时,我非常疑惑,但是不知道为啥——它仅仅在感觉上“不对”。在OOP问世之后变得粉流行(稍后解释为什么),而批评OOP就像“在教堂里咒骂”。OO成为了每个受尊敬的语言必须具备...

2008-08-20 16:53:35 237

如何写超强伸缩性的多游戏玩家服务器

附标题:如何构建超强伸缩性的游戏服务器而集容错、负载均衡和无限伸缩性于一身原文:[url=http://www.devmaster.net/articles/mmo-scalable-server/]Writing Low-Pain Massively Scalable Multiplayer Servers[/url][b]介绍[/b]本文以我的OpenPoker项目为例子,...

2008-08-20 12:55:14 404

Joe Armstrong:关于并行编程和Erlang的十个问题

原文:[url=http://www.thinkingparallel.com/2007/03/20/ten-questions-with-joe-armstrong-about-parallel-programming-and-erlang/]Ten Questions with Joe Armstrong about Parallel Programming and Erlang[/url]...

2008-08-18 22:24:19 194

Erlang里实现MapReduce

参考: [url]http://weblambdazero.blogspot.com/2008/08/mapreduce-in-erlang.html[/url]MapReduce的主要原理是将一个数据集上的计算分发到许多单独的进程上(map),然后收集它们的结果(reduce)。在Erlang里实现MapReduce非常细节也十分简单,例如Erlang的作者Joe Armstrong...

2008-08-17 23:35:14 118

Erlang的分布式编程

1,什么是分布式程序?Erlang分布式程序是设计用来在网络计算机上运行并且只可以通过消息传递来协调活动2,为啥要写分布式程序?1) 性能通过将程序的不同部分分布到不同计算机来并行运行,以此提升性能(适用于密集型、CPU是瓶颈的计算)2) 可靠性通过将程序分布来构建容错系统,以此提升可靠性。如果一台机器失败了,我们可以在另一台机器上继续计算3) 伸缩性如果我们s...

2008-08-13 23:01:12 139

mysql里找出一个表的主键被谁作为外键约束

[code="java"]SELECTke.referenced_table_name parent,ke.table_name child,ke.REFERENCED_COLUMN_NAME parent_column,ke.column_name child_column,ke.constraint_nameFROMinformation_schema.KEY_...

2008-08-13 17:16:26 280

gen_server入门

gen_server入门1)什么是gen_server?gen_server是OTP(Open Telecom Platform)的一个组件,OTP是Erlang的应用程序框架,gen_server定义了自己的一套规范,用来写Erlang服务器程序gen_server manual: [url]http://www.erlang.org/doc/man/gen_server.htm...

2008-08-12 00:33:50 259

Erlang基于Socket实现简单聊天室

1,chat_server.erl[code]-module(chat_server).-export([start/1]).-define(TCP_OPTIONS, [list, {packet, 0}, {active, false}, {reuseaddr, true}]).start(Port) -> Pid = spawn(fun() -> manage...

2008-08-11 15:56:00 311

最简单的Erlang Socket程序

server.erl:[code]-module(server).-export([start/0]).start() -> {ok,Listen}=gen_tcp:listen(2345,[binary,{packet,4}, {reuseaddr,true}, ...

2008-08-08 12:44:50 89

SQL性能调优:2.1 排序的一般性调优

[b]影响排序速度的原因(从大到小)[/b]:1,选择的行数2,ORDER BY子句里的列数3,ORDER BY子句里的列的定义长度增加行数会使得排序速度呈几何级数减慢如果将排序的行数增加10倍,则排序的时间会变成20倍[b]尽可能的减少排序的行数[/b][b]尽量减少排序的列数[/b][b]适当减少排序的列的长度[/b][b]最快的排序是对...

2008-08-05 10:21:40 158

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除