掌桥专利:专业的专利平台
掌桥专利
首页

数据缓存方法、装置、电子设备及计算机可读介质

文献发布时间:2023-06-19 11:22:42


数据缓存方法、装置、电子设备及计算机可读介质

技术领域

本申请实施例涉及数据存储领域,尤其涉及一种数据缓存方法、装置、电子设备及计算机可读介质。

背景技术

在数据库或者存储系统中,缓存技术是有着十分重要的地位。当用户向数据库或存储系统发起数据查询请求时,数据库或存储系统首先会访问缓存。若缓存中存储有用户查询的数据,那么数据库或存储系统直接将用户查询的数据返回给用户。若缓存中没有存储用户查询的数据,那么数据库或存储系统需要访问磁盘(如机械磁盘或固态硬盘等非易失存储介质)获取用户查询的数据。由于磁盘的数据延迟高且数据吞吐量低,因此,如果缓存不能有效地提升数据库或存储系统的数据吞吐量,并降低数据库或存储系统的数据延迟,那么数据库或存储系统的性能将会大大降低。

在现有技术中,以LRU(Least Rcently Used,最近最少使用的页置换技术)或LFU(Least Frequently Used,最不经常使用的页置换技术)为基础,选取缓存中要置换的数据页,并使用置换出的缓存空间缓存数据。具体地,将从磁盘中读取的数据以固定的大小(如4KB的数据页)为单位维护数据结构。使用LRU,从缓存中选取最久没有使用的数据页进行置换,或者使用LFU,从缓存中选取使用频率最低的数据页进行置换。然后,使用置换出的缓存空间缓存数据。然而,不管是LRU还是LFU,其维护的数据结构以数据页的命中率最高为目的,而无法有效减小数据库或存储系统访问磁盘的时间代价,从而不能有效地提升数据库或存储系统的数据吞吐量,并降低数据库或存储系统的数据延迟。

由此可见,如何有效减小数据库或存储系统访问磁盘的时间代价成为当前亟待解决的技术问题。

发明内容

本申请的目的在于提出一种数据缓存方法、装置、电子设备及计算机可读介质,用于解决现有技术中存在的如何有效减小数据库或存储系统访问磁盘的时间代价的问题。

根据本申请实施例的第一方面,提供了一种数据缓存方法。所述方法包括:基于缓存中的第一数据块的块信息,确定所述第一数据块为避免数据库或存储系统访问磁盘而节省的时间;基于所述时间,确定从所述缓存中被置换的第二数据块;基于被置换出的所述第二数据块的缓存空间缓存数据。

根据本申请实施例的第二方面,提供了一种数据缓存方法。所述方法包括:基于缓存中的第一数据页的页信息,确定所述第一数据页为避免数据库或存储系统访问磁盘而节省的时间;基于所述时间,确定从所述缓存中被置换的第二数据页;基于被置换出的所述第二数据页的缓存空间缓存数据。

根据本申请实施例的第三方面,提供了一种数据缓存装置。所述装置包括:第一确定模块,用于基于缓存中的第一数据块的块信息,确定所述第一数据块为避免数据库或存储系统访问磁盘而节省的时间;第二确定模块,用于基于所述时间,确定从所述缓存中被置换的第二数据块;第一缓存模块,用于基于被置换出的所述第二数据块的缓存空间缓存数据。

根据本申请实施例的第四方面,提供了一种数据缓存装置。所述装置包括:第三确定模块,用于基于缓存中的第一数据页的页信息,确定所述第一数据页为避免数据库或存储系统访问磁盘而节省的时间;第四确定模块,用于基于所述时间,确定从所述缓存中被置换的第二数据页;第二缓存模块,用于基于被置换出的所述第二数据页的缓存空间缓存数据。

根据本申请实施例的第五方面,提供了一种电子设备,包括:一个或多个处理器;计算机可读介质,配置为存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述实施例的第一方面或第二方面所述的数据缓存方法。

根据本申请实施例的第六方面,提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例的第一方面或第二方面所述的数据缓存方法。

