一种磁盘数据读写方法和系统的制作方法

文档序号:8942764阅读:165来源:国知局
一种磁盘数据读写方法和系统的制作方法
【技术领域】
[0001]本发明涉及计算机存存储技术领域,特别是涉及一种磁盘数据读写方法和系统。
【背景技术】
[0002]随着互联网时代的到来,全世界各行各业每天都产生了大量的数据,包括个人的数据也产生了爆炸性的增长,为了收集管理这些数据,一些大的互联网企业或者其他产生大量数据的公司都建立了公共的或者私有的数据中心,传统的存储模式已经不能满足数据爆炸性的增长,并且每个企业建立一个数据中心将产生极大的资源浪费,云存储技术在这个背景下应运而生。
[0003]云存储是在云计算概念上延伸和发展出来的一个新的概念,是一种新兴的网络存储技术,是指通过集群应用、网络技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。目前比较主流的存储供应商都在该领域投入了巨大的人力物力。想尽各种方法使手中的硬件资源发挥最大的性能。
[0004]但是,由于磁盘1PS(每秒读写操作的次数)物理指标的限制,每块磁盘的每秒允许的最大输入输出1次数为100次左右,如此,无法发挥出硬件的顺序且潜力,将大部分时间浪费到磁盘寻道上,导致磁盘的1吞吐量不高,客户端的吞吐量体验差的问题。

【发明内容】

