缓存区管理方法、装置和计算机设备
技术领域
本申请涉及计算机领域,具体而言,涉及一种缓存区管理方法、装置和计算机设备。
背景技术
计算机系统通常含有CPU、内存、慢存储设备(例如,磁盘)等部件,其中,磁盘和内存写入数据的响应时间之间的差别较大,通常磁盘写入数据的响应时间是内存写入数据的响应时间的10倍或百倍。另外数据频繁的写入磁盘易造成磁盘带宽占满或磁盘寿命缩短,因此,计算机系统需要尽量避免将数据频繁的写入磁盘中。
为解决上述问题,现有的计算机系统通常在内存中创建内存缓冲区,其中,内存缓冲区由若干数据页组成。当有数据更新时,计算机系统首先将更新的数据写入缓存区的数据页中,待缓存区的被更新的数据页的数量达到一定水位,例如,数据页的数量达到缓存区容量的80之后,计算机系统将缓冲区中的数据集中写入磁盘。因此,当数据页多次修改时,可以仅对磁盘进行一次写入操作,避免了数据频繁的写入磁盘。
然而上述方式中,当内存缓冲区的容量较小,而数据更新比较频繁时,缓存区的被更新的数据页的数量很容易冲高,难以避免对磁盘频繁写入。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种缓存区管理方法、装置和计算机设备,以至少解决现有的计算机设备存在频繁向磁盘写入数据的技术问题。
根据本申请实施例的一个方面,提供了一种缓存区管理方法,包括:检测缓存区中页面的数据是否发生变化;在发生变化时,依据页面中的数据变化信息生成日志;将日志存储至与页面对应的存储位置,其中,存储位置用于存储与页面对应的一个或多个日志。
根据本申请实施例的另一方面,还提供了一种缓存区管理方法,包括:接收对缓存区中页面的访问请求,该页面为对缓存区进行分页后得到的子区域;获取页面的日志信息,该日志信息用于记录页面中数据的最新变动信息;依据日志信息对页面进行更新,得到目标页面;向访问请求的发送方设备返回目标页面对应的数据。
根据本申请实施例的另一方面,还提供了一种缓存区管理装置,包括:检测模块,用于检测缓存区中页面的数据是否发生变化;生成模块,用于在发生变化时,依据页面中的数据变化信息生成日志;存储模块,用于将日志存储至与页面对应的存储位置,其中,存储位置用于存储与页面对应的一个或多个日志。
根据本申请实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行缓存区管理方法。
根据本申请实施例的另一方面,还提供了一种计算机设备,包括:处理器;以及存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:检测缓存区中页面的数据是否发生变化;在发生变化时,依据页面中的数据变化信息生成日志;将日志存储至与页面对应的存储位置,其中,存储位置用于存储与页面对应的一个或多个日志。
在本申请实施例中,采用通过日志向磁盘写入数据的方式,在检测到缓存区中页面的数据发生变化的情况下,根据页面中的数据变化信息生成日志,然后将日志存储至与页面对应的存储位置中,该存储位置用于存储与页面对应的一个或多个日志。
在上述过程中,日志所占的内存通常小于页面的数据所的内存,因此,在本申请中采用缓存日志的方式可以减少页面数据对缓存区的内存占用,使缓存区得到更充分的利用,进而减少了对磁盘的写入次数。
由此可见,本申请所提供的方案达到了提高缓存区的利用率的目的,从而实现了减少了磁盘的写入次数的技术效果,进而解决了现有的计算机设备存在频繁向磁盘写入数据的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种用于实现缓存区管理方法的硬件结构框图;
图2是根据本申请实施例的一种缓存区管理方法的流程图;
图3是根据本申请实施例的一种可选的计算机设备数据管理的结构示意图;
图4是根据本申请实施例的一种缓存区管理方法的流程图;
图5是根据本申请实施例的一种缓存区管理装置的示意图;以及
图6是根据本申请实施例的一种计算机设备的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本申请实施例,还提供了一种缓存区管理方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1示出了一种用于实现缓存区管理方法的计算机终端(或移动设备)的硬件结构框图。如图1所示,计算机终端10(或移动设备10)可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的缓存区管理方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的缓存区管理方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端10(或移动设备)的用户界面进行交互。
此处需要说明的是,在一些可选实施例中,上述图1所示的计算机设备(或移动设备)可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图1仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算机设备(或移动设备)中的部件的类型。
在上述运行环境下,本申请提供了如图2所示的缓存区管理方法。图2是根据本申请实施例一的缓存区管理方法的流程图,由图2可知,该方法包括如下步骤:
步骤S202,检测缓存区中页面的数据是否发生变化。
需要说明的是,执行本实施例中的缓存区管理方法的执行主体为计算机设备,其中,缓存区为计算机设备内存中的存储区域,该区域用于缓存数据。缓存区中页面为对缓存区进行分页后所得到的子区域。
在一种可选的方案中,计算机设备可对页面的数据进行监听,例如,计算机设备每隔预设时间获取页面的数据,并比对当前页面的数据与缓存区中对应页面的数据,得到比对结果。当比对结果指示两者存在差异的情况下,即确定缓存区中页面的数据发生了变化,否则确定缓存区中页面的数据未发生变化。
在另一种可选的方案中,计算机设备还可对页面的数据的数据量监听,当检测到页面的数据的数据量发生变化时,则确定页面的数据发生了变化。
步骤S204,在发生变化时,依据页面中的数据变化信息生成日志。
根据步骤S204可知,日志存储的是变化之前的页面与变化之后的页面之间差异的数据,而并不是变化之后的页面的全部数据。其中,数据变化信息包括但不限于页面中的数据内容的变化、页面所包含的数据的数据量的变化以及页面所占内存的变化。例如,第一页面为变化之前的页面,第二页面为变化之后的页面,如果第一页面的数据量为1000,第二页面的数据量为1002,则将页面的数据量的变化信息生成日志。
需要说明的是,由于日志存储的是页面中的数据变化信息,因此,日志所占用的内存要小于页面数据所占用的内存,进而根据缓存区中的日志对磁盘进行写入操作,使缓存区得到更充分的利用,可以有效减少写入磁盘的次数。
步骤S206,将日志存储至与页面对应的存储位置,其中,存储位置用于存储与页面对应的一个或多个日志。
需要说明的是,页面具有页面标识,在将页面中的数据变化信息生成日志之后,计算机设备可根据页面的页面标识确定与页面标识对应的存储位置,并将该日志存储在存储位置上。其中,存储位置为内存中的一个区域,其中,存储位置与缓冲区可以位于内存的不同区域中。
可选的,上述存储位置可以为但不限于哈希桶。当页面中的数据发生变化时,将变化的数据生成对应的日志,并将日志存储在哈希桶中。其中,哈希桶又称为开链法哈希桶、开散列法哈希桶。
基于上述步骤S202至步骤S206所限定的方案,可以获知,采用通过日志向磁盘写入数据的方式,在检测到缓存区中页面的数据发生变化的情况下,根据页面中的数据变化信息生成日志,然后将日志存储至与页面对应的存储位置中,该存储位置用于存储与页面对应的一个或多个日志。
容易注意到的是,日志所占的内存通常小于页面的数据所的内存,因此,在本申请中采用缓存日志的方式可以减少页面数据对缓存区的内存占用,使缓存区得到更充分的利用,进而减少了对磁盘的写入次数。
由此可见,本申请所提供的方案达到了提高缓存区的利用率的目的,从而实现了减少了磁盘的写入次数的技术效果,进而解决了现有的计算机设备存在频繁向磁盘写入数据的技术问题。
在一种可选的方案中,在检测到页面中的数据发生变化,并根据数据变化信息生成日志之后,计算机设备将日志存储至与页面对应的存储位置。具体的,首先计算机设备确定页面的页面标识,然后对页面标识进行哈希运算,得到哈希值,最后将日志存储至与哈希值对应的哈希桶中。
可选的,上述页面的页面标识即为页面在磁盘中的标识,其中,页面标识的格式可以为“文件路径+文件名称+页面在文件中的位置”。页面标识中的文件路径为页面在磁盘中的文件路径,页面标识中的文件名称为页面在磁盘中的文件名称。
另外,哈希桶的容量是固定的,在将日志存储至与哈希值对应的哈希桶中之前,计算机设备首先确定哈希桶的剩余容量。例如,计算机设备可计算出哈希桶的当前已占用的容量,并与哈希桶的固定容量进行差值计算,得到的差值即为哈希桶的剩余容量。当哈希桶存储日志的剩余容量较多时,例如,哈希桶的剩余容量大于等于第一阈值,哈希桶还可对其他页面的日志继续进行存储。而在哈希桶的剩余容量小于第一阈值时,哈希桶内存储日志的剩余容量较少,此时,可通过以下两种方式之一处理过程进行处理:
方式一:依据数据变化信息对缓存区中的页面进行更新。在该方式中,计算机设备通过数据变化信息对页面进行更新,不再将数据变化信息生成日志以存储在哈希桶中,因此,采用该方式不会再造成哈希桶容量的减少。
方式二:从哈希桶中选择指定日志对页面进行更新,并将更新后的页面写入磁盘中,并从哈希桶中删除指定日志。可选的,在确定哈希桶中的剩余容量小于第一阈值的情况下,计算机设备比对哈希桶中是否存储有指定日志,在检测到哈希桶中存在指定日志时,执行方式二的处理过程。另外,上述指定日志还可由用户确定,例如,在检测到哈希桶中的剩余容量小于第一阈值的情况下,计算机设备生成提示消息,提示哈希桶的剩余容量不足。用户通过计算机设备选定对页面进行更新的指定日志,计算机在接收到用户选定的指定日志之后,执行方式二的处理过程。
在方式二中,由于删除了哈希桶中的指定日志,因此,删除日志之后的哈希桶的剩余容量将大于等于第一阈值,从而,哈希桶仍可继续对日志进行存储。
在一种可选的方案中,在执行处理过程之前,计算机设备还确定页面的类型,并在类型为指定类型时,将日志存储至哈希桶中,而在类型不是指定类型时,对页面执行处理过程。
需要说明的是,在上述过程中,哈希桶的剩余容量小于第一阈值,但大于零,即哈希桶还具有一定的剩余容量。此时,计算机设备仅将指定类型的页面的日志存储至哈希桶中,而其他类型的页面的日志不被存储。
在一种可选的方案中,在将日志存储至与页面对应的存储位置之前,计算机设备还页面中数据的更新次数来确定缓存区的管理方式。具体的,在更新次数大于第二阈值时,计算机设备将日志存储至存储位置;在更新次数小于第二阈值时,依据数据变化信息对缓存区中的数据页进行更新。
需要说明的是,在更新次数较多的情况下,计算机设备采用日志存储的方式对缓存区进行管理,可以避免频繁对磁盘进行数据写入的问题。而在数据的更新次数较少时,采用数据变化信息对缓存区中的数据页更新的方式,也可达到避免频繁对磁盘进行数据写入的问题,如果在该场景下,仍采用日志存储的方式对缓存区进行管理,则可能需要较长的时间才能时哈希桶的填满,或者哈希桶的剩余容量小于第一阈值,从而加大了磁盘的写入周期,使得页面更新的周期变长,甚至可能使得页面更新存在时延。
在一种可选的方案中,在将日志存储至与页面对应的存储位置之后,计算机设备还检测缓存区中被更新的页面在缓存区所占的比例,并在比例大于第三阈值时,丢弃缓存区中被更新的页面。
可选的,如图3所示的计算机设备数据管理的结构示意图,当发送方设备请求访问被更新的页面的数据时,发送方设备向计算机设备发送访问请求,并根据访问请求读取页面。具体的,当被更新的页面在缓存区中所占的比例大于第三阈值时,计算机设备的处理器从缓存区中删除该被更新的页面。另外,计算机设备在读取页面时,首先检测缓存区中是否存在该页面,如果存在,计算机设备直接从缓存区中读取该页面,否则采用从磁盘读取的方式读取该页面,并放入缓冲区中。其中,在采用磁盘读取页面的场景下,计算机设备检查哈希桶中是否存在与该页面对应的日志,如果存在该日志,则使用该日志对读取的页面进行更新。
由上述内容可知,本申请通过日志向磁盘写入数据,由于日志所占的内存通常小于页面的数据所的内存,因此,在本申请中采用缓存日志的方式可以减少页面数据对缓存区的内存占用,使缓存区得到更充分的利用,进而减少了对磁盘的写入次数。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的缓存区管理方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
实施例2
根据本申请实施例,还提供了一种缓存区管理方法,如图4所示,该方法包括:
步骤S402,接收对缓存区中页面的访问请求,该页面为对缓存区进行分页后得到的子区域。
步骤S404,获取页面的日志信息,该日志信息用于记录页面中数据的最新变动信息。
步骤S406,依据日志信息对页面进行更新,得到目标页面。
步骤S408,向访问请求的发送方设备返回目标页面对应的数据。
可选的,步骤S402中的访问请求为读取缓存区中的数据的请求。计算机设备在接收到访问请求之后,对访问请求进行解析,可达到所要访问的页面的页面标识,进而根据该页面的页面标识确定日志信息的存储位置,然后从存储位置中得到日志信息。进一步,在得到日志信息之后,计算机设备对页面进行更新,并将更新后的目标页面对应的数据发送给发送方设备。
需要说明的是,由于日志信息存储的是页面中的数据变化信息,因此,日志信息所占用的内存要小于页面数据所占用的内存,进而根据缓存区中的日志信息对磁盘进行写入操作,使缓存区得到更充分的利用,可以有效减少写入磁盘的次数。
可选的,上述存储位置可以为但不限于哈希桶。当页面中的数据发生变化时,将变化的数据生成对应的日志信息,并将日志信息存储在哈希桶中。
基于上述步骤S402至步骤S408所限定的方案,可以获知,由于容易注意到的是,日志信息所占的内存通常小于页面的数据所的内存,因此,在本申请中采用缓存日志信息的方式可以减少页面数据对缓存区的内存占用,使缓存区得到更充分的利用,进而减少了对磁盘的写入次数。
由此可见,本申请所提供的方案达到了提高缓存区的利用率的目的,从而实现了减少了磁盘的写入次数的技术效果,进而解决了现有的计算机设备存在频繁向磁盘写入数据的技术问题。
在一种可选的方案中,在接收到对缓存区中页面的访问请求之后,计算机设备获取页面的日志信息,具体的,计算机设备首先确定页面的页面标识,然后对页面标识进行哈希运算,得到哈希值,最后从与哈希值对应的哈希桶中查找日志信息。
可选的,上述页面的页面标识即为页面在磁盘中的标识,其中,页面标识的格式可以为“文件路径+文件名称+页面在文件中的位置”。页面标识中的文件路径为页面在磁盘中的文件路径,页面标识中的文件名称为页面在磁盘中的文件名称。
另外,哈希桶的容量是固定的,在将日志存储至与哈希值对应的哈希桶中之前,计算机设备首先确定哈希桶的剩余容量。例如,计算机设备可计算出哈希桶的当前已占用的容量,并与哈希桶的固定容量进行差值计算,得到的差值即为哈希桶的剩余容量。当哈希桶存储日志的剩余容量较多时,例如,哈希桶的剩余容量大于等于第一阈值,哈希桶还可对其他页面的日志继续进行存储。而在哈希桶的剩余容量小于第一阈值时,哈希桶内存储日志的剩余容量较少,此时,可通过以下两种方式之一处理过程进行处理:方式一:依据数据变化信息对缓存区中的页面进行更新;方式二:从哈希桶中选择指定日志对页面进行更新,并将更新后的页面写入磁盘中,并从哈希桶中删除指定日志。
由上述内容可知,本申请通过日志向磁盘写入数据,由于日志所占的内存通常小于页面的数据所的内存,因此,在本申请中采用缓存日志的方式可以减少页面数据对缓存区的内存占用,使缓存区得到更充分的利用,进而减少了对磁盘的写入次数。
实施例3
根据本申请实施例,还提供了一种用于实施上述缓存区管理方法的缓存区管理装置,如图5所示,该装置50包括:检测模块501、生成模块503以及存储模块505。
其中,检测模块501,用于检测缓存区中页面的数据是否发生变化;生成模块503,用于在发生变化时,依据页面中的数据数据变化信息生成日志;存储模块505,用于将日志存储至与页面对应的存储位置,其中,存储位置用于存储与页面对应的一个或多个日志。
此处需要说明的是,上述检测模块501、生成模块503以及存储模块505对应于实施例1中的步骤S202至步骤S206,三个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中。
在一种可选的方案中,存储模块包括:第一确定模块、第一处理模块以及第一存储模块。其中,第一确定模块,用于确定页面的页面标识;第一处理模块,用于对页面标识进行哈希运算,得到哈希值;第一存储模块,用于将日志存储至与哈希值对应的哈希桶中。
在一种可选的方案中,哈希桶的容量是固定的。其中,缓存区管理装置还包括:第二确定模块以及执行模块。其中,第二确定模块,用于确定哈希桶的剩余容量;执行模块,用于在哈希桶的剩余容量小于第一阈值时,执行以下之一处理过程:依据数据变化信息对缓存区中的页面进行更新;从哈希桶中选择指定日志对页面进行更新,并将更新后的页面写入磁盘中;以及从哈希桶中删除指定日志。
在一种可选的方案中,缓存区管理装置还包括:第三确定模块。其中,第三确定模块,用于确定页面的类型;在类型为指定类型时,将日志存储至哈希桶中;在类型不是指定类型时,对页面执行处理过程。
在一种可选的方案中,缓存区管理装置还包括:第四确定模块以及第二存储模块。其中,第四确定模块,用于确定页面中数据的更新次数;第二存储模块,用于在更新次数大于第二阈值时,将日志存储至存储位置。
在一种可选的方案中,缓存区管理装置还包括:更新模块。其中,更新模块,用于在更新次数小于第二阈值时,依据数据变化信息对缓存区中的数据页进行更新。
在一种可选的方案中,缓存区管理装置还包括:第二处理模块以及第三处理模块。其中,第二处理模块,用于检测缓存区中被更新的页面在缓存区所占的比例;第三处理模块,用于在比例大于第三阈值时,丢弃缓存区中被更新的页面。
实施例4
本申请的实施例可以提供一种计算机设备,该计算机设备可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机设备也可以替换为移动终端等终端设备。
可选地,在本实施例中,上述计算机设备可以位于计算机网络的多个网络设备中的至少一个网络设备。
在本实施例中,上述计算机设备可以执行缓存区管理方法中以下步骤的程序代码:检测缓存区中页面的数据是否发生变化;在发生变化时,依据页面中的数据变化信息生成日志;将日志存储至与页面对应的存储位置,其中,存储位置用于存储与页面对应的一个或多个日志。
可选地,图6是根据本申请实施例的一种计算机设备的结构框图。如图6所示,该计算机设备60可以包括:一个或多个(图中仅示出一个)处理器602、存储器604以及传输装置606。
其中,存储器可用于存储软件程序以及模块,如本申请实施例中的缓存区管理方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的缓存区管理方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至设备A。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:检测缓存区中页面的数据是否发生变化;在发生变化时,依据页面中的数据变化信息生成日志;将日志存储至与页面对应的存储位置,其中,存储位置用于存储与页面对应的一个或多个日志。
可选的,上述处理器还可以执行如下步骤的程序代码:确定页面的页面标识;对页面标识进行哈希运算,得到哈希值;将日志存储至与哈希值对应的哈希桶中。
可选的,上述处理器还可以执行如下步骤的程序代码:确定哈希桶的剩余容量;在哈希桶的剩余容量小于第一阈值时,执行以下之一处理过程:依据数据变化信息对缓存区中的页面进行更新;从哈希桶中选择指定日志对页面进行更新,并将更新后的页面写入磁盘中;以及从哈希桶中删除指定日志。
可选的,上述处理器还可以执行如下步骤的程序代码:确定页面的类型;在类型为指定类型时,将日志存储至哈希桶中;在类型不是指定类型时,对页面执行处理过程。
可选的,上述处理器还可以执行如下步骤的程序代码:确定页面中数据的更新次数;在更新次数大于第二阈值时,将日志存储至存储位置。
可选的,上述处理器还可以执行如下步骤的程序代码:在更新次数小于第二阈值时,依据数据变化信息对缓存区中的数据页进行更新。
可选的,上述处理器还可以执行如下步骤的程序代码:检测缓存区中被更新的页面在缓存区所占的比例;在比例大于第三阈值时,丢弃缓存区中被更新的页面。
本领域普通技术人员可以理解,图6所示的结构仅为示意,计算机设备也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(MobileInternet Devices,MID)、PAD等终端设备。图6其并不对上述电子装置的结构造成限定。例如,计算机设备60还可包括比图6中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图6所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
实施例5
本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的缓存区管理方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:检测缓存区中页面的数据是否发生变化;在发生变化时,依据页面中的数据变化信息生成日志;将日志存储至与页面对应的存储位置,其中,存储位置用于存储与页面对应的一个或多个日志。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:确定页面的页面标识;对页面标识进行哈希运算,得到哈希值;将日志存储至与哈希值对应的哈希桶中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:确定哈希桶的剩余容量;在哈希桶的剩余容量小于第一阈值时,执行以下之一处理过程:依据数据变化信息对缓存区中的页面进行更新;从哈希桶中选择指定日志对页面进行更新,并将更新后的页面写入磁盘中;以及从哈希桶中删除指定日志。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:确定页面的类型;在类型为指定类型时,将日志存储至哈希桶中;在类型不是指定类型时,对页面执行处理过程。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:确定页面中数据的更新次数;在更新次数大于第二阈值时,将日志存储至存储位置。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:在更新次数小于第二阈值时,依据数据变化信息对缓存区中的数据页进行更新。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:检测缓存区中被更新的页面在缓存区所占的比例;在比例大于第三阈值时,丢弃缓存区中被更新的页面。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。