一种面向医疗大数据处理的固态磁盘存储方法.pdf

上传人:a3 文档编号:1286927 上传时间:2018-04-12 格式:PDF 页数:9 大小:596.12KB
返回 下载 相关 举报
摘要
申请专利号:

CN201610887788.1

申请日:

2016.10.12

公开号:

CN106503427A

公开日:

2017.03.15

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):G06F 19/00申请日:20161012|||公开

IPC分类号:

G06F19/00(2011.01)I; G06F3/06

主分类号:

G06F19/00

申请人:

创业软件股份有限公司

发明人:

朱旭东; 董祖琰; 方宝林; 高春蓉; 余小益; 苏寿海

地址:

310013 浙江省杭州市西湖区文三路199号创业大厦3楼

优先权:

专利代理机构:

杭州君度专利代理事务所(特殊普通合伙) 33240

代理人:

杜军

PDF下载: PDF下载
内容摘要

本发明公开了一种面向医疗大数据处理的固态磁盘存储方法。本发明将医疗数据分块分别映射到固态磁盘的不同存储单元,每次更新某一数据块时,检查该数据块所在的存储单元其最新一次迁移后的更新次数是否超过设定的更新阈值;如果超过,则跟固态磁盘上相对更新次数较少的存储单元,进行数据对换;同时为了防止数据对换产生的抖动,本发明设定了最小时间窗口;并限制相对更新次数较少的存储单元从文本数据文件交换给媒体文件;文本数据文件在排序操作时根据存储单元的剩余更新次数进行强制更新。本发明通将被频繁访问的数据总被动态放置到具有较低擦写次数的存储单元,从而提高整个固态磁盘的寿命,并且避免了长时间的批量迁移过程。

权利要求书

