上一页 1 2 3 4 5 6 7 ··· 9 下一页

2012年4月1日

MongoDB最佳实践

摘要: 文 / Ines Sombra 译 / 李刚将MongoDB加入到我们的服务支持列表中,是整个团队年初工作计划中的首要任务。但我们感觉如果先添加一项对NoSQL存储的支持,而不是先升级已支持的关系型数据库,可能对用户不太好,毕竟目前的用户都使用关系型数据库。所以我们决定将引入MongoDB这项工作放到升级MySQL和PostgreSQL之后来做。到目前为止,MySQL 5.5的Beta版已在进行中,而PostgreSQL的9.1 Beta版也将进入流程,因此我们打算在2012年第一季度中应用这两个版本。由于我们对MongoDB的关注,我们选择性地为几名使用MongoDB的用户提供了技术支持。在 阅读全文

posted @ 2012-04-01 17:30 daemonh 阅读(122) 评论(0) 推荐(0) 编辑

解密Redis持久化

摘要: http://blog.nosqlfan.com/html/3813.html解密Redis持久化作者:nosqlfan on 星期二, 三月 27, 2012 ·4条评论【阅读:1,679 次】本文内容来源于Redis作者博文,Redis作者说,他看到的所有针对Redis的讨论中,对Redis持久化的误解是最大的,于是他写了一篇长文来对Redis的持久化进行了系统性的论述。文章非常长,也很值得一看,NoSQLFan将主要内容简述成本文。什么是持久化,简单来讲就是将数据放到断电后数据不会丢失的设备中。也就是我们通常理解的硬盘上。写操作的流程首先我们来看一下数据库在进行写操作时到底做了 阅读全文

posted @ 2012-04-01 16:57 daemonh 阅读(180) 评论(0) 推荐(0) 编辑

2012年3月25日

记录:protobuf在网游中的用法(二)

