游戏开发论坛

 找回密码
 立即注册
搜索
楼主: yy8354

大型网络游戏数据库设计方面讨论?(微软平台)

[复制链接]

63

主题

871

帖子

891

积分

高级会员

Rank: 4

积分
891
QQ
发表于 2005-8-11 15:43:00 | 显示全部楼层

Re:大型网络游戏数据库设计方面讨论?(微软平台)

关注中......

1

主题

130

帖子

134

积分

注册会员

Rank: 2

积分
134
发表于 2005-8-11 19:16:00 | 显示全部楼层

Re:大型网络游戏数据库设计方面讨论?(微软平台)

Windows 的 Socket只能分配65535个,每个用户在监听建立连接后要分配一个,而且有一部分系统要用,实际情况小于65535个,所以不可能一台机器上运行10W个用户,要拿台机器来做连接服务器,根据实际情况分配到不同的GS;另外,目前万人在线的游戏都很少,而且大部分是每个GS有500-2000人,一个服有多个GS,像MU中,各个GS可以通过好友系统服务进行通讯,可以在战盟列表中看到玩家在哪条线,但两个GS是单独的,不同GS大家互相看不到的(是万人在线,不过不是在同一线);另外,一个玩家100K数据太多了,玩家的各种状态,名字,装备再加上要记住的地图,其他玩家的数据,5K就够了,你再分配5K作为玩家的数据缓冲区也才10K

9

主题

48

帖子

54

积分

注册会员

Rank: 2

积分
54
 楼主| 发表于 2005-8-16 14:01:00 | 显示全部楼层

Re:大型网络游戏数据库设计方面讨论?(微软平台)

phevos 好象又是个不认真看帖子的 首先我不是讨论网络部分 网络部分的物理极限一般在3000左右 其次我没说是拿单台服务器 我这里服务器都说的是服务器群组 只是如何有效的进行分流设计 才是我们要讨论的中心话题 其次这里的分流是讨论数据库瓶径而非网络 所以你说的网络传输数据信息5K和10K的东西也没关系 PS:网络方面微软好象认为是8K最佳 没记错的话
我说的100K是一个玩家登陆后在游戏里需要从数据库里读取的信息,而网络传输只是事件驱动非必要信息都可以不需要传输,玩家动作后才传输事件引发的信息.数据库里玩家信息远远要大于这个信息量.
最后一句话 :欢迎讨论 但请先看清楚我的帖子 难道我表达有问题? 郁闷

9

主题

48

帖子

54

积分

注册会员

Rank: 2

积分
54
 楼主| 发表于 2005-8-16 14:05:00 | 显示全部楼层

Re:大型网络游戏数据库设计方面讨论?(微软平台)

目前跟人讨论的结果是:
内存保存临时信息 定期更新入数据库
通过MSSQL的功能来实现分布式数据库,不同表的关联功能,使整个服务器群组来支撑1个数据库系统,不过我考虑在不同服务器上的信息之间关联查询有可能导致查询回应速度过慢.

不知道有没用.NET的朋友 .NET里数据库方面的设计 DATASET就等于是个内存容器专门用于保存离线的数据库数据 这个我也正在实验 如果用.NET开发 不知道效率是不是问题 不过难度和稳定性用DATASET好象比自己写的有保障多了

0

主题

172

帖子

176

积分

注册会员

Rank: 2

积分
176
发表于 2005-8-16 14:22:00 | 显示全部楼层

Re:大型网络游戏数据库设计方面讨论?(微软平台)

哇,每个玩家数据100K,什么概念啊

MS SQL每条记录不能超过8 K(自己可以试试,设计每行记录8K以上的表格能否成功),也就是说一条玩家数据至少分布在12个表内,而且由于设计的原因,数字将 远大于 12……

注册用户1000W = 100G 数据,再好的数据库也该废掉了~~~~

0

主题

172

帖子

176

积分

注册会员

Rank: 2

积分
176
发表于 2005-8-16 14:25:00 | 显示全部楼层

