yb_lin

导航

2010年8月4日 #

erlang网络编程的几个性能调优和注意点

摘要: 前些天给echo_server写了个非常简单的连接压力测试程序,代码一开始我的这个stress_test客户端运行在windows上面, echo_server服务器端运行在linux上面。 结果接受了1016个连接就停止了. 于是我用ulimit -n 改了服务器端的文件描述符数量为10240. 接着还是如此,折腾了几天,最终还是没有搞明白。 于是就求助于公司的linux编程牛人,结果让我一倒.... 阅读全文

posted @ 2010-08-04 09:40 废铁 阅读(1170) 评论(1) 推荐(0) 编辑

2010年7月30日 #

mochiweb参数化模型Req相关功能

摘要: 本文的笔记讲述如何从client请求中获取各种参数,如method, request path, headers, cookie等。Mochiweb是Erlang实现的一个开源Web服务器,它设计的一个亮点就是他本身的Http请求的参数化模型。因此我们可以用OO的方式来理解它的相关用法。它的实现在mochiweb_request模块.在mochiweb中,每个client请求其构造一个 Req 对... 阅读全文

posted @ 2010-07-30 09:40 废铁 阅读(727) 评论(0) 推荐(2) 编辑

2010年7月29日 #

实战MochiWeb

摘要: MochiWeb是mochibot.com的Bob Ippolito贡献的开源项目[在这里有一个介绍它的Slide]。MochiBot.com 提供 Flash 内容的访问统计和用户跟踪服务(大致上,可以理解为针对 flash 的 google Analytics 服务),他们在 mochiweb 之上构建了一个定制化的 web server ,并通过这个 web server 获取用户的访问数据... 阅读全文

posted @ 2010-07-29 09:40 废铁 阅读(2659) 评论(0) 推荐(0) 编辑

2010年7月28日 #

MochiWeb的架设

摘要: 一直以来都听说Erlang支持高并发的能力很强,Facebook,xiaonei,搜狐白社会都用Erlang做后端消息服务器。Mochiweb是支持Http协议的一个Erlang服务器框架,今天终于架设成功了。作为一个实用主义者,就不再多说什么了,直接来安装过程。第一步,下载安装 Erlang代码: 全选#进入erlang源码目录./configure --prefix=/usr/local/er... 阅读全文

posted @ 2010-07-28 14:23 废铁 阅读(1330) 评论(0) 推荐(0) 编辑

2010年7月20日 #

mnesia secondary index

摘要: 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... 阅读全文

posted @ 2010-07-20 11:25 废铁 阅读(336) 评论(0) 推荐(0) 编辑

2009年9月26日 #

Mnesia 学习笔记

摘要: 2、Mnesia 入门一个演示用的数据库例子。这个例子以后还会用到,也会做些修改。首先要做以下事情:●启动Erlang会话,指定Mnesia数据库的位置●初始化数据库结构●启动Mnesia,创建所需数据表格2.1 第一次启动 Mnesia打开DOS命令控制台窗口,执行这句:D:\Program Files\erl5.6.5\bin > erl -mnesia dir '"d:/erlang/... 阅读全文

posted @ 2009-09-26 16:56 废铁 阅读(1093) 评论(0) 推荐(0) 编辑

2009年8月19日 #

分片表qlc查询

摘要: 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... 阅读全文

posted @ 2009-08-19 21:54 废铁 阅读(375) 评论(0) 推荐(0) 编辑

2009年8月18日 #

分布式系统中,管理共享数据库的方法

摘要: 假设一个线上的节点使用下面的命令行运行/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... 阅读全文

posted @ 2009-08-18 22:09 废铁 阅读(387) 评论(0) 推荐(0) 编辑

在分布式系统中,获得共享表player的总记录数

摘要: 直接使用table_info得到的size总是0,需要使用下面的方法mnesia:activity(transaction,fun() -> mnesia:table_info(player,size) end,mnesia_frag). 阅读全文

posted @ 2009-08-18 22:09 废铁 阅读(254) 评论(0) 推荐(0) 编辑

动态改变Mnesia表结构

摘要: -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_... 阅读全文

posted @ 2009-08-18 22:08 废铁 阅读(391) 评论(0) 推荐(0) 编辑