前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >腾讯云数据库TDSQL精英挑战赛--Q&A

腾讯云数据库TDSQL精英挑战赛--Q&A

原创
作者头像
腾讯云数据库TDSQL
修改2021-11-27 12:38:08
6.1K5
修改2021-11-27 12:38:08
举报
文章被收录于专栏:腾讯云数据库TDSQL精英挑战赛

各位关注和已报名参加【2021·Change SQL-腾讯云数据库TDSQL精英挑战赛】的小伙伴们: 大家好!目前大赛报名还在火热进行中,对于大家关心和提出的问题,大赛主办方将以Q&A的形式,定期更新给到大家。

若以下回答未能满足您的需求,或您有其他关注的问题,欢迎在【腾讯云+社区】云+竞赛的讨论区留言,我们将第一时间为您答疑解惑,感谢大家对于大赛的给力支持。


一、关于报名

Q:找不到队友组队,可以个人报名参赛吗?

A:主办方建议组队参赛,可以发挥团战的优势,当然个人参赛也是可以的。 Q:参赛报名会有赛前指导吗?

A:11月18日、11月25日主办方会进行数据库技术培训,敬请关注【腾讯云+社区-沙龙】或CSDN“高校俱乐部”平台直播。

Q:参赛需要学什么基本技能呢?

A:有基础的编程能力,对数据库有了解的都可以参赛,近期可以关注数据库迁移相关的知识点。

Q、什么时候发放比赛用的代金券?

A、报名结束到初赛赛题公布期间。


二、关于赛题

Q:语言有什么限制?

A:语言涉及go 1.15、java 8 、c、 c++ 11 、python3。

Q:大赛主要考什么?初赛和决赛是不同性质的题目吗?需要提前做什么准备?

A:本次大赛主要聚焦在数据库迁移方向,初赛、决赛的赛题是同一个方向,进阶性质的,每个赛段考察点不同。赛前可以提前了解关于数据库迁移相关的知识。

Q:这次是TDSQL PG版本,还是TDSQL MySQL版本?

A:TDSQL MySQL版本。

Q:如果分布式数据库自己实现一致性协议而不用zk会不会性能更高?

A:题目本身不涉及到分布式一致性协议的设计和实现,目标端使用TDSQL分布式数据库。

Q:如果使用到内存,那么还是跑在单独的服务器上最好?

A:选手提供的代码编译后的程序运行在独立的服务器上,是与数据库实例所在的机器分开的。

Q:题目难度有多大?本科阶段适合参加吗?

A:大赛面向所有人员开放,当然不同阶段的人技术水平不一样,可以通过加强学习的方式来应对本次比赛。

Q:私有云也有吗?

A:本次大赛主要针对公有云场景。

Q:1、最终是要实现一个中间件负责数据迁移到TDSQL,还是实现一个类TDSQL本身也进行存储?2、比赛用的TDSQL是innodb还是ydstore sharedkey hash算法是什么?本地代码可以自己计算么?透传sql方式用链接库怎么做?直接前面加注释?

A:关于赛题、数据、评测等详情,敬请期待2021年12月16日【腾讯云+社区】云+竞赛平台上的赛题发布。

Q:迁移是多源迁移是吗?

A:是的,是多源合一的场景。

Q:有宕机场景吗?

A:不排除有宕机场景,参赛选手需要考虑这种灾难场景。 Q:初赛是要开发完整的数据迁移吗?还是某些部分语句的支持就可以了? A:需要完整的迁移程序。

Q:1、迁移程序需要是可以跑在源端,也可以跑在目标端,也可以跑在中间服务器上是吗? 2、数据迁移是在一台机器还是原数据和目标数据在不同机器上? A:迁移程序跑在中间的服务器上,源端、目的端、中间服务器是分开的,但都在云上同一个可用区。

Q:强同步会不会有些慢?

A:TDSQL针对强同步功能做了性能优化。

Q:赛前有模拟题吗?

A:抱歉,本次大赛没有赛前模拟题。

Q:外网登陆的话权限会受到一定的限制吗?

A:选手使用的CVM实例和数据库都不限制外网访问,可以根据自己的实际需要访问实例。但是评估环境中,选手提交的代码不能访问外网。

Q:数据库比赛中的违规行为有哪些?

A:可查阅云+社区竞赛平台发布的违规说明https://cloud.tencent.com/developer/competition/introduction/10027


三、关于评测

Q:比赛有性能指标吗?

A:有的,在正确性验证通过的情况下,对性能评测阶段整体计时,根据总用时从低到高进行排名(用时越短排名越靠前)。 Q:有什么评价指标,来评价软件的优劣?