根据本申请实施例提供的技术方案,基于缓存中的第一数据块的块信息,确定所述第一数据块为避免数据库或存储系统访问磁盘而节省的时间;基于所述时间,确定从所述缓存中被置换的第二数据块;基于被置换出的所述第二数据块的缓存空间缓存数据,与现有的LRU方案或LFU方案相比,基于第一数据块为避免数据库或存储系统访问磁盘而节省的时间,确定从缓存中被置换的第二数据块,并基于被置换出的第二数据块的缓存空间缓存数据,使得数据库或存储系统能够充分利用缓存空间,有效减小数据库或存储系统访问磁盘的时间代价,进而不仅能够有效提升数据库或存储系统的数据吞吐量,而且还能够有效降低数据库或存储系统的数据延迟。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1为本申请实施例一中数据缓存方法的步骤流程图;

图2A为本申请实施例二中数据缓存方法的步骤流程图;

图2B为根据本申请实施例二提供的缓存空间的示意图;

图2C为根据本申请实施例二提供的数据页换出缓存的示意图;

图2D为根据本申请实施例二提供的数据页换出缓存的示意图;

图3为本申请实施例三中数据缓存装置的结构示意图;

图4为本申请实施例四中数据缓存装置的结构示意图;

图5为本申请实施例五中数据缓存装置的结构示意图;

图6为本申请实施例六中数据缓存装置的结构示意图;

图7为本申请实施例七中电子设备的结构示意图;

图8为本申请实施例八中电子设备的硬件结构。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅配置为解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

在现有技术中,以LRU或LFU为基础,选取缓存中要置换的数据页,并使用置换出的缓存空间缓存数据。其中,LRU或LFU维护的数据结构均以数据页的命中率最高为目的。然而,在很多应用场景下,数据页的命中率最高并不代表数据库或存储系统访问磁盘的时间代价最低。也就是说,在保证数据页的命中率最高时,并不能有效减小数据库或存储系统访问磁盘的时间代价。

在解释数据页的命中率最高并不代表数据库或存储系统访问磁盘的时间代价最低的原因之前,做出以下假设:1、与大多数数据缓存方法类似,先假设数据库或存储系统将来的访问模式与历史的访问模式相似;2、为了更清晰地解释数据页的命中率最高并不代表数据库或存储系统访问磁盘的时间代价最低的原因,假设有如下简化的访问场景:2.1、数据库或存储系统具有两种磁盘访问模式,一种磁盘访问模式是连续地访问磁盘中大小为4KB的数据块,另一种磁盘访问模式是连续地访问磁盘中大小为16KB的数据块;2.2、数据库或存储系统访问磁盘中大小为4KB的数据块需要1ms,访问磁盘中大小为16KB的数据块近似也为1ms;2.3、磁盘中大小为4KB的数据块与磁盘中大小为16KB的数据块的访问热度总是相似的;2.4、缓存的大小为640KB,其中包含4KB的数据块80个,16KB的数据块20个。

在当前访问场景下,如果需要置换出缓存中的数据块,由于两种大小的数据块的访问热度相似,缓存系统将会随机选择缓存中大小为4KB的数据进行换出。若缓存系统选择的是将会被独立访问的大小为4KB的数据块,那么缓存中只空出了4KB大小的缓存空间,下次数据库或存储系统再次访问此4KB大小的数据块时,需要访问磁盘读取该4KB大小的数据块,多消耗了1ms的时间。若缓存系统选择的是属于某大小为16KB的数据块中大小为4KB的数据,缓存中同样空出了4KB的缓存空间,下次数据库或存储系统再次访问此大小为16KB的数据块时,需要访问磁盘读取该16KB大小的数据块,同样多消耗了1ms时间。如果在缓存中置换出了某个4KB大小的数据块之后,又换入了一个4KB大小的数据块,缓存系统需要再次在缓存中置换出一个大小为4KB的数据块。类似地,同样会随机选择缓存中大小为4KB的数据块进行换出,若下次数据库或存储系统需要读取这次被换出的大小为4KB的数据块,同样需要多消耗1ms的时间。依次类推,数据库或存储系统每次需要读取已经被换出的数据时,一般都需要多消耗1ms的时间,同时使缓存系统空出4KB大小的缓存空间。然而,还存在更优的方案:如果优先置换出缓存中大小为16KB的数据块,数据库或存储系统需要读取已经被置换出的大小为16KB的数据块时同样只需多消耗1ms的时间,但是,可以使缓存空出大小为16KB的缓存空间,此16KB大小的缓存空间可以缓存更多的相似访问热度的4KB大小的数据块,大大提高缓存的利用率,减少数据库或存储系统访问磁盘的时间代价。由此可见,数据页的命中率最高并不代表数据库或存储系统访问磁盘的时间代价最低。