Re:大型网络游戏数据库设计方面讨论?(微软平台)

而且悄悄提醒一句,至少SQL SERVER2000是不能跨database有依赖关系的……

即,要有依赖关系(主外键,存储、删除依赖,存储过程),就得在一个database内,说利用MS SQL来分布式,就得牺牲掉绝大部分依赖关系!

而且镜像越多,镜像之间的同步越复杂,一个处理不当,哐当,复制遍地都是……

9

主题

48

帖子

54

积分

注册会员

Rank: 2

积分
54
 楼主| 发表于 2005-8-16 14:34:00 | 显示全部楼层

Re:大型网络游戏数据库设计方面讨论?(微软平台)

6spring 提到的真也是我觉得用MSSQL解决不如内存储存好的关键 不过100G数据库算很大嘛? 没经验啊
我们现在28W左右注册用户 数据库都接近10G了 (不包括日志)

0

主题

172

帖子

176

积分

注册会员

Rank: 2

积分
176
发表于 2005-8-16 16:06:00 | 显示全部楼层

Re:大型网络游戏数据库设计方面讨论?(微软平台)

是啊,28W注册用户及10G,而且用户数据肯定小于100K吧,如果每个用户100K,那你说实际有多大。

数据库层本身也有一个缓冲池,单个数据文件巨大,也意味着他的缓冲就得反复折腾……

查询是主键查询还好,要是万一有特殊需要(使用like之类),那查找起来……
  -____-||||


所以我还是赞同fujingqiu的看法,不必支持10W在线,1W就差不多了。
先把1W在线做好了,再考虑10W吧


PS:现在就一单身汉,何必跑去住700平的别墅?

9

主题

48

帖子

54

积分

注册会员

Rank: 2

积分
54
 楼主| 发表于 2005-8-17 14:11:00 | 显示全部楼层

Re:大型网络游戏数据库设计方面讨论?(微软平台)

我们现有的系统很简单 当初设计也是按照地方性游戏来设计的 现在在线率和注册人都是跟之前预期的标准接近 这个系统也只是我们收集资料用的而已
现在做的项目面对的市场预测 要求我们必须按照10万人在线的标准去做 1w在线我们现在系统完全够用了 何必讨论这些 又何必做重复工作?
我在这里是来讨论技术的 1w在线和10w在线不是一个只增加服务器就能解决问题的 所以需要讨论 一个程序的设计好坏除了代码上细节的处理 最重要的就是一个框架结构的搭建 现在不考虑这些问题 出了问题再重构涉及的就不只是技术问题了

目前我们用户信息与游戏有关信息10G左右 算下来1个用户35K 但是游戏辅助功能 例如帮派 道具......... 都没考虑在内 加进去数据库肯定要几何倍增加 我们现在用的是单个数据库来支持几千人在线的一个系统 目前看来基本到极限了 所以才考虑数据库如何分流 如何解决问题

6spring你现在是反复提些跟核心问题擦边的问题 我没看出来跟解决问题有什么干系啊?

31

主题

630

帖子

635

积分

高级会员

Rank: 4

积分
635
发表于 2005-8-18 10:41:00 | 显示全部楼层

Re:大型网络游戏数据库设计方面讨论?(微软平台)

目前支持TB级的只有IBM的DB2和NCR。一般认为DB2不太好用,就只能选择NCR。NCR这个东西是硬件一体化的,当然是天价。准TB级的只有Oracle和MySQL。当然了,想支持TB的数据仓库还得有大型主机硬件配合。
设计数据库表的时候一般都是考虑范式,一般认为范式级别约高越好。其实这个范式也是个双刃剑,范式主要是为了避免数据融余,并没有考虑性能。有时候过高级别的范式反尔会降低性能,所以有的人就打破范式。
对于算法f(n),除了选择一个合适f()之外,选择一个适当的n也是同样重要。楼主支持10万人在线是不是就非得把这些用户放在一起?能不能有一个登陆的服务器,之后把角色分开放在10个不同的服务器上。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-24 15:31

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表