A:大赛主办方会提供统一的评测系统,关于评测等详情,敬请期待2021年12月16日【云+社区】云+竞赛平台上的赛题发布。

Q:提交代码是提交源码还是提交可运行的软件包? A:选手将源代码及其依赖代码库(不允许提交编译好的二进制程序和库,如.jar文件,.a文件以及ELF可执行文件等)压缩成zip包提交到评测系统上。

Q:C只有glibc算标准库?其他的都要源码?

A:可以使用。

Q:部署脚本可以yum安装依赖么?

A:不能yum安装。

Q:java需要打包所有jdk之外的库的源码? A:是的。

Q:测试环境和评测环境能具体讲下吗? A:关于测试环境,主要是为了给到选手更好的参赛体验,大赛主办方会安排参赛团队拿到真实的实例做体验和验证赛题答案。另外评测环境主要是为了公平公正考虑,主办方会搭建统一的评测系统,调取选手的代码文件运行后得出成绩并排名。


四、工具

Q:大赛需要用到什么数据库软件?

A:不依赖于具体的软件,选手主要关注代码和依赖,大赛所需的云上资源会通过发放代金券的形式提供给选手。

Q:数据迁移,需要做一致性校验工具吗?

A:选手不需要做这个工具,但需要保证数据的正确性,迁移前后的数据一致性作为比赛结果的评分项。


五、intel相关

Q:这次和intel合作,需要使用到的是intel的基础硬件还是在迁移过程中,要使用到intel的某些功能?

A:程序运行环境在intel的基础硬件上,选手可以利用硬件的特性提升程序运行的性能。

Q:intel内存也是你们提供吗?在云主机上?

A:由大赛主办方提供,赛题公布时会配有使用说明和要求。

Q:持久内存是不是就不需要将log写到磁盘上去了?

A:比赛选手可以根据自己的调优结果来选择log的持久化方式。

Q:测试机器是intel带NVMe硬件的环境吗?

A:本次赛题使用的机器不涵盖。

Q:现在选的是高IO版,后面是不是要选成 PMEM的实例?

A:PMEM实例只会在决赛使用到。

Q:比赛会需要修改TDSQL的内核吗?

A:不需要。

Q:比赛需要自己写网络库吗?

A:不需要,只要是源码形式提供的代码编译一起运行就好。

Q:持久内存当作ssd使用的话,稳定性怎么样?内存不是不稳定存储吗?

A:持久内存的稳定性很好,其存储介质的特性是可持久化的,和DRAM以电容维持刷新所是有本质的区别。并且在持久内存内部还有ECC校验机制。

Q:持久内存和ssd存储有什么区别吗?

A:持久内存的主要特性包括可字节访问,就地写入,其延迟比普通的SSD低很多,这和Nand SSD为代表的块设备是不同的。

Q: 新一代的产品,执行完clwb类似的指令,还会执行sfence保证顺序吗?

A:现有X86指令架构下,CLWB和CLFLUSHOPT指令执行后都必须使用SFENCE。指令详细信息可参见英特尔64和32位软件架构开发人员手册:https://software.intel.com/en-us/articles/intel-sdm

Q:带文件系统的访问和裸设备的访问速率差别大吗?带文件系统的访问有什么特别的优势吗?

A:fsdax可以有2种访问的方式:一种是通过文件系统API访问,一种是通过mmap的方式。其中mmap方式和devdax的访问速率是没有差别的。

在文件系统下新创建文件后有zero-out的操作。文件系统本身可以帮助应用管理元数据的操作。在devdax模式下需要应用去管理相应的元数据。因此,使用哪种模式可以根据需求来决定。

Q:如果包管理器找不到的话,手动编译的时候,还有其他的依赖需要装吗?

A:ndctl和PMDK都是有git地址的,在readme里面都列举了所需要的依赖。较新的包管理器基本都会包括这些依赖。如果包管理器没有,可以手动编译安装。PMDK建议从源码安装较新的版本。以下列出了持久内存相关的常用源码库:

https://pmem.io/ndctl/

https://github.com/pmem/pmdk

https://github.com/memkind/memkind

https://github.com/pmem/llpl

Q:请问我用pmem_map_file打开一个已经存在的比较大的文件,报错了,是什么原因导致的呢?打开较小的文件没事。

A:需要根据具体情况来确认问题在哪里,特别是flag和mapped_penp参数是否设置正确。以下给出了pmem_map_file的函数原型。更多的资料请参考pmem.io/pmdk/libpmem/或者github的PMDK库。

