注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

大宝(sodme)的Blog

人生如戏, 梦一场; 岁月似歌, 任逍遥.

 
 
 

日志

 
 
关于我

执着, 务实, 勤于思考, 注重实效。我是大宝, 05年~11年2月在广州网易互动负责网游项目研发, 核心开发者, 网游行业六年从业经验, 主张并一直坚持实践研发+运营一体化产品观。工作内容涵盖:服务器研发/突发事件处理/产品技术攻坚、团队管理/培训、过程监控/改进、客服/运营管理等诸多方面。关注网游产品设计、研发、运营、市场完整流程构建和实践。现为创业公司项目合伙人。愿广结同道者, 共同进步。msn: sod_me@hotmail.com, mail&gtalk: sodme.dev@gmail.com

网易考拉推荐

顺利完成首批合服  

2009-08-10 00:33:41|  分类: 网游研发 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
在波澜不惊中,8月7日下午15点左右完成新飞飞的首批合服,经过合服之后的服务器,其人气活跃度一跃成为全服前三。

其实,有关合服的准备工作,是早在公测之前就已经在作了,只是后来因为五月份的公测,中间暂停了一下,直到七月份之后才恢复重新开始这块的工作。

这次合服,涉及到两个问题:一是新中心数据库架构的启用;二是老架构下各数据表的梳理与转换。相比之下,较复杂的工作在于各个数据表内容的详尽梳理(总计有48个数据表),大体上这些数据表的处理规则有这三种情况:
1. 含id和name的单个字段处理(可以使用sql语句直接处理);
2. 含id和name的拼接起来的字符串字段处理(需要借助bash脚本对导出的数据处理然后更新旧数据);
3. 合在一起后,在逻辑上互相有冲突的表(比如占了同一个坐标位置的一些玩法,以及原服排行的一些玩法等,需要根据具体规则决定数据的取舍)

在所有的脚本和SQL语句中,最复杂的逻辑,是角色槽位的处理问题。由于同个账号可能分在不同的区建立很多角色,而同一个区内最多只有三个在用的角色槽位,所以,我们最终是采用这样的规则来处理:
将同账号下,各区在用的角色,按等级进行排序,取等级前三名的角色为新服下该账号的在用角色,其余不用角色置为删除状态,玩家可以恢复删除状态的角色(既有功能)

我借用SQL语句和两个临时表完成了以上的逻辑,大致作法是:
1. 把id,角色状态,账号,等级等信息按同账号等级排序重新导入到另一个有单独自增id的临时表中
2. 另建一个用于统计各账号下角色个数,最小自增id,最大自增id的临时表,然后就可以根据这个自增id的情况进行筛选了

本次合服,积累了一些新的经验:
1. 把表结构和数据分开导,有利于在建好结构后作中间优化
2. 要反复对比双方的表结构是否一致,包括字段顺序,这可能影响数据导入正确性(比如使用insert into new_tbl select * from old_tbl时,如果字段顺序有问题这条语句就会使数据出现混乱)
3. 自测的方法:使用sql语句的批量对比,可以作到尽可能多的数据一致性确认(只改变id字段的数据表,可以用一条简单的对比确认SQL语句就可以确定静态数据有无问题)
4. 要尽可能作到”一键式合服,脚本化操作“,有利于最高程度提升效率
5. 使用迭代测试,先使用小数据量进行测试,这样易修改易重复进行,确定小数据量没问题后再提升测试级别进行更大数据量级别的测试
6. awk本身只支持到32数值精度,要处理64位精度的大正整数,需要安装gawk

本次合服将持续到8月底,涉及的服务器将有58台,不到最后一刻都不算最终完成,仍需异常谨慎和仔细。

PS,新飞飞网站上的合服专题已经上线:
http://ff.163.com/2009/hefu/index.html
  评论这张
 
阅读(312)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017