好久没有沉淀文章了,感谢ITPUB 论坛赠送门票,4.15-4.18 去北京参加了DTCC 大会,没有能够全部参加所有的场次,选择了其中自己感兴趣的场次,主要是偏运维 和MySQL ,Oracle,云计算数据库相关的,说一下自己的一些感想和思考,有所不足 ,还请各位指正 。
先说总体感想
1 几个互联网公司涉及到水平拆分处理的时候 几乎全部采用了基于mysql proxy 开发 、类似于cobar 的中间件,同时也决定了 运维的自动化处理 比如扩容时的添加机器的方式 ,但是对于缩容 估计会很费力,数据要重构。
2 DBA 自主研发能力 ,比如赶集网 ,京东,携程 在MySQL 内核和 系统工具都已经自研来满足他们的需求。
3 业务场景驱动技术,江疑讲述AliSQL新特性之后的提问和携程讲述MySQL并发复制的提问状况明显不一样,大家对携程的并行复制特别感兴趣,但是对于AliSQL 的thread pool 或者热点补丁,并发控制机制,sql限流 不太感冒,大概是他们没有阿里的业务压力,没有这些特性的需求。
赶集网
在没有专职开发的情况下,3个dba开发出一套变更自助发布系统,虽然功能远没有idb强大,缺少可持续的元数据管理 ,设计限制严格,只有ddl ,dml的支持,但是系统可以减轻dba的重复流程。
其团队对慢日志的设计思路 值得思考,我们是通过myawr获取机器上的慢日志,赶集网则是通过 pt-query-digst 工具+ kafka 工具构建实时的慢日志分析系统,通过页面展示给开发看,还可以衍生出其他的服务 ,比如开发者订阅慢查询等等。
京东 MariaDB
张金鹏主要介绍了MariaDB的特性,除了虚拟列等特性之外,其他的功能我们都有涉及,这里不多做赘述。
会后和京东的dba 做了沟通,了解到他们公司有三种版本的MySQL ,官方的,percona ,MariaDB ,版本有点多。目前他们做的基于docker技术的 京东云 (私有云,公有云 类似聚石塔) ,已经开发完毕,进入测试阶段,并准备为内部提供使用。在资源弹性管理上 和我们的想法类似,但是从发展的历程上看,我们的机器规模在他们 现在的量级别上 还没有做到资源的管控上。
中间件---jproxy
类似于cobar ,和腾讯的也类似,集中式的中间件架构。不支持动态调整读写比例,遇到负载均衡需求的时候,需要搭建新的proxy路由,并重启应用,对业务有一定的影响。
HA机制
基于MHA 的架构在机房部署agent 来管理各个节点,同时基于jproxy 做元数据库管理。
变更操作
对于分布式的数据库ddl ,dml变更 通过脚本来做,没有类似于idb的统一工具来处理,相对较为人肉。
运营商去O浅析
去IOE 这件事情,很多人都有不同的解读,部分认同王晓征的观点,他们去O 的动力:政策驱动 ,成本驱动,这点和我们的不一样。 整体上运营商没有自建IT 研发队伍,使用外包模式也注定在技术掌控力上存在不足,去O 的人力 技术成本增加。
青云的rds 架构
演讲者时间超时,有一部分没有详细讲述,听下来有如下认知
1 基于user的分配 ,从介绍的角度是基于虚拟机分配实例的,客户具有数据库的所有的权限,这点 比我们的rds要适用些。
2 备份分为 数据库级别的备份和虚拟机级别的备份,和rds 一样能够恢复到任意时间点。
3 从演讲者提供的ppt上来看,ha机制是基于vip 的,不能做跨机房的容灾切换 。
4 青云的rds是基于原生的MySQL ,不像阿里云的RDS,有基于用户需求和针对bug做改进,相比此点 我们的技术更胜一筹。
携程
通过更改MySQL 的千行代码来使用并行复制解决zabbix 数据库写入延迟,修改slow log的记录方式,增加锁等待解决他们自己对slow log的需求。
58 同城
沈剑从 数据库的可用性、读性能、一致性、可扩展性介绍了58同城的数据库架构。通过设计冗余来达到可用性。对于他们的读性能 的处理方式还是有些意外的,采用主库不建立索引 ,备库创建索引的方式 ,主备发生切换之后,新的备库索引不全会怎样?
关于可扩展性处理,采用1主2备,需要拓展的时候,将备库提升独立一套主库,可以方便的升级到2N。升级之后,需要对数据库中的表进行删除。
沈剑花了很长时间讲述 分页查询在他们的中间件条件下的优化 可以借鉴其思路,不过对于ppt的分页最后一页 我没有听的太清楚,中间件的功能限制导致dba和开发花费了大量精力去做分页查询,有点意外 。 从目前的优化经历,个人感觉 延迟关联能够解决绝大多数的场景需求。
总结
后 IOE 时代到来了 ,数据库大会不再Oracle 风光无限,更多的偏向于MySQL /NoSQL ,PG ,大数据处理等,阿里的去IOE 还是引领了 中国数据库变革 。这也是 瑞哥(HelloDBA )一直倡导的理念。从一线DBA的角度来看,每个公司运维技术的轨迹都是从人肉,工具脚本,平台自主化运维 ,从而给DBA,一线运维者增加幸福感。
每个公司的场景和规模不同,导致对技术的需求和认知的不同 ,阿里的双十一的场景驱动的秒杀 ,AliSQL 热点补丁,并行复制,并发控制,sql级别的限流措施,希望有一天这些功能能够适用到其他互联网公司。