实践:如何选择分区键

刚才我们说,我们希望在创建表的时候业务参与进行表结构设计的时候,能考虑一下分区键的选择。如何选择分区键呢?这里根据几种类型来简单介绍一下。

如果是面向用户的互联网应用,我们可以用用户对应的字段,比如用户ID,来做分区键。这样保证在拥有大量用户时,可以根据用户ID将数据拆分到各个后端节点。

游戏类应用,业务的逻辑主体是玩家,我们可以通过玩家对应的字段;电商应用的话,可以根据买家或者卖家的一些字段来作为分区键。物联网的则可以通过比如设备的ID作为分区键。选择分区键总体来说就是要做到对于数据能比较好地做进行拆分,避免最后出现漏点。也就是说,通过这个分区键选择这个字段,可以让数据比较均衡地分散到各个节点。访问方面,当有比较多SQL请求的时候,其实是带有分区键条件的。因为只有在这种情况下,才能更好地发挥分布式的优势——如果是条件里面带分区键,那这条SQL可以直接录入到某一个节点上;如果没有带分区键,就意味着需要把这条SQL发到后端所有节点上。

这个大家可以看到,如果水平扩容到更多——从一个节点扩到256个节点,那某一条SQL写不好的话,可能需要做256个节点全部的数据的聚合,这时性能就不会很好。

总结来说,我们希望业务在创建表,在设计表结构的时候尽量参与进来。因为不管是聚合函数或者是各种事务的操作,其实对业务基本上属于无感知,而业务这时参与则意味着能够换来很大的性能提升。

实践:什么时候扩容?

我们什么时候扩容?在TDSQL里面,我们会有大量的监控数据,对于各个模块我们在本地会监控整个系统的运行状态,机器上也会有各种日志上报信息。基于这些信息,我们可以决定什么时候进行扩容。

简单来说,比如磁盘——如果发现数据磁盘使用率太高,这个时候可以进行扩容;或者SQL请求,或者CPU使用率接近100%了——目前基本假如达到80%使用率就要进行扩容。还有一种情况是,可能现在这个时候其实请求量比较少,资源使用比较充足,但如果业务提前告诉你,某个时候将进行一个活动,这个活动到时候请求量会增长好几倍,这个时候我们也可以提前完成扩容。

下面再看几个云上的集群案例。这个大家看到,这个集群有4个SET,每个SET负责一部分的shardkey,这个路由信息是0-127,意思是它最后能扩到128个节点,所以能扩128倍。这个“128”可以由初始化的业务预估先定下来。因为如果池子太大的话,的确最后可以扩到几千台,但是数据将比较散了。事实上今天每台云上的或者实际的机器性能已经非常好,不需要几千台的规格。

这是另外一个集群——它的节点数会多一点,有8个节点,每个节点也负责一部分的路由信息。这个数字只有64,所以这个最后可以扩到64个节点。这个是云上的相关例子。

分享主要是这些内容,大家如果有什么问题欢迎评论留意。

Q&A: Q:没扩容之前的SET里面的表都是分区表,问一下是不是分区表?

A:是的,在没扩容之前,相当于在这个,简单说我们现在就一个节点,那么我们告诉他256,这个值我们在进行初始化的时候就定下来的。而且这个值集群初始化以后就不会再变了。假设我们这个集群定了一个值是256——因为他可能认为这个数据量后面会非常非常大,可以定256。这个时候,数据都在一个节点上。这个时候用户,按照我们刚才的语法创建了一个表,这个表在底层其实是分成256份的。所以他即使没有进行扩容,它的数据是256份。再创建另外一个表,也是256份。用户可能创建两个表,但是每个表的底层我们有256个分区的,扩容就相当于分区把它迁到其他的地方去。

Q:各个节点的备份文件做恢复时如何保证彼此之间的一致性?

A:各个节点之间没有相互关系,各个节点自己负责一部分的路由号段,只存储部分数据,水平扩容只负责一部分数据,它们之间的备份其实是没有相互的关系,所以这个备份其实是之间不相关的。每个节点我们可能有一主两备,这个其实是我们有强同步机制,在复制的时候来保证数据强一致性。大家可以参考之前的分享里面会比较详细介绍TDSQL在单个节点里面TDSQL一主多备架构是如何保证数据的强一致性的。

Q:两阶段在协调的时候能避免单点故障吗?

A:首先在两阶段提交的时候,我们是用SQL引擎做事务的协调,这个是单个的事务。如果其他的连接发过来,可以拿其他的SQL引擎做事务协调期。而且每个SQL引擎是做到无状态的,可以进行水平扩展。所以这个其实是不会有太多的故障,我们可以根据性能随机扩展的,可以做到性能的线性增长,没有中心化。日志这些都是被打散的,记日志也会记到TDSQL后端的数据节点里面,一主多备,内部保证强一致性,不会有单点故障。

TDSQL是腾讯TEG数据库工作组下三大产品系之一,是一款腾讯自研的金融级分布式数据库产品,目前广泛应用于金融、政务、物联网、智慧零售等行业,拥有大量的分布式数据库最佳实践。

本文由博客一文多发平台 OpenWrite 发布!