基于以上解释的数据页的命中率最高并不代表数据库或存储系统访问磁盘的时间代价最低的原因,本申请实施例提出一种数据缓存方法,通过引入为避免数据库或存储系统访问磁盘而节省的时间代价,使得数据库或存储系统能够充分利用缓存空间,有效减小数据库或存储系统访问磁盘的时间代价,进而不仅能够有效提升数据库或存储系统的数据吞吐量,而且还能够有效降低数据库或存储系统的数据延迟。

需要说明的是,本申请实施例一提供的数据缓存方法基于以下假设:缓存中的数据块被访问的粒度不会随时间发生变化。例如,一个数据块被以16KB的大小为单位被访问,那么其会一直被以16KB的大小为单位被访问。另一个数据块以4KB的大小为单位被访问,那么同样地,其会一直被以4KB的大小为单位被访问。在实际的应用中,该假设具有一定的应用场景,例如,存储了用户数据的数据块以固定的4KB大小被访问,而数据库中的元数据以另一个不会变化的大小被访问。又例如,现在广泛使用的LevelDB数据库和RocksDB数据库中的SSTable表,其包含数据块和元数据,在点读操作中用户数据的数据块以固定大小如4KB被访问,元数据同样被以固定的大小全部读出。下面详细描述本申请实施例一提供的数据缓存方法:

参照图1,示出了本申请实施例一的数据缓存方法的步骤流程图。

具体地,本实施例的数据缓存方法包括以下步骤:

在步骤S101中,基于缓存中的第一数据块的块信息,确定所述第一数据块为避免数据库或存储系统访问磁盘而节省的时间。

在本申请实施例中,所述缓存中的第一数据块维护着块信息。所述块信息包括以下中的至少一者:所述第一数据块的大小、所述第一数据块在所述缓存中的访问频率、所述第一数据块在所述磁盘中的访问时间。其中,所述访问频率可理解为在所述缓存中所述第一数据块在单位时间内被访问的次数。所述访问时间可理解为数据库或存储系统在所述磁盘中读取一次所述第一数据块所需要的时间。所述第一数据块为避免数据库或存储系统访问磁盘而节省的时间可理解为由于缓存中存储有所述第一数据块,因此,数据库或存储系统并不需要访问磁盘,以读取所述第一数据块,从而节省了数据库或存储系统访问磁盘的时间。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一些可选实施例中,当所述块信息包括所述第一数据块在所述缓存中的访问频率和所述第一数据块在所述磁盘中的访问时间时,所述基于缓存中的第一数据块的块信息,确定所述第一数据块为避免数据库或存储系统访问磁盘而节省的时间,包括:基于所述缓存中的所述第一数据块的所述访问频率和所述访问时间,计算所述第一数据块为避免所述数据库或所述存储系统访问所述磁盘而节省的所述时间。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一个具体的例子中,在计算所述第一数据块为避免所述数据库或所述存储系统访问所述磁盘而节省的所述时间时,计算所述缓存中的所述第一数据块的所述访问频率与所述缓存中的所述第一数据块的所述访问时间的相乘结果;将所述相乘结果确定为所述第一数据块为避免所述数据库或所述存储系统访问所述磁盘而节省的所述时间。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一些可选实施例中,当所述块信息包括所述第一数据块在所述缓存中的访问频率、所述第一数据块在所述磁盘中的访问时间和所述第一数据块的大小时,所述基于所述缓存中的所述第一数据块的所述访问频率和所述访问时间,计算所述第一数据块为避免所述数据库或所述存储系统访问所述磁盘而节省的所述时间,包括:基于所述缓存中的所述第一数据块的大小、所述访问频率和所述访问时间,计算所述第一数据块中的数据页为避免所述数据库或所述存储系统访问所述磁盘而节省的平均时间。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一个具体的例子中,在计算所述第一数据块中的数据页为避免所述数据库或所述存储系统访问所述磁盘而节省的平均时间时,基于所述缓存中的所述第一数据块的所述访问频率和所述访问时间,计算所述第一数据块为避免所述数据库或所述存储系统访问所述磁盘而节省的所述时间;将所述第一数据块的大小与所述数据页的大小进行相除,以获得所述第一数据块包含的数据页的页数;将所述第一数据块为避免所述数据库或所述存储系统访问所述磁盘而节省的所述时间与所述第一数据块包含的数据页的页数进行相除,以获得所述第一数据块中的数据页为避免所述数据库或所述存储系统访问所述磁盘而节省的平均时间。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在步骤S102中,基于所述时间,确定从所述缓存中被置换的第二数据块。

