大规模数据库为中国的Letgo供电,降低了维护成本
工业:电子商务
作者:何都通吉(Zhuou Zhuan)
Transcreator:佳林陈;编辑器:汤姆政府高级官员
zh zh是一个网上二手商品交易平台。你可以把我们想象成“放开中国”。自2015年推出平台以来,我们取得了巨大的发展。2018年,我们拥有超过2亿用户,app和微信小程序月活跃用户超过5000万。
在早前帖子,我们讨论了为什么我们从MySQL迁移到TiDB,一个开源、分布式、混合事务/分析处理(HTAP)数据库,以及TiDB如何帮助我们的数据库实现水平伸缩。
今天,我将介绍如何做到这一点TIDB 4.0.的新功能使TiDB更容易使用,并减少我们的操作和维护成本。
TiDB:不仅仅是一个水平扩展的数据库
当我们切换到TiDB,我们立即解决了我们的两个数据库问题:
- 分片导致复杂的应用程序逻辑。分片使我们的应用程序逻辑更复杂,多维映射可以降低我们的整体性能。使用TIDB,我们不需要划分或写复杂的逻辑。
- 复杂的数据库操作和维护。TiDB可以快速横向扩展。DBA不需要迁移数据或应用程序流量。此外,大型表上的在线数据定义语言(DDL)操作几乎没有影响。
当我们升级到TIDB 4.0.我们解决了更多的问题。请点击每期文章下面的链接,了解4.0如何帮助我们的详细信息。
群集速度缓慢才能部署和难以管理。
热点地区很难找到。热点在电子商务场景中相当常见。在过去,我们必须分别查询每个节点的日志。对热点地区的调查既费时又费钱。
很难看到整个集群的状态。有时,我们需要确认集群的状态。因为要监视的项很多,而且日志分散在整个集群中,所以获取状态非常耗时。我们无法迅速定位问题。
提取数据常常会降低我们的在线响应速度并影响了TiDB的存储引擎TiKV。
很难备份和恢复非常大的簇。这对我们来说是一个紧急的问题。我们使用了逻辑备份,但效果不是很好。
配置TiKV线程池非常复杂,当我们的应用程序改变时,我们必须更新它。
Tiup只能在一分钟内部署群集
Tidb 4.0引入了一个新的组件管理工具,TiUP,这使得部署TiDB环境比以往更快。如果您以前想部署TiDB,但认为它太复杂或太耗时,那么TiUP可以解决这个问题。
例如,我们使用TiUP来部署三个TiDB实例、三个TiKV实例、三个Placement Driver实例和一个TiFlash实例一分钟.除了闪电快速部署外,Tiup还提供了大量的参数,我们可以使用检查状态我们的集群。
键可视化器清楚地显示整个群集的热点
在早期,热点故障排除很难。我们不得不通过各种日志来看看,并精确分析它们,直到我们找到问题。现在,TIDB 4.0引入了一个新的可视化工具,关键的可视化工具,可以快速直观地显示热点我们的群集中的任何地方使用图形热线图.
下面是一个例子:
热图:
- X轴表示时间。
- y轴表示关键范围,密钥范围之间的映射到表和索引。
- 颜色表示关键范围的读或写量。颜色越亮,读写量越高。
键可视化器以图形方式显示系统状态,这有助于我们快速解决数据库性能问题并启用我们深入了解我们的应用程序.
TiDB仪表板有效地显示集群范围的信息
正如我之前提到的那样,难以确定群集的状态。TiDB仪表板有效解决这个问题。Tidb仪表板是图形界面各种内置小部件,使我们能够轻松诊断、监控和管理集群.在一个接口中,我们可以检查分布式群集的运行时状态并管理群集,包括:
- 快速找到星团热点
- 分析SQL语句的执行性能
- 查看慢查询
- 生成群集诊断报告
- 查询和导出日志
- 分析实例
我认为Dashboard是4.0版本的亮点之一,它使本已有用的产品变得更好。
了解概览页面
下图显示了TiDB仪表板的概述页。它显示:
- 每秒查询中的数据库流量(QPS)
- 反应延迟
- 节点状态
- Alert-related信息
通过概述,我们可以快速发现集群的状态,快速定位问题,更好的使用TiDB。
发现慢速查询
TiDB Dashboard还可以让我们找到运行缓慢的查询。如慢速查询页面,我们指定数据库,时间范围和要显示的查询数。输出包括查询名称,执行时间和查询描述,您可以对结果进行排序。获取我们的列表后,我们可以快速找到我们感兴趣的查询。我们不再需要自己的提取物,转换,加载(ETL)流程,我们不需要自行进入机器。
SQL语句的分析
我们可以深入到特定的SQL语句,查看SQL语句模板、指纹ID、语句示例、查询执行计划和与交易相关的指标。当我们使用ETL进程时,我们没有很多这些信息。现在,通过SQL语句分析,我们可以看到慢查询的执行阶段和每个阶段的执行时间。这大大提高了我们的整体SQL分析。
搜索日志
TIDB的新日志搜索功能可让我们在集群中的所有实例上搜索日志,预览搜索结果和导出日志,这大大降低了我们的劳动力和开发成本。与之搜索日志页,我们可以根据时间段、日志级别和实例找到日志。我们不再需要登录到每台机器并手动查看日志。真是节省时间。
TIFLASH提取数据而不影响在线性能
在过去,提取数据会增加在线响应时间。TiFlash解决此问题,包括异步复制,一致性,智能选择和计算加速等功能。
在大川,我们主要在共用物理机器主机和物理隔离上使用TIFLASH。当我们向新计算机添加TIKV节点时,请求请求。不同的请求转到不同的后端数据节点,以便在提取数据时,它不会影响整体在线性能。根据我们的应用程序和SQL语句的复杂性,TIDB自动选择使用Tiflash或TIKV来确保最佳性能。如果请求用于在线数据,TIDB选择TIKV。如果请求用于离线数据,TIDB选择TIFlash。这是一个智能选择机制。
备份和恢复快速备份并恢复非常大的群集
在TIDB 4.0之前,我们努力有效地备份了我们的大数据集群。我们使用了逻辑备份,真正不满足我们的需求。
我们测试了TiDB 4.0的分布式备份和恢复工具,备份和恢复,并获得了优秀的结果。在10 GB的网络环境中,达到120 MB / SEC网络速度,需要备份300 GB数据到网络文件系统不到10分钟.
在相同的速度限制为120 MB /秒,我们通过网络文件系统在大约12分钟内恢复了我们的数据.备份和恢复大大减少了我们的备份和恢复时间。
另一个关键因素是备份的速度完全取决于我们拥有的TiKV实例的数量。我们拥有的TiKV实例越多,备份和恢复速度就越快。
TiKV的统一读取池流线型配置
TiDB 4.0还引入了一个新特性统一的阅读池.在4.0之前,我们必须配置和动态调整我们的读池存储和协处理器,这可能会影响应用程序。我们发现配置和管理这些组件令人沮丧。
统一的读池将存储和协处理器合并到一个线程池中。SQL查询自动确定是使用存储还是使用协处理器。这不仅提高了系统的可用性,而且解决了资源分布不均的问题。
未来的计划
TIDB 4.0引入了一些实验功能,如TIDB仪表板,TIFLASH和统一的线程池,这使TIDB更强大,更容易使用。此版本对我们有很大的帮助,我们甚至没有完全采用它!
将来,我们将完全升级到4.0版。此版本承诺简化数据库操作和维护,这将释放我们的数据库团队,以更加关注创新。
如果你想了解更多关于TiDB的经验,你可以加入Tidb社区松弛.