1.一种面向医疗大数据处理的固态磁盘存储方法,其特征在于:将医疗数据分块分别
映射到固态磁盘的不同存储单元,每次更新某一数据块时,检查该数据块所在的存储单元
其最新一次迁移后的更新次数是否超过设定的更新阈值;如果超过,则跟固态磁盘上相对
更新次数较少的存储单元,进行数据对换;同时为了防止数据对换产生的抖动,设定了最小
时间窗口;并限制相对更新次数较少的存储单元从文本数据文件交换给媒体文件;文本数
据文件在排序操作时根据存储单元的剩余更新次数进行强制更新。
2.根据权利要求1所述的一种面向医疗大数据处理的固态磁盘存储方法,其特征在于
具体实现如下:
(1)将固态磁盘构成的存储系统均分为n个存储单元,记为0,1,2,...n-1,每个存储单
元的大小均为b;且将所有病例数据的文本数据文件table和多媒体数据文件Media也分别
均分成大小为b的数据块;同时在固态磁盘构成的存储系统中设置两个索引表:映射表Map
[]和存储单元管理表Unit[];
所述的文本数据文件table只有一个,而多媒体数据文件Media则是有多个;其中映射
表Map[],包括文件名filename、文件内块号f_index、存储单元号unit_index、最后迁移时
间move_time和迁移后的更新次数renew_count;存储单元管理表Unit[],包括存储单元号
Unit_index、所属文件filename、最后迁移时间Move_time和剩余可擦写次数Remain_
count;
(2)将数据访问描述为三元组<FN,BN,OP>,其中FN表示更新的数据所属文件filename,
BN表示更新的数据在文件内块号f_index,OP表示访问操作,且访问操作包括读、写、排序三
种;设置时间窗口大小为window_t,设置最大更新阈值th。
3.根据权利要求2所述的一种面向医疗大数据处理的固态磁盘存储方法,其特征在于
所述且访问操作的具体实现如下:
步骤1.判断数据访问的操作类型,如果访问操作OP为读操作,则直接结束本算法;
步骤2.数据访问前期操作具体如下:
2-1.获取当前时间t,初始化i=0;
2-2.如果映射表的第i项的文件名map[i].filename与访问数据三元组中的FN相等,并
且映射表的第i项的文件内块号map[i].f_index与访问数据三元组中的BN相等,直接执行
步骤2-4;
2-3.对参数i重新赋值并进行判断,即i=i+1,然后判断如果i大于等于m,则直接结束
本算法;否则返回步骤2-2;
2-4.对映射表的第i项迁移后的更新次数map[i].renew_count进行重新赋值,即:map
[i].renew_count=map[i].renew_count+1;并初始化p=0;定义当前访问的数据块所在的
存储单元号INDEX=map[i].unit_index;定义当前访问的数据块所在的最后迁移时间Time
=map[i].move_time;定义当前访问的数据块所在的迁移后的更新次数Count=map[i]
.renew_count;
2-5.如果在存储单元管理表中第p项的存储单元号unit[p].unit_index等于INDEX,则
对当前访问的数据块所在的存储单元的剩余可擦写次数remain_count进行重新赋值,unit
[p].remain_count=unit[p]..remain_count-1;否则对p重新赋值;
2-6.p=p+1,然后判断p是否小于n,如果小于n,则重新执行步骤2-5,否则直接结束本
算法;
步骤3.对数据访问操作OP进行判断,如果访问操作OP为写操作,则进入步骤4;如果访
问操作OP为排序操作,则进入步骤5;
步骤4.如果当前时间与最后迁移时间Time的差值小于window_t或Count小于th,直接
结束本算法;
步骤5.对存储单元管理表Unit[]的所有项按照remain_count进行降序排序,并初始化
j=0;
步骤6.如果unit[j].filename不等于table,跳转到步骤8;否则对j进行重新赋值,j=
j+1;
步骤7.对变量j进行判断,如果j大于等于n,直接结束本算法;否则返回步骤6;
步骤8.初始化k=0,并判断:如果map[k].unit_index等于unit[j].unit_index,则跳
转到步骤10.
步骤9.否则对k进行重新赋值;k=k+1,并判断:如果k大于等于m,直接结束本算法,否
则跳转到步骤8,对map[k].unit_index等于unit[j].unit_index重新判断;
步骤10.交换map表第i项和第k项的存储单元号,即交换map[i].unit_index和map[k]
.unit_index;并重新初始化操作如下:map[i].move_time赋值为当前时间t,map[k].move_
time赋值为当前时间t;map[i].renew_count赋值为0,map[k].renew_count赋值为0;
步骤11.交换存储单元管理表中第j项和p项的文件名,即交换unit[j].filename和
unit[p].filename;并重新初始化操作如下:unti[j].move_time赋值为当前时间t,unit
[p].move_time赋值为当前时间t;
步骤12.互相交换交换编号为map[i].unit_index和map[k].unit_index的存储单元中
的数据块。

说明书

一种面向医疗大数据处理的固态磁盘存储方法

技术领域

本发明属于数据存储技术领域,尤其涉及一种面向医疗大数据处理的固态磁盘存
储方法。

背景技术

医疗大数据对海量的历史病例数据进行分析和处理,具有特定的访问模式,这种
访问模式在不同介质构成的存储系统中有不同的表现。

首先介绍医疗大数据的访问模式。每一个病例数据由文本数据和多媒体数据两部
分组成,文本数据通常占据较小的存储空间,所有病例的的文本数据合成一个文本数据文
件存放。多媒体数据如ct影像等占据较大的存储空间,每个病例的每一个多媒体数据都独
立存放。病例数据的访问具有以下特征:

1.由于多个病例的文本数据合成一个数据文件存放,因此这个存储空间会被频繁
重复读写。

2.不同病例的多媒体数据被更新的频率不同,正常病例的多媒体数据极少被读
写,而一些重大病例的多媒体数据读写的频率相对较高。

其次介绍不同介质的特点。现在主流的存储系统介质是机械磁盘,但是固态磁盘
由于其随机访问性能优异,构成的存储系统越来越多。但是固态磁盘的缺点在于固态磁盘
上的每一个存储单元,都有一定的寿命,也就是在对这个单元擦写一定的次数(10000-
100000次不等)之后,这个单元就无法再继续正常工作。因此,在对医疗大数据进行处理的
过程中大量对文本数据的读写集中在部分的存储单元,一旦到达存储单元的寿命上限,固
态磁盘产生损坏。

固态磁盘解决这一问题的主要思路就是将擦写次数分摊到不同的存储单元上。例
如监控磁盘状态并定期整理迁移等方法。