TDSQL水平扩容实践案例相关推荐

  1. 亿级流量场景下的平滑扩容:TDSQL的水平扩容方案实践

    为帮助开发者更好地了解和学习分布式数据库技术,2020年3月,腾讯云数据库.云加社区联合腾讯TEG数据库工作组特推出为期3个月的国产数据库专题线上技术沙龙<你想了解的国产数据库秘密,都在这!&g ...

  2. Kubernetes(K8s)容器设计模式实践案例 – 分散收集模式

    <Kubernetes与云原生应用>专栏是InfoQ向轻元科技首席架构师王昕约稿的系列 文章.本专栏包含8篇内容,将会从介绍和分析Kubernetes系统以及云原生应用 入手,逐步推出基于 ...

  3. 科大讯飞交通超脑荣获 2019 年大数据应用最佳实践案例 TOP10

    12月5日,由中国计算机学会主办,CCF 大数据专家委员会承办的中国大数据技术大会(BDTC 2019)在北京长城饭店隆重举行.会上揭晓了由CCF大数据专家委员会组织评选的大数据应用最佳实践案例TOP ...

  4. 从原理到策略算法再到架构产品看推荐系统 | 附Spark实践案例

    原文链接:mp.weixin.qq.com  作者 | HCY崇远 01 前言 本文源自于前阵子连续更新的推荐系统系列,前段时间给朋友整理一个关于推荐系统相关的知识教学体系,刚好自身业务中,预计明年初 ...

  5. 南方电网广东公司荣获“IT用户最佳实践案例奖”

    昨日,一年一度的"中国双态IT用户大会"在北京金茂威斯汀大酒店隆重举办.本次大会由ITSS数据中心运营管理工作组(DCMG)和双态IT联盟联合主办,是业内首个为行业用户打造,完全由 ...

  6. 专访智链ChainNova CTO谢文杰:区块链容器化与水平扩展实践

    [编者按]每个人的成长曲线不同,有的人在研究生之时就已有相当知名的产品和框架,从而在接下来的工作中一路顺风顺水,有的人缺需要经历一个又一个的坑才能成长,不管是前者的聪明高效,还是后者的稳扎稳打,他们都 ...

  7. 企业数据安全治理最佳实践案例汇总

    怎样做数据安全?看看行业最佳实践,为了保护公司隐私,将对应企业的名称进行了修订,简称某平台A.B和C 某在线平台A在线 某在线平台A合作业务处理中涉及到个人敏感数据,要对开放平台开展数据安全管理. 合 ...

  8. 【视频课】言有三每天答疑,38课深度学习+超60小时分类检测分割数据算法+超15个Pytorch框架使用与实践案例助你攻略CV...

    计算机视觉中大大小小可以包括至少30个以上的方向,在基于深度学习的计算机视觉研究方向中,图像分类,图像分割,目标检测无疑是最基础最底层的任务,掌握好之后可以很快的迁移到其他方向,比如目标识别,目标跟踪 ...

  9. 【视频课】零基础免费38课时深度学习+超60小时CV核心算法+15大Pytorch CV实践案例助你攻略CV...

    计算机视觉中大大小小可以包括至少30个以上的方向,在基于深度学习的计算机视觉研究方向中,图像分类,图像分割,目标检测无疑是最基础最底层的任务,掌握好之后可以很快的迁移到其他方向,比如目标识别,目标跟踪 ...

最新文章

  1. 地表车神争霸赛,且看第16届大学生智能汽车竞赛
  2. linux xargs 给命令传递参数 组合多个命令
  3. openshift学习_在OpenShift上将JMS与JBoss A-MQ结合使用。 学习了有关远程客户端和加密的经验。...
  4. java 8是指什么_java中8个基本数据类型到底是指什么?是什么意思,有什么作用?我需要权威的回答,...
  5. 如何Python写一个安卓APP
  6. 2022年中国研究生数学建模竞赛
  7. 用Python解读房贷利率,有没有套路?这是我见过最透彻的Python版解读!
  8. U盘无法格式化的原因及解决方法
  9. RTR4 拾遗(一)-- 图形学的B面
  10. mysql先过滤后分组_MySQL分组过滤
  11. 程序员哑巴英语修炼指南
  12. Android 9使用APP来控制手电筒功能
  13. 计算机网络构成的硬件和软件有哪些,计算机的硬件构成及软件构成 有什么
  14. VBA 类模块理解和使用总结
  15. 从十亿光年到0.1飞米:从宇宙到细胞,从宏观到微观
  16. 【重要】有三AI-终极VIP会员首次发布,除课程外还享有5大权益
  17. 第三模块 面向对象网络并发编程 | day17 面向对象基础
  18. w ndows10启动,手把手为你win10系统设置开机自动启动adsafe软件的详细教程
  19. 精进自己、正面思考、调整情绪的三个小方法
  20. 海联金汇巨亏24亿,30亿收购的联动优势商誉减值20亿、背后现大量现金贷口子

热门文章

  1. 直通车在第一次做应该如何出价呢?如何出价更合理?
  2. 为什么现在真正的黑客越来越少了?
  3. Openairinterface从零开始搭建5G核心网——Basic版
  4. 理清JS中的深拷贝与浅拷贝
  5. Android实现图片放大缩小
  6. matlab版吴恩达机器学习第五章笔记
  7. 计算机与智能科学专业大学排名,智能科学与技术专业大学排名 2021全国排行榜...
  8. FusionCharts简介
  9. 一个小白轻松月入上万块的线上冷门项目
  10. YL杯超级篮球赛_纪中1325_带权中位数