在一些可选实施例中,在基于所述时间,确定从所述缓存中被置换的第二数据块时,确定所述时间最少的所述第一数据块为从所述缓存中被置换的所述第二数据块。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一个具体的例子中,如表1所示,缓存中当前具有六个数据块,并且每个数据块的大小可以不相同。

表1

在缓存中选择被置换的数据块时,首先计算缓存中的数据块为避免数据库或存储系统访问磁盘而节省的时间,其为Fi*Ti。然后,计算数据块中每个数据页为数据库或存储系统访问磁盘而节省的平均时间,其为Fi*Ti/(Si/4KB)。最后选取“数据块中每个数据页为数据库或存储系统访问磁盘而节省的平均时间”最小的数据块进行置换。如表1所示,第一个被置换出的数据块是第一个大小为4KB的数据块,其数据页为数据库或存储系统访问磁盘而节省的平均时间为5最小;第二个需要被置换出的数据块时第一个大小16KB的数据块,其数据页为数据库或存储系统访问磁盘而节省的平均时间为11。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在步骤S103中,基于被置换出的所述第二数据块的缓存空间缓存数据。

在本申请实施例中,所述缓存系统基于被置换出的所述第二数据块的缓存空间缓存相关数据。例如,用户数据、元数据等。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在实际应用中,本申请实施例一提供的数据缓存方法以访问的数据块为单位组织访问信息,而不是像现有的缓存方法一样以固定的数据页大小为单位组织访问信息,同时将为避免数据库或存储系统访问磁盘而节省的时间代价与数据块绑定,置换出数据页为数据库或存储系统访问磁盘而节省的平均时间最小的数据块。在具体的实现过程中,维护一个排序数组,每个排序数组的元素存储着指向实际数据块的指针、数据块在缓存中的访问频率和数据块在磁盘中的访问时间。如果缓存中的数据块需要被置换,便置换出数据页为数据库或存储系统访问磁盘而节省的平均时间最小的数据块即可。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

通过本申请实施例提供的数据缓存方法,基于缓存中的第一数据块的块信息,确定所述第一数据块为避免数据库或存储系统访问磁盘而节省的时间;基于所述时间,确定从所述缓存中被置换的第二数据块;基于被置换出的所述第二数据块的缓存空间缓存数据,与现有的LRU方案或LFU方案相比,基于第一数据块为避免数据库或存储系统访问磁盘而节省的时间,确定从缓存中被置换的第二数据块,并基于被置换出的第二数据块的缓存空间缓存数据,使得数据库或存储系统能够充分利用缓存空间,有效减小数据库或存储系统访问磁盘的时间代价,进而不仅能够有效提升数据库或存储系统的数据吞吐量,而且还能够有效降低数据库或存储系统的数据延迟。

本实施例的数据缓存方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:摄像头、终端、移动终端、PC机、服务器、车载设备、娱乐设备、广告设备、个人数码助理(PDA)、平板电脑、笔记本电脑、掌上游戏机、智能眼镜、智能手表、可穿戴设备、虚拟显示设备或显示增强设备(如Google Glass、Oculus Rift、Hololens、Gear VR)等。

