12 2011 档案
[转]如何“打败”CAP定理
摘要:如何“打败”CAP定理http://www.programmer.com.cn/9260/作者: baiyuzhong分类:云计算, 高端视点 阅读:17,223 次添加评论文 / Nathan Marz 译 / 方建CAP定理是数据系统设计的基本理论,目前几乎所有的数据系统的设计都遵循了这个定理。但CAP定理给目前的数据系统带来了许多复杂的、不可控的问题,使得数据系统的设计越来越复杂。Twitter首席工程师、Storm的作者Nathan Marz在本文中通过避开CAP定理带来的诸多复杂问题,展示了一个不同于以往的数据系统设计方案,给我们的数据系统设计带来了全新的思路。CAP定理指出,一个. 阅读全文
posted @ 2011-12-30 09:38 陈峰 阅读(264) 评论(0) 推荐(0)
[转]Parsing Text and Binary Files With Erlang
摘要:Parsing Text and Binary Files With Erlang地址如下:http://wagerlabs.com/blog/2008/02/03/2011-12-06-parsing-text-and-binary-files-with-erlang/Feb 3rd, 2008Erlang originated in the telecommunications industry where one of the major tasks is conversion of text and binary data from one format to another. Th. 阅读全文
posted @ 2011-12-27 17:27 陈峰 阅读(592) 评论(0) 推荐(0)
[转]轻松实现可伸缩性,容错性,和负载平衡的大规模多人在线系统
摘要:轻松实现可伸缩性,容错性,和负载平衡的大规模多人在线系统作者:Joel Reymont译文:神宗冥浩 ( chao.yan<at>imperial.ac.uk )原地址:http://www.devmaster.net/articles/mmo-scalable-server/http://blog.csdn.net/senzung/article/details/579786]!!转贴请注明出处!!<译者序>: 本文是DevMaster.net上的一篇精华文章,也被很多相关E文论坛转载。翻译这篇文章基本是个冲动,因为我刚刚结束了这周的programming test, 阅读全文
posted @ 2011-12-26 19:09 陈峰 阅读(534) 评论(0) 推荐(0)
[转]Erlang:一个通用的网络服务器
摘要:http://hideto.iteye.com/blog/232618前面几篇文章里谈到了Erlang的gen_tcp网络编程和Erlang/OPT的gen_server模块,现在让我们将它们两者绑定在一起大多数人认为“服务器”意味着网络服务器,但Erlang使用这个术语时表达的是更抽象的意义gen_serer在Erlang里是基于它的消息传递协议来操作的服务器,我们可以在此基础上嫁接一个TCP服务器,但这需要一些工作网络服务器的结构大部分网络服务器有相似的架构首先它们创建一个监听socket来监听接收的连接然后它们进入一个接收状态,在这里一直循环接收新的连接,直到结束(结束表示连接已经到达. 阅读全文
posted @ 2011-12-26 18:06 陈峰 阅读(531) 评论(0) 推荐(0)
[转]erlang 监督树
摘要:OTP Design Principles: Supervisor Behaviourhttp://hideto.iteye.com/blog/232618 Supervisor Behaviour是一个用来实现一个supervisor进程来监控其他子进程的模块子进程可以是另一个supervisor,也可以是一个worker进程worker进程一般使用gen_event,gen_fsm或gen_server behaviour来实现一个使用该模块来实现的supervisor有一个接口方法的标准集,包括跟踪和错误报告的功能supervisor用来构建一个分层进程结构,称为supervision. 阅读全文
posted @ 2011-12-26 17:35 陈峰 阅读(458) 评论(0) 推荐(0)
[转]理解gen_server behaviour
摘要:http://erlang.shiningray.cn/otp-design-principles/overview.html#overview在Erlang/OTP中有一个基本概念叫监督树。这是一种建立在督程与佣程思想上的进程结构化模型。佣程(worker)是进行计算的进程,也就是说,它们进行实际的工作。督程(supervisor)是监视工作者行为的进程。监督者可以重启工作者如果出现了什么问题.监督树是一种将代码分成监督者和工作者的层次安排,这样才能设计和编写可容错的软件。上图中,方框提供监督,圆圈是工作者。行为在监督树中,很多进程有着相似结构,遵循类似的模式。例如,督程的结构都很相 似。. 阅读全文
posted @ 2011-12-26 17:04 陈峰 阅读(490) 评论(0) 推荐(0)
[转]Erlang之IO编程
摘要:Erlang之IO编程 http://www.blogjava.net/killme2008/archive/2007/09/27/148747.html--Erlang用于操纵文件I/O的模块有:file模块:打开、读、写、关闭文件已经操作目录的方法基本都在这里filename模块:提供平台独立方式用于操纵文件名filelib模块:file模块的扩展,提供了更多的实用工具,在file模块基础上构建io模块:一系列用于操作打开的文件的方法,解析格式、格式化输出等等。1.打开文件:{ok,F}=file:open("data1.dat",read). %读模式打开{ok,F} 阅读全文
posted @ 2011-12-26 13:42 陈峰 阅读(312) 评论(0) 推荐(0)
ultraEdit 设置Erlang语法高亮
摘要:在 阅读全文
posted @ 2011-12-26 11:49 陈峰 阅读(421) 评论(0) 推荐(1)
mnesia数据库学习笔记四
摘要:杂项前二章讲了如何启动数据库,如何构建数据库,接下来会为讲一些创建分布式容错数据所需的高级特征:索引分布式和容错表分段本地内容表无磁盘节点高级方案管理调用应用程序并行进程原形研究基于对象的编程1、索引如果数据添加索引,那位定位会很快,如果没有索引,就需要遍历表,可能会消耗较长时间。Mnesia提供了如下两个函数操作索引:mnesia:add_table_index(Tab, AttributeName)mnesia:delete_table_index(Tab,AttributeName)可能通过如下函数进行索引查找:mnesia:index_read(Tab, SecondaryKey, . 阅读全文
posted @ 2011-12-26 09:43 陈峰 阅读(2530) 评论(0) 推荐(0)
mnesia数据库学习笔记三
摘要:mnesia数据库学习笔记三事务及其它访问事务属性,包括原子性,一致性,隔离性,持久性锁脏操作记录名字与表名字活动概念与访问上下文嵌套事务模式匹配Iteratoin1、事务属性Mnesia事务就是将一系列数据库操作封装在一个函数块中。函数块作为一个事务进行运行所有叫作函数对象。保作将影响到所有相关节点上。Mnesia提供了如下重要属性:事务函数内部不涉及操作在其它事务中,当它在执行一系列表操作时事务保证了要么在所有节点上操作成功,要么失败但没有在任何节点上产生负作用提供了Atomicity(原子性),Consistency(一致性),Isolation(隔离性),Durability(持久性. 阅读全文
posted @ 2011-12-22 14:21 陈峰 阅读(4777) 评论(0) 推荐(1)
mnesia数据库学习笔记二
摘要:mnesia数据库学习笔记二创建一个mnesia数据库定义方案数据模型启动Mnesia创建新表1、定义方案(schema)Mnesia 系统配置是在Schema中描述的。Schema数据表中的数据只能通过其相关函数进行访问和修改。Mnesia允许动态配置其内容。方案函数mnesia:create_schema(NodeList)该函数用于初始化新的空方案,在mnesia启动之前,mnesia是一个真正分布式DBMS,schema是基于mnesia所有节点的一个系统表。NodeList节点必须都没有schema,并且都没有启动mnesia.mnesia:delete_schema(DiscNo. 阅读全文
posted @ 2011-12-21 15:48 陈峰 阅读(2550) 评论(0) 推荐(0)
Erlang顺序型编程
摘要:1、模块模块是Erlang中代码的基本单元,我们编写的所有函数都存于模块之中。模块文件存放在以.erl为扩展名的文件中。模块名字与文件名需一致,运行前先得把文件编译成.beam文件。简单模块文件如下:geometry.erl-module(geometry).-export([area/1]).area({rectangle,Width,Ht}) ->Width * Ht;area({circle,R}) -> 3.14159 * R * R.2、Erlang console切换目录cd("c:/work")进行切换目录3、funfun就是匿名函数。Z = fu 阅读全文
posted @ 2011-12-21 11:41 陈峰 阅读(503) 评论(0) 推荐(0)
mnesia数据库学习笔记一
摘要:mnesia数据库学习笔记1、基本使用流程1>mnesia:create_schema([node]). %创建方案的本地节点上。2>mnesia:start(). %启动数据库3>mnesia:create_table(funky,[]).%创建表4>mnesia:info(). %查看数据库信息在启动erlang时,erl -mnesia dir '"/dir"' 用于指定Mnesia数据存储位置。2、定义表结构,创建表% company.hrl-record(employee, {emp_no, name, salary, se 阅读全文
posted @ 2011-12-21 11:40 陈峰 阅读(983) 评论(0) 推荐(1)
[转]网游同步算法之导航推测(Dead Reckoning)算法
摘要:网游同步算法之导航推测(Dead Reckoning)算法: 在了解该算法前,我们先来谈谈该算法的一些背景资料。大家都知道,在网络传输的时候,延迟现象是非常普遍的,而在基于Server/Client结构下 的网络游戏的同步也就成了非常头疼的问题,在确保客户端响应用户本地指令流畅的情况下,没法有效的确 阅读全文
posted @ 2011-12-19 13:46 陈峰 阅读(10094) 评论(1) 推荐(0)
Erlang 入门
摘要:1、变量所有变量必须以大写字母开头。如:X Y2、模式匹配在Erlang中,=表示一个模式匹配操作, Lhs=Rhs实际是对右端求后,将结果与左端求值进行匹配。 其中如果左端为未绑定变量,则完全匹配,并赋值到左端。3、浮点数"/"永远返回浮点数, N div M 和 N rem M是用于整数除和取余数。如:0.324、原子在Erlang中,原子用来表示不同非数字常量值;原子是以一串以小写字母开头,后跟数字字母或下划线或邮件符号的字符串;使用单引号引起来的字符串也是原子。如:red、cat、joe@somhost、a_lang_name、'an atom'5、 阅读全文
posted @ 2011-12-16 14:42 陈峰 阅读(675) 评论(0) 推荐(0)
[转]BDB实例代码
摘要:实例代码http://blog.csdn.net/mxzy55560593/article/details/7063965BTree读写view plainDbdb(NULL,DB_CXX_NO_EXCEPTIONS);//环境指针//事务指针,数据库类别,访问标志(创建,只读,自动提交事务,线程安全),mode在windows中忽略if(db.open(NULL,"test.db",NULL,DB_BTREE,DB_CREATE|DB_TRUNCATE,0)!=0){cout<<"同名数据库存在"<<endl;}//基本写int 阅读全文
posted @ 2011-12-16 11:01 陈峰 阅读(286) 评论(0) 推荐(0)
[转]MVC演化
摘要:MVC演化MVC已经成为我们最常误用的模式,人们之所以常常误用MVC,很大程度上是因为混淆了不同的MVC变体。【转自】http://www.cnblogs.com/wubaiqing/archive/2011/10/26/2225438.htmlhttp://www.cnblogs.com/wubaiqing/archive/2011/10/26/2225438.htmlClassic MVC Classic MVC 大概上世纪七十年代,Xerox PARC的Trygve提出了MVC的概念。 并应用在Smalltalk系统中,为了和其它类型的MVC加以区分,历史上习惯的称之为Classi... 阅读全文
posted @ 2011-12-13 13:05 陈峰 阅读(142) 评论(0) 推荐(0)
[转]ACE的一个链接问题
摘要:ACE的一个链接问题http://hi.baidu.com/developer_chen/blog/item/2bf78c7ec9971f3b0cd7da9b.html写了一个ACE小程序,发现链接的时候出现__declspec(dllimport) int __cdecl ace_os_wmain_i(class ACE_Main_Base &,int,wchar_t * * const)"错误提示。分析发现ACE小程序的工程字符集是Unicode,而ACE库编译的时候是设置"未设置",所以链接不到unicode版本的main函数。将ACE小程序的工程字 阅读全文
posted @ 2011-12-12 10:57 陈峰 阅读(309) 评论(0) 推荐(0)
VS2010 设置UNICODE 无效
摘要:当你在项目属性中,常规设置在字符集为UNICODE后,运行以下代码:#include "stdafx.h"#include <iostream>using namespace std;int _tmain(int argc, _TCHAR* argv[]){#if defined UNICODEstd::cout << sizeof(L"aaa") <<endl;#endifreturn 0;}会发现UNICODE无效,此时,在项目配置属性-》C/C++-》预处理器-》预处理器定义中,点选编辑选择从“父项或项目默认属性 阅读全文
posted @ 2011-12-12 10:49 陈峰 阅读(1809) 评论(0) 推荐(0)
【转】A Collection of Examples of 64-bit Errors in Real Programs
摘要:A Collection of Examples of 64-bit Errors in Real Programs29.06.2010Andrey Karpov Tags: 64-bit -->AbstractIntroductionExample 1. Buffer overflowExample 2. Unnecessary type conversionsExample 3. Incorrect #ifdef'sExample 4. Confusion of int and int*Example 5. Using deprecated (obsolete... 阅读全文
posted @ 2011-12-09 17:52 陈峰 阅读(348) 评论(0) 推荐(0)
ASCII 、UNICODE和UTF-8
摘要:字符发展1. 美国ASCII-(American standard code information interchange) 美国信息互换标准代码范围:1-127 ; 单字备注:前部用作控制码,0x20以下的字节状态称为"控制码";后面跟数字,字母大小写至1272. 美国ASCII扩展编码范围:128-255; 单字备注:很多画表格时需要用下到的横线、竖线、交叉等形状,一直把序号编到了最后一 个状态2553. 中国GB2312原由:中国人们得到计算机时,有6000多个常用汉字需要保存呢规定:一个小于127的字符的意义与原来相同,但两个大于127的字符连在一起时,就表示一个 阅读全文
posted @ 2011-12-09 13:24 陈峰 阅读(1657) 评论(0) 推荐(0)
[转]Creating a forwarding dll
摘要:MotivationRecently, I had an old colleague ask me how to regenerate the source code to a DLL. His customer had been using this DLL to extend the capabilities of an application and needed to change the DLL's behavior. His customer, however, was no longer in possession of the source code to this D 阅读全文
posted @ 2011-12-01 13:10 陈峰 阅读(443) 评论(0) 推荐(0)