一种数据的缓存方法、装置和服务器的制作方法

文档序号:6438897阅读:162来源:国知局
专利名称:一种数据的缓存方法、装置和服务器的制作方法
技术领域
本发明涉及数据缓存领域,尤其涉及一种数据的缓存方法、装置和服务器。
背景技术
磁盘与内存间的Ι/Oanput/Output,输入输出)速度一直是系统性能的一个重要瓶颈。目前为了提高系统的速度,很多系统在内存和磁盘之间添加一级缓存,用于存放CPU 近期需要运行的指令和数据,可以提高CPU对磁盘的访问速度。现有技术中磁盘和缓存之间主要采用组相连映射模式,以组为单位管理缓存数据。磁盘和缓存的存储空间都被划分成大小相同的组,通常磁盘的存储空间要比缓存的存储空间大很多,磁盘中多个存储组的数据将会对应缓存到缓存中同一个存储组,这样映射组为磁盘中与缓存中一存储组对应的一个或多个存储组。在实现上述缓存组相连映射的过程中,缓存以组为单位管理缓存数据。缓存中新进数据要存储到缓存中,被替换掉的缓存中的数据在磁盘中的原始数据必须与缓存中新进数据在磁盘中的原始数据位于同一映射组,这样被替换掉的缓存中的数据可能是整个缓存中较为热点的数据,而不能替换掉整个缓存中位于其它存储组的非热点数据或最冷数据。 而这些非热点数据或最冷数据占用缓存空间,不能使其它热点数据被存储到缓存中,从而会影响缓存的命中率,降低系统的运行速率。