需要说明的是,本申请实施例一提供的数据缓存方法基于以下假设:缓存中的数据块被访问的粒度不会随时间发生变化。因此,本申请实施例一提供的数据缓存方法具有一定的应用场景,但是仍然不够通用。在很多应用场景下,某个数据块被访问的大小仍会随时间发生变化。例如,某个大小为64KB的数据块,部分时间内被以64KB大小的粒度访问,另一部分时间分别多次以4KB大小的粒度被访问。为了不被上述假设所束缚,而使得数据缓存方法更加通用,本申请实施例二进一步提出了一种数据缓存方法。下面详细描述本申请实施例二提供的数据缓存方法:

参照图2A,示出了本申请实施例二的数据缓存方法的步骤流程图。

具体地,本实施例的数据缓存方法包括以下步骤:

在步骤S201中,基于缓存中的第一数据页的页信息,确定所述第一数据页为避免数据库或存储系统访问磁盘而节省的时间。

在本申请实施例中,所述页信息包括多个用于指向包含所述第一数据页的数据块的指针。所述第一数据页为避免数据库或存储系统访问磁盘而节省的时间可理解为由于缓存中存储有所述第一数据页,因此,数据库或存储系统并不需要访问磁盘,以读取所述第一数据页,从而节省了数据库或存储系统访问磁盘的时间。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一些可选实施例中,在基于缓存中的第一数据页的页信息,确定所述第一数据页为避免数据库或存储系统访问磁盘而节省的时间时,基于多个所述指针指向的所述数据块中的第三数据页为避免所述数据库或所述存储系统访问所述磁盘而节省的平均时间,确定所述第一数据页为避免所述数据库或所述存储系统访问所述磁盘而节省的所述时间。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一个具体的例子中,在确定所述第一数据页为避免所述数据库或所述存储系统访问所述磁盘而节省的所述时间时,将多个所述指针分别指向的所述数据块中的第三数据页为避免所述数据库或所述存储系统访问所述磁盘而节省的平均时间进行相加,以获得所述第一数据页为避免所述数据库或所述存储系统访问所述磁盘而节省的所述时间。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一些可选实施例中,所述基于多个所述指针指向的所述数据块中的第三数据页为避免所述数据库或所述存储系统访问所述磁盘而节省的平均时间,确定所述第一数据页为避免所述数据库或所述存储系统访问所述磁盘而节省的所述时间之前,所述方法还包括:基于所述数据块的块信息,确定所述数据块中的所述第三数据页为避免所述数据库或所述存储系统访问所述磁盘而节省的所述平均时间。其中,所述块信息包括以下中的至少一者:所述数据块在所述缓存中的访问频率、所述数据块在所述磁盘中的访问时间、所述数据块的大小。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一个具体的例子中,在确定所述数据块中的所述第三数据页为避免所述数据库或所述存储系统访问所述磁盘而节省的所述平均时间时,基于所述数据块在所述缓存中的访问频率、所述数据块在所述磁盘中的访问时间和所述数据块的大小,计算所述数据块中的所述第三数据页为避免所述数据库或所述存储系统访问所述磁盘而节省的所述平均时间。其中,计算所述数据块中的所述第三数据页为避免所述数据库或所述存储系统访问所述磁盘而节省的所述平均时间的具体实施方式与上述实施例一中计算所述第一数据块中的数据页为避免所述数据库或所述存储系统访问所述磁盘而节省的平均时间的具体实施方式类似,在此不再赘述。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一个具体的例子中,某个数据块被读入缓存时,其以数据页(假设大小为4KB)为单位进行缓存,但是访问数据块的块信息仍然保留。如图2B所示,在当前时刻缓存中总共有7个数据页,其被五种访问模式访问过:第一种访问模式是,连续访问数据页1,数据页2,数据页3,数据页4;第二种访问模式是,连续访问数据页3,数据页4,数据页5;第三种访问模式是,连续访问数据页3,数据页4,数据页5,数据页6;第四种访问模式是,访问数据页6;第五种访问模式是,访问数据页7。每种访问模式对应于一个数据块。具体地,第一种访问模式对应的是数据页1、数据页2、数据页3和数据页4组成的数据块,第二种访问模式对应的是数据页3、数据页4和数据页5组成的数据块,第三种访问模式对应的是数据页3、数据页4、数据页5和数据页6组成的数据块,第四种访问模式对应的是数据页6组成的数据块,第五种访问模式对应的是数据页7组成的数据块。每个数据块记录着数据块在缓存中的访问频率、数据块在磁盘中的访问时间和数据块的大小三个参数。每个数据页所维护的信息包括多个指针,每个指针指向包含该数据页的数据块。数据块中的每个数据页为避免所述数据库或所述存储系统访问所述磁盘而节省的时间为指针所指向的所有数据块中的所述第三数据页为避免所述数据库或所述存储系统访问所述磁盘而节省的所述平均时间之和。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在步骤S202中,基于所述时间,确定从所述缓存中被置换的第二数据页。