[0005]有鉴于此,本发明实施例提供一种磁盘数据读写方法和系统,以解决现有技术中由于磁盘1PS物理指标的限制,每块磁盘的每秒允许的最大输入输出1次数为100次左右,如此,无法发挥出硬件的顺序且潜力,将大部分时间浪费到磁盘寻道上,导致磁盘的1吞吐量不高,客户端的吞吐量体验差的问题。
[0006]为实现上述目的,本发明实施例提供如下技术方案:
[0007]一种磁盘数据读写方法,包括:
[0008]接收读写请求,根据所述读写请求确定需要读写的磁盘数据,对所述磁盘数据内关键字根据预定哈希算法进行计算,得到哈希值;
[0009]根据所述哈希值在跳表中寻找所述磁盘数据在缓存中的存储节点;
[0010]若所述读写请求为读请求,则在所述缓存中的所述存储节点读取所述磁盘数据;
[0011]若所述读写请求为写请求,则将所述磁盘数据存储在所述缓存的所述存储节点内,当所述缓存内未写入磁盘的缓存数据的大小大于预定阈值时,将所述缓存内所有未写入磁盘的缓存数据写入磁盘中。
[0012]其中,所述跳表的空间复杂度为O (η),高度为O (log η),增删插的复杂度为O (logη),其中,η为被处理数据量。
[0013]其中,若所述读写请求为写请求,所述根据所述哈希值在跳表中寻找所述磁盘数据在缓存中的存储节点后还包括:
[0014]判断所述存储节点是否已经存在缓存数据;
[0015]若是,则将所述磁盘数据添加至处理队列中;
[0016]依次将所述处理队列中的磁盘数据存储在所述缓存的所述存储节点内。
[0017]其中,所述依次将所述处理队列中的磁盘数据存储在所述缓存的所述存储节点内前还包括:
[0018]向客户端发送存储请求;
[0019]判断是否接收到所述客户端返回的确认写入信息;
[0020]若接收到,则依次将所述处理队列中的磁盘数据存储在所述缓存的所述存储节点内。
[0021]其中,若所述读写请求为写请求,所述根据所述哈希值在跳表中寻找所述磁盘数据在缓存中的存储节点后还包括:
[0022]确定所述磁盘数据的安全等级;
[0023]若所述磁盘数据的安全等级为高,则将所述磁盘数据直接写入所述磁盘中;
[0024]若所述磁盘数据的安全等级不为高,则将所述磁盘数据存储在所述缓存的所述存储节点内。
[0025]其中,所述磁盘数据读写方法还包括:
[0026]每隔预定时间间隔判断所述缓存的大小是否大于预定阈值;
[0027]若大于,则对所述缓存进行扫描,将所述缓存中超过预定时间未使用的存储节点内的缓存数据进行清除。
[0028]其中,所述磁盘数据读写方法还包括:
[0029]对所述磁盘数据的大小、所述缓存中对象的读写次数、平均读写频率和寻找所述存储节点所用的时间进行统计。
[0030]一种磁盘数据读写系统,包括:计算模块、查询模块、读取模块和写入模块;其中,
[0031]所述计算模块,用于接收读写请求,根据所述读写请求确定需要读写的磁盘数据,对所述磁盘数据内关键字根据预定哈希算法进行计算,得到哈希值;
[0032]所述查询模块,用于根据所述哈希值在跳表中寻找所述磁盘数据在缓存中的存储节点;
[0033]所述读取模块,用于当接收的读写请求为读请求时,在所述缓存中的所述存储节点读取所述磁盘数据;
[0034]所述写入模块,用于当接收的读写请求为写请求时,将所述磁盘数据存储在所述缓存的所述存储节点内,当所述缓存内未写入磁盘的缓存数据的大小大于预定阈值时,将所述缓存内所有未写入磁盘的缓存数据写入磁盘中。
[0035]其中,所述磁盘数据读写系统还包括:检测模块,用于每隔预定时间间隔判断所述缓存的大小是否大于预定阈值;若大于,则对所述缓存进行扫描,将所述缓存中超过预定时间未使用的存储节点内的缓存数据进行清除。
[0036]其中,所述磁盘数据读写系统还包括:统计模块,用于对所述磁盘数据的大小、所述缓存中对象的读写次数、平均读写频率和寻找所述存储节点所用的时间进行统计。
[0037]基于上述技术方案,本发明实施例提供的磁盘数据读写方法和系统,接收读写请求,根据该读写请求确定需要读写的磁盘数据后,对该磁盘数据内关键字根据预定哈希算法进行计算,得到哈希值,再根据得到的哈希值在跳表中寻找该磁盘数据在缓存中的存储节点,若接收的读写请求为读请求,则在该存储节点中读取需要的磁盘数据,若接收的读写请求为写请求,则将该磁盘数据存储在该缓存的该存储节点内,当该缓存内未写入磁盘的缓存数据的大小大于预定阈值时,将该缓存内所有未写入磁盘的缓存数据一起写入磁盘中。当需要对磁盘数据进行写入时,先将需要写入磁盘的数据存储在缓存中,当缓存中需要写入磁盘的缓存数据累计到一定大小时,在将缓存中累计的所有需要写入磁盘的缓存数据一次全部写入磁盘中,有效地减少了磁盘的写入次数;当需要对磁盘数据进行读取时,则在缓存中寻找需要到磁盘数据,当在缓存中无法找到需要的磁盘数据时,再在磁盘中读取需要的磁盘数据,有效地减少了磁盘的读取次数,有效地改善了磁盘的1吞吐量不高的问题,同时,对客户端而言,当需写入磁盘数据时,将该磁盘数据发送给缓存即可相当于完成磁盘数据写入,当需要读取磁盘数据时,只需要从缓存中读取该磁盘数据,也有效地改善了客户端的吞吐量体验差的问题。
【附图说明】
[0038]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0039]图1为本发明实施例提供的磁盘数据读写方法的流程图;
[0040]图2为本发明实施例提供的磁盘数据读写方法中接收写请求时,将磁盘数据写入缓存的方法流程图;
[0041]图3为本发明实施例提供的磁盘数据读写方法中接收写请求时,将磁盘数据写入缓存的方法的另一流程图;
[0042]图4为本发明实施例提供的磁盘数据读写方法中接收写请求时,将磁盘数据写入缓存的方法的再一流程图;
[0043]图5为本发明实施例提供的磁盘数据读写方法中检测缓存的方法流程图;
[0044]图6为本发明实施例提供的磁盘数据读写系统的系统框图;
[0045]图7为本发明实施例提供的磁盘数据读写系统的另一系统框图;
[0046]图8为
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1