在医疗大数据处理的环境中,由于数据量巨大,如果采用定期整理迁移的方法,需
要很长的迁移时间,以1PB容量的系统为例,如果其中10%的单元需要迁移,需要花费几个
小时到几十个小时。在这段时间内存储系统对大数据处理提供的带宽会显著降低,难以被
应用所接受。

如何平衡固态磁盘中的存储单元读写次数,且不对大数据处理不产生严重影响,
是固态磁盘介质应用到医疗大数据领域所需要解决的关键问题。

发明内容

本发明的目的是针对现有技术的不足,提供一种面向医疗大数据处理的固态磁盘
存储方法。

本发明解决其技术问题所采用的技术方案如下:

(1)将固态磁盘构成的存储系统均分为n个存储单元,记为0,1,2,...n-1,每个存
储单元的大小均为b。且将所有病例数据的文本数据文件table和多媒体数据文件Media也
分别均分成大小为b的数据块。同时在固态磁盘构成的存储系统中设置两个索引表:映射表
Map[]和存储单元管理表Unit[];

所述的文本数据文件table只有一个,而多媒体数据文件Media则是有多个;其中
映射表Map[],包括文件名filename、文件内块号f_index、存储单元号unit_index、最后迁
移时间move_time和迁移后的更新次数renew_count,具体参看表1;存储单元管理表Unit
[],包括存储单元号Unit_index、所属文件filename、最后迁移时间Move_time和剩余可擦
写次数Remain_count,具体参看表2;

表1映射表Map[],假设当前长度为m项


表2存储单元管理表Unit[],长度为n项


(2)将数据访问描述为三元组<FN,BN,OP>,其中FN表示更新的数据所属文件
filename,BN表示更新的数据在文件内块号f_index,OP表示访问操作,且访问操作包括读、
写、排序三种。设置时间窗口大小为window_t,设置最大更新阈值th;则具体的操作如下:

步骤1.判断数据访问的操作类型,如果访问操作OP为读操作,则直接结束本算法。

步骤2.数据访问前期操作具体如下:

2-1.获取当前时间t,初始化i=0;

2-2.如果映射表的第i项的文件名map[i].filename与访问数据三元组中的FN相
等,并且映射表的第i项的文件内块号map[i].f_index与访问数据三元组中的BN相等,直接
执行步骤2-4;

2-3.对参数i重新赋值并进行判断,即i=i+1,然后判断如果i大于等于m,则直接
结束本算法;否则返回步骤2-2;

2-4.对映射表的第i项迁移后的更新次数map[i].renew_count进行重新赋值,即:
map[i].renew_count=map[i].renew_count+1;并初始化p=0;定义当前访问的数据块所
在的存储单元号INDEX=map[i].unit_index;定义当前访问的数据块所在的最后迁移时间
Time=map[i].move_time;定义当前访问的数据块所在的迁移后的更新次数Count=map
[i].renew_count;

2-5.如果在存储单元管理表中第p项的存储单元号unit[p].unit_index等于
INDEX,则对当前访问的数据块所在的存储单元的剩余可擦写次数remain_count进行重新
赋值,unit[p].remain_count=unit[p]..remain_count–1;否则对p重新赋值;

2-6.p=p+1,然后判断p是否小于n,如果小于n,则重新执行步骤2-5,否则直接结
束本算法。

步骤3.对数据访问操作OP进行判断,如果访问操作OP为写操作,则进入步骤4;如
果访问操作OP为排序操作,则进入步骤5;

步骤4.如果当前时间与最后迁移时间Time的差值小于window_t或Count小于th,
直接结束本算法;

步骤5.对存储单元管理表Unit[]的所有项按照remain_count进行降序排序,并初
始化j=0。

步骤6.如果unit[j].filename不等于table,跳转到步骤8;否则对j进行重新赋
值,j=j+1;

步骤7.对变量j进行判断,如果j大于等于n,直接结束本算法;否则返回步骤6;

步骤8.初始化k=0,并判断:如果map[k].unit_index等于unit[j].unit_index,
则跳转到步骤10.