在一些可选实施例中,在基于所述时间,确定从所述缓存中被置换的第二数据页时,确定所述时间最少的所述第一数据页为从所述缓存中被置换的所述第二数据页。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在步骤S203中,基于被置换出的所述第二数据页的缓存空间缓存数据。

在本申请实施例中,所述缓存系统基于被置换出的所述第二数据页的缓存空间缓存相关数据。例如,用户数据、元数据等。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一些可选实施例中,所述基于所述时间,确定从所述缓存中被置换的第二数据页之后,所述方法还包括:删除被置换出的所述第二数据页的多个所述指针指向的所述数据块对应的访问模式。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

在一个具体的例子中,当需要在缓存中选取数据页进行换出时,选取为避免数据库或存储系统访问磁盘而节省的时间最少的数据页进行换出,换出后同时删除该数据页的多个指针指向的数据块对应的访问模式。例如,当在缓存中置换出数据页1时,缓存中仍然包含的数据页和访问模式,如图2C所示。又例如,当在缓存中置换出数据页6时,缓存中仍然包含的数据页和访问模式,如图2D所示。如此,在下次需要换出数据页时,与上次换出的数据页属于同一访问模式的数据页有更大的概率被换出,故而既兼顾了以访问的数据块为单位的优势,能够充分减少数据库或存储系统访问磁盘的时间代价,又不用受“某个数据块被访问的粒度不会随时间发生变化”的假设的约束。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。

通过本申请实施例提供的数据缓存方法,基于缓存中的第一数据页的页信息,确定所述第一数据页为避免数据库或存储系统访问磁盘而节省的时间;基于所述时间,确定从所述缓存中被置换的第二数据页;基于被置换出的所述第二数据页的缓存空间缓存数据,与现有的LRU方案或LFU方案相比,基于第一数据页为避免数据库或存储系统访问磁盘而节省的时间,确定从缓存中被置换的第二数据页,并基于被置换出的第二数据页的缓存空间缓存数据,使得数据库或存储系统能够充分利用缓存空间,有效减小数据库或存储系统访问磁盘的时间代价,进而不仅能够有效提升数据库或存储系统的数据吞吐量,而且还能够有效降低数据库或存储系统的数据延迟。

本实施例的数据缓存方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:摄像头、终端、移动终端、PC机、服务器、车载设备、娱乐设备、广告设备、个人数码助理(PDA)、平板电脑、笔记本电脑、掌上游戏机、智能眼镜、智能手表、可穿戴设备、虚拟显示设备或显示增强设备(如Google Glass、Oculus Rift、Hololens、Gear VR)等。

参照图3,示出了本申请实施例三中数据缓存装置的结构示意图。

本实施例的数据缓存装置包括:第一确定模块301,用于基于缓存中的第一数据块的块信息,确定所述第一数据块为避免数据库或存储系统访问磁盘而节省的时间;第二确定模块302,用于基于所述时间,确定从所述缓存中被置换的第二数据块;第一缓存模块303,用于基于被置换出的所述第二数据块的缓存空间缓存数据。

本实施例的数据缓存装置用于实现前述多个方法实施例中相应的数据缓存方法,并具有相应的方法实施例的有益效果,在此不再赘述。

