《王超_京东云数据库技术分享》.pdf
文本预览下载声明
京东云数据库技术分享
yfwangchao@
@superman养乐多
王超
概述
• JCluster技术分享
• 京东MariaDB服务介绍
• FAQ
JCluster原理
• JCluster = 云数据库+ 数据库代理层
JCluster架构设计-JDS
JCluster架构设计-JProxy
• 分库分表
• 无缝升级
• SQL过滤
• 在线数据迁移
• 简单事务支持
JCluster备份和恢复技术
• 特点
– 近实时备份
– 对原数据库几乎无影响
– 可恢复到7天内任意时间点
• 技术
– 基于LVM快照技术
– Binlog行模式下操作逆等性
JCluster备份和恢复技术(1)
• LVM
JCluster备份和恢复技术(2 )
• LVM-snapshot技术
JCluster备份和恢复技术 (3 )
• Binlog Replay技术
JProxy实践
• 基于阿里巴巴Cobar
– 性能调优
– Bug修复
– New feature
JProxy实践(1)
• 当sql语句如insert into tables values(...),()...
这样的语句若占有600左右KB,会导致
proxy读取这个sql数据包会很慢
• 解决方案
– 将前端socket recivebuffer从默认值4K调整至
128K
JProxy实践(2 )
• 之前后端实例链接池是以库为单位,当后
端实例上有很多库的时候,连接数撑爆
• 解决方案
– 现在改为以实例为单位
JProxy实践(3 )
• jproxy execute线程数开得过大,导致mysql
write超时,mysql关闭后端链接,导致
jproxy read到EOF异常
• 解决方案:
– 将mysql write超时设置调高,并将jproxy
execute线程数改小。
JProxy实践(4 )
• jproxy 在执行update table1 set name = 2
where id = 3 limit 1这中带limit 1的语句时,
jproxy 会将其翻译成
jproxy 在执行update table1 set name = 2
where id = 3 limit 0 ,1 造成这个语句无法执
行。
• 解决方案
– 在sql parse语句中找出limit拼接函数将其进行修
改
JProxy实践(5 )
• 路由改进
– show router
– show allrouter
– show @@datasource
– 支持复合主键
京东MariaDB服务
• 国内首家支持MariaDB服务
MariaDB云服务申请(1)
MariaDB云服务申请 (2 )
MariaDB云服务申请 (3 )
MariaDB云服务申请 (4 )
MariaDB云服务申请 (5 )
MariaDB 云服务申请 (6 )
MariaDB云服务申请 (7 )
MariaDB云服务申请 (8 )
• 谢谢大家
显示全部