步骤9.否则对k进行重新赋值;k=k+1,并判断:如果k大于等于m,直接结束本算
法,否则跳转到步骤8,对map[k].unit_index等于unit[j].unit_index重新判断;

步骤10.交换map表第i项和第k项的存储单元号,即交换map[i].unit_index和map
[k].unit_index;并重新初始化操作如下:map[i].move_time赋值为当前时间t,map[k]
.move_time赋值为当前时间t;map[i].renew_count赋值为0,map[k].renew_count赋值为
0;

步骤11.交换存储单元管理表中第j项和p项的文件名,即交换unit[j].filename
和unit[p].filename;并重新初始化操作如下:unti[j].move_time赋值为当前时间t,unit
[p].move_time赋值为当前时间t。

步骤12.互相交换交换编号为map[i].unit_index和map[k].unit_index的存储单
元中的数据块。

本发明有益效果如下:

本发明方法针对医疗大数据处理中的数据访问模式,提出一种动态平衡存储单元
擦写次数的存储方法,使医疗大数据可以较好地在固态磁盘上存储。该方法通过对医疗数
据更新状况和固态磁盘的存储单元状态进行分析,使被频繁访问的数据总被动态放置到具
有较低擦写次数的存储单元,从而提高整个固态磁盘的寿命,并且避免了长时间的批量迁
移过程。

具体实施方式

下面结合实施例对本发明做进一步说明。

本发明的核心思想:将医疗数据分块分别映射到固态磁盘的不同存储单元,每次
更新某一数据块时,检查该数据块所在的存储单元其最新一次迁移后的更新次数是否超过
设定的更新阈值;如果超过,则跟固态磁盘上相对更新次数较少的存储单元,进行数据对
换;同时为了防止数据对换产生的抖动,本发明设定了最小时间窗口;并限制相对更新次数
较少的存储单元从文本数据文件交换给媒体文件;文本数据文件在排序操作时根据存储单
元的剩余更新次数进行强制更新。

本发明解决其技术问题所采用的技术方案如下:

(1)将固态磁盘构成的存储系统均分为n个存储单元,记为0,1,2,...n-1,每个存
储单元的大小均为b。且将所有病例数据的文本数据文件table和多媒体数据文件Media也
分别均分成大小为b的数据块。同时在固态磁盘构成的存储系统中设置两个索引表:映射表
Map[]和存储单元管理表Unit[];

所述的文本数据文件table只有一个,而多媒体数据文件Media则是有多个;其中
映射表Map[],包括文件名filename、文件内块号f_index、存储单元号unit_index、最后迁
移时间move_time和迁移后的更新次数renew_count,具体参看表1;存储单元管理表Unit
[],包括存储单元号Unit_index、所属文件filename、最后迁移时间Move_time和剩余可擦
写次数Remain_count,具体参看表2;

表1映射表Map[],假设当前长度为m项


表2存储单元管理表Unit[],长度为n项


(2)将数据访问描述为三元组<FN,BN,OP>,其中FN表示更新的数据所属文件
filename,BN表示更新的数据在文件内块号f_index,OP表示访问操作,且访问操作包括读、
写、排序三种。设置时间窗口大小为window_t,设置最大更新阈值th;则具体的操作如下:

步骤1.判断数据访问的操作类型,如果访问操作OP为读操作,则直接结束本算法。

步骤2.数据访问前期操作具体如下:

2-1.获取当前时间t,初始化i=0;

2-2.如果映射表的第i项的文件名map[i].filename与访问数据三元组中的FN相
等,并且映射表的第i项的文件内块号map[i].f_index与访问数据三元组中的BN相等,直接
执行步骤2-4;

2-3.对参数i重新赋值并进行判断,即i=i+1,然后判断如果i大于等于m,则直接
结束本算法;否则返回步骤2-2;

2-4.对映射表的第i项迁移后的更新次数map[i].renew_count进行重新赋值,即:
map[i].renew_count=map[i].renew_count+1;并初始化p=0;定义当前访问的数据块所
在的存储单元号INDEX=map[i].unit_index;定义当前访问的数据块所在的最后迁移时间
Time=map[i].move_time;定义当前访问的数据块所在的迁移后的更新次数Count=map
[i].renew_count;

