热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开源社区_MySQL之父好评,开源社区点赞的背后,这帮人做了哪些事?

本文由编程笔记#小编为大家整理,主要介绍了MySQL之父好评,开源社区点赞的背后,这帮人做了哪些事?相关的知识,希望对你有一定的参考价值。
本文由编程笔记#小编为大家整理,主要介绍了MySQL之父好评,开源社区点赞的背后,这帮人做了哪些事?相关的知识,希望对你有一定的参考价值。




在云计算越来越火的今天,我们不难预测,云上的mysql在未来的数据库市场也将是主流。








在很多人的理解中,云托管数据库服务是“暴利”。






而实际上,在这个海量数据大爆发的时代,开源版本的MySQL很难满足很多企业的业务需求,在某些场景下,无论是性能、安全还是稳定性,都面临着各种各样的问题,产品能力不足的云数据库MySQL也很难在竞争激烈的市场找到属于自己的舞台。






上周的一篇文章数据君分享了近期的故事,这一期想和大家谈谈,在应用场景下,这帮人又做了哪些事?






回顾腾讯云数据库MySQL的2020,我们服务了包括
拼多多、B站、蘑菇街、小红书、微盟、富途、云集、畅游的
众多外部大客户
,以及腾讯内部大多数的业务,
保障了不同业务在购物狂欢节、节假日、意外事件等不同场景下流量高峰期的稳定运行,






有时候业务会厂商改革,但自愿走出舒适圈的,腾讯云数据库算一个,很显然,目前来看腾讯云数据库MySQL有着不错的成绩,但为了打造一个产品力全方位更强的产品,腾讯云数据库不断投入研发,于是,
一个更加出色的企业级关系型数据库MySQL,出现了。






今天,我们将围绕着腾讯云数据库MySQL的几个企业级特性核心能力进行解读。






1










企业级定制的内核














传统的 Oracle MySQL 社区版内核以及企业版内核已不能满足 腾讯云数据库MySQL 的快速发展,有很多的业务或运维问题在官方都得不到有效解决,如电商秒杀场景的性能问题,删除大表所导致的性能抖动问题、游戏业务加减字段所导致的业务停服问题等。为了解决云上业务所面临的问题,降低用户操作复杂性,提升运维效率,我们定义并实现了云数据库内核——TXSQL。TXSQL有以下的优势:







一、领先的性能 & 极致业务场景性能优化



TXSQL 对 SQL 语句的执行流程进行了全链路的优化,在查询优化器、算子下推、主备一致性、存储引擎(并发访问控制、日志系统、锁系统、回滚段、crash recovery)等进行了一系列的优化。测试表明,在高并发场景下,腾讯云数据库MYSQL 的读写性能是官方性能的 150% 以上,大内存实例的启动时间是官方版本的 1/5 ;







在服务业务的过程中,解决了很多业务的性能问题,如电商秒杀场景的性能问题、游戏对表变更时的停服问题、高并发压力下 crash recovery 速度慢的问题、主备延迟问题等,同时,我们将20+的Patch优化也贡献给了官方 & MariaDB,并得到了官方的认可。






二、丰富的企业级特性



完善的企业级特数据库能力。如金融行业要求的数据审计、加密、数据强一致,台富云所要求的自定义密钥以及密钥管理服务、游戏行业所要求的高并发、电商行业所要求的极限性能等

多样化的存储引擎。TXSQL 为了满足业务的多样化需求,不仅满足于传统的事物处理能力,还做了以下两个存储引擎:






TxRocks是TXSQL团队基于RocksDB的事务型存储引擎,得益于RocksDB LSM Tree存储结构,既减少了InnoDB页面半满和碎片浪费,又可以使用紧凑格式存储,因此TxRocks在保持与InnoDB接近的性能的前提下,存储空间相比InnoDB可以节省一半甚至更多,非常适合对事务读写性能有要求,且数据存储量大的业务。。此功能已经微信红包上使用两年有余,相较InnoDB引擎,只使用了之前 1/5 的机器,极大的节约了成本















