上周四 StoneDB 的技术老师在 KubeSphere 的直播间给大家分享了 StoneDB 的架构,查询、存储等核心特性,并介绍 StoneDB 的容器化演进路线,以及如何借助 KubeSphere 部署、使用、管理 StoneDB,一站式的解决 StoneDB 的运维管理问题。以下是完整的直播回放,错过直播的小伙伴可直接点击下方小程序观看,也可点击阅读原文观看高清版本。
Q & A
许多小伙伴观看直播的同时也提出了一些问题,我们就直播活动中的问答做了整理,以便更好的为大家解惑。
Q1:StoneDB 数据库容器化或者说部署在 K8s 上遇到的数据安全(数据丢失)问题是怎么处理的?
A:StoneDB 是基于 MySQL 分支做的,所以 StoneDB 也支持 mysqldump 备份,可以类似 MySQL 做一个定时备份脚本进行周期性数据备份,定时备份之间的增量数据可以利用 binlog server 做两个备份周期内的增量数据备份。
Q2:StoneDB 数据库容器化或者说部署在 K8s 上遇到的容器网络带来的延迟问题是怎么处理的?
A:这个问题比较宽泛,我们可以缩小到数据库集群的延迟问题。数据库在遇到业务峰值的同时,经常会发生 latency 高的问题,有两种方案解决这个问题。一是借助 Service 创建一个负载均衡器,对读写业务进行分流,降低主节点的压力。另外就是根据业务压力做自动扩容,也能降低 latency 的问题。
Q3:在 Docker 中水平伸缩只能用于无状态服务非数据库,针对数据库隔离功能,StoneDB 会如何处理呢?
A:Docker 不具备水平伸缩吧?这里应该说的是 K8s。数据库是一个有状态的应用,StoneDB 在 K8s 里面运行的环境是 pod,类似一个独立的虚拟环境,另外通过 operator 创建一个 statefulset,来对 StoneDB 进行管理和操作。
Q4:使用 Docker 后会对 StoneDB 的 IO 性能有影响吗?
A:肯定是有影响的,从我们测试过的数据看,大部分读写场景性能下降在 5% 左右,少部分场景下降在 10% 以内。
Q5:StoneDB 基于 Docker 可以做到弹性伸缩吗?
A:这里说的应该是基于 K8s。基于 K8s 肯定是可以实现弹性伸缩的,通过 operator 创建的 statefulset,可以做到水平和垂直扩缩容。
Q6:StoneDB 与 TiDB 的区别是什么?
A:TiDB 也主推自己是一款 HTAP,兼容 MySQL 协议。我们可以从以下几个方面来说说区别:
兼容性:TiDB 主要兼容 MySQL 5.7 协议,目前还做不到完全兼容,只是大部分兼容其协议和语法,StoneDB 原生兼容 MySQL 所有的协议和语法。 架构层面:TiDB 是通过 TiFlash(在 ClickHouse 的基础上开发),嫁接到 TiDB 集群里面作为 ap 节点的,架构比较重。StoneDB 是通过 MySQL 独特的插件式引擎,接入自研的 Tianmu 引擎。跟 Innodb、Myisam 等一样可插拔,很轻量。 易用性:TiDB 架构复杂,组件多,学习成本高。StoneDB 只需要会使用 MySQL,就能快速上手 StoneDB,学习成本低的同时还能无感替换、零成本数据迁移等,一体化架构对于后续的运维成本也是非常友好。 业务数据:TiDB 适合大数据量的场景,StoneDB 主打 10T 以下的数据,更多面向大部分中小数据量的业务。
扫码添加小助手
加入StoneDB开源社区用户群
讨论交流,共同进步
存算一体 VS 存算分离 ,IT发展下的技术迭代
面向场景,HTAP到底是刚需还是炒作?
StoneDB 团队成员与 MySQL 之父 Monty 会面,共话未来数据库形态
解读《Benchmarking Hybrid OLTP&OLAP Database Systems》| StoneDB学术分享会
深度干货!一篇Paper带您读懂HTAP | StoneDB学术分享会