排行
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
中国数据库
向量数据库
时序数据库
实时数据库
搜索引擎
空间数据库
图数据库
数据仓库
大调查
2021年报告
2022年报告
年度数据库
2020年openGauss
2021年TiDB
2022年PolarDB
2023年OceanBase
首页
资讯
活动
大会
学习
课程中心
推荐优质内容、热门课程
学习路径
预设学习计划、达成学习目标
知识图谱
综合了解技术体系知识点
课程库
快速筛选、搜索相关课程
视频学习
专业视频分享技术知识
电子文档
快速搜索阅览技术文档
文档
问答
服务
智能助手小墨
关于数据库相关的问题,您都可以问我
数据库巡检平台
脚本采集百余项,在线智能分析总结
SQLRUN
在线数据库即时SQL运行平台
数据库实训平台
实操环境、开箱即用、一键连接
数据库管理服务
汇聚顶级数据库专家,具备多数据库运维能力
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
我的订单
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
资讯
活动
大会
课程
文档
排行
问答
我的订单
首页
专家团队
智能助手
在线工具
SQLRUN
在线数据库即时SQL运行平台
数据库在线实训平台
实操环境、开箱即用、一键连接
AWR分析
上传AWR报告,查看分析结果
SQL格式化
快速格式化绝大多数SQL语句
SQL审核
审核编写规范,提升执行效率
PLSQL解密
解密超4000字符的PL/SQL语句
OraC函数
查询Oracle C 函数的详细描述
智能助手小墨
关于数据库相关的问题,您都可以问我
精选案例
新闻资讯
云市场
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
专家团队
智能助手
精选案例
新闻资讯
云市场
微信扫码
复制链接
新浪微博
分享数说
采集到收藏夹
分享到数说
首页
/
简单聊聊TDSQL的新敏态存储引擎
简单聊聊TDSQL的新敏态存储引擎
白鳝的洞穴
2022-07-08
2766
昨天有人希望我讲讲TDSQL,恐怕要让这位朋友失望了,8、9年前我和TDSQL研发团队还经常在一起交流数据库方面的技术,不过这些年大家都在各自忙活自己的事情,我也仅仅在周末回深圳。因此大家在一起交流的就比较少了一些。虽然如此,我对TDSQL的感情还是挺深的,现在偶尔回想起来,还在为TDSQL这些年发展的迅速感到有些吃惊。在我的印象里,TDSQL目前的版本是从2013年起步的,虽然在网上看到的很多资料上说其发布时间是2012年。
如果问我使用TDSQL要注意一些什么问题,这个我还真的没有太大的发言权,因为我的客户中虽然有一些TDSQL的用户,不过系统上线时间较短,系统规模也不大,我们还没有实际参与太多的运维工作。
作为一个DBA,TDSQL的架构来是以SQL PROXY+SHARDING数据库实例为主体架构的数据库产品。因此在应用开发的时候,要十分注意SHARDING KEY的设计,以及开发时尽可能围绕SHARDING KEY编写SQL,否则就会出现我昨天说的读放大的问题。另外TDSQL有两个版本,MYSQL版和PG版,如果你的应用存在很多大表的多表关联,那么可能选择PG版本更适合一些。
另外因为TDSQL是在主副本上读写,备副本可以作为只读使用,因此对于一些可以通过只读副本读取的操作,尽可能去访问读副本,如果你的应用是新开发的,在TDSQL开发的时候,直接写HINT来区分这种只读操作,对于今后系统的稳定运行可能是更好的选择。PROXY的自动选择读副本功能总是存在一定的错误可能的。
至于在运维方面,应该围绕TDSQL的赤兔和扁鹊展开。目前国产数据库最大的问题是运维工具缺乏,因此充分用好原厂工具对于DBA来说十分关键。分布式数据库来的SQL语句分布式执行计划十分关键,如果出现了开销较大的SQL,可能会引发整个数据库集群的问题,因此利用赤兔去发现TOP SQL和优化SQL依然是运维TDSQL中最有效的优化手段。另外无论是PG版还是MYSQL版,TDSQL云数据库中的存储引擎还是独立的MYSQL或者PG数据库,你在MYSQL和PG数据库上的运维经验依然能够发挥一定的作用。
除了上面的建议,从此类架构的数据库的运维角度,我还可以提出几点此类分布式数据库的通用运维经验:
l
要特别关注网络,随时掌握各个节点之间的网络延时和丢包情况,如果出现较大的变化,则一定要彻查;
l
关注时钟同步,确保各节点间的时间是一致的;
l
关注各个DN所在服务器的负载,包括CPU/IO等情况,观察其是否均衡,如果出现较长时间的不均衡现象,则需要尽快排查原因,因为这种不均衡往往说明某些SQL的分布式执行计划出现了问题,或者服务器的分布式任务存在一些问题;
l
随时关注主从复制延时,TDSQL的各个数据副本之间是通过半同步或者同步复制等方式实现数据同步的(我记得早期的TDSQL是这样的,现在不知道有没有变化);
l
别忘了关注ZOOKEEPER的健康状态,在TDSQL中,ZK承担了相当重要的角色。
如果你目前使用的是TDSQL V2的版本,那么很可能你需要关注TDSQL技术的发展了。TDSQL在去年推出了新的存储引擎TDStore,用以替代以前的MYSQL存储引擎。以我的经验来看, TDStore应该代表着TDSQL新的发展方向。
TDStore也采用了与国内比较著名的分布式数据库TIDB和OceanBase的LSM-TREE存储结构,放弃了TDSQL以前使用的代理模式SHARDING数据库的架构。如果不仔细看,上面那张图可能还会被误以为是TIDB的架构图呢。稍微分析了一下TDStore的一些基本特性,我也看到了一些致敬TIDB/OB这两个老前辈的地方。比如分布式存储层是按照Range分区的,而没有采用全局一致性HASH,另外微块压缩也是前人已经趟过的路。
TDStore引擎是使用Multi-Raft作为分布式选举协议的。
Region 是 TDStore 存储和管理数据的最小单位,以及 TDStore 节点之间进行数据复制同步的单位,一个 Region 代表一段左闭右开的数据区间,每个 Region 包含一主 N 备的多个副本,不同副本分散在不同的 TDStore 节点上。客户端对某一行数据的访问,在经过 SQLEngine 编码后,会将请求发送到对应的 TDStore 上对应的 Region 上。
作为一个后发者,T
DStore可以十分快捷地吸纳其前辈的经验并应用到自己身上,因此TDStore在近些年的发展可能会比较快。我想TDStore在TDSQL
中完全替代Mysql存储引擎的时间也不久了。不过到时候,D
BA
可能又要去学一个几乎全新的数据库了。
架构
数据库
存储引擎
tdsql
文章转载自
白鳝的洞穴
,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
领墨值
有奖问卷
意见反馈
客服小墨