一种提高数据读写性能的方法与流程

文档序号:13072376阅读:845来源:国知局

本发明属于存储设备技术领域,特别是涉及一种提高数据读写性能的方法。



背景技术:

在普通的存储产品中,磁盘io是影响读写速度的瓶颈,一般而言,数据存储在磁盘上,读写速度受到磁盘io接口的限制,无法进行提升,所以为了提高读写性能,采用了增加内存对数据进行缓存的方法。

虽然增加内存缓存用户写入文件的数据或者预读取用户即将要读取的文件数据,是一种实现简单,但是,服务器内存插槽有限,而且内存价格较高。容量有限,随着缓存的数据量增多,就需要释放掉暂时无用的数据,一旦被释放的数据再次使用,就需要重新通过磁盘io读取,读取速度还是会降低。



技术实现要素:

为解决上述问题,本发明提供了一种提高数据读写性能的方法,能够在低成本的前提下提升数据读写性能,而且节省内存空间。

本发明提供的一种提高数据读写性能的方法,包括:

在内存和磁盘之间设置用于缓存数据的存储介质;

将预读取的数据缓存到所述内存中;

当所述内存达到预设占用率时,将所述内存中的预读取的数据转移到所述存储介质中,利用所述内存中记录所述数据的存储位置和路径;

判断用户需要读取的数据是否存在于所述存储介质或所述内存中,当结果为是时,从所述存储介质或所述内存读取数据。

优选的,在上述提高数据读写性能的方法中,还包括:

当检测到用户写入数据时,将写入的数据缓存到所述内存中;

将所述内存中的写入的数据转移到所述存储介质中。

优选的,在上述提高数据读写性能的方法中,在所述将所述内存中的写入的数据转移到所述存储介质中之后,还包括:

当系统资源空闲或所述存储介质的容量剩余量达到预设百分比时,将所述存储介质中的数据转移到磁盘中。

优选的,在上述提高数据读写性能的方法中,所述判断用户需要读取的数据是否存在于所述存储介质或所述内存中,当结果为是时,从所述存储介质或所述内存读取数据之后,还包括:

将长度为读入所述内存中的文件数据长度的预设倍数的数据加载到所述存储介质中;

当后续对所述文件进行读操作时,从所述内存或所述存储介质中读取数据。

优选的,在上述提高数据读写性能的方法中,所述存储介质为固态硬盘。

优选的,在上述提高数据读写性能的方法中,所述预设占用率的范围为50%至70%。

优选的,在上述提高数据读写性能的方法中,所述预设百分比的范围为不大于20%。

通过上述描述可知,本发明提供的上述提高数据读写性能的方法,由于包括在内存和磁盘之间设置用于缓存数据的存储介质;将预读取的数据缓存到所述内存中;当所述内存达到预设占用率时,将所述内存中的预读取的数据转移到所述存储介质中,利用所述内存中记录所述数据的存储位置和路径;判断用户需要读取的数据是否存在于所述存储介质或所述内存中,当结果为是时,从所述存储介质或所述内存读取数据,可见这样就无需增加内存,因此能够在低成本的前提下提升数据读写性能,而且节省内存空间。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例提供的第一种提高数据读写性能的方法的示意图。

具体实施方式

本发明的核心思想在于提供一种提高数据读写性能的方法,能够在低成本的前提下提升数据读写性能,而且节省内存空间。

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本申请实施例提供的第一种提高数据读写性能的方法如图1所示,图1为本申请实施例提供的第一种提高数据读写性能的方法的示意图,该方法包括如下步骤:

s1:在内存和磁盘之间设置用于缓存数据的存储介质;

需要说明的是,设置这种存储介质的目的是将其作为内存的二级缓存。

s2:将预读取的数据缓存到所述内存中;

也就是说在读取了某些数据时,将预期将要读取的数据先进行缓存,就能够提高后续数据读取的效率。

s3:当所述内存达到预设占用率时,将所述内存中的预读取的数据转移到所述存储介质中,利用所述内存中记录所述数据的存储位置和路径;

在这种情况下,就无需增加内存来实现,只要使用成本较低的存储介质就能够保证内存不至于太多,且不会影响传输速率。