CSTORE是TXSQL内核团队面向OLAP场景研发的列存引擎,通过CSTORE,用户可以完成大型数据的查询与分析,可以适用于历史存档数据、日志数据、大数据、更新不频繁的OLTP数据和数据仓库和分析处理,数据处理量达到PB级别。在性能方面,通过高压缩比、快速加载、针对性的查询优化这些技术实现,向用户提供高效的服务,从而达到单节点可支持百亿行记录的秒级查询。TXSQL的列存储可以达到 10:1 的压缩比,通过减少磁盘空间的使用,实现大批量数据的秒级写入和读取。在已有MySQL查询优化的基础上,利用多种形式的稀疏索引过滤数据实现高速的数据过滤于选择。并利用多列并行处理的方式,高速完成数据的加载与处理。






MySQL之父好评,开源社区点赞的背后,这帮人做了哪些事?






1










企业级高可用和高可靠















一、企业级高可用







可用性腾讯云数据库MYSQL的生命线,当前可用性达到了99.99%以上。故障切换每月达1300+,平均切换时间33秒,50%以上的切换在20秒内完成。但随着规模的快速增长,我们发现原来单一的读写探测机制已经无法满足用户对可用性更高的要求。实例不可用不仅表现为探测不通,也可能是请求缓慢的积压、整机硬件的异常、实例快速的反复重启……这些异常,原有的探测机制并不能很好的发现。为此在故障发现方面,我们做了大量的优化。核心目标是尽可能快的发现确定性的、具备共性的故障:






•实时监听TXSQL错误日志。TXSQL内部新增了多个监控指标,例如监听IO和锁等待延迟,在实例出现请求堆积但还未崩溃前实现切换


•实时监听系统日志,例如端口频繁up/down、softlookup


•检测整机磁盘异常,例如坏块、hang盘、慢盘、只读


•实例快速反复Crash。探测无法覆盖,但实际业务影响很大


•高负载场景。高负载场景下,复制线程可能分配不到CPU,导致主备无法同步,可能造成数据丢失






通过上述措施,我们已经覆盖了已知的97.71%极端故障场景,为此我们还在进一步优化。但故障切换毕竟是已经影响了使用,为此我们结合了公司网管的相关告警策略,当机器有故障或预警时,我们提前将隐患机器隔离并触发切换。






同时在部署模式上支持实例内节点跨机架跨交换机部署;跨可用区多节点部署;跨城灾备实例;置放群组功能,不同的业务可以指定不同群组,群组之间做跨机器和交换机的部署。






MySQL之父好评,开源社区点赞的背后,这帮人做了哪些事?




二、企业级高可靠






1. 跨可用无损切换






在腾讯云数据库MYSQL完成了对等节点的架构升级后,单实例内的节点可以任意扩展、独立指定可用区部署。经典的部署方式是,1主1备同可用区,另1备跨可用区。当主机故障时,可以实现快速切换,当主可用区故障时,可以实现分钟级自动切换至跨可用区节点。因为公有云VPC网络控制面使用的数据库是腾讯云数据库MYSQL,极端情况下腾讯云数据库MYSQL跨可用区切换会出现相互依赖的场景。为了解决网络侧的跨可用区自动切换,腾讯云数据库MYSQL也配合业务一起做全链路的跨可用区容灾方案。



跨可用区实例间如何避免双写,是保证数据一致性的关键问题。为此,TXSQL内核全版本实现了work mode工作模式和租约机制。当可用区隔离时,单可用区内的机器可能是连通的,可用区间网络不通。通过同机部署的ha agent保持跟TXSQL有T1的租约,ha agent跟ZK有T2的租约,保证2T1






MySQL之父好评,开源社区点赞的背后,这帮人做了哪些事?






2. 企业级备份恢复能力






高性能备份恢复能力。备份速度700MB/s,回档速度(克隆实例,包含了增量数据同步)540MB/s。以1TB的数据为例,备份约25分钟,回档约33分钟。






MySQL之父好评,开源社区点赞的背后,这帮人做了哪些事?






同时,腾讯云数据库MySQL具备了多种企业级备份恢复能力,包括:






•在线热备,支持Backup Lock和Binlog Lock,仅在备份完成瞬间阻塞写入,备份期间对用户几乎无影响。


•无锁备份,采用Binlog幂等回放的机制,在InnoDB表有唯一键场景下,备份不加锁。


•流式备份,“zero storage”。备份数据流式上传,无需本地中转。


•压缩备份,采用quicklz压缩,压缩比3:1。


•整实例/指定部分库表备份。任意指定库表备份。


