有奖捉虫:办公协同&微信生态&物联网文档专题 HOT

TcaplusDB 支持数据淘汰吗?

TcaplusDB 支持表级别数据淘汰,淘汰的依据是记录最后的写时间。

TcaplusDB 的数据结构有哪些?

TcaplusDB 支持的数据结构有 list 数组、按照部分 key 查询(索引)、key-value、key-object(即单个 key 的 value 值可以是任意的数据结构,例如 gameserver 可以将 lua table 序列化到 value 字段里)。

TcaplusDB API 的单实例内存和 CPU 消耗?

API 单实例内存消耗最大73MB、CPU 消耗最大30%。

TcaplusDB 单个表格组的表格个数是多少?

TcaplusDB 单个表格组中表的个数最大是256,如果您单个表格组下的表的数量大于256,可以采用再新增新的表格组或者将表进行合并操作,如果需要技术支持,请 提交工单 选择“其他腾讯云产品”申请。

TcaplusDB 对 key 和 value 字段的限制是什么?

generic 表 key 字段的个数是4,list 表 key 字段的个数是3,单个 key 字段的长度是1024B,generic 表的 value 字段的个数是128,list 表的 value 字段个数是127,单个 value 字段大小是256KB,整体记录最大是1MB。

TcaplusDB 备份文件存放的时间?

TcaplusDB 备份的引擎文件保存7天,Ulog 流水保存7天,各个 TcaplusDB 环境是不一样的,您可根据具体的 TcaplusDB 环境向 客服咨询

gameserver 与 tcaproxy(接入层)是全链接吗?

为了节省 gameserver、tcaproxy(接入层)维护 TCP 链接的成本,gameserver 支持选择部分 tcaproxy(接入层)建立链接。

TcaplusDB 的数据怎么做数据分析?

TcaplusDB 的数据可以导出任何格式,包括 json、pb 等方式,可以入库 tdw 等数据分析系统;TcaplusDB 支持将实时的数据导入到 MySQL 数据库等。

TcaplusDB 单张表的最大大小是多少? 记录条数限制是多少?

单个表能细分到1w个数据分片,每个数据分片是256GB,即单个表的总大小是1w * 256GB,单个表没有记录条数的限制,单个表的记录条数和单条记录大小是相关的。

TcaplusDB 支持多表事务操作吗、支持批量写操作吗?

TcaplusDB 目前不支持多事务操作,即同时提交多个操作,如果后面操作失败则回滚所有已做操作。对于这样的情况,通常需要从业务侧解决。可以采用“先扣再加”的策略,或记录重要操作的对账日志等,也暂时不支持批量写操作。

TcaplusDB API 升级是前向兼容的吗?

TcaplusDB API 升级是前向兼容的,已经有的接口、命令字、功能不会修改。

什么是 TcaplusDB?

游戏数据库(Tcaplus Database,TcaplusDB)是腾讯专为游戏设计的分布式 NoSQL 数据库,针对游戏业务爆发性的增长和海量游戏数据管理提供高性能、业务无感知弹性伸缩、毫秒级读写延时与安全的数据存储服务,广泛应用于腾讯数百款游戏中,包括《和平精英》、《王者荣耀》、《穿越火线》等数百款精品游戏中,每天支持超过4000万用户同时在线的数据请求。

TcaplusDB 适合哪些场景?

手游、端游、页游,支持分区分服与全区全服部署方式,同时也支持非游戏领域中高并发、低延时访问要求的使用场景。

相比 Redis+MySQL 作为游戏数据库,TcaplusDB 有哪些优势?

TcaplusDB 采用内存加高效 SSD 云硬盘混合部署的方式,能同时满足数据快速读写与持久化存储的需求;
对于关系型数据库用户,TcaplusDB 提供类 SQL 的命令行工具 Tcaplus Client,用户可无缝切换执行 CRUD 操作;
用户不需要担心表文件过大导致查询加载缓慢的问题,TcaplusDB 支持单表大小高达2.56PB,且不会降低查询效率;
Redis+MySQL 扩容需要手工干预且无法满足业务突增场景且使用成本高昂,TcaplusDB 用户只需要关注业务开发,数据库的扩容和性能优化全部后台由专业的 DBA 完成.

TcaplusDB 如何保证数据安全?

