已到期

扩展MyCat中间件支流式查询

¥3000-5000.00
招标
任务编号:477 所属分类:二次开发 截止时间: 0000 0 人竞标
发布任务
2020.06.15
翼速投标
2020.06.15
雇主选标
未进行
托管赏金
未进行
翼速工作
未进行
验收付款
未进行
已完成
未进行
已到期
任务需求

云计算去IOE(ibm,orale ,emc)浪潮中目前多采用sharding proxy数据库sharding中间件代理架构,实现对常见开源数据库如MySQL的横向扩展,现有开源组件主要有MyCat,这种share nothing架构相对简单,主要针对写扩展,即OLTP场景,但同时也需要兼顾少量统计查询类,如select x from tb大数据量查询,如百万,千万级别,现有MyCat对此查询是一边读取后端MySQL数据到其内存缓存,一边缓存被客户端读取,如果某些业务场景处理慢读取记录速度较慢,数据会在代理层中间件内存积压,对代理中间件的内存大小要求较高,也容易导致代理中间件内存溢出,即缺乏流式控制机制。

实用价值:如果能实现流式控制查询,即客户端取走一定结果后,代理层中间再拉取后端数据库的数据到自身内存,确保代理中间件的内存缓存不过大,可有效降低对中间件内存大小要求。

整体要求:对开源MyCat扩展(修改)使其支持流式查询,客户端查询的数据量内存超过中间件堆内内存时,不会出现内存溢出,服务不可用的故障。

基于java 语言,推荐1.8jdk小版本不限定, 提供基于MyCat哪个版本扩展信息,确认基于的版本不支持前面描述的流式查询

1.客户端jdbc模拟查询测试程序(见附件JdbcStreammaven项目),主要消耗CPU,内存64M以上

2.改造后的中间件MyCat进程实例: 启动64M内存 (不限定使用堆内还是堆外内存,限定较小为在较低配置下个人电脑下可开发,加快效果显现,考察流式查询,实际生产内存远大于此)

3.MySQL实例1个 (mysql5.7以上小版本不限制  innodb_buffer_pool_size 设置为128M内存(可取默认值),创建4schema作为4个分片),磁盘空间预留 5G(保证能存放测试表sbtest1 50w条记录数据)

附件里有客户端测试代码, 要测试数据请联系我


成果要求:需要Mycat修改的源码,设计思路文档及测试文档




MyCat中文官网:http://www.mycat.org.cn/

测试数据:
 表结构采用业界标准sysbench性能测试里表结构

 CREATE TABLE `sbtest1` (

  `id` int(10) unsigned NOT NULL,

  `k` int(10) unsigned NOT NULL DEFAULT '0',

  `c` char(120) NOT NULL DEFAULT '',

  `pad` char(60) NOT NULL DEFAULT '',

  KEY `xid` (`id`),

  KEY `k_1` (`k`)

)

建的库,表都是UTF-8编码

id分片Hash4取模,分布到4个分片

loaddata 导入附件的50w.sql文件,对mycatdble执行(文件下载见赛题下方)

load data infile 'E:(w.sql' into table sbtest1 fields terminated by '|' lines terminated by ' '(id,k,c,pad);

导入后检查各分片数据分布,mycat为例

/*!mycat: sql=select * from sbtest1*/

 select count(1) from sbtest1;




任务附件
扩展MyCat中间件支流式查询 下载
联系方式
联系方式:仅商家可见,点击成为平台商家
所有报价(0)
浏览人数
1396
竞标人数
0
此任务正在接受投稿中
任务分类
相关任务
最新任务
拼多多点击下载抽...
¥2.00
悬赏佣金 已托管
各大拉新项目一手...
¥2.00
悬赏佣金 已托管
新用户注册快手账...
¥5.00
悬赏佣金 已托管

关注微信公众号

翼速应用平台

随时随地发布项目需求
客服QQ
8277031/9125186
客服电话
400-8125-887
官方邮箱
admin#ysext.com