void *pmem_map_file(const char *path, size_t len, int flags, mode_t mode, size_t *mapped_lenp, int *is_pmemp)

Q:pmem当文件系统访问,读写时候不需要4K对齐么?

A:持久内存的特性之一是可字节寻址访问,因此可以更细粒度访问。

Q:libpmemobj不用事务时,性能和libpmem有差异么?

A:libpmem的操作是最底层和粒度最细的,因此效率是最高的。Libpmemobj使用了对象的数据结构,开销要略高于libpmem。

Q:持久内存能不能代替当前所有数据库写wal文件所在的磁盘 ,持久内存的读写速度与磁盘或ssd的性能对比有吗?

A:wal理论上都是可以放在持久内存上,方法可以是直接文件读写和使用mmap的方式读写。在实际应用中需要根据场景中wal在应用中的开销比例评估所带来的性能收益。

持久内存的延迟在几百纳秒级,Nand SSD的延迟在几十微秒以上。


六、技术侧

Q:mysql-conector怎么执行投传sql? A:可以参照腾讯云TDSQL官方开发手册,或查阅:https://cloud.tencent.com/document/product/557/47559

Q:TDSQL的主备库支持一致性,是极端情况下舍弃高可用选择一致性吗?

A:在1主2备的架构下,默认保证优先数据的一致性。但在极端情况且业务可以接受的程度,可以选则可用性。

Q:主库和从库的关系?是不是从库为主库的备份,一主三从就是三个备份?

A:从库实时同步主库的数据。是的。

Q:如果发生主从切换,TDSQL主从的event怎么处理的?

A:每个节点上agent会判断当前主的主备节点,来决定event的状态。

Q:是主和从节点都分片吗?

A:每个分片都是由用户购买时指定的1主X从构成的,一个TDSQL实例由这样的多个分片组成。

Q:分片是不是物理存储的位置?如果是三个分片,三个分片和一个分片使用或者存储上的区别是什么?

A:TDSQL会自动分库分表,一个分片存储一张表做水平拆分后的一部分数据,如果有三个分片,那么每个分片就存储三分之一的数据。每个分片都由购买时指定的1主X备组成。附TDSQL产品文档入口:https://cloud.tencent.com/document/product/557/7700

Q:分片可以跨可用区么?若可以跨可用区,距离可以达到多少公里?

A:可以跨可用区。同城在百公里内。

Q:分片分表的区别?

A:TDSQL分片功能是自动实现的,每个分片上保存整张表一部分数据,接入引擎会将用户的请求自动路由到对应的分片上,从而实现水平分表。这个分表对业务是透明的,业务只需操作一个表即可,降低业务开发复杂性。

Q:计算和存储分离之后,tps和qps如何提升100%?

A:这个问题还要针对具体的场景或者更细化的背景说明做详细解答,TDSQL实例严格来说不能算作存储计算分离的架构。

Q:断电会丢数据吗?

A:不会丢数据,可以配置参数确保日志数据落盘。

Q:TDSQL数据库可以支持千亿级数据吗?

A:支持,万亿行数据毫秒级存取,可以参考文档进一步了解产品:https://cloud.tencent.com/document/product/557/8763

Q:源端是SQL文件还是MySQL数据库?

A:赛题公布时会在赛题中做详细的说明。

Q:建表语句中有外键怎么处理?

A:可以先屏蔽外键约束,建好表之后,再打开。

Q:分布式数据库,和集中数据库挂载大磁盘的比较的优缺点是什么?

A:分布式数据库,可以自由选择容灾级别及可用区,单分片故障对整体请求影响较小。但在做多分片数据聚合等分析场景会消耗更多资源。

Q:多中心异地一致性是通过zk实现的吗?

A:如果是同城多中心,数据的一致性是通过MySQL的同步保证的。如果跨城容灾的话,需要走跨实例的异步容灾方式。

Q:可以允许全局group by操作吗?

A:可以做,数据量大的时候会比较消耗资源。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、关于报名
  • 二、关于赛题
  • 三、关于评测
  • 四、工具
  • 五、intel相关
  • 六、技术侧
相关产品与服务
分布式数据库 TDSQL
分布式数据库TDSQL是腾讯打造的一款企业级数据库产品,具备强一致高可用、全球部署架构、高 SQL 兼容度、分布式水平扩展、高性能、完整的分布式事务支持、企业级安全等特性,同时提供智能 DBA、自动化运营、监控告警等配套设施,为客户提供完整的分布式数据库解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档