•排除部分库表备份。排除指定库表备份,例如mysql库等。


•多级资源控制,备份带宽跨AZ负载均衡,单机流控和资源强隔离。






1










企业级数据安全















数据安全重于泰山,围绕数据安全,腾讯云数据库MySQL联合数据库智能管家DBbrain孵化出了一系列数据库安全功能,例如:数据库审计、透明数据加密、敏感数据发现以及数据脱敏等,逐步形成了一套数据库安全整体解决方案。








一、数据库审计






数据库审计是腾讯云自主研发的一款专业、高效、全面、实时监控数据库安全的审计产品,能够实时记录腾讯云数据库活动,对数据库操作进行细粒度审计的合规性管理,对数据库遭受到的风险行为进行告警,针对数据库 SQL 注入、异常操作等数据库风险行为进行记录,为用户是云数据库提供完善的安全诊断和管理功能,提高数据资产安全。并且在极限压测场景下,性能损失仅在 3% 以内。


 
MySQL之父好评,开源社区点赞的背后,这帮人做了哪些事?






二、TDE数据加密






腾讯云数据库 MySQL 提供透明数据加密(Transparent Data Encryption,TDE)功能,透明加密指数据的加解密操作对用户透明,支持对数据文件进行实时 I/O 加密和解密,在数据写入磁盘前进行加密,从磁盘读入内存时进行解密。即使备份数据被泄露,在没有密钥的情况下,依然保证数据不被泄露。可满足静态数据加密的合规性要求。






MySQL之父好评,开源社区点赞的背后,这帮人做了哪些事?






三、敏感数据发现






DBbrain为腾讯云数据库MySQL专属打造的敏感数据发现功能,通过识别规则自动发现实例敏感数据,并对所发现的敏感数据实现自动化分类分级保护。






•敏感数据发现支持多达20种内置的敏感数据识别规则和自定义规则,在满足合规性的基础上,能够对数据集的所有字段进行敏感属性识别,确保隐藏在大段文本中的敏感信息能够得到妥善处理。


敏感数据发现依托内置规则或用户自定义规则,对发现的敏感数据进行分类分级,并通过图形报表与文本列表将全局各类别、各级别的敏感信息进行可视化展示。







四、数据脱敏






DBbrain为腾讯云数据库MySQL专属打造的数据脱敏功能,其内置多种高级脱敏算法,可智能化执行与管理脱敏任务,针对不同业务场景实现数据脱敏,进而达到企业核心数据保密的效果。数据脱敏在确保安全性的同时,处理过的数据依然保持原始数据的分布特征、数据格式,使统计分析、测试、研发、培训等用途不受影响。






在合规性方面,数据脱敏能够通过匿名化技术,确保脱敏后数据无法被还原。保障企业个人信息使用时严格遵守相关法律法规,满足企业客户合规性需求。


在系统性能方面,数据脱敏在任务开始时拉取的是用户最新的实时备份数据,不需要源数据库停服,更不会给数据库性能带来额外的影响和开销,在用户无感知的情况下即可动态在线实时完成脱敏任务。






MySQL之父好评,开源社区点赞的背后,这帮人做了哪些事?






1










企业级拓展性















扩展性包括了两部分,单节点读写能力扩展和多节点读扩展。TXSQL内核提供了thread-pool功能。支持10万连接,以及在减少线程运行时切换消耗和创建销毁的消耗的同时,避免高并发场景下,多线程争抢系统资源造成的性能急剧下降,从而显著提升高并发下的系统性能。







MySQL之父好评,开源社区点赞的背后,这帮人做了哪些事?








多节点读扩展,节点间根据wrr算法做负载均衡和容灾。当只读节点不可用,或者到达设置的主从延迟阈值,将在 30秒 内完成容灾剔除。为了避免全部节点被剔除,可以设置只读最少保留数,防止实例高负载引起的雪崩。当只读节点恢复可用,并且延迟低于阈值,会自动触发加回策略,重新负载均衡。






添加只读节点后,会出现两个地址,需要业务层进行读写分离。为此,腾讯云数据库MYSQL即将上线数据库代理服务,业务只需要一个读写地址,自动做读写分离和读负载均衡。






 


1










企业级智能运维