s4:判断用户需要读取的数据是否存在于所述存储介质或所述内存中,当结果为是时,从所述存储介质或所述内存读取数据。

利用这种存储介质就能够辅助内存来存储预读取的数据,当需要读取时,很快就能够利用上述存储位置和路径将对应的数据读取出来,而不再需要去磁盘那里读取,提高了效率。

通过上述描述可知,本申请实施例提供的上述第一种提高数据读写性能的方法,由于包括在内存和磁盘之间设置用于缓存数据的存储介质;将预读取的数据缓存到所述内存中;当所述内存达到预设占用率时,将所述内存中的预读取的数据转移到所述存储介质中,利用所述内存中记录所述数据的存储位置和路径;判断用户需要读取的数据是否存在于所述存储介质或所述内存中,当结果为是时,从所述存储介质或所述内存读取数据,可见这样就无需增加内存,因此能够在低成本的前提下提升数据读写性能,而且节省内存空间。

本申请实施例提供的第二种提高数据读写性能的方法,是在上述第一种提高数据读写性能的方法的基础上,还包括如下技术特征:

还包括:

当检测到用户写入数据时,将写入的数据缓存到所述内存中;

将所述内存中的写入的数据转移到所述存储介质中。

在这种情况下,用户写入的数据及时转移到存储介质中,就不会占用内存过多。

本申请实施例提供的第三种提高数据读写性能的方法,是在上述第二种提高数据读写性能的方法的基础上,还包括如下技术特征:

在所述将所述内存中的写入的数据转移到所述存储介质中之后,还包括:

当系统资源空闲或所述存储介质的容量剩余量达到预设百分比时,将所述存储介质中的数据转移到磁盘中。

需要说明的是,当系统资源空闲时,就不需要在内存或存储介质中存放过多的数据,因此可以将数据转移到磁盘中,节省存储空间,另外,当存储介质中剩余容量不足时,也需要及时将其中的数据转移到磁盘中,以避免对数据产生堵塞。

本申请实施例提供的第四种提高数据读写性能的方法,是在上述第三种提高数据读写性能的方法的基础上,还包括如下技术特征:

所述判断用户需要读取的数据是否存在于所述存储介质或所述内存中,当结果为是时,从所述存储介质或所述内存读取数据之后,还包括:

将长度为读入所述内存中的文件数据长度的预设倍数的数据加载到所述存储介质中;

当后续对所述文件进行读操作时,从所述内存或所述存储介质中读取数据。

具体的,当用户打开文件时,就自动读取一定量的文件数据放入内存中,然后定时读取长度为读入所述内存中的文件数据长度的预设倍数的数据到存储介质中,对于之后收到的用户对于该文件的读请求,则从内存或存储介质中读取,大大提高了数据的读取速度。

本申请实施例提供的第五种提高数据读写性能的方法,是在上述第一种至第四种提高数据读写性能的方法中任一种的基础上,还包括如下技术特征:

所述存储介质为固态硬盘。

这种固态硬盘即ssd,其读写速度较快,更适合在这里与内存相配合进行数据存储,以提高数据读写性能。

本申请实施例提供的第六种提高数据读写性能的方法,是在上述第五种提高数据读写性能的方法的基础上,还包括如下技术特征:

所述预设占用率的范围为50%至70%。

在这种情况下,就是当内存占用率达到50%至70%之间的任意百分比以上时,就把内存中的数据转移到存储介质中,保证内存中的数据不至于过多。当然这也只是一个优选方案,还可以根据具体情况设置其他的百分比,此处并不限制。

本申请实施例提供的第七种提高数据读写性能的方法,是在上述第三种提高数据读写性能的方法的基础上,还包括如下技术特征:

所述预设百分比的范围为不大于20%。

在这种情况下,也就是当存储介质的剩余容量小于20%以上的任意一个百分比时就把存储介质中的数据转移到磁盘中,以避免存储介质中的数据占满影响存取速度,当然这也是一个优选方案,还可以根据具体情况将这种预设百分比设置为其他数值,此处并不限制。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1