《网易分布式数据库平台.pptx》由会员分享,可在线阅读,更多相关《网易分布式数据库平台.pptx(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、会计学1网易分布式数据库平台网易分布式数据库平台平台简介平台简介网易分布式数据库平台(DDB)是一种面向结构化数据的通用存储解决方案,基于关系数据库集群解决结构化数据的海量存储和高效访问。设计目标:海量结构化数据存储(10TB以上)高并发、低延迟面向关系模型和OLTP方便应用开发、通用性强可动态扩展数据安全可靠方便维护性低成本第1页/共25页功能特点功能特点基于Sharding的Scale Out支持常用的RDB功能:DDL、DML、全局ID分配等事务支持:节点内、跨节点、跨DDB。多平台和多语言环境下的通用SQL访问接口。支持MySQL和Oracle混合使用。支持读写分离和读操作负载均衡支持
2、用户管理和权限控制支持在线扩容命令行和图形化管理工具。第2页/共25页系统架构系统架构第3页/共25页ShardingSharding实现实现均衡字段:用来定位记录所在DBN的表字段。均衡策略:均衡函数、桶、存储映射表。表-均衡策略:多对一第4页/共25页查询处理流程查询处理流程第5页/共25页查询处理实现原则查询处理实现原则选择合适的DBN执行子查询基于表到DBN的映射关系基于均衡字段值到DBN的映射关系排序操作尽量下推给DBN执行,可以充分利用索引多表查询尽量不拆分子查询,充分利用DBN实现Join消除子查询中的不必要条件,提高子查询的执行效率尽量采用流(游标)的方式处理中间结果第6页/共
3、25页查询处理查询处理CacheCache优化优化DBI 中的CacheMeta Data CacheDBN Connection PoolDBN PreparedStatement CacheSQL Syntax Tree Cache基于MySQL的缓存SQL Cache hint可持久化的Memory Table第7页/共25页分布式事务分布式事务遵循XA Transaction标准 两阶段提交+事务日志,保证ACID悬挂事务处理提高事务处理效率“延迟”启动分支事务并发执行分支事务尽量避免两阶段提交,一阶段提交不写日志尽量避免使用XA连接第8页/共25页读写分离读写分离支持对Master和
4、各Slave节点的读操作设置权重限制从延迟过大的Slave上读取数据通过hint指定select语句的读取位置和延迟限制只在Master上执行(默认)只在Slave上执行优先在Slave上执行根据权重选择节点执行/*LOADBALANCE(TYPE=slaveonly,delay=60)*/select 第9页/共25页管理工具管理工具Schema和配置管理DBN,table,policy,trigger,view,routine用户管理系统状态监控和报警管理SQL执行统计分析数据备份系统扩容计划任务第10页/共25页用户和权限管理用户和权限管理访问认证用户名、口令认证和IP地址检查DDB认证
5、+DBN(RDBMS)认证权限管理区分普通用户和管理员用户权限粒度控制到表的读、写和授权用户访问配额控制管理员权限细分:Schema配置、维护、监控统计、用户管理管理员操作日志第11页/共25页状态监控状态监控DBI状态监视DBN连接池状态,占用连接的线程堆栈资源使用情况:Connection/Statement/PS内部操作统计:内部资源创建销毁、Cache命中率、事务操作等DBN状态监控心跳监视,故障时切换到Standby Node。Session自动监视、统计和报警Slow Log自动监视、统计和报警复制延迟和异常自动监视报警QueryServer状态监控心跳和负载监控第12页/共25页
6、SQLSQL执行分析执行分析Explain SQLExplain SQLisqldbi explain select docid from FS_File order by id desc limit 10;+-+|PLAN|+-+|LIMIT/OFFSET|/|/|PROJECT|Project record to:docid,|/|/|MERGE-SELECT|SQL:SELECT docid,id FROM FS_File ORDER BY id DESC LIMIT 10|Dest Node:|db-17-1jdbc:mysql:/172.17.2.48:4331/filestatio
7、n|db-17-2jdbc:mysql:/172.17.2.48:4332/filestation|db-16-2jdbc:mysql:/172.17.2.47:4332/filestation|db-16-1jdbc:mysql:/172.17.2.47:4331/filestation|Order by:id DESC,with merge sort.|+-+第13页/共25页SQLSQL执行统计执行统计SQL执行统计计算SQL签名select*from T where a=?And b=#DDB SQL执行情况收集tables,dbns,clients,count,time,avg_ti
8、me,mysql_count,mysql_time,dbn_count,rowsMySQL SQL执行情况收集handler_read_first,handler_read_key,hander_read_next,handler_read_rnd,hander_read_next,explain执行情况统计支持条件过滤、排序、分组等基本统计功能第14页/共25页SQLSQL执行统计执行统计第15页/共25页系统扩容系统扩容技术挑战降低对线上服务的影响灵活地扩充资源降低操作复杂度保证执行效率实现原理第16页/共25页可选的扩容方案可选的扩容方案方案一:DBN间数据导出导入优点:迁移效率较好,实
9、现较简单,灵活性好缺点:停服时间长,容易导致数据不一致,删除数据的负面影响方案二:基于事务的批量数据迁移优点:不用停服,应用透明,灵活性好缺点:实现复杂,迁移效率低,对线上访问有一定影响。方案三:基于数据复制的扩容优点:对应用透明,不需停服,效率高,对线上访问基本无影响。缺点:操作较为复杂,只能实现成倍扩容,灵活性较差。第17页/共25页基于复制的DDB扩容基于数据复制的扩容基于数据复制的扩容第18页/共25页执行无法解析的复杂语句?执行无法解析的复杂语句?目前不支持的语句类型:Union,嵌套查询,无关联条件的多表查询等某些情况下可以直接发送到DBN执行只涉及单个DBN的单表查询 selec
10、t*from T1 where a=1 order by b;涉及多个DBN,但无排序和分组的单表查询 select*from T1 where a1;多表查询在保证有均衡字段等值连接条件的情况下也试用上述原则 select T1.c,T2.d from T1,T2 where T1.a=T2.a and T1.a=1 order by T2.b;select T1.c,T2.d from T1,T2 where T1.a=T2.a and T1.a1.;第19页/共25页执行无法解析的复杂语句?执行无法解析的复杂语句?不做解析的情况下如何执行语句?人工设计执行计划和保证逻辑正确性通过hint
11、告知执行计划给执行器执行器根据hint中提供的表名和均衡字段值分发语句到合适的DBN执行器根据执行计划处理各DBN返回的结果(归并/排序分组/Limit Offset)示例:/*FORWARDBY(TABLENAME=T1,T2;BFVALUE=1,2)*/select*from T1,T2 where T1.id=T2.id and T1.id in(1,2)and T1.score 90;第20页/共25页全局全局IDID分配分配问题:依赖DBN分配的ID会产生冲突挑战:依赖于中心节点分配ID容易造成单点故障和性能瓶颈方案一:中心节点批量分配ID优点:实现简单,执行效率高,可指定起始值。缺
12、点:分配的ID非全局递增,依然存在单点故障。方案二:基于时间戳的分布式ID分配基于DBI的本地时间戳+DBI_ID+计数器,DBI与管理服务器保持时间同步。优点:ID全局递增,ID中包含了时间信息,分配效率高,无单点故障。缺点:无法指定从较小的值开始分配,ID不连续。第21页/共25页小结小结基于Sharding实现海量数据存储和高并发访问优化查询处理提高执行效率和并发能力支持分布式事务和复杂查询提高平台通用性监控、分析和统计工具帮助开发和DBA发现和解决问题功能丰富的管理工具简化集群系统的运维第22页/共25页面临的问题和挑战面临的问题和挑战DBN连接资源限制历史数据处理K-V+RDB?云存储扩展的灵活性和自动化访问隔离第23页/共25页感谢您的关注!Q&A第24页/共25页