数据库智能管家DBbrain是腾讯云推出的一款为用户提供数据库性能优化、安全、管理等功能的数据库自治云服务。DBbrain 利用机器学习、大数据手段、专家经验引擎快速复制资深数据库管理员的成熟经验,将大量传统人工的数据库运维工作智能化,服务于云上和云下企业,有效保障数据库服务的安全、稳定及高效运行。








一、提升数据库稳定性






•7 * 24小时智能运维守护数据库,无需人力值守。


•可实时智能异常检测优化,增加自愈能力。


•进行健康巡检排查隐患,协助治理未发现的问题。






二、提高管理效率






•自助式智能服务,有效的缩短了运维响应的时间。


•统一化的多维度批量管理,轻松管理海量实例。






三、节省运维成本






•一键式运维管理操作和性能优化,大幅减少了运维的成本。


•故障主动定位和智能优化,大幅降低了数据库运维管理的门槛。













- End -





 更多精彩





















↓↓特惠企业级数据库MySQL点这儿~
 

推荐阅读
  • 朱晔的互联网架构实践心得S1E7:三十种架构设计模式(上)【下载本文PDF进行阅读】设计模式是前人通过大量的实践总结出来的一些经验总结和最佳实践。在经过多年的软件开发实践之后,回过头 ... [详细]
  • 从Oracle安全移植到国产达梦数据库的DBA实践与攻略
    随着我国对信息安全和自主可控技术的重视,国产数据库在党政机关、军队和大型央企等行业中得到了快速应用。本文介绍了如何降低从Oracle到国产达梦数据库的技术门槛,保障用户现有业务系统投资。具体包括分析待移植系统、确定移植对象、数据迁移、PL/SQL移植、校验移植结果以及应用系统的测试和优化等步骤。同时提供了移植攻略,包括待移植系统分析和准备移植环境的方法。通过本文的实践与攻略,DBA可以更好地完成Oracle安全移植到国产达梦数据库的工作。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 云原生应用最佳开发实践之十二原则(12factor)
    目录简介一、基准代码二、依赖三、配置四、后端配置五、构建、发布、运行六、进程七、端口绑定八、并发九、易处理十、开发与线上环境等价十一、日志十二、进程管理当 ... [详细]
  • 服务网关与流量网关
    一、为什么需要服务网关1、什么是服务网关传统的单体架构中只需要开放一个服务给客户端调用,但是微服务架构中是将一个系统拆分成多个微服务,如果没有网关& ... [详细]
  • 用LGWR WORKER的例子介绍strace分析Oracle数据库行为的方法
    可观测性能力是IT运维的强有力的支撑。日志告警、指标是两种在运维中很常用的可观测性指标。 ... [详细]
  • 提供:ZStack云计算原创2016-12-26张鑫讲师介绍张鑫ZStack总架构师、联合创始人《系统虚拟化》主要作者,曾任职Intel开源软件技术中心 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了在Oracle数据库中创建序列时如何选择cache或nocache参数。cache参数可以提高序列的存取速度,但可能会导致序列丢失;nocache参数可以避免序列丢失,但在高并发访问时可能导致性能问题。文章详细解释了两者的区别和使用场景。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
  • MySQL数据库锁机制及其应用(数据库锁的概念)
    本文介绍了MySQL数据库锁机制及其应用。数据库锁是计算机协调多个进程或线程并发访问某一资源的机制,在数据库中,数据是一种供许多用户共享的资源,如何保证数据并发访问的一致性和有效性是数据库必须解决的问题。MySQL的锁机制相对简单,不同的存储引擎支持不同的锁机制,主要包括表级锁、行级锁和页面锁。本文详细介绍了MySQL表级锁的锁模式和特点,以及行级锁和页面锁的特点和应用场景。同时还讨论了锁冲突对数据库并发访问性能的影响。 ... [详细]
  • 14亿人的大项目,腾讯云数据库拿下!
    全国人 ... [详细]
  • k8s+springboot+Eureka如何平滑上下线服务
    k8s+springboot+Eureka如何平滑上下线服务目录服务平滑上下线-k8s版本目录“上篇介绍了springboot+Euraka服务平滑上下线的方式,有部分小伙伴反馈k ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了Monkey错误分析日志定位相关的知识,希望对你有一定的参考价值。Monkey测试可以发现的问题 ... [详细]
author-avatar
雨润风华_684
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有