2-5.如果在存储单元管理表中第p项的存储单元号unit[p].unit_index等于
INDEX,则对当前访问的数据块所在的存储单元的剩余可擦写次数remain_count进行重新
赋值,unit[p].remain_count=unit[p]..remain_count–1;否则对p重新赋值;

2-6.p=p+1,然后判断p是否小于n,如果小于n,则重新执行步骤2-5,否则直接结
束本算法。

步骤3.对数据访问操作OP进行判断,如果访问操作OP为写操作,则进入步骤4;如
果访问操作OP为排序操作,则进入步骤5;

步骤4.如果当前时间与最后迁移时间Time的差值小于window_t或Count小于th,
直接结束本算法;

步骤5.对存储单元管理表Unit[]的所有项按照remain_count进行降序排序,并初
始化j=0。

步骤6.如果unit[j].filename不等于table,跳转到步骤8;否则对j进行重新赋
值,j=j+1;

步骤7.对变量j进行判断,如果j大于等于n,直接结束本算法;否则返回步骤6;

步骤8.初始化k=0,并判断:如果map[k].unit_index等于unit[j].unit_index,
则跳转到步骤10.

步骤9.否则对k进行重新赋值;k=k+1,并判断:如果k大于等于m,直接结束本算
法,否则跳转到步骤8,对map[k].unit_index等于unit[j].unit_index重新判断;

步骤10.交换map表第i项和第k项的存储单元号,即交换map[i].unit_index和map
[k].unit_index;并重新初始化操作如下:map[i].move_time赋值为当前时间t,map[k]
.move_time赋值为当前时间t;map[i].renew_count赋值为0,map[k].renew_count赋值为
0;

步骤11.交换存储单元管理表中第j项和p项的文件名,即交换unit[j].filename
和unit[p].filename;并重新初始化操作如下:unti[j].move_time赋值为当前时间t,unit
[p].move_time赋值为当前时间t。

步骤12.互相交换交换编号为map[i].unit_index和map[k].unit_index的存储单
元中的数据块。

实施例

假设当前时间为2016年8月1日,时间窗口为7天,更新阈值等于100次,当前的数据
访问为<table,1,写>,表示对table文件的0号数据块进行写操作。数据访问完成之后,迁移
算法会被执行。迁移算法在写更新的迁移条件判断中,根据步骤41在映射表map的第二项中
查到了这个数据块,根据步骤52在存储单元管理表unit的第一项中查到相应的存储单元,
步骤50更新数据块的擦写次数,步骤56更新存储单元的剩余擦写次数。可以得到这个数据
块在2016-7-11的23:00迁移到当前所在的存储单元,迁移后被更新了317次。根据步骤58和
59可以计算得到均满足迁移的条件。于是在迁移过程中对unit进行排序,得到编号为n-1的
存储单元剩余擦写次数最多,为7655次,并且当前该存储单元中存放的是非table文件,因
此该存储单元中的数据与<table,1,写>的存储单元进行数据交换,同时更新map和unit。

一种面向医疗大数据处理的固态磁盘存储方法.pdf_第1页
第1页 / 共9页
一种面向医疗大数据处理的固态磁盘存储方法.pdf_第2页
第2页 / 共9页
一种面向医疗大数据处理的固态磁盘存储方法.pdf_第3页
第3页 / 共9页
点击查看更多>>
资源描述

《一种面向医疗大数据处理的固态磁盘存储方法.pdf》由会员分享,可在线阅读,更多相关《一种面向医疗大数据处理的固态磁盘存储方法.pdf(9页珍藏版)》请在专利查询网上搜索。

本发明公开了一种面向医疗大数据处理的固态磁盘存储方法。本发明将医疗数据分块分别映射到固态磁盘的不同存储单元,每次更新某一数据块时,检查该数据块所在的存储单元其最新一次迁移后的更新次数是否超过设定的更新阈值;如果超过,则跟固态磁盘上相对更新次数较少的存储单元,进行数据对换;同时为了防止数据对换产生的抖动,本发明设定了最小时间窗口;并限制相对更新次数较少的存储单元从文本数据文件交换给媒体文件;文本数据。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1