具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明数据存储方法一个实施例的流程图,如图1所示,该数据存储方法可以包括:
步骤101,从一级缓存中选择待淘汰数据。
步骤102,确定上述待淘汰数据为随机访问的数据之后,将上述待淘汰数据存储到二级缓存中。
上述实施例中,在确定一级缓存中的待淘汰数据为随机访问的数据之后,将该待淘汰数据存储到二级缓存中,从而实现了将随机访问的数据存储到二级缓存,充分利用了二级缓存的存储介质的性能和二级缓存的存储空间,进而提高了使用二级缓存的存储系统的存储性能。
上述实施例中,可以通过最近最久未使用(Least Recently Used;以下简称:LRU)算法从一级缓存中选择待淘汰数据。
下面结合图2,对本发明图1所示实施例步骤102中确定上述待淘汰数据为随机访问的数据的方法进行介绍,图2为本发明确定上述待淘汰数据为随机访问的数据的方法一个实施例的流程图,如图2所示,该确定上述待淘汰数据为随机访问的数据的方法可以包括:
步骤201,记录待淘汰数据在一级缓存中的访问模式。
步骤202,当待淘汰数据在一级缓存中最近一次的访问模式为随机访问模式,或者待淘汰数据在一级缓存中的访问模式包括随机访问模式,或者待淘汰数据在一级缓存中被随机访问的次数不小于被顺序访问的次数时,确定上述待淘汰数据为随机访问的数据。
当然本发明实施例并不仅限于此,还可以采用其他方式确定上述待淘汰数据为随机访问的数据,本发明实施例对确定上述待淘汰数据为随机访问的数据的方式不作限定,只要可以确定上述待淘汰数据为随机访问的数据即可。
图3为本发明数据存储方法另一个实施例的流程图,如图3所示,该数据存储方法可以包括:
步骤301,从一级缓存中选择待淘汰数据。
具体地,可以采用本发明图1所示实施例步骤101中提供的方法从一级缓存中选择待淘汰数据,在此不再赘述。
步骤302,判断上述待淘汰数据是否为随机访问的数据。如果是,则执行步骤303;如果上述待淘汰数据不是随机访问的数据,则执行步骤304。
具体地,首先可以记录待淘汰数据在一级缓存中的访问模式。
然后,在本实施例的一种实现方式中,如果待淘汰数据在一级缓存中最近一次的访问模式为随机访问模式,则可以确定上述待淘汰数据为随机访问的数据;如果待淘汰数据在一级缓存中最近一次的访问模式不是随机访问模式,则可以确定上述待淘汰数据不是随机访问的数据。
在本实施例的另一种实现方式中,如果待淘汰数据在一级缓存中的访问模式包括随机访问模式,即待淘汰数据在一级缓存中至少有一次是被随机访问的,则可以确定上述待淘汰数据为随机访问的数据;如果待淘汰数据在一级缓存中的访问模式不包括随机访问模式,即待淘汰数据在一级缓存中没有一次是被随机访问的,则可以确定上述待淘汰数据不是随机访问的数据。
在本实施例的再一种实现方式中,可以比较待淘汰数据在一级缓存中被随机访问的次数和被顺序访问的次数的大小,如果待淘汰数据在一级缓存中被随机访问的次数不小于被顺序访问的次数,则可以确定上述待淘汰数据为随机访问的数据;而如果待淘汰数据在一级缓存中被随机访问的次数小于被顺序访问的次数,则可以确定上述待淘汰数据不是随机访问的数据。
当然本发明实施例并不仅限于此,还可以采用其他方式判断上述待淘汰数据是否为随机访问的数据,本发明实施例对判断上述待淘汰数据是否为随机访问的数据的方式不作限定,只要可以判断上述待淘汰数据是否为随机访问的数据即可。
步骤303,将上述待淘汰数据存储到二级缓存中。
步骤304,从一级缓存中淘汰上述待淘汰数据。
具体地,从一级缓存中淘汰上述待淘汰数据可以为:从一级缓存中删除上述待淘汰数据。
上述实施例中,在确定一级缓存中的待淘汰数据为随机访问的数据之后,将该待淘汰数据存储到二级缓存中,从而实现了将随机访问的数据存储到二级缓存,充分利用了二级缓存的存储介质的性能和二级缓存的存储空间,进而提高了使用二级缓存的存储系统的存储性能。
图4为本发明数据存储方法再一个实施例的流程图,如图4所示,该数据存储方法可以包括:
步骤401,从一级缓存中选择待淘汰数据。
具体地,可以采用本发明图1所示实施例步骤101中提供的方法从一级缓存中选择待淘汰数据,在此不再赘述。
步骤402,判断上述待淘汰数据是否为热点数据。如果是,则执行步骤403;如果上述待淘汰数据不是热点数据,则执行步骤405。
具体地,在本实施例的一种实现方式中,如果待淘汰数据在一级缓存中被访问的次数至少为两次,则可以确定该待淘汰数据为热点数据;如果待淘汰数据在一级缓存中被访问的次数小于两次,则可以确定该待淘汰数据不是热点数据。
在本实施例的另一种实现方式中,可以建立一个数据表,记录待淘汰数据在一级缓存中被访问的次数,确定在预定时间内被访问的次数最多的待淘汰数据为热点数据;确定在预定时间内被访问的次数不是最多的待淘汰数据不是热点数据。
步骤403,判断上述待淘汰数据是否为随机访问的数据。如果是,则执行步骤404;如果上述待淘汰数据不是随机访问的数据,则执行步骤405。
具体地,可以采用本发明图3所示实施例步骤302中提供的方法判断上述待淘汰数据是否为随机访问的数据,在此不再赘述。
步骤404,将上述待淘汰数据存储到二级缓存中。
步骤405,从一级缓存中淘汰上述待淘汰数据。
具体地,从一级缓存中淘汰上述待淘汰数据可以为:从一级缓存中删除上述待淘汰数据。
上述实施例中,在确定一级缓存中的待淘汰数据为热点数据且为随机访问的数据之后,将该待淘汰数据存储到二级缓存中,从而实现了将随机访问的数据存储到二级缓存,充分利用了二级缓存的存储介质的性能和二级缓存的存储空间,进而提高了使用二级缓存的存储系统的存储性能。
本发明图1、图3和图4所示实施例提供的数据存储方法实现了二级缓存中只存放随机访问的数据,充分利用了二级缓存的存储空间,大幅提升了使用二级缓存的存储系统的性能。
本发明图1、图3和图4所示实施例提供的数据存储方法可用于任何使用二级缓存的存储系统中,图5为本发明使用二级缓存的存储系统的一个实施例的示意图。如图5所示,该使用二级缓存的存储系统可以包括存储用户51、存储接口52、一级缓存53、二级缓存54和主存储器55。
其中,存储用户51可以为数据库服务器、个人电脑(Personal Computer;以下简称:PC)机、服务器等生成数据和对数据进行处理的机器;
主存储器55可以是磁盘阵列、单个磁盘、磁带、SSD盘及SSD盘阵列等;
一级缓存53由随机存取存储器(Random Access Memory;以下简称:RAM)及缓存控制程序组成,缓存的存取速率比主存储器55的存取速率快;
二级缓存54由一块或者多块SSD磁盘及相应的控制程序组成,二级缓存54的存储速率介于一级缓存53与主存储器55之间;
存储用户51通过存储接口52,与一级缓存53进行数据和管理命令传输;其中,存储接口52一般为小型计算机系统接口(Small Computer SystemInterface;以下简称:SCSI)、串行高级技术附件(Serial Advanced TechnologyAttachment;以下简称:SATA)和高级技术附件(Advanced TechnologyAttachment;以下简称:ATA)等协议及相应的物理链路。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图6为本发明数据存储装置一个实施例的结构示意图,如图6所示,该数据存储装置可以包括:选择模块61、确定模块62和存储模块63。
其中,选择模块61,用于从一级缓存中选择待淘汰数据;具体地,选择模块61可以通过LRU算法从一级缓存中选择待淘汰数据;
确定模块62,用于确定选择模块61选择的待淘汰数据为随机访问的数据;具体地,确定模块62可以根据本发明图2所示实施例提供的方法确定选择模块61选择的待淘汰数据为随机访问的数据,在此不再赘述;
存储模块63,用于在确定模块62确定选择模块61选择的待淘汰数据为随机访问的数据之后,将上述待淘汰数据存储到二级缓存中。
上述数据存储装置中,在确定模块62确定一级缓存中的待淘汰数据为随机访问的数据之后,存储模块63将该待淘汰数据存储到二级缓存中,从而实现了将随机访问的数据存储到二级缓存,充分利用了二级缓存的存储介质的性能和二级缓存的存储空间,进而提高了使用二级缓存的存储系统的存储性能。
图7为本发明数据存储装置另一个实施例的结构示意图,本实施例中的数据存储装置可以实现本发明图1、图3或图4所示实施例的流程。与图6所示实施例相比,不同之处在于,图7所示的数据存储装置可以进一步包括:淘汰模块64。
其中,淘汰模块64,用于在确定模块62确定选择模块61选择的待淘汰数据不是随机访问的数据之后,从一级缓存中淘汰上述待淘汰数据。
本实施例中,确定模块62还可以在确定待淘汰数据为随机访问的数据之前,确定选择模块61选择的待淘汰数据为热点数据。这时,淘汰模块64还可以在确定模块62确定上述待淘汰数据不是热点数据之后,从一级缓存中淘汰上述待淘汰数据。具体地,确定模块62可以采用本发明图4所示实施例步骤402中提供的方法确定选择模块61选择的待淘汰数据是否为热点数据,在此不再赘述。
本实施例中,确定模块62可以包括:记录子模块621和访问模式确定子模块622。
其中,记录子模块621,用于记录待淘汰数据在一级缓存中的访问模式;
访问模式确定子模块622,用于当待淘汰数据在一级缓存中最近一次的访问模式为随机访问模式,或者待淘汰数据在一级缓存中的访问模式包括随机访问模式,或者待淘汰数据在一级缓存中被随机访问的次数不小于被顺序访问的次数时,确定上述待淘汰数据为随机访问的数据。
上述数据存储装置实现了将随机访问的数据存储到二级缓存,充分利用了二级缓存的存储介质的性能和二级缓存的存储空间,进而提高了使用二级缓存的存储系统的存储性能。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。