参照图4,示出了本申请实施例四中数据缓存装置的结构示意图。

本实施例的数据缓存装置包括:第一确定模块401,用于基于缓存中的第一数据块的块信息,确定所述第一数据块为避免数据库或存储系统访问磁盘而节省的时间;第二确定模块402,用于基于所述时间,确定从所述缓存中被置换的第二数据块;第一缓存模块403,用于基于被置换出的所述第二数据块的缓存空间缓存数据。

可选地,所述块信息包括所述第一数据块在所述缓存中的访问频率和所述第一数据块在所述磁盘中的访问时间,所述第一确定模块401,包括:第一确定子模块4011,用于基于所述缓存中的所述第一数据块的所述访问频率和所述访问时间,计算所述第一数据块为避免所述数据库或所述存储系统访问所述磁盘而节省的所述时间。

可选地,所述块信息还包括所述第一数据块的大小,所述第一确定子模块4011,包括:确定单元4012,用于基于所述缓存中的所述第一数据块的大小、所述访问频率和所述访问时间,计算所述第一数据块中的数据页为避免所述数据库或所述存储系统访问所述磁盘而节省的平均时间。

可选地,所述第二确定模块402,具体用于:确定所述时间最少的所述第一数据块为从所述缓存中被置换的所述第二数据块。

本实施例的数据缓存装置用于实现前述多个方法实施例中相应的数据缓存方法,并具有相应的方法实施例的有益效果,在此不再赘述。

参照图5,示出了本申请实施例五中数据缓存装置的结构示意图。

本实施例的数据缓存装置包括:第三确定模块501,用于基于缓存中的第一数据页的页信息,确定所述第一数据页为避免数据库或存储系统访问磁盘而节省的时间;第四确定模块502,用于基于所述时间,确定从所述缓存中被置换的第二数据页;第二缓存模块503,用于基于被置换出的所述第二数据页的缓存空间缓存数据。

本实施例的数据缓存装置用于实现前述多个方法实施例中相应的数据缓存方法,并具有相应的方法实施例的有益效果,在此不再赘述。

参照图6,示出了本申请实施例六中数据缓存装置的结构示意图。

本实施例的数据缓存装置包括:第三确定模块601,用于基于缓存中的第一数据页的页信息,确定所述第一数据页为避免数据库或存储系统访问磁盘而节省的时间;第四确定模块602,用于基于所述时间,确定从所述缓存中被置换的第二数据页;第二缓存模块603,用于基于被置换出的所述第二数据页的缓存空间缓存数据。

可选地,所述页信息包括多个用于指向包含所述第一数据页的数据块的指针,所述第三确定模块601,包括:第二确定子模块6012,用于基于多个所述指针指向的所述数据块中的第三数据页为避免所述数据库或所述存储系统访问所述磁盘而节省的平均时间,确定所述第一数据页为避免所述数据库或所述存储系统访问所述磁盘而节省的所述时间。

可选地,所述第二确定子模块6012之前,所述第三确定模块601还包括:第三确定子模块6011,用于基于所述数据块的块信息,确定所述数据块中的所述第三数据页为避免所述数据库或所述存储系统访问所述磁盘而节省的所述平均时间。

可选地,所述块信息包括以下中的至少一者:所述数据块在所述缓存中的访问频率、所述数据块在所述磁盘中的访问时间、所述数据块的大小。

可选地,所述第四确定模块602,具体用于:确定所述时间最少的所述第一数据页为从所述缓存中被置换的所述第二数据页。

可选地,所述第四确定模块602之后,所述装置还包括:删除模块604,用于删除被置换出的所述第二数据页的多个所述指针指向的所述数据块对应的访问模式。

本实施例的数据缓存装置用于实现前述多个方法实施例中相应的数据缓存方法,并具有相应的方法实施例的有益效果,在此不再赘述。

图7为本申请实施例七中电子设备的结构示意图;该电子设备可以包括:

一个或多个处理器701;

计算机可读介质702,可以配置为存储一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述实施例一或实施例二所述的数据缓存方法。