摘要: 在上一篇介绍的protobuf用法(http://blog.csdn.net/herm_lib/article/details/7384613),有点偏复杂了。可以简化一下。结构: total_len[16] + head_len[8] + head + body。这次像上一篇介绍最后介绍的一样,把head和body分开了,这样可以让服务器对消息的处理更灵活,有时候,服务器只要head内容,这样可以针对性地只解析head,而不用把body内容也解析出来。头定义差不多像下面的样子:package ProtoCS;message Head{ required uint32 cmd_id = 1; 阅读全文

posted @ 2012-03-25 15:44 daemonh 阅读(196) 评论(0) 推荐(0) 编辑

2012年3月22日

记录:protobuf在网游中的用法

摘要: 消息传递过程:client ---> gated ---> zonedCS消息结构:message Head { uint32 cmd_id; } message Body { AuthReq auth_req; } message CSMessage { Head head; Body body; }发送数据格式:16bits len + CSMessage。gated--->zoned也有一套消息message GZMessage { uint32 uid; // 账户ID ... 阅读全文

posted @ 2012-03-22 20:24 daemonh 阅读(201) 评论(0) 推荐(0) 编辑

2012年3月19日

多核时代不宜再用 x86 的 RDTSC 指令测试指令周期和时间 Options

摘要: 多核时代不宜再用 x86 的 RDTSC 指令测试指令周期和时间陈硕Blog.csdn.net/Solstice自从 Intel Pentium 加入 RDTSC 指令以来,这条指令是 micro-benchmarking 的利器,可以以极小的代价获得高精度的 CPU 时钟周期数(Time Stamp Counter),不少介绍优化的文章[1]和书籍用它来比较两段代码的快慢。甚至有的代码用 RDTSC 指令来计时,以替换 gettimeofday() 之类的系统调用。在多核时代,RDTSC 指令的准确度大大削弱了,原因有三: 1.. 不能保证同一块主板上每个核的 TSC 是同步的; 2.. C 阅读全文

posted @ 2012-03-19 11:07 daemonh 阅读(365) 评论(0) 推荐(0) 编辑

2012年3月12日

C++ new/operator new/placement new的区别

摘要: new C++语言内置的运算符,分配指定对象类型的内存空间,再调用构造函数。::operator new new的重载运算符,就是分配一片原始的内存空间,调用者要指定内存大小。从功能上等同于C的malloc()?(我不完全确定)placement new 把某个对象放到已经存在的内存空间中。下面看实际例子struct Hello { Hello() { } ~Hello() { } private: int a; }; int main(int argc, char* argv[]) { Hello* hello = new Hello; delete hell... 阅读全文

posted @ 2012-03-12 13:57 daemonh 阅读(196) 评论(0) 推荐(0) 编辑

2012年3月9日

MMO-SNS类游戏服务器间数据交互策略分享

摘要: MMO-SNS类游戏是一种在线角色之间存在交互,同时在线角色又可以同离线角色交互的游戏。这两种交互行为,决定了不同服务器之间的数据交互和常见的MMO类游戏存在很大差别。这类型一般会有下面两种类型的主服务器。OnlineSvr实现一些MMO的业务逻辑,实现像做任务、战斗、NPC AI、视野管理和消息同步等行为。OfflineSvr 实现一些离线类的SNS业务逻辑。注意,这个服务器涉及到操作离线角色的一些数据。OnlineSvr和OfflineSvr的数据交互有一点讲究。简单以角色的EXP做为交互例子。有一个角色R,在OnlineSvr1上,他的经验值记为EXP;有另外一个角色,是R的好友,记为R 阅读全文

posted @ 2012-03-09 20:48 daemonh 阅读(497) 评论(0) 推荐(1) 编辑

以太网原理与最小帧长(傻瓜版)

摘要: 转自 http://www.chinaunix.net 作者:a_la_lei发表于:2008-10-17 09:43:47熟悉了最小帧长,可以说就明白了为什么基于CSMA/CD协议的以太网有网段长度限制,同时也掌握了以太网的精髓。在这之前,我们应该先了解一下CSMA/CD协议。什么是CSMA/CD协议(载波侦听多路访问/冲突检测协议)?一个房间有很多人,如果同时说话,就谁也听不清楚别人说什么,于是大家约定了一个机制:每个人在说话之前先听一下有没有其他人说话(载波侦听),如果有,自己就先不说话,如果没有,就说话。如果大家同时发现房间里没有人说话,则同时开口,此时就产生冲突(冲突检测),产生冲突 阅读全文

posted @ 2012-03-09 09:56 daemonh 阅读(596) 评论(0) 推荐(0) 编辑

2012年3月4日

系统设计随笔

摘要: http://blog.csdn.net/herm_lib1. 确认业务特点。2. 思考先前的设计经验,找出区别点。3. 改进架构,基本确定分布式的策略,初步确定架构。4. 分析各服务器负载,确定节点瓶颈或者节点无瓶颈。5. 初步量化负载,包括接入网络IO,服务间网络IO,后端持久化IO。6. 思考数据存储策略,存储前端是否cache,何种cache方法(全cache, LRU/LFU或其他); 确定分布式方案;根据业务特点采用不同的持久化策略。7. 系统运行的过程中,将会出现哪些异常,解决的方式。8. 准备好系统的扩展方案,扩展的时候要处理的问题。9. 想清楚容灾方案。 阅读全文

posted @ 2012-03-04 22:18 daemonh 阅读(194) 评论(0) 推荐(1) 编辑

2012年3月3日

8种Nosql数据库系统对比

摘要: http://blog.jobbole.com/1344/导读:Kristóf Kovács 是一位软件架构师和咨询顾问,他最近发布了一片对比各种类型NoSQL数据库的文章。文章由敏捷翻译 –唐尤华编译。如需转载,请参见文后声明。虽然SQL数据库是非常有用的工具,但经历了15年的一支独秀之后垄断即将被打破。这只是时间问题:被迫使用关系数据库,但最终发现不能适应需求的情况不胜枚举。但是NoSQL数据库之间的不同,远超过两 SQL数据库之间的差别。这意味着软件架构师更应该在项目开始时就选择好一个适合的 NoSQL数据库。针对这种情况,这里对Cassandra、 Mongodb、 阅读全文

posted @ 2012-03-03 10:44 daemonh 阅读(135) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 7 ··· 9 下一页

导航