数据容灾: 集群主从节点主要采用同城跨 IDC 部署(或跨机架、跨楼层方式,主从节点同步延时最多10ms),每15分钟 binlog 备份,每天全量冷备;整个集群各个模块都是无损升级与扩缩容,用户业务无感知;
数据一致性:主从数据实时同步并采用 req/ack 机制确保数据完全一致;主从切换时会确认主从数据一致后再进行切换;故障发生时基于冷备+binlog流水重建方式进行数据恢复,保障数据完整性;主从数据会进行周期性一致性全量核对,并有异常修复机制; 用户请求层面,根据实时反馈的响应码判断数据操作是否正常;
数据内容安全: 数据落地 CRC 校验防篡改; 数据文件存储采用谷歌 Snappy 压缩,且数据读写压缩或解压缩后会采用序列化和反序列化操作,即使数据文件被劫持也无法解析数据内容;
访问安全:集成腾讯云用户权限管理体系 CAM;TcaplusDB 后台支持基于 IP 白名单访问,即指定 IP 客户端读写 TcaplusDB 数据;表格组内的数据交互均需密码验证,所有用户操作均有审计日志;
外部合规:数据文件会采用 aes-128-cbc 加密,满足欧盟 GDPR 标准。

TcaplusDB API 各版本字段大小限制

小于 Tcaplus 3.32.0 API,单个 value 字段128KB,单条记录256KB。
大于等于 Tcaplus 3.32.0 API 但是小于 Tcaplus 3.40.0 API,单个 value 字段256KB,单条记录1MB。
大于等于 Tcaplus 3.40.0 API,单个 value 字段,单条记录10MB。

目前 TcaplusDB 的发送缓冲区和接收冲区大小分别是多大?

目前 gameserver 与单个 tcaproxy 的发送和接收缓冲区是10MB。

批量接口的错误码怎么使用?

批量接口的错误码分为两种:总错误码和子操作错误码。当至少一个子操作成功时,总错误码为成功;当所有子操作都失败时,总错误码为失败。总错误码可以通过 response 的返回值获取,子操作错误码通过获取单个 record 的返回值得到。

tcaplus 表的一级字段数量上限是256?

目前一个表最多支持256个一级字段

请问对于一个游戏来说,tcaplus 最多支持多少连接数

默认一个 proxy 最多支持3000个连接,但是可以通过修改配置调大 proxy 的连接数,同时,一个 api 实例目前最多连接200个 proxy;

Tcaplus 访问数据库是并行的吗?

支持并行,API 端每个连接(会话)的请求是串行的,不同连接是并行的。在 API 端,连接不是线程安全的,不用多线程使用同一个连接。

一个 shard 可以存储多大数据量?

单个 shard 最大可以存256GB的数据,一般推荐数据量维持在10GB以内。注:shard 是有初始空间的,但不是固定的,和具体设置的表引擎参数有关的,例如 hash 桶设置数量等。 一个表最多支持10000个 shard,每个 shard 256G,Tcaplus DB 是分布式数据库,没有行数限制。

TcaplusDB 的 pb 版本对于不同版本的兼容性如何?

pb 是前后兼容的

请问跟 int 相比,用 string 做 tcaplus 的 primary key 或者 sharding key,有什么需要注意的吗?

跟int相比的性能差距不大,总体原则: key 不要太长。

一张表的数据量很大,例如10亿条记录,导致一个物理机器的放不下,那么 tcaplus 这边会把这些数据分散到多个物理机器上吗?

在运营过程中可以加机器,把数据分散到新存储上,每组存储都是主从模式。

主从数据实时同步的时候,若主机器因为物理原因宕机了,理论上可能会有短时间的数据丢失吗?

理论上是存在短时间数据丢失的,是最终一致性的同步。因为是先写内存,之后系统刷盘。如果主机挂了,马上会主从切换。

如果 Tcaplus 远端的 meta 版本更高,而本地 svr 的 tcaplus meta 版本更低,中间有差异的这部分数据会存入tcaplus_db 吗(例如新增了一个字段)?还是会被直接舍弃掉?

以默认值写入

关于表定义中的分表因子,未定义时有默认分表因子吗?已有的表 splittablekey 可以再新增字段吗?

TDR 表:没有定义分表因子字段,系统默认将主键字段作为分表因子字段 。
PB 表:没有定分表因子字段,多个本地索引中的交集字段为分表因子字段,若没有定义本地索引交集字段则还是默认主键是分表因子。
表 splittablekey 一旦定义不能修改,不能增加和删除。

关于 list 表变更时,首次新增 customattr2中定义 listnum 的注意事项:

list 表的元素个数可以改大,但是首次新增 customattr2做表变更时先不能改大 customattr2中的 listnum,变更成功后再修改 customattr2中的listnum,否则会变更失败。

Tcaplus 是主备模式吗?写请求的时候,主机写成功就给业务回包,还是要等备机同步后才回包?

是的,一主一从主备模式,主写成功回包。