- 博客(196)
- 收藏
- 关注
分析 mnesia 索引慢的问题,结果出乎意料.
分析 mnesia 索引慢的问题,结果出乎意料.因为 ejabberd 设计思路对 mnesia 做缓存情有独钟。排除 cowboy 系统本身性能问题之后决定分析代码。前段时间对Cloud做压力测试意外发现,当测试将要结束时,从出现socket断开开始系统变得非常缓慢。甚至一个 http 请求相应也得花上1分多钟,甚至更长,这显然问题非常严重。对缓存性能之前做过测试,所以分析问题时直...
2015-12-15 15:09:28
347
Influxdb 分组查询 bug
查询时 用日期查 select first(0x00060001) as 0x00060001 from update_gadget_attr group by time(12h) fill(null) where time >'2015-05-21 00:00:01' and time < '2015-05-21 23:00:00' and gadget_id='e346...
2015-05-21 17:40:03
3912
添加好友时, set roster是可选的。只发送 type=subscribe的presence即可
添加好友时, set roster是可选的。只发送 type=subscribe的presence即可。 set roster 也只是为了添加昵称和分组用的有同事问起,结果忘记了,就又翻阅了一下文档,如下描述Implementation Note: Many XMPP clients prompt the user for information about the potenti...
2014-09-03 17:21:07
306
keepalive
{keepalive, Boolean}(TCP/IP sockets)Enables/disables periodic transmission on a connected socket, when no other data is being exchanged. If the other end does not respond, the connection is cons...
2014-08-12 17:30:01
168
原创 The POST and GET of Mochiweb
%% The request of POST113 Form = mochiweb_request:parse_post(Req), %% The request of GET113 Form = mochiweb_request:parse_qs(Req), %% The file upload 79 Form = ...
2014-07-31 15:34:02
159
原创 mochiweb返回结果指定UTF-8编码
201 Form = mochiweb_request:parse_qs(Req), %% 获取GET请求的参数202 Server = get_bin(proplists:get_value("server", Form, "wx.com")),203 [Version, Desc] = odbc_upload_apk:get_version(Serve...
2014-07-31 15:26:29
149
erlang 手动回收内存
%%% Garbage collection may take far longer to trigger for 100,000 refc binaries%%% than for far fewer non-counted binaries, or may just as well never happen.%%% In this case, the memory is never...
2014-01-20 16:39:34
277
Erlang内存分布
此文来自:https://blog.heroku.com/archives/2013/11/7/logplex-down-the-rabbit-hole网站The amount returned by erlang:memory/0-1 is the amount of memory actively allocated, where Erlang terms are laid in m...
2014-01-17 20:18:40
401
flush 方法小用和pid()方法
1> flush(). ok2> Pid = self().<0.32.0>3> Pid ! 13> .14> Pid ! 2.25> Pid ! 3.36> flush().Shell got 1Shell got 2Shell got 3 刚学erlang时特别是在学习er...
2014-01-08 19:23:44
146
解决更新自定义mapreduce代码 需要riak重启问题
解决更新自定义代码riak重启问题 1、创建自定义代码目录 如/home/jason/work/huanyue/server/trunk/trend_riak2、修改etc/app.config 文件添加自定义目录 73 %% Riak KV config 74 {riak_kv, [ 75 {add_paths, ["/home/jaso...
2013-10-23 12:39:24
147
原创 两个周前挖了一个坑,现在跳了进去<riak mapreduce 分析>,顺便能实现分页功能了...
我现在有一个这样的bucketid followed_id followr_id 1 lxw jason 2 jason lxw3 langxw jason4 jason langxw要得到这样一组数据[1](统计粉丝数,当然粉丝数可以预先计算...
2013-08-08 18:36:39
141
mongdb "errmsg" : "exception: 'out' has to be a string or an object"
解决"errmsg" : "exception: 'out' has to be a string or an object"map=function (){ for(var key in this){ emit(key, {count:1}); }}reduce=function (key, emits){ total=0; for(var i in emits){ total+=em...
2013-07-14 19:22:16
208
MongDb group操作
这几天看了mongdb权威指南这本书,但是我下载的最新的版本(mongodb-src-r2.4.5)。 有些例子执行不成功。如下面:1、一条都没有返回 初始化time为0,> db.runCommand({"group":{"ns":"stocks", "key":"day","initial":{"time":0},"$reduc
2013-07-14 19:16:09
129
riak mapreduce worker_limit_reached 错误
1、 =ERROR REPORT==== 9-Jul-2013::12:26:19 ===trends_riak_query::find 37 Error={error,<<"{\"phase\":0,\"error\":\"[worker_limit_reached]\",\"input\":\"{<<\\\"collectio
2013-07-09 16:10:51
319
开发者需要提前了解产品需求和功能吗?开发者与产品需求
昨晚我临时无意中参加了一个关于我们产品的2.3版本需求讨论的会议。当我拿到一张40多个功能列表时,我蒙了。几乎所有的功能我之前一无所知。只是利用其他时间从设计那边了解到这次UI似乎回到去年版本上去了。 今早我特意问了客户端开发的同学,他说这些功能他之前也一无所知。问了一个服务器开发的,他也只说听说过。试想突然空降这么多需求,事前没有任何心理预期,大部分人会产生一种无形...
2013-05-28 10:35:19
191
Erlang bit语法入门-1
Erlang bit语法入门1> Red=2, Green=61, Blue=20.3> Mem = <<Red:5, Green:6, Blue:5>>. #Red分配5个bit存储空间,Green:分配6个bit存储空间, Blue分配5个bit存储空间 5+6+5=16正好是两个字节,Erlang程序书上解释:创建了2个字节的二进制数...
2013-05-14 12:18:27
174
双向链表操作日志文件
2、在第 2.11 节 “本节综合练习”的习题1中规定了一种日志文件的格式,每行是一条记录,由行号、日期、时间三个字段组成,由于记录是按时间先后顺序写入的,可以看作所有记录是按日期排序的,对于日期相同的记录再按时间排序。现在要求从这样的一个日志文件中读出所有记录组成一个链表,在链表中首先按时间排序,对于时间相同的记录再按日期排序,最后写回文件中。比如原文件的内容是:1 2009-7-30 1...
2013-04-20 10:25:53
164
双链表插入自动排序
今天开了一上午无聊的会议,利用一些时间想了一下,双列表插入自动排序问题。这双链表还是花了我很多时间,早上测试结果,总是不对是因为我的list_node输出造成的,让我误以为打印结果不对。 1 /* doublylinkedlist.c */ ...
2013-04-19 19:18:30
226
利用环形链表实现 Josephus杀人游戏
利用环形链表实现 Josephus杀人游戏 1 #include <stdlib.h> 2 #include <stdio.h> 3 #include "circular.h" 4 5 void make_n(int n); 6 void kill_one(int, int); 7 void main(int argc, cha...
2013-04-18 17:37:06
210
环形双链表与蛋疼的链表反转
错误蛋疼的反转 temp引用的地址已经被改变了所以不能实现反转105 void reverse(void)106 {107 link node = head->next;108 link temp;109 temp = head;110 head->next = head->pre;111 h...
2013-04-18 17:34:25
147
单链表反转 指针坑
单链表反转 指针坑 当我看到单链表反转这题目时,感觉这么简单啊。事实很多坑,一不小心就跳进去了。到现在我都记不清跳了多少坑。写代码时不是死循环就是就是丢数据。 这 其实本质上是 指针的坑。一不留神就over了。 因为前面已经实现过各种列表的插入。1、我首先想到的是从A链表中取出数据再生成一个新的链表B,从表头脑插入这样成了链表的反转了。就顺手写了下面代码[1],运行进入死...
2013-04-15 17:48:03
161
链表插入并自动排序操作思考
链表插入并自动排序操作思考修改insert函数实现插入排序的功能,链表中的数据按从小到大排列,每次插入数据都要在链表中找到合适的位置再插入。在第 6 节 “折半查找”中我们看到,如果数组中的元素是有序排列的,可以用折半查找算法更快地找到某个元素,想一想如果链表中的节点是有序排列的,是否适用折半查找算法?为什么? 1、插入并排序 64 link insert(link lnode...
2013-04-12 17:03:14
214
链表的不同的插入操作的思考
1、此函数中的head被定义为static,所以不需要用return来返回来自http://learn.akae.cn/media/ch26s01.htmlinsert函数虽然简单,其中也隐含了一种特殊情况(Special Case)的处理,当head为NULL时,执行insert操作插入第一个节点之后,head指向第一个节点,而第一个节点的next指针域成为NULL,这很合理,因为它也...
2013-04-11 15:38:17
130
++操作与lists:concat操作比较 (lists:concat运算结果)
测试环境Linux jason-lxw 3.2.0-39-generic #62-Ubuntu SMP Thu Feb 28 00:28:53 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux4G内存Erlang R14B04 (erts-5.8.5) [source] [64-bit] [smp:4:4] [rq:4] [async-threads:...
2013-04-11 14:53:04
733
关于单连表插入后自动从小到达排序问题
原题:来自http://learn.akae.cn/media/ch26s01.html1、修改insert函数实现插入排序的功能,链表中的数据按从小到大排列,每次插入数据都要在链表中找到合适的位置再插入。在第 6 节 “折半查找”中我们看到,如果数组中的元素是有序排列的,可以用折半查找算法更快地找到某个元素,想一想如果链表中的节点是有序排列的,是否适用折半查找算法?为什么? ...
2013-04-09 21:00:04
179
关于单链表的思考
当我看了这个例子后http://learn.akae.cn/media/ch26s01.html感觉很简单没什么特别的(这感觉往往遗漏很多细节)。例子中用了static 定义了关键字 static link head = NULL;看到后我就想用非static来重写单链表。习惯了Erlang的函数编程,在定义C语言中的函数时刻意不用指针去实现,为了进一步理解代码还刻意不用typ...
2013-04-09 10:26:21
164
原创 main函数的标准原型说明
这是我见过比较好的解释来自http://learn.akae.cn/media/ch23s02.html我们知道main函数的标准原型应该是int main(int argc, char *argv[]);。argc是命令行参数的个数。而argv是一个指向指针的指针,为什么不是指针数组呢?因为前面讲过,函数原型中的[]表示指针而不表示数组,等价于char **argv。那为什么要写成ch...
2013-03-12 17:51:03
393
解决错误src/rabbit_networking.erl:49: type hostname() undefined
使用 make USE_SPECS=false 参数编译 src/rabbit_networking.erl:49: type hostname() undefinedsrc/rabbit_networking.erl:71: type ip_port() undefined
2013-02-21 12:31:19
207
我的第一个escript
1 #!/usr/bin/env escript 2 %% -*- erlang -*- 3 -mode(compile). 4 main([]) -> 5 io:format("This is my first escript.~n"); 6 7 main([Arg1]) -> 8 io:format("This is...
2013-02-21 11:38:27
167
不要忽略任何一个错误提示,更要找到原因linked websocket controlling loop crashed with reason: kille...
开发程序的时候,好几次都看到后台打出下面的错误日志。 但一直重现不了。 =ERROR REPORT==== 20-Feb-2013::14:07:56 === module: misultin_websocket line: 243linked websocket controlling loop crashed with reason: k...
2013-02-20 14:29:45
100
有效的沟通非常重要
有效的沟通非常重要 下面将描述一下今天发生的案例。这些日子客户端开发和测试人员反馈,APP程序经常跳转到登录页面。从他们的描述中我一直以为都是Session Token过期造成。服务器是这样设计的:服务器提供维护Token和websocket之间的关系。token 生成和 websoket连接建立不区分先后顺序。但websocket一旦断开,就会清空session和t...
2013-02-01 01:50:13
153
ets:update_counter实现数字循环
首先初始化为1 ets:insert(?MODULE, {seq, 1}), ets:update_counter(e, seq, {2,1,8,1}). 1145> ets:update_counter(e, seq, {2,1,4,1}).2146> ets:update_counter(e, seq, {2,1,4,1}).3147> ...
2013-01-18 17:33:36
1088
Re 从表头合理取出host
hd(re:split(Host, ":", [{return, list}])) re:split 功能还是非常强大的 split(Subject, RE, Options) -> SplitListTypes:Subject = iodata() | unicode:charlist()RE = mp() | iodata() | unicode:char...
2013-01-17 15:46:24
129
测试 erlang:monitor
测试代码 1 -module(testmonitor). 2 -compile(export_all). 13 hello3()-> 14 receive 15 {Pid, T} -> 16 io:format("receive....~p~n", [T]), 17 S...
2012-11-28 18:59:24
212
lcnt工具
lcnt工具可以统计虚拟机内部的锁使用次数和冲突次数指导系统的优化。Mnesia支持事务、支持透明的数据分片,利用两阶段锁实现分布式事务,可以线性扩展到至少50个节点API/Web服务器向用户提供了系统管理界面。他们是基于开源项目MochiWeb和ChicagoBoss开发。(转自201210程序员P90 曹伟mysql数据库服务的架构探索) ...
2012-11-20 13:54:16
184
数字前面补零
lists:flatten(io_lib:fwrite("~6.10.0B", [555])). 51 uniqid() -> 52 {T1, T2, T3} = now(), 53 lists:flatten(io_lib:fwrite("~.10B~.10B~6.10.0B", [T1, T2, T3])).
2012-11-16 17:04:17
551
riak second index 组合键
(ejabberd@meta)51> ejabberd_riak:set_with_index(<<"test1">>, "a", "A", [{<<"author_reship_bin">>, list_to_binary("lang_a")}]). ok
2012-11-13 14:17:44
130
get uuid
1、 string:strip(os:cmd("uuidgen"), right, $\n). 2、 49 %% Give a uniq identifier 50 uniqid() -> ...
2012-11-02 10:56:09
366
Riak failed to start within 15 seconds
兄弟反应riak无法启动,一开始没仔细看,后来网上一搜,好几个人提问类似问题,解决方法也不一样。尝试了几次,发现问题依旧。仔细看了一下日志发现,有2012-11-01 14:34:09.771 [error] <0.2769.0> ** Connection attempt from disallowed node 'riak_maint_39294@127.0.0.1...
2012-11-01 15:02:53
893
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人