发明内容
本发明的实施例提供一种数据的缓存方法、装置和服务器,提高了缓存的命中率和系统运行的速率。为达到上述目的,本发明的实施例采用如下技术方案—种数据的缓存方法,包括判断缓存中新进数据在磁盘中的原始数据与缓存中待替换数据在磁盘中的原始数据是否位于磁盘中的同一映射组,所述映射组为磁盘中与缓存中一存储组对应的一个或多个存储组;若所述缓存中新进数据在磁盘中的原始数据与所述缓存中待替换数据在磁盘中的原始数据不位于磁盘中的同一映射组内,将所述缓存中新进数据在磁盘中的原始数据迁移到所述缓存中待替换数据在磁盘中的原始数据相同的磁盘映射组内;将所述缓存中新进数据写入所述缓存中待替换数据在所述缓存中的存储位置。一种数据的缓存装置,包括第一判断单元,判断缓存中新进数据在磁盘中的原始数据与缓存中待替换数据在磁盘中的原始数据是否位于磁盘中的同一映射组,所述映射组为磁盘中与缓存中一存储组对应的一个或多个存储组;磁盘迁移单元,若所述缓存中新进数据在磁盘中的原始数据与所述缓存中待替换数据在磁盘中的原始数据不位于磁盘中的同一映射组内,用于将所述缓存中新进数据在磁盘中的原始数据迁移到所述缓存中待替换数据在磁盘中的原始数据相同的磁盘映射组内;缓存写入单元,用于将所述缓存中新进数据写入所述缓存中待替换数据在所述缓存中的存储位置。一种服务器,包括上述数据的缓存装置。本发明实施例提供了一种数据的缓存方法、装置和服务器,磁盘与缓存之间采用组相连映射的模式进行以组为单位进行数据的缓存。通过将与缓存中待替换数据在磁盘中的原始数据属于不同映射组的缓存中新进数据在磁盘中的原始数据迁移到缓存中待替换数据在磁盘中的原始数据相同的磁盘映射组内,有目标的将缓存中新进数据存储到缓存中待替换数据在缓存中的存储位置。这样才能更有效的去除掉缓存中不常用的数据,如最冷数据或非热点数据,使得热点数据不会被替换出缓存,从而可以提高缓存的命中率,提高系统的运行速率。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例一提供的数据的缓存方法的流程示意图;图2为本发明实施例一提供的数据的缓存装置的结构示意图;图3为本发明实施例二提供的数据的缓存方法的流程示意图;图4为本发明实施例三提供的数据的缓存装置的结构示意图;图5为磁盘与缓存采用组相连映射的方式的示意具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。实施例一本发明实施例提供了一种数据的缓存方法,如图1所示,包括S101、判断缓存中新进数据在磁盘中的原始数据与缓存中待替换数据在磁盘中的原始数据是否位于磁盘中的同一映射组,所述映射组为磁盘中与缓存中一存储组对应的一个或多个存储组。若所述缓存中新进数据在磁盘中的原始数据与所述缓存中待替换数据在磁盘中的原始数据不位于磁盘中同一映射组的数据,执行S102步骤;若缓存中新进数据在磁盘中的原始数据与缓存中待替换数据在磁盘中的原始数据位于磁盘中同一映射组的数据,执行 S103步骤。S102、将所述缓存中新进数据在磁盘中的原始数据迁移到所述缓存中待替换数据在磁盘中的原始数据相同的磁盘映射组内。S103、将所述缓存中新进数据写入所述缓存中待替换数据在所述缓存中的存储位置。具体的缓存中待替换数据可以通过对缓存的数据根据被访问时间和被访问频率进行统计,获取最冷数据或非热点数据作为所述替换数据。本发明实施例还提供了一种数据的缓存装置,如图2所示,包括第一判断单元 21、磁盘迁移单元22和缓存写入单元23。第一判断单元21,用于判断缓存中新进数据在磁盘中的原始数据与缓存中待替换数据在磁盘中的原始数据是否位于磁盘中的同一映射组,所述映射组为磁盘中与缓存中一存储组对应的一个或多个存储组。磁盘迁移单元,若所述缓存中新进数据在磁盘中的原始数据与所述缓存中待替换数据在磁盘中的原始数据不位于磁盘中的同一映射组内,用于将所述缓存中新进数据在磁盘中的原始数据迁移到所述缓存中待替换数据在磁盘中的原始数据相同的磁盘映射组内。缓存写入单元23,用于将所述缓存中新进数据写入所述缓存中待替换数据在所述缓存中的存储位置。一种服务器,包括上述的数据的缓存装置。本发明实施例提供了一种数据的缓存方法、装置和服务器,磁盘与缓存之间采用组相连映射的模式进行以组为单位进行数据的缓存。通过将与缓存中待替换数据在磁盘中的原始数据属于不同映射组的缓存中新进数据在磁盘中的原始数据迁移到缓存中待替换数据在磁盘中的原始数据相同的磁盘映射组内,有目标的将缓存中新进数据存储到缓存中待替换数据在缓存中的存储位置。这样才能更有效的去除掉缓存中不常用的数据,如最冷数据或非热点数据,使得热点数据不会被替换出缓存,从而可以提高缓存的命中率,提高系统的运行速率。实施例二、本发明实施例提供了一种数据的缓存方法,如图3所示,包括S301、判断缓存中新进数据在磁盘中的原始数据与缓存中待替换数据在磁盘中的原始数据是否位于磁盘中的同一映射组,所述映射组为磁盘中与缓存中一存储组对应的一个或多个存储组。若所述缓存中新进数据在磁盘中的原始数据与所述缓存中待替换数据在磁盘中的原始数据不位于磁盘中同一映射组的数据,则执行S302步骤;若所述缓存中新进数据的在磁盘中的原始数据与所述缓存中待替换数据在磁盘中的原始数据位于同一映射组的数据,则执行S305步骤。S302、判断所述缓存中待替换数据在磁盘中的原始数据位于磁盘中的映射组的存储空间是否已满。若所述缓存中待替换数据在磁盘中的原始数据位于磁盘中的映射组的存储空间已满,则执行S303 ;若所述缓存中待替换数据在磁盘中的原始数据位于磁盘中的映射组的存储空间未满,则执行S304。S303、交换缓存中新进数据在磁盘中的原始数据与缓存中待替换数据在磁盘中的原始数据的存储位置。
6
S304、所述缓存中新进数据在磁盘中的原始数据迁移到所述缓存中待替换数据在磁盘中的原始数据位于磁盘中的映射组的空闲位置。S305、将所述缓存中新进数据写入所述缓存中待替换数据在所述缓存中的存储位置。其中,所述缓存中待替换数据可以通过对缓存的数据根据被访问时间和被访问频率进行统计,获取最冷数据或非热点数据作为所述替换数据。进一步的,还可以在交换缓存中新进数据在磁盘中的原始数据与缓存中待替换数据在磁盘中的原始数据的存储位置后,将缓存中新进数据在磁盘中的原始数据关联的未缓存数据与缓存中待替换数据在磁盘中的原始数据关联的数据交换存储位置,所述缓存中新进数据在磁盘中的原始数据关联的未缓存数据与缓存中新进数据在磁盘中的原始数据位于磁盘同一存储组且物理存储地址连续,所述缓存中待替换数据在磁盘中的原始数据关联的数据与缓存中待替换数据在磁盘中的原始数据位于磁盘同一存储组的数据且物理存储地址连续。进一步的,还可以在所述缓存中新进数据在磁盘中的原始数据存储到所述缓存中待替换数据在磁盘中的原始数据所属的映射组的空闲位置后,将缓存中新进数据的在磁盘中的原始数据关联的未缓存数据存储到缓存中待替换数据在磁盘中的原始数据所属的映射组的空闲位置,所述缓存中新进数据在磁盘中的原始数据关联的未缓存数据与缓存中新进数据在磁盘中的原始数据位于磁盘同一存储组且物理存储地址连续。上述的缓存可以采用非易失性的存储介质,如SSD(solid state disk,固态硬盘)、PCM(phase-change memory,相变存储器)的高速缓存介质。下面我们对本发明实施例提供的磁盘数据缓存方法的具体过程进行详细说明。磁盘与内存间的I/O速度一直是系统性能的一个重要瓶颈,在磁盘与内存之间添加一级缓存,能够有效的提高I/O速度。磁盘和磁盘缓存之间的采用组相连模式,以组为单位管理缓存数据。如图5所示, 磁盘和缓存的存储空间被分成同样大小的存储组,假设缓存中有N个存储组,每个存储组中有M块数据,因为磁盘的存储空间比缓存的存储空间大很多,这样在磁盘中有多个存储组会映射到缓存的同一存储组。示例性的,图5中磁盘中分别有3个存储组被对应映射到缓存的同一存储组,这3个存储组称为磁盘的映射组。如图Alcl、A2cl、A3cl三个存储组为磁盘的映射组cl,该映射组cl中的数据只能被映射到缓存的Cl存储组中。假设系统使用映射组cN中的某一存储组A3cN中某块数据ml,在ml被使用后对数据ml进行了修改。修改后的数据内容变为mlA3,mlA3作为缓存中新进数据要被存储到缓存中。而mlA3在磁盘中的原始数据ml属于映射组cN中的数据。这样在缓存CN存储组的存储空间未满的情况下,缓存中新进数据mlA3就可以直接存储到缓存的CN存储组的空闲位置。而在缓存Cl存储组的存储空间已满的情况下,为了提高缓存命中率,提高系统的运行速度,缓存会根据存储在缓存中的数据被访问的时间和被访问的频率,统计出了最冷数据或者非热点数据作为缓存中待替换数据,将缓存中新进数据有目标的写入到缓存中待替换数据在缓存中的存储位置。这样处理系统会判断缓存中新进数据在磁盘中的原始数据与缓存中待替换数据在磁盘中的原始数据是否位于磁盘中的同一映射组,所述映射组为磁盘中与缓存中一存储组对应的一个或多个存储组。若缓存中新进数据的在磁盘中的原始数据与缓存中待替换数据在磁盘中的原始数据位于磁盘中同一映射组,根据组相连映射的方式,对于SSD缓存介质,需要先在缓存中直接将该待替换数据擦除,然后将缓存中新进数据写入待替换数据在缓存的存储位置。若处理系统判断缓存中新进数据在磁盘中的原始数据与缓存中待替换数据在磁盘中的原始数据不位于磁盘中同一映射组的数据,处理系统进一步判断缓存中待替换数据在磁盘中的原始数据位于磁盘中的映射组的存储空间是否已满。若缓存中待替换数据在磁盘中的原始数据位于磁盘中的映射组的存储空间已经被占满,那么处理系统将缓存中新进数据在磁盘中的原始数据与缓存中待替换数据在磁盘中的原始数据彼此交换存储位置。进一步的,处理系统还可以将缓存中新进数据在磁盘中的原始数据关联的未缓存数据与缓存中待替换数据在磁盘中的原始数据关联的数据交换存储位置,所述缓存中新进数据在磁盘中的原始数据关联的未缓存数据与缓存中新进数据的在磁盘中的原始数据位于磁盘同一存储组且物理存储地址连续。所述缓存中待替换数据在磁盘中的原始数据关联的数据与缓存中待替换数据在磁盘中的原始数据位于磁盘同一存储组且物理存储地址连续。然后在需要将缓存中新进数据在磁盘中的原始数据关联的未缓存数据存储到缓存时, 直接存储到缓存中。这样可以使得处理系统更为快速的对磁盘中的数据进行缓存,有效更新缓存中的数据。若缓存中待替换数据在磁盘中的原始数据位于磁盘中的映射组的存储空间还没有被占满的情况下,那么处理系统将缓存中新进数据在磁盘中的原始数据迁移到缓存中待替换数据在磁盘中的原始数据位于磁盘中的映射组的空闲位置。进一步的,处理系统还可以将缓存中新进数据在磁盘中的原始数据关联的未缓存数据迁移到缓存中待替换数据在磁盘中的原始数据位于磁盘中的映射组的空闲位置,所述缓存中新进数据在磁盘中的原始数据关联的未缓存数据与缓存中新进数据在磁盘中的原始数据位于磁盘同一存储组且物理存储地址连续。这样可以使得处理系统更为快速的对磁盘中的数据进行缓存,有效更新缓存中的数据。具体的,缓存中新进数据在磁盘中的原始数据关联的数据或缓存中待替换数据在磁盘中的原始数据关联的数据,这里所说的关联可以是属于同一文件或属性比较接近的数据,具体的如一个音视频文件的不同部分,如数据为视频文件的第一部分,与该数据关联的数据则可以是该视频文件的另外部分。在将缓存中新进数据在磁盘中的原始数据迁移到缓存中待替换数据在磁盘中的原始数据相同的磁盘映射组内后,处理系统还需要修改缓存中新进数据的文件描述符,具体包括修改缓存中新进数据与磁盘的映射关系。进一步的根据修改后的缓存中新进数据与磁盘的映射关系,系统自动更新缓存中新进数据在缓存中的存储组。然后处理系统检测 I/O请求队列中是否有对缓存中新进数据的操作,若I/O请求队列中有对该缓存中新进数据的操作,同时需要修改I/O请求队列中该缓存中新进数据的文件描述符,具体包括修改缓存中新进数据与磁盘的映射关系。本发明实施例提供的数据缓存方法,磁盘与缓存之间采用组相连映射的模式进行以组为单位进行数据的缓存。为了有效替换缓存中的最冷数据或非热点数据,首先判断缓存中新进数据在磁盘中的原始数据与缓存中待替换数据在磁盘中的原始数据是否位于同一映射组。在缓存中新进数据在磁盘中的原始数据与缓存中待替换数据在磁盘中的原始数据位于不同映射组的情况下,将缓存中新进数据在磁盘中的原始数据存储到缓存中待替换数据在磁盘中的原始数据的映射组,这样能够替换掉缓存中最冷或非热点数据,从而可以提高缓存的命中率,提高系统的运行速率。实施例三、本发明实施例提供了一种数据的缓存装置,如图4所示,包括统计单元41、第一判断单元42、磁盘迁移单元43、缓存写入单元44。其中,统计单元41,用于将所述缓存中的数据根据被访问时间和被访问频率进行统计,获取最冷数据或非热点数据作为所述缓存中待替换数据。第一判断单元42,用于判断缓存中新进数据在磁盘中的原始数据与缓存中待替换数据在磁盘中的原始数据是否位于磁盘中的同一映射组,所述映射组为磁盘中与缓存中一存储组对应的一个或多个存储组。磁盘迁移单元43,若所述缓存中新进数据在磁盘中的原始数据与所述缓存中待替换数据在磁盘中的原始数据不位于磁盘中的同一映射组内,用于将所述缓存中新进数据在磁盘中的原始数据迁移到所述缓存中待替换数据在磁盘中的原始数据相同的磁盘映射组内。磁盘迁移单元43具体包括第二判断子单元431、交换子单元432和存储子单元 433。第二判断子单元431,用于判断所述缓存中待替换数据在磁盘中的原始数据位于磁盘中的映射组的存储空间是否已满。交换子单元432,若所述缓存中待替换数据在磁盘中的原始数据位于磁盘中的映射组的存储空间已满,用于交换缓存中新进数据在磁盘中的原始数据与缓存中待替换数据在磁盘中的原始数据的存储位置。存储子单元433,若所述缓存中待替换数据在磁盘中的原始数据位于磁盘中的映射组的存储空间未满,用于所述缓存中新进数据在磁盘中的原始数据迁移到所述缓存中待替换数据在磁盘中的原始数据位于磁盘中的映射组的空闲位置。缓存写入单元44,用于将所述缓存中新进数据写入所述缓存中待替换数据在所述缓存中的存储位置。进一步的,交换子单元432还用于将缓存中新进数据在磁盘中的原始数据关联的未缓存数据与缓存中待替换数据在磁盘中的原始数据关联的数据交换存储位置,所述缓存中新进数据在磁盘中的原始数据关联的未缓存数据与缓存中新进数据在磁盘中的原始数据位于磁盘同一存储组且物理存储地址连续,所述缓存中待替换数据在磁盘中的原始数据关联的数据与缓存中待替换数据在磁盘中的原始数据位于磁盘同一存储组且物理存储地址连续。进一步的,存储子单元433还用于将缓存中新进数据在磁盘中的原始数据关联的未缓存数据迁移到替换数据在磁盘中的原始数据所属的映射组的空闲位置,所述缓存中新进数据的在磁盘中的原始数据关联的未缓存数据与缓存中新进数据的在磁盘中的原始数据位于磁盘同一存储组且物理存储地址连续。
上述的缓存可以采用非易失性的存储介质,如SSD、PCM的高速缓存介质。下面我们对数据的缓存装置的具体工作过程进行详细说明。磁盘与内存间的I/O速度一直是系统性能的一个重要瓶颈,在磁盘与内存之间添加一级缓存,能够有效的提高I/O速度。缓存装置的第一判断单元会判断缓存中新进数据在磁盘中的原始数据与缓存中待替换数据在磁盘中的原始数据是否位于磁盘中的同一映射组,所述映射组为磁盘中与缓存中一存储组对应的一个或多个存储组。若所述缓存中新进数据在磁盘中的原始数据与所述缓存中待替换数据在磁盘中的原始数据位于磁盘中的同一映射组的数据,这样根据组相连映射的方式,对于SSD缓存介质,缓存写入单元需要在缓存中先直接将该替换数据擦除, 然后将缓存中新进数据写入替换数据在缓存的存储位置。若第一判断单元判断所述缓存中新进数据在磁盘中的原始数据与所述缓存中待替换数据在磁盘中的原始数据不位于磁盘中的同一映射组的数据,磁盘存储单元的第二判断子单元需要进一步判断所述缓存中待替换数据在磁盘中的原始数据位于磁盘中的映射组的存储空间是否已满。若所述缓存中待替换数据在磁盘中的原始数据位于磁盘中的映射组的存储空间已满,那么磁盘迁移单元的交换子单元将交换缓存中新进数据在磁盘中的原始数据与缓存中待替换数据在磁盘中的原始数据的存储位置。进一步的,交换子单元还可以将缓存中新进数据在磁盘中的原始数据关联的未缓存数据与缓存中待替换数据在磁盘中的原始数据关联的数据交换存储位置,所述缓存中新进数据在磁盘中的原始数据关联的未缓存数据与缓存中新进数据在磁盘中的原始数据位于磁盘同一存储组且物理存储地址连续,所述缓存中待替换数据在磁盘中的原始数据关联的数据与缓存中待替换数据在磁盘中的原始数据位于磁盘同一存储组的数据且物理存储地址连续。这样可以更为快速的对磁盘中的数据进行缓存,有效更新缓存中的数据。若在所述缓存中待替换数据在磁盘中的原始数据位于磁盘中的映射组的存储空间未满的情况下,那么缓存装置的存储子单元将缓存中新进数据在磁盘中的原始数据迁移到所述缓存中待替换数据在磁盘中的原始数据位于磁盘中的映射组的空闲位置。进一步的,存储子单元还可以将缓存中新进数据在磁盘中的原始数据关联的未缓存数据迁移到缓存中待替换数据在磁盘中的原始数据位于磁盘中的映射组的空闲位置,所述缓存中新进数据在磁盘中的原始数据关联的未缓存数据与缓存中新进数据在磁盘中的原始数据位于磁盘同一存储组且物理存储地址连续。这样可以使得处理系统更为快速的对磁盘中的数据进行缓存,有效更新缓存中的数据。具体的,缓存中新进数据在磁盘中的原始数据关联的数据或缓存中待替换数据在磁盘中的原始数据关联的数据,这里所说的关联可以是属于同一文件或属性比较接近的数据,具体的如一个音视频文件的不同部分,如数据为视频文件的第一部分,与该数据关联的数据则可以是该视频文件的另外部分。在将缓存中新进数据在磁盘中的原始数据迁移到缓存中待替换数据在磁盘中的原始数据相同的磁盘映射组内后,缓存装置还需要修改缓存中新进数据的文件描述符,具体包括修改缓存中新进数据与磁盘的映射关系。进一步的根据修改后的缓存中新进数据与磁盘的映射关系,缓存装置自动更新缓存中新进数据在缓存中的存储组。然后检测I/O请求队列中是否有对缓存中新进数据的操作,若I/O请求队列中有对该缓存中新进数据的操作,同时需要修改I/O请求队列中该缓存中新进数据的文件描述符,具体包括修改缓存中新进数据与磁盘的映射关系。本发明实施例提供的数据的缓存装置,磁盘与缓存之间采用组相连映射的模式进行以组为单位进行数据的缓存。首先第一判断单元判断缓存中新进数据在磁盘中的原始数据与缓存中待替换数据在磁盘中的原始数据是否位于同一映射组。在缓存中新进数据在磁盘中的原始数据与缓存中待替换数据在磁盘中的原始数据不位于磁盘中的不同映射组的情况下,将缓存中新进数据在磁盘中的原始数据存储到缓存中待替换数据在磁盘中的原始数据的映射组,这样能够替换掉缓存中最冷或非热点数据,从而可以提高缓存的命中率,提高系统的运行速率。本发明实施例还提供了一种服务器,包括实施例一、三的数据的缓存装置或采用实施例一、二的数据的缓存方法进行数据缓存。服务器关于数据的缓存的工作过程在此不再赘述。本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通过程序指令关联的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。以上所述,仅为本发明的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
权利要求
1.一种数据的缓存方法,其特征在于,包括判断缓存中新进数据在磁盘中的原始数据与缓存中待替换数据在磁盘中的原始数据是否位于磁盘中的同一映射组,所述映射组为磁盘中与缓存中一存储组对应的一个或多个存储组;若所述缓存中新进数据在磁盘中的原始数据与所述缓存中待替换数据在磁盘中的原始数据不位于磁盘中的同一映射组内,将所述缓存中新进数据在磁盘中的原始数据迁移到所述缓存中待替换数据在磁盘中的原始数据相同的磁盘映射组内;将所述缓存中新进数据写入所述缓存中待替换数据在所述缓存中的存储位置。
2.根据权利要求1所述的方法,其特征在于,将所述缓存中新进数据在磁盘中的原始数据迁移到所述缓存中待替换数据在磁盘中的原始数据相同的磁盘映射组内包括判断所述缓存中待替换数据在磁盘中的原始数据位于磁盘中的映射组的存储空间是否已满;若所述缓存中待替换数据在磁盘中的原始数据位于磁盘中的映射组的存储空间已满, 交换缓存中新进数据在磁盘中的原始数据与缓存中待替换数据在磁盘中的原始数据的存储位置;若所述缓存中待替换数据在磁盘中的原始数据位于磁盘中的映射组的存储空间未满, 所述缓存中新进数据在磁盘中的原始数据迁移到所述缓存中待替换数据在磁盘中的原始数据位于磁盘中的映射组的空闲位置。
3.根据权利要求2所述的方法,其特征在于,在交换缓存中新进数据在磁盘中的原始数据与缓存中待替换数据在磁盘中的原始数据的存储位置后,还包括将缓存中新进数据在磁盘中的原始数据关联的未缓存数据与缓存中待替换数据在磁盘中的原始数据关联的数据交换存储位置,所述缓存中新进数据在磁盘中的原始数据关联的未缓存数据与缓存中新进数据在磁盘中的原始数据位于磁盘同一存储组且物理存储地址连续,所述缓存中待替换数据在磁盘中的原始数据关联的数据与缓存中待替换数据在磁盘中的原始数据位于磁盘同一存储组且物理存储地址连续。
4.根据权利要求2所述的方法,其特征在于,在所述缓存中新进数据在磁盘中的原始数据迁移到所述缓存中待替换数据在磁盘中的原始数据位于磁盘中的映射组的空闲位置后,还包括将缓存中新进数据在磁盘中的原始数据关联的未缓存数据迁移到替换数据在磁盘中的原始数据所属的映射组的空闲位置,所述缓存中新进数据的在磁盘中的原始数据关联的未缓存数据与缓存中新进数据的在磁盘中的原始数据位于磁盘同一存储组且物理存储地址连续。
5.根据权利要求1-4任一项所述的方法,其特征在于,还包括将所述缓存中的数据根据被访问时间和被访问频率进行统计,获取最冷数据或非热点数据作为所述缓存中待替换数据。
6.一种数据的缓存装置,其特征在于,包括第一判断单元,用于判断缓存中新进数据在磁盘中的原始数据与缓存中待替换数据在磁盘中的原始数据是否位于磁盘中的同一映射组,所述映射组为磁盘中与缓存中一存储组对应的一个或多个存储组;磁盘迁移单元,若所述缓存中新进数据在磁盘中的原始数据与所述缓存中待替换数据在磁盘中的原始数据不位于磁盘中的同一映射组内,用于将所述缓存中新进数据在磁盘中的原始数据迁移到所述缓存中待替换数据在磁盘中的原始数据相同的磁盘映射组内;缓存写入单元,用于将所述缓存中新进数据写入所述缓存中待替换数据在所述缓存中的存储位置。
7.根据权利要求6所述的装置,其特征在于,所述磁盘迁移单元还包括第二判断子单元,用于判断所述缓存中待替换数据在磁盘中的原始数据位于磁盘中的映射组的存储空间是否已满;交换子单元,若所述缓存中待替换数据在磁盘中的原始数据位于磁盘中的映射组的存储空间已满,用于交换缓存中新进数据在磁盘中的原始数据与缓存中待替换数据在磁盘中的原始数据的存储位置;存储子单元,若所述缓存中待替换数据在磁盘中的原始数据位于磁盘中的映射组的存储空间未满,用于所述缓存中新进数据在磁盘中的原始数据迁移到所述缓存中待替换数据在磁盘中的原始数据位于磁盘中的映射组的空闲位置。
8.根据权利要求7所述的装置,其特征在于,所述交换子单元,还用于将缓存中新进数据在磁盘中的原始数据关联的未缓存数据与缓存中待替换数据在磁盘中的原始数据关联的数据交换存储位置,所述缓存中新进数据在磁盘中的原始数据关联的未缓存数据与缓存中新进数据在磁盘中的原始数据位于磁盘同一存储组且物理存储地址连续,所述缓存中待替换数据在磁盘中的原始数据关联的数据与缓存中待替换数据在磁盘中的原始数据位于磁盘同一存储组且物理存储地址连续。
9.根据权利要求7所述的装置,其特征在于,所述存储子单元还用于将缓存中新进数据在磁盘中的原始数据关联的未缓存数据迁移到替换数据在磁盘中的原始数据所属的映射组的空闲位置,所述缓存中新进数据的在磁盘中的原始数据关联的未缓存数据与缓存中新进数据的在磁盘中的原始数据位于磁盘同一存储组且物理存储地址连续。
10.根据权利要求6-9任一项所述的装置,其特征在于,还包括统计单元,用于将所述缓存中的数据根据被访问时间和被访问频率进行统计,获取最冷数据或非热点数据作为所述缓存中待替换数据。
11.一种服务器,其特征在于,包括权利要求6-10任一项所述的缓存装置。
全文摘要
本发明提供了一种数据的缓存方法、装置及服务器,能够提高缓存的命中率,提高系统的运行速率。该数据的缓存方法,包括判断缓存中新进数据在磁盘中的原始数据与缓存中待替换数据在磁盘中的原始数据是否位于磁盘中的同一映射组,所述映射组为磁盘中与缓存中一存储组对应的一个或多个存储组;若所述缓存中新进数据在磁盘中的原始数据与所述缓存中待替换数据在磁盘中的原始数据不位于磁盘中的同一映射组内,将所述缓存中新进数据在磁盘中的原始数据迁移到所述缓存中待替换数据在磁盘中的原始数据相同的磁盘映射组内;将所述缓存中新进数据写入所述缓存中待替换数据在所述缓存中的存储位置。本发明适用于数据缓存领域。
文档编号G06F12/12GK102521161SQ201110371549
公开日2012年6月27日 申请日期2011年11月21日 优先权日2011年11月21日
发明者方帆, 王婷 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1