基于数据库中间件Mycat1.6.7.5的流式查询的设计与实现.pdf

基于数据库中间件Mycat1.6.7.5的流式查询的设计与实现.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
目 录 第一章 需求分析 1 1.1 项目开发的背景 1 1.2 整体要求: 1 1.3 项目开发的目的 1 1.4 需求分析小结 1 第二章 系统设计 2 2.1 NIOReactor.RW 类的解读 2 2.2 读处理asynRead 的解读 3 2.3 写处理doNextWriteCheck 的解读 5 2.4 系统设计解决方案的定义 5 2.5 系统设计小结 6 第三章 系统实现 7 3.1 git hub 地址 7 3.2 读处理改动 7 3.3 读多节点后续处理改动 9 3.4 读多单点后续处理 11 3.5 写处理改动 13 3.6 流式配置处理 14 3.7 系统实现小结 16 第四章 系统测试 17 4.1 多节点不支持流式查询的测试 17 4.2 多节点支持流式查询测试 18 4.3 单节点不支持流式查询测试 19 4.4 单节点支持流式查询测试 20 4.5 从 streaming.xml 中动态关闭流式查询(多节点) 21 4.6 从 streaming.xml 中动态开启流式查询(多节点) 22 4.7 测试总结 23 第五章 总结 24 参考文献 25 -i- 致谢 26 -ii- 第一章 需求分析 本章节主要从项目开发的背景、实用价值、整体要求、项目开发的目的几个 部分来简述系统的需求分析。 1.1 项目开发的背景 云计算去 IOE(ibm,orale ,emc)浪潮中目前多采用 sharding proxy 数据库 s harding 中间件代理架构,实现对常见开源数据库如MySQL 的横向扩展,现有开 源组件主要有 MyCat ,dble,这种 share nothing 架构相对简单,主要针对写扩 展,即OLTP 场景,但同时也需要兼顾少量统计查询类,如 select x from tb 大 数据量查询。如果某些业务场景处理慢读取记录速度较慢,数据会在代理层中间 件内存积压,容易导致代理中间件内存溢出,即缺乏流式控制机制。 1.2 整体要求: 对开源MyCat 扩展支持流式查询,客户端查询的数据量内存超过中间件堆内 内存时,不会出现内存溢出,服务不可用的故障。这里根据选定的Mycat 版本进 行改良,且后端数据库只考虑Mysql 。 1.3 项目开发的目的 以业界标准sysbench 的测试表为表结构,逻辑表50w, 按 id 字段水平分片 到4 个 schema。自行编写java 客户端程序,通过 jdbc 连接代理层中间件,启用 mysql jdbc 驱动的流式查询, 执行 select xx from tb 后,阻塞(模拟客户端 消费慢),此时查看通过 jdk 自带JConsole 工具观察代理层中间件,对中间件内 存不超过启动内存,内存不会持续增加,即支持流式查询。 1.4 需求分析小结 本章主要就项目的开发背景、整体要求、项目的开发目的几个方面简单的分 析了项目的需求。 - 1- 第二章 系统设计 本章主要就Mycat 的Mysql 部分的NIO 网络体系进行简单的解读。下面主要 从NIOReactor.RW 类、AbstractConnection 类讲解Mycat 的部分实现思路,最后 总结出系统实现的基本思路。AbstractConnection 类的主要方法是读方法asynR ead 和写方法doNextWriteCheck。 2.1 NIOReactor.RW 类的解读 Mycat 网络体系NIO 部分的读写,都是通过: 包下的NIOReact or 的子类RW 类处理的。RW 类实现了Runnable 接口,在run 方法中,不断地循环 准备就绪地事件,进行对应地

文档评论(0)

店小二 + 关注
实名认证
内容提供者

包含各种材料

1亿VIP精品文档

相关文档