图8为本申请实施例八中电子设备的硬件结构;如图8所示,该电子设备的硬件结构可以包括:处理器801,通信接口802,计算机可读介质803和通信总线804;

其中处理器801、通信接口802、计算机可读介质803通过通信总线804完成相互间的通信;

可选地,通信接口802可以为通信模块的接口,如GSM模块的接口;

其中,处理器801具体可以配置为:基于缓存中的第一数据块的块信息,确定所述第一数据块为避免数据库或存储系统访问磁盘而节省的时间;基于所述时间,确定从所述缓存中被置换的第二数据块;基于被置换出的所述第二数据块的缓存空间缓存数据。此外,处理器801还可以配置为:基于缓存中的第一数据页的页信息,确定所述第一数据页为避免数据库或存储系统访问磁盘而节省的时间;基于所述时间,确定从所述缓存中被置换的第二数据页;基于被置换出的所述第二数据页的缓存空间缓存数据。

处理器801可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

计算机可读介质803可以是,但不限于,随机存取存储介质(Random AccessMemory,RAM),只读存储介质(Read Only Memory,ROM),可编程只读存储介质(Programmable Read-Only Memory,PROM),可擦除只读存储介质(Erasable ProgrammableRead-Only Memory,EPROM),电可擦除只读存储介质(Electric Erasable ProgrammableRead-Only Memory,EEPROM)等。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含配置为执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分从网络上被下载和安装,和/或从可拆卸介质被安装。在该计算机程序被中央处理单元(CPU)执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读介质例如可以但不限于是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储介质(RAM)、只读存储介质(ROM)、可擦式可编程只读存储介质(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储介质(CD-ROM)、光存储介质件、磁存储介质件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输配置为由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写配置为执行本申请的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络:包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个配置为实现规定的逻辑功能的可执行指令。上述具体实施例中有特定先后关系,但这些先后关系只是示例性的,在具体实现的时候,这些步骤可能会更少、更多或执行顺序有调整。即在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本申请实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括第一确定模块、第二确定模块和第一缓存模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,第一确定模块还可以被描述为“基于缓存中的第一数据块的块信息,确定所述第一数据块为避免数据库或存储系统访问磁盘而节省的时间的模块”。

作为另一方面,本申请还提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例一或实施例二所描述的数据缓存方法。

作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的装置中所包含的;也可以是单独存在,而未装配入该装置中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该装置执行时,使得该装置:基于缓存中的第一数据块的块信息,确定所述第一数据块为避免数据库或存储系统访问磁盘而节省的时间;基于所述时间,确定从所述缓存中被置换的第二数据块;基于被置换出的所述第二数据块的缓存空间缓存数据。此外,还可使得该装置:基于缓存中的第一数据页的页信息,确定所述第一数据页为避免数据库或存储系统访问磁盘而节省的时间;基于所述时间,确定从所述缓存中被置换的第二数据页;基于被置换出的所述第二数据页的缓存空间缓存数据。

在本公开的各种实施方式中所使用的表述“第一”、“第二”、“所述第一”或“所述第二”可修饰各种部件而与顺序和/或重要性无关,但是这些表述不限制相应部件。以上表述仅配置为将元件与其它元件区分开的目的。例如,第一用户设备和第二用户设备表示不同的用户设备,虽然两者均是用户设备。例如,在不背离本公开的范围的前提下,第一元件可称作第二元件,类似地,第二元件可称作第一元件。

当一个元件(例如,第一元件)称为与另一元件(例如,第二元件)“(可操作地或可通信地)联接”或“(可操作地或可通信地)联接至”另一元件(例如,第二元件)或“连接至”另一元件(例如,第二元件)时,应理解为该一个元件直接连接至该另一元件或者该一个元件经由又一个元件(例如,第三元件)间接连接至该另一个元件。相反,可理解,当元件(例如,第一元件)称为“直接连接”或“直接联接”至另一元件(第二元件)时,则没有元件(例如,第三元件)插入在这两者之间。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

相关技术
  • 数据缓存方法、装置、电子设备及计算机可读介质
  • 数据缓存方法、装置、电子设备及计算机可读存储介质
技术分类

06120112901328