游戏数据库 TcaplusDB 数据库交互

这篇总结了腾讯云游戏服务器端与系统设计的最佳实践,核心包括:读写操作优化(如部分字段更新、result_flag设置)、批处理建议(limit200及分包)、list表操作规则、超时控制与遍历策略,以及系统设计中的独立成表、动态改表、回档与压缩功能。 读写优化:推荐部分字段读写,减少网络与磁盘开销。 list操作:注意队列淘汰规则与index传递准确性。 系统设计:高频字段独立成表,支持动态改表与压缩功能。

相关产品
游戏数据库 TcaplusDB 产品页,含版本规格、价格与购买入口。

一、游戏服务器端的最佳实践

·在部分字段读写的场景下推荐部分字段读取和更新,减少网络传输大小和磁盘读写次数,避免获取无效数据。

·对于写操作时响应包需要返回数据记录的,建议根据实际情况设置 result_flag,例如,update 后需要获取到修改后的数据记录,建议 result_flag 设置为2;如果不需要写操作返回数据记录,则 result_flag 设置为0。

·对于批处理的命令字,例如,batchget、listgetall、getbypartkey 等,建议按照 offset 和 limit 获取数据记录,limit 推荐200,gameserver 端开启分包返回。

·list 相关的表,listaddafter 时需要注意队列满时配置淘汰规则,推荐采用队头插入、队尾删除或者队头删除、队尾插入的方式。

·list 相关的表,例如,listreplace、listdelete、listbatchdelete 时,需要传递正确的 index。

·gameserver 在读数据前,需要确保获取的数据记录 value 字段是有值的,例如 value 字段 A、B、C,本次 gameserver 获取的数据记录是A、B,则 C 字段是没有值的,请谨慎使用。

·推荐 gameserver 本地做超时控制,不推荐采用按照 gameserver 的回包做超时判断,需要 gameserver 本地主动的做超时判断。

·gameserver 在遍历时,推荐从存储层从节点上获取数据,避免影响主节点的性能。

·不推荐对大字段进行 memset 操作,耗费更多的 CPU,推荐对大数据结构的部分字段设置为0的方式进行初始化。

·gameserver 端在处理发往 Tcaplus 的请求和来自 Tcaplus 的响应时,建议采用分治的方法,处理部分发往 Tcaplus 的请求,再处理来自 Tcaplus 的响应包。

二、系统设计的最佳实践

·高频字段、需要一次性原子性操作的字段推荐独立成表。

·游戏服务器端在做数据回写时,建议进行流控、按照时间离散化处理。

·建议可以支持动态修改表结构,提供表的数据转换插件。

·回档支持全区全服、表级别、记录级别的冷备时间点回档、精确时间点回档。

·推荐采用分区分服模型,全区全服和分区分服都可以动态扩展接入层、存储层节点。

·具有业务关联的多个内容需要合并在单个表里,避免出现分布式事务问题。

·推荐开启压缩功能,包括请求包和响应包压缩、记录压缩功能。

赞 (0)
上一篇 4天前
下一篇 4天前