CN104424119A - 存储空间配置方法和装置 - Google Patents
存储空间配置方法和装置 Download PDFInfo
- Publication number
- CN104424119A CN104424119A CN201310376531.6A CN201310376531A CN104424119A CN 104424119 A CN104424119 A CN 104424119A CN 201310376531 A CN201310376531 A CN 201310376531A CN 104424119 A CN104424119 A CN 104424119A
- Authority
- CN
- China
- Prior art keywords
- storage space
- data
- storage area
- buffer memory
- query
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Abstract
本发明公开了一种存储空间配置方法和装置。所述方法包括:获取用于配置存储空间的配置命令,所述存储空间用于临时性地存储数据,并且根据来自处理单元的查询操作来返回所述处理单元所需的数据;根据所述配置命令来生成配置参数;以及使用所述配置参数来配置所述存储空间。在本发明中,可以通过可配置的方案来对存储空间进行更改和配置,以便根据用户的需求来定制存储空间,从而增加了存储空间使用时的灵活性。
Description
技术领域
本发明涉及计算机技术领域,更具体地,本发明涉及一种存储空间配置方法和装置。
背景技术
近年来,随着信息技术和市场的高速发展,数据管理逐渐呈现出数据总量不断增加、数据格式和数据类型越发复杂的趋势。为了使得用户能够在海量的数据中快速获取他们所需要的数据,数据库技术应运而生。
数据库是按照数据结构来组织、存储和管理数据的仓库。由于数据库通常存储在物理数据源(例如,硬盘)中,所以受到输入/输出接口性能的限制,处理单元对于数据库的访问速度(查询速度)较为缓慢。此外,由于用户可能在数据库中多次执行相同的查询语句,这就加倍降低了数据库的查询效率。
为了减少处理单元对于数据库直接访问的频次、提高数据库的查询速度,人们提出了一种数据库缓存机制。缓存是介于处理单元与物理数据源之间的存储空间,并且其对于处理单元而言,具有很快的读写速度。受到存储空间的限制,缓存内的数据往往是对物理数据源中一部分数据的复制,并且缓存在特定的时刻或事件会与物理数据源进行同步,以保证处理单元可以直接从缓存中查询所需的数据,而无需访问数据库,从而实现快速查询。
目前,所采用的数据库缓存机制主要是单层缓存机制,即,在处理单元与物理数据源之间仅仅包括一层缓存。实践证明,当在数据库中仅仅包括不经常改变的数据项并且处理单元经常对于这些数据项发出大量的相同查询时,单层缓存能够起到不错的效果。然而,当在数据库中的数据项较为复杂且经常改变时,单层缓存机制对于数据查询效率的提升效果并不明显。
为此,人们进一步提出了一种多层缓存机制,即,在处理单元与物理数据源之间包括多于一层的缓存,并且使得每层缓存具有不同的查询优先级。在进行查询时,处理单元将按照优先级从高到低的顺序,对多层缓存进行查询。通过逐层地提供查询服务,多层缓存机制在一定意义上提高了数据查询效率。然而,其缺陷在于,与单层缓存相似地,多层缓存机制一旦建立,将无法对其再进行更改和配置,这使得现有的缓存机制无法很好地适应当前数据的搜索趋势。
因此,需要一种新型的存储空间配置方法和装置来解决上述问题。
发明内容
为了解决上述技术问题,根据本发明的一个方面,提供了一种存储空间配置方法,所述方法包括:获取用于配置存储空间的配置命令,所述存储空间用于临时性地存储数据,并且根据来自处理单元的查询操作来返回所述处理单元所需的数据;根据所述配置命令来生成配置参数;以及使用所述配置参数来配置所述存储空间。
此外,根据本发明的另一方面,提供了一种存储空间配置装置,所述装置包括:命令获取单元,用于获取用于配置存储空间的配置命令,所述存储空间用于临时性地存储数据,并且根据来自处理单元的查询操作来返回所述处理单元所需的数据;参数生成单元,用于根据所述配置命令来生成配置参数;以及空间配置单元,用于使用所述配置参数来配置所述存储空间。
与现有技术相比,采用根据本发明的存储空间配置方法和装置,可以根据用于配置存储空间的配置命令来配置存储空间,以使得存储空间能够高效地响应于处理单元的查询操作。因此,在本发明中,可以通过可配置的方案来对存储空间进行更改和配置,以便根据用户的需求来定制存储空间,从而增加了存储空间使用时的灵活性。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1是图示了根据本发明的存储空间配置方法的流程图。
图2是图示了根据本发明的存储空间配置装置的框图。
图3是图示了根据本发明第一实施例的存储空间配置方法的流程图。
图4是图示了根据本发明第一实施例的存储空间配置装置的框图。
图5是图示了根据本发明实施例的数据查询方法的流程图。
图6是图示了根据本发明实施例的对存储空间进行调整的进程的流程图。
图7是图示了根据本发明第一实施例的存储空间配置方法的原理图。
图8是图示了根据本发明第二实施例的存储空间配置方法的流程图。
图9是图示了根据本发明第二实施例的存储空间配置装置的框图。
图10是图示了根据本发明第二实施例的存储空间配置方法的原理图。
具体实施方式
将参照附图详细描述根据本发明的各个实施例。这里,需要注意的是,在附图中,将相同的附图标记赋予基本上具有相同或类似结构和功能的组成部分,并且将省略关于它们的重复描述。
在下文中,将参考图1和图2来描述根据本发明的存储空间配置方法和装置。
图1是图示了根据本发明的存储空间配置方法的流程图,而图2是图示了根据本发明的存储空间配置装置的框图。
图1所图示的存储空间配置方法通过图2所图示的存储空间配置装置来实现。具体地,所述存储空间配置装置100包括:命令获取单元110、参数生成单元120、和空间配置单元130。
如图1所图示的,所述存储空间配置方法包括:
在步骤S110中,命令获取单元110获取用于配置存储空间的配置命令,所述存储空间用于临时性地存储数据,并且根据来自处理单元的查询操作来返回所述处理单元所需的数据;
在步骤S120中,参数生成单元120根据所述配置命令来生成配置参数;以及
在步骤S130中,空间配置单元130使用所述配置参数来配置所述存储空间。
由此可见,采用根据本发明的存储空间配置方法和装置,可以根据用于配置存储空间的配置命令来配置存储空间,以使得存储空间能够高效地响应于处理单元的查询操作。因此,在本发明中,可以通过可配置的方案来对存储空间进行更改和配置,以便根据用户的需求来定制存储空间,从而增加了存储空间使用时的灵活性。
在下文中,将参考图3和图4来描述根据本发明第一实施例的存储空间配置方法和装置。
图3是图示了根据本发明第一实施例的存储空间配置方法的流程图,而图4是图示了根据本发明第一实施例的存储空间配置装置100的框图。
图3所图示的存储空间配置方法可以通过图4所图示的存储空间配置装置100来实现。如图4所图示的,与图2中相似地,该存储空间配置装置100可以包括:命令获取单元110、参数生成单元120、和空间配置单元130。此外,优选地,该信息处理装置100还可以包括:信息接收单元140和命令生成单元150。
该存储空间配置装置100可以用于对一个或多个存储空间进行配置,所述存储空间用于临时性地存储数据,并且根据来自处理单元的查询操作来返回所述处理单元所需的数据。
另外,该存储空间可以具有单层结构或多层结构,即所述存储空间可以包括至少一层存储区域,并且根据处理单元对于每一层存储区域的访问速度等因素来向每一层存储空间分配不同的查询优先级,所述查询优先级是所述处理单元在所述存储空间中查询数据的顺序,并且在所述存储空间中,上层存储区域具有比下层存储区域更高的查询优先级。
具体地,所述存储空间可以是用于减少处理单元对于数据库直接访问的频次、提高数据库的查询速度的缓存。缓存介于处理单元与数据库之间,在缓存中临时地存储有数据库中一部分数据的副本,并且缓存在特定的时刻或基于特定的事件而与物理数据源进行同步,以保证处理单元可以按照很好的查询效率来从缓存中查询所需的数据,而无需访问数据库。
需要说明的是,尽管在本发明的实施例中将以用于数据库的缓存作为存储空间的示例来具体地说明。但是,本发明不限于此。该缓存可以是用于其他用途的缓存,例如,用于中央处理单元的缓存等。并且,该存储空间也可以是除了缓存之外的其他类型的存储空间,诸如,物理存储空间(例如,物理内存、硬盘)、虚拟存储空间(例如,虚拟内存)、各种类型的数据库(例如,关系型数据库、键值数据库等)。
如图3所图示的,根据本发明第一实施例的存储空间配置方法包括:
在步骤S210中,生成存储空间。
如背景技术所述,为了提高数据查询速度,处理单元(例如,数据库的客户端应用)可以优先地从具有更高查询速度的存储空间(例如,缓存)中获得数据,并且只有当在存储空间中无法获得数据时,才直接地访问底层数据库并从其中提取数据。
为此,在存储空间配置装置100中,空间配置单元130可以首先生成存储空间(例如,缓存体系),并且根据设计需求,使得该存储空间包括单层存储区域或多层存储区域。
由于在不考虑实现成本的情况下、多层结构比单层结构往往具有更高的查询效率,所以优选地,空间配置单元130所生成的存储空间可以是多层缓存体系。该多层缓存体系可以包括N层缓存,其中N是大于1的整数。
进一步,可以根据处理单元对于各层缓存的访问速度,将具有最快访问速度的一层缓存确定为第一层缓存,将具有第二快访问速度的一层缓存确定为第二层缓存,以此类推。
然而,需要说明的是,除了可以根据处理单元对于缓存的访问速度来确定各层缓存的先后顺序之外,还可以根据缓存空间的存储容量、物理介质、和用户偏好等其他因素来设置缓存的次序。
此外,空间配置单元130还可以向每一层存储区域分配不同的查询优先级,所述查询优先级是所述处理单元在所述存储空间中查询数据的顺序。
默认地,在所述缓存体系中,上层缓存往往比下层缓存具有更高的查询优先级。即,第一层缓存具有第一查询优先级,第二层缓存具有第二查询优先级,以此类推,而底层数据库则具有最低的查询优先级。
另外,为了使得具有多层结构的存储区域能够解决各种数据查询情况(例如,频繁查询等),当生成存储空间时,空间配置单元130优选地可以让每层存储区域解决不同的问题,使得每层存储区域具有不同的侧重点。
具体地,空间配置单元130可以使用不同的配置参数来设置不同层的缓存的实现方式。所述实现方式包括以下各项中的至少一个:判断是否允许在当前层缓存中存储数据的过滤函数、用于将数据淘汰到下层缓存的替换算法、存储容量、和物理介质等。
例如,在一个具体实现方式中,可以如下地实现N层缓存(其中,假设N=3),以便减少处理单元对于底层数据库(例如,关系数据库)直接访问的频次:
1)在第一层缓存中,将过滤函数设置为允许在其中存储任何类型的数据;将替换算法设置为采用自适应替换缓存(ARC)算法,它是一种高效的缓存替换策略;将存储容量设置为5-10兆字节(MB),并且将物理介质设置为内存。
2)在第二层缓存中,将过滤函数设置为仅仅允许在其中存储包括关键词(例如,“ABC”)的数据;将替换算法设置为采用最近最少使用替换(LRU)算法,它是被使用的最为普遍的基本缓存替换算法;将存储容量设置为200M,并且将物理介质设置为磁盘。
3)在第三层缓存中,将过滤函数设置为仅仅允许在其中存储以下数据,当直接从底层数据库中提取该数据时,所花费的时间大于或等于阈值(例如,600毫秒(ms));将替换算法设置为采用兼顾时间和频率替换(LRFU)算法,它是对LRU算法和最少访问频率替换(LFU)算法的结合,其基本思想是采用一个权值函数兼顾最近访问时间(recency)和频繁访问数据(frequency)两个特性;将存储容量设置为2GB,并且将物理介质设置为一个键值(Key-Value)数据库。
然后,在随后的查询操作中,处理单元可以利用空间配置单元130所生成的灵活高效的多层缓存体系来快速地查询用户所需的数据。
图5是图示了根据本发明实施例的数据查询方法的流程图。
如图5所图示的,根据本发明实施例的数据查询方法包括:
在步骤S310中,接收查询请求。
在用户希望查询某一数据时,为用户提供服务的相关应用程序可以生成一个查询请求,并且向处理单元发送该查询请求。在接收到该查询请求之后,处理单元可以解析该查询请求,并且提取其中的查询指令,以便在多层缓存体系中执行查询操作,以获得用户所需的数据。
在步骤S320中,判断数据是否存储在第一层存储空间中。
接下来,根据在多层缓存体系中查询优先级的顺序,该处理单元首先在第一层缓存中进行查找,以确定用户所需的数据是否存储在该第一层缓存中。如果判断出该数据存在于第一层缓存中,则该数据查询方法前进到步骤S325,否则,前进到步骤S330,继续执行。
在步骤S325中,从第一层存储空间中获得数据。
如果判断出用户所需的数据存在于第一层缓存中,则该处理单元从第一层缓存中获得数据,并且根据所获得的数据来生成查询响应。如上所述,由于处理单元对于第一层缓存往往具有最高的访问速度,所以这个过程将是非常快速的。
在步骤S330中,判断数据是否存储在第二层存储空间中。
如果在第一层缓存中没有查找到用户所需的数据,则该处理单元继续在第二层缓存中进行查找,以确定用户所需的数据是否存储在该第二层缓存中。如果判断出该数据存在于第二层缓存中,则该数据查询方法前进到步骤S335,否则,前进到步骤S340,继续执行。
在步骤S335中,从第二层存储空间中获得数据。
如果判断出用户所需的数据存在于第二层缓存中,则该处理单元从第二层缓存中获得数据,并且将所获得的数据包括在查询响应中。
以此类推,在接收到查询请求之后,处理单元依次地在各层缓存中查找目的数据。如果在某一层缓存中找到该数据,则从该层缓存中获得所需的数据,并且生成查询响应。如果在该层缓存中未能找到该数据,则该处理单元前进到下一层缓存中继续查找。
在步骤S340中,判断数据是否存储在第N层存储空间中。
在步骤S345中,从第N层存储空间中获得数据。
相似地,如果处理单元在第N层缓存中查找到用户所需的数据,则该处理单元从第N层缓存中获得数据。由于尽管第N层缓存的访问速度可能比第一层到第N-1层缓存要慢、但是仍大大高于底层数据库的访问速度,所以这个过程仍然在一定程度上提升了数据的查询效率,保证了用户能够更快地获得相关数据。
如果处理单元在第N层缓存中仍然没有查找到该数据,则该数据查询方法前进到步骤S350。
在步骤S350中,判断数据是否存储在数据库中。
如果在对各层缓存进行遍历之后仍未能发现(命中)目的数据,则处理单元访问底层数据库进行数据查询。如果判断出该数据存在于数据库中,则该数据查询方法前进到步骤S355,否则,该处理单元将表示出并未查询到数据的错误信息添加到查询响应中,并且前进到步骤S360,继续执行。
在步骤S355中,从数据库中获得数据。
如果用户所需的数据存储在数据库中,则处理单元直接访问数据库以从其中提取该数据,并且将该数据包括在所生成的查询响应中,以便稍后向相关应用程序发送。
在步骤S360中,发送查询响应。
处理单元将包括用户所需数据或包括错误信息的查询响应发送到应用程序,以便向用户返回所需的数据。
在步骤S370中,对存储空间进行调整。
为了实现最优的处理效率,优选地,与用于从缓存或数据库中获得数据的步骤S235、步骤S335、步骤S345、或步骤S355并行地,处理单元还将另外开启一个进程,用于对整个缓存体系进行调整,以便提升缓存命中率,提高数据查询效率。具体地,该进程可以根据数据的热度来将缓存命中的数据插入到第一层缓存中,根据各层缓存的替换算法来调整该层缓存中数据的位置,并且根据各层缓存的存储容量和过滤函数来向下淘汰多余的数据。
图6是图示了根据本发明实施例的对存储空间进行调整的进程的流程图。
如图6所图示的,根据本发明实施例的对存储空间进行调整的进程包括:
在步骤S410中,判断被命中的数据位于第i层存储空间还是数据库中。
如果用户所需的数据被命中,则处理单元与用于从缓存或数据库中获得数据的进程并行地,开启对存储空间进行调整的进程。
在该进程中,处理单元首先判断用户所需的数据是在某一层(例如,第i层,其中1≤i≤N)缓存中还是在数据库中被命中。如果判断出该数据是在第i层缓存中查找到的,则该进程前进到步骤S415;如果判断出该数据是在数据库中查找的,则该进程跳转到步骤S425。
在步骤S415中,根据缓存算法来调整第i层存储空间中的数据。
当被命中的数据位于第i层缓存中时,处理单元根据第i层缓存所采用的替换算法来对第i层缓存中的数据进行调整。例如,该替换算法可以包括以下各项中的任何一个:上述的LRU、ARC、LRFU、和LFU算法、以及其他各种替换算法。
为了方便起见,这里基于上面例示的N层缓存(其中,假设N=3)的具体实现方式来继续说明,并且假设用户所需的数据库在第三层缓存中被命中。
由于如上所述地在第三层缓存中采用的替换算法是LRFU算法,所以处理单元根据兼顾最近访问时间(recency)和频繁访问数据(frequency)两个特性,并且基于最近一次访问所占权值最大、越往后其权值越小的原则来确定组合时间和频率(CRF)权值,以表示该数据未来被访问的可能。该CRF权值通过权值函数和记录的上次访问的CRF权值得到。
在确定出第三层缓存中各个数据的CRF权值之外,处理单元按照CRF权值从大到小来对所有的数据进行排序,以便调整第三层缓存中数据的位置。
在步骤S420中,判断第i层存储空间是否是第一层存储空间。
接下来,处理单元判断被命中的数据所位于的第i层缓存是否是第一层缓存,如果是,则该进程结束;否则,该进程前进到步骤S425。
在步骤S425中,产生插入线程,该插入线程用于将被命中的数据插入到第k层存储空间中,其中k=1。
在本示例中,由于被命中的数据位于的第三层缓存中,所以处理单元将产生插入线程。
具体地,由于被命中的数据具有最高的热度,并且由于第一层缓存比第三层缓存具有更高的查询优先级,所以为了保证在下次相同的查询时能更快地查询到该数据,所以处理单元根据热度来将被命中的数据插入到第一层缓存中。
需要说明的是,在其他情况下,如果在步骤S410中判断出被命中的数据位于数据库中,则处理单元跳过步骤S415和S420,直接产生该插入进程。
在步骤S430中,判断当前数据是否符合第k层存储空间的过滤函数。
接下来,处理单元判断被命中的数据是否符合第一层缓存的过滤函数,以便决定该数据是否被允许插入到第一层缓存中。如果是,则该进程前进到步骤S425,否则该进程跳转到步骤S450。
在步骤S435中,将当前数据插入到第k层存储空间中。
在本示例中,如上所述,由于第一层缓存的过滤函数允许在其中存储任何类型的数据,所以处理单元将当前具有最高热度的被命中数据插入到第一层缓存中。
在步骤S440中,根据缓存算法来调整第k层存储空间中的数据。
与步骤S415相似地,处理单元根据第一层缓存的替换算法(即,ARC算法)来对第一层缓存中的数据进行调整,以便按照命中热度(即,将被命中的概率)从大到小来对所有的数据进行排序,以便调整第一层缓存中数据的位置。
在步骤S445中,判断是否超出第k层存储空间的容量。
接下来,处理单元判断在将被命中的数据插入到第一层缓存之后,该第一层缓存是否超出预定的大小(即,5-10MB),如果是,则处理单元确定要从当前层(第k层,其中k=1)中淘汰的数据,并且该进程前进到步骤S450以进行后续的淘汰操作,否则,该进程结束。
例如,该处理单元可以根据当前层的替换算法,将处于当前层中最后位置的数据(即,热度最低的数据)确定为要淘汰的数据。
在步骤S450中,判断第k层存储空间是否位于第N层存储空间之上。
处理单元判断当前的缓存是否是第一层缓存到第N-1层缓存中的一个,如果是,则该进程前进到步骤S455;如果当前的缓存是第N层缓存(即,最后一层缓存),则该进程前进到步骤S460。
在步骤S455中,产生插入线程,该插入线程用于将所淘汰的数据插入到第k层存储空间中,其中k=k+1。
在本示例中,由于当前的缓存是第一层缓存,所以处理单元可以得到肯定的判断结果。
因此,与步骤S425相似地,处理单元将产生插入线程。但是,与步骤S425不同地,该插入线程用于将淘汰的数据插入到第一层缓存的下一层缓存(即,第二层缓存)中。
接下来,该进程返回到步骤S430。
相似地,处理单元在步骤S430中判断在第一层中淘汰的数据是否符合第二层缓存的过滤函数(即,该数据是否包括关键词“ABC”),以便决定该数据是否被允许插入到第二层缓存中。
假设在第一层中淘汰的数据不符合第二层缓存的过滤函数,则不再将该数据插入到第二层缓存中,并且该进程前进到步骤S450。
处理单元在步骤S450中判断出当前的缓存是第二层缓存、而不是第三层缓存,于是,则该进程前进到步骤S455,其中处理单元进一步产生一个插入线程,以便将在第一层中淘汰的数据插入到第三层缓存中。
接下来,该进程再次返回到步骤S430。
同理,处理单元在步骤S430中判断在第一层中淘汰的数据是否符合第三层缓存的过滤函数(即,当从数据库中提取在第一层中淘汰的数据时,所花费的时间大于或等于600ms),以便决定该数据是否被允许插入到第三层缓存中。
假设在第一层中淘汰的数据符合第三层缓存的过滤函数,则处理单元在步骤S435中将该数据插入到第三层缓存中。
处理单元在步骤S440中根据第三层缓存的替换算法(即,LRFU算法)来按照CRF权值从大到小来对第三层缓存中的所有数据进行排序,以便在插入了在第一层中淘汰的数据之后,再一次调整第三层缓存中数据的位置。
处理单元在步骤S445中判断在将在第一层中淘汰的数据插入到第三层缓存之后,该第三层缓存是否超出预定的大小(即,2GB)。假设判断结果是肯定的,则处理单元确定要从当前层(第k层,其中k=3)中淘汰的数据(例如,该数据是具有最小CRF权值的数据)。
由于处理单元在步骤S450中判断出当前的缓存是最后一层缓存(即,第三层缓存),所以该进程前进到步骤S460。
在步骤S460中,删除所淘汰的数据。
这时,由于底层数据库中必然包括在第三层缓存中淘汰的数据,所以处理单元无需再将该数据插入到底层数据库中,因此,该处理单元可以直接从第三层缓存中删除CRF权值最小(即,热度最低)的数据,以便将在第三层缓存中存储的数据容量保持在预定的阈值以内。
如上所述,在根据本发明实施例的多层缓存体系中,可以使得每层缓存解决不同的具体问题。例如,可以在第一层缓存(N=1)中,使用一种高效的缓存替换策略,并且在其他层缓存(N>1)中,使得在第N层缓存中存放的数据是由第N-1层缓存所淘汰的,并且符合第N层的过滤函数。
这样,可以根据用户需求来生成并定制多层缓存体系,充分提高了数据查询效率,并且可以通过具有不同功能的多层缓存体系来解决各种可能的数据查询情况(例如,频繁查询等)。
下面,返回参考图3来继续描述根据本发明第一实施例的存储空间配置方法。
在步骤S220中,从用户接收用于存储空间的配置信息。
在缓存体系运行一段时间之后,用户可能希望对已有的缓存体系进行调整,以便更加符合自己的使用要求。这时,优选地,可以通过缓存配置应用程序向用户提供用于配置缓存体系的多个配置信息选项,并且接收用户所选择的配置信息。
此外,优选地,可以对所有的配置信息进行构件化处理,以生成缓存构件库。一个缓存构件是指一个对象(接口规范、或二进制代码),它被用于复用,并且其接口被明确定义。缓存构件是作为一个逻辑紧密的程序代码包的形式出现的,有着良好的接口,用于在整个缓存体系中配置各层缓存的实现方式和/或多层缓存之间的组织方式。
这样,缓存配置应用程序可以向用户提供预设的缓存构件库,以便用户从该缓存构件库中选取所需的构件,从而灵活简便地对缓存体系进行配置。
例如,用户可以对缓存体系的诸如查询命中率、查询速度、可用的物理资源、预算成本之类的各种指标进行统计,并且根据统计结果来手动地从缓存构件库中选择所需的构件,以用于配置多层缓存体系。
然后,缓存配置应用程序可以根据用户的选择来生成用于存储空间的配置信息。
接下来,在存储空间配置装置100中,信息接收单元140从缓存配置应用程序接收用于对空间配置单元130所生成的多层缓存体系进行配置的配置信息。
在步骤S230中,根据配置信息来生成配置命令。
然后,命令生成单元150可以根据信息接收单元140接收到的配置信息来生成用于对缓存体系进行配置的配置命令。
在步骤S240中,获取用于配置存储空间的配置命令。
接下来,命令获取单元110获取命令生成单元150生成的配置命令,并且将该配置命令传送到参数生成单元120。
在步骤S250中,根据配置命令来生成配置参数。
参数生成单元120根据命令获取单元110获取的配置命令来生成配置参数。
具体地,参数生成单元120解析该配置命令,并且根据该配置命令来执行预定的程序代码包。
这里,如上所述,优选地,参数生成单元120可以根据配置命令从缓存构件库中选取与之相关的构件,以便通过标准的接口和代码包来完成缓存配置操作。
在步骤S260中,使用配置参数来配置存储空间。
空间配置单元130使用参数生成单元120生成的配置参数来配置所述存储空间。
优选地,空间配置单元130可以使用参数生成单元120在缓存构件库中所选取的各个缓存构件来在整个缓存体系中配置各层缓存的实现方式和/或多层缓存之间的组织方式(例如,新建、删除缓存层、改变缓存层的顺序等)。
图7是图示了根据本发明第一实施例的存储空间配置方法的原理图。如图7所图示的,更加形象地了说明上述存储空间配置方法的原理。
在第一示例中,空间配置单元130可以使用不同的配置参数来配置不同层的存储区域的实现方式,所述实现方式包括以下各项中的至少一个:判断是否允许存储数据的过滤函数、用于将数据淘汰到下层存储区域的替换算法、存储容量、和物理介质。
具体地,可以将在整个缓存体系中任一层缓存中使用的过滤函数配置为以下各项中的任何一个:允许在该层缓存中存储任何类型的数据;仅仅允许在该层缓存中存储包括某一关键词的数据;仅仅允许在该层缓存中存储以下数据,当从数据库中提取该数据时,所花费的时间大于或等于阈值;仅仅允许在该层缓存中存储其大小超出阈值的数据等。
可以将在整个缓存体系中任一层缓存中使用的替换算法配置为采用以下各项中的任何一个:ARC算法、LRU算法、LRFU算法、LFU算法、最近被使用替换(MRU)算法等。
可以对在整个缓存体系中任一层缓存中使用的存储容量进行配置,例如将它配置为某一绝对大小(例如,5-10MB、200MB等)或某一相对大小(例如,存储100或200个数据)等。
可以将在整个缓存体系中任一层缓存中使用的物理介质配置为采用以下各项中的任何一个:内存、硬盘文件、各种类型的数据库等。
在第二示例中,空间配置单元130可以根据所述配置参数来在所述存储空间中新建一层存储区域,向所新建的一层存储区域分配相应的查询优先级,并且调整在所新建的一层存储区域下面的各层存储区域的查询优先级。
具体地,当用户发现现有的缓存体系的查询效率仍需要提高时,该用户可以在权衡预期的查询效率、已有的物理资源和扩容所需的预算成本等多个因素的情况下,在整个缓存体系中的任何位置处添加一层或多层缓存。
例如,在三层缓存体系的情况下,如果用户发现第三层缓存的查询速度较慢并希望加入一层响应更快的缓存,则该用户可以在第二层缓存与第三层缓存之间添加一层缓存,使得原有的三层缓存体系改变为四层缓存体系,其中第一层缓存和第二层缓存保持不变,新加入的一层缓存替代原来的第三层缓存而成为新的第三层缓存,并且原来的第三层缓存成为新的第四层缓存。
相应地,向新的第三层缓存分配第三查询优先级,并且向新的第四层缓存分配第四查询优先级,以保证具有更高查询速度的第三层缓存在进行查询遍历时优先于具有更慢查询速度的第四层缓存。
替换地,当用户发现在一定时期存在某一查询热点(例如,其包括某一相同或相似的关键词)时,该用户也可以在整个缓存体系中添加一层缓存来专门存储相关的数据,并且在该查询热点时期结束之后,自动地或手动地删除新添加的该层缓存。
在第三示例中,空间配置单元130可以根据所述配置参数来从所述存储空间中删除一层存储区域,并且调整在所删除的一层存储区域下面的各层存储区域的查询优先级。
具体地,当用户发现现有缓存体系中的某一层缓存的查询命中率低于一个阈值时,该用户可以删除该缓存层,以释放有限的物理资源。
例如,在三层缓存体系的情况下,如果用户发现第二层缓存中数据的查询命中率较低,其对于提高数据查询效率贡献不高、还浪费了大量系统资源,则该用户可以删除第二层缓存,使得原有的三层缓存体系改变为二层缓存体系,其中第一层缓存保持不变,原来的第三层缓存替代原来的第二层缓存而成为新的第二层缓存。
相应地,向新的第二层缓存分配第二查询优先级,以保证查询顺序的连贯性。
在第四示例中,空间配置单元130可以根据所述配置参数来在所述存储空间中对在一层存储区域中存储的内容与在另一层存储区域中存储的内容进行交换。
具体地,当用户发现现有缓存体系中的一层缓存的查询命中率较高、但却具有较低的查询优先级,而另一层的查询命中率较低、但却具有较高的查询优先级时,这显然将导致查询效率降低,于是该用户可以调整这两层缓存的优先次序,以提高查询效率。
例如,在三层缓存体系的情况下,如果用户发现第二层缓存中数据的查询命中率较低、第三层缓存中数据的查询命中率较高,并且第二层缓存和第三层缓存具有相同或相近的响应速度,则该用户可以将在第二层缓存中存储的数据与第三层缓存中存储的数据对换,即,使得第一层缓存保持不变,原来的第二层缓存与第三层缓存对换,以形成新的三层缓存体系。
相应地,向新的第二层缓存分配第二查询优先级,并且向新的第三层缓存分配第三查询优先级,以保证具有更高命中率的新第二层缓存在进行查询遍历时优先于具有更低命中率的新第三层缓存。
由此可见,采用根据本发明第一实施例的存储空间配置方法和装置,多层缓存体系是可手动配置的,用户可以根据设计需求来选择多层缓存体系中每层缓存的具体实现方式、以及多层缓存之间的组织方式等。也就是说,用户可以通过实际的查询需求和查询的统计结果来定制多层缓存,使得缓存使用更为灵活,以便满足不同设计需求下的要求。
因此,在本发明的第一实施例中,通过可手动配置的多层缓存体系,解决了各种数据查询情况,加快了数据查询效率,减少了数据库响应时间,增加了缓存使用时的灵活性。
在本发明的第一实施例中,用户可以手动地对存储空间进行配置,然而,这种手动操作需要占用用户大量时间,并且可能存在不必要的操作失误,从而人为地导致存储空间配置效率低下。
为此,在本发明的第二实施例中,将对存储空间的查询操作进行监控和统计,以使得存储空间自适应地完成对自身的配置。
在下文中,将参考图8和图9来描述根据本发明第二实施例的存储空间配置方法和装置。
图8是图示了根据本发明第二实施例的存储空间配置方法的流程图,而图9是图示了根据本发明第二实施例的存储空间配置装置100的框图。
图8所图示的存储空间配置方法可以通过图9所图示的存储空间配置装置100来实现。如图9所图示的,与图2中相似地,该存储空间配置装置100可以包括:命令获取单元110、参数生成单元120、和空间配置单元130。此外,优选地,该信息处理装置100还可以包括:查询检测单元160和命令生成单元150。
如图8所图示的,根据本发明第二实施例的存储空间配置方法包括:
在步骤S510中,生成存储空间。
第二实施例中的步骤S510与第一实施例中的步骤S210相同,并因而省略其详细描述。
在步骤S520中,检测对于存储空间的查询操作和存储空间返回的查询结果,并生成检测结果。
在空间配置单元130生成多层缓存体系之后,相关的应用程序可以生成一个或多个查询请求,并且向处理单元发送该查询请求。在接收到该查询请求之后,处理单元可以解析该查询请求,并且提取其中的查询指令,以便在多层缓存体系中执行查询操作,以获得用户所需的数据。
在执行数据查询操作期间,查询检测单元160可以自动地监控处理单元对于多层缓存体系和数据库的查询操作,对在多层缓存体系中的诸如查询命中率、查询速度、可用的物理资源、预算成本之类的各种指标进行收集和统计,以便生成检测结果。
在步骤S530中,根据检测结果来生成配置命令。
然后,命令生成单元150可以根据查询检测单元160所生成的检测结果来生成用于对缓存体系进行配置的配置命令,以便空间配置单元130完成对于整个缓存体系的配置过程。
在步骤S540中,获取用于配置存储空间的配置命令。
在步骤S550中,根据配置命令来生成配置参数。
在步骤S560中,使用配置参数来配置存储空间。
第二实施例中的步骤S540到步骤S560与第一实施例中的步骤S240到步骤S260相同,并因而省略其详细描述。
图10是图示了根据本发明第二实施例的存储空间配置方法的原理图。如图10所图示的,更加形象地说明了上述存储空间配置方法的原理。
由此可见,采用根据本发明第二实施例的存储空间配置方法和装置,多层缓存体系是可自适应配置的。也就是说,多层缓存体系具有自适应的特点,可以通过用户的访问规律等因素,调整整个缓存体系中每个缓存层的具体实现方式以及各个缓存层之间的组织方式(例如,改变各个缓存层之间的优先次序,适时添加和删除缓存层)。
因此,在本发明的第二实施例中,通过自适应配置的方案,提高了多层缓存对数据的适应性,改善了缓存命中率。并且,该第二实施例可以动态适应用户的查询特点,无需进行人工干预,就能长时间保持较高的缓存命中率。
需要说明的是,显然,本发明的第一实施例和第二实施例除了可以单独实现之外,还可以组合地实现,即通过将用户手动配置和缓存自适应配置相结合来进一步提高了缓存命中率和查询效率。
此外,需要说明的是,尽管此处将上述的各个单元作为各个步骤的执行主体来说明本发明的各个实施例,但是,本领域技术人员能够理解的是,本发明不限于此。各个步骤的执行主体可以由其他的一个或多个设备、装置、单元、甚至模块来担任。
例如,上述命令获取单元110、参数生成单元120、空间配置单元130、信息接收单元140、命令生成单元150、和查询检测单元160中一个或多个所执行的各个步骤可以统一地由电子设备中的中央处理单元(CPU)来实现。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助于软件加必需的硬件平台的方式来实现,当然也可以全部通过软件、或硬件来实施。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
在上面详细描述了本发明的各个实施例。然而,本领域技术人员应该理解,在不脱离本发明的原理和精神的情况下,可对这些实施例进行各种修改,组合或子组合,并且这样的修改应落入本发明的范围内。
Claims (18)
1.一种存储空间配置方法,其特征在于,所述方法包括:
获取用于配置存储空间的配置命令,所述存储空间用于临时性地存储数据,并且根据来自处理单元的查询操作来返回所述处理单元所需的数据;
根据所述配置命令来生成配置参数;以及
使用所述配置参数来配置所述存储空间。
2.根据权利要求1的方法,其特征在于,所述方法还包括:
从用户接收用于所述存储空间的配置信息;以及
根据所述配置信息来生成所述配置命令。
3.根据权利要求1的方法,其特征在于,所述方法还包括:
检测对于所述存储空间的查询操作和所述存储空间返回的查询结果,并生成检测结果;以及
根据所述检测结果来生成所述配置命令。
4.根据权利要求1的方法,其特征在于,在所述使用所述配置参数来配置所述存储空间的步骤之前,所述方法还包括:
生成所述存储空间,使得所述存储空间包括多层存储区域;以及
向每一层存储区域分配不同的查询优先级,所述查询优先级是所述处理单元在所述存储空间中查询数据的顺序,并且在所述存储空间中,上层存储区域具有比下层存储区域更高的查询优先级。
5.根据权利要求4的方法,其特征在于,所述使用所述配置参数来配置所述存储空间的步骤包括:
使用不同的配置参数来配置不同层的存储区域的实现方式。
6.根据权利要求5的方法,其特征在于,所述实现方式包括以下各项中的至少一个:判断是否允许存储数据的过滤函数、用于将数据淘汰到下层存储区域的替换算法、存储容量、和物理介质。
7.根据权利要求4的方法,其特征在于,所述使用所述配置参数来配置所述存储空间的步骤包括:
根据所述配置参数来在所述存储空间中新建一层存储区域;
向所新建的一层存储区域分配相应的查询优先级;以及
调整在所新建的一层存储区域下面的各层存储区域的查询优先级。
8.根据权利要求4的方法,其特征在于,所述使用所述配置参数来配置所述存储空间的步骤包括:
根据所述配置参数来从所述存储空间中删除一层存储区域;以及
调整在所删除的一层存储区域下面的各层存储区域的查询优先级。
9.根据权利要求4的方法,其特征在于,所述使用所述配置参数来配置所述存储空间的步骤包括:
根据所述配置参数来在所述存储空间中对在一层存储区域中存储的内容与在另一层存储区域中存储的内容进行交换。
10.一种存储空间配置装置,其特征在于,所述装置包括:
命令获取单元,用于获取用于配置存储空间的配置命令,所述存储空间用于临时性地存储数据,并且根据来自处理单元的查询操作来返回所述处理单元所需的数据;
参数生成单元,用于根据所述配置命令来生成配置参数;以及
空间配置单元,用于使用所述配置参数来配置所述存储空间。
11.根据权利要求10的方法,其特征在于,所述装置还包括:
信息接收单元,用于从用户接收用于所述存储空间的配置信息;以及
命令生成单元,用于根据所述配置信息来生成所述配置命令。
12.根据权利要求10的装置,其特征在于,所述装置还包括:
查询检测单元,用于检测对于所述存储空间的查询操作和所述存储空间返回的查询结果,并生成检测结果;以及
命令生成单元,用于根据所述检测结果来生成所述配置命令。
13.根据权利要求10的装置,其特征在于,所述空间配置单元在使用所述配置参数来配置所述存储空间之前,生成所述存储空间,使得所述存储空间包括多层存储区域,并且向每一层存储区域分配不同的查询优先级,所述查询优先级是所述处理单元在所述存储空间中查询数据的顺序,并且在所述存储空间中,上层存储区域具有比下层存储区域更高的查询优先级。
14.根据权利要求13的装置,其特征在于,所述空间配置单元使用不同的配置参数来配置不同层的存储区域的实现方式。
15.根据权利要求14的装置,其特征在于,所述实现方式包括以下各项中的至少一个:判断是否允许存储数据的过滤函数、用于将数据淘汰到下层存储区域的替换算法、存储容量、和物理介质。
16.根据权利要求13的装置,其特征在于,所述空间配置单元根据所述配置参数来在所述存储空间中新建一层存储区域,向所新建的一层存储区域分配相应的查询优先级,并且调整在所新建的一层存储区域下面的各层存储区域的查询优先级。
17.根据权利要求13的装置,其特征在于,所述空间配置单元根据所述配置参数来从所述存储空间中删除一层存储区域,并且调整在所删除的一层存储区域下面的各层存储区域的查询优先级。
18.根据权利要求13的装置,其特征在于,所述空间配置单元根据所述配置参数来在所述存储空间中对在一层存储区域中存储的内容与在另一层存储区域中存储的内容进行交换。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310376531.6A CN104424119B (zh) | 2013-08-26 | 2013-08-26 | 存储空间配置方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310376531.6A CN104424119B (zh) | 2013-08-26 | 2013-08-26 | 存储空间配置方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104424119A true CN104424119A (zh) | 2015-03-18 |
CN104424119B CN104424119B (zh) | 2018-07-06 |
Family
ID=52973153
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310376531.6A Active CN104424119B (zh) | 2013-08-26 | 2013-08-26 | 存储空间配置方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104424119B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106021414A (zh) * | 2016-05-13 | 2016-10-12 | 中国建设银行股份有限公司 | 一种访问多级缓存参数信息的方法及系统 |
CN106528761A (zh) * | 2016-11-04 | 2017-03-22 | 郑州云海信息技术有限公司 | 一种文件缓存方法及装置 |
CN107391696A (zh) * | 2017-07-27 | 2017-11-24 | 合肥泓泉档案信息科技有限公司 | 一种档案信息化管理系统 |
CN109492574A (zh) * | 2018-11-06 | 2019-03-19 | 北京润科通用技术有限公司 | 一种数据处理方法及装置 |
WO2020000734A1 (zh) * | 2018-06-28 | 2020-01-02 | 平安科技(深圳)有限公司 | 存储对象的空间管理方法、装置、计算机装置及存储介质 |
CN113760346A (zh) * | 2020-08-25 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 信息管理方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1334938A (zh) * | 1998-12-08 | 2002-02-06 | 英特尔公司 | 有多执行实体的系统中的缓冲存储管理 |
CN101616053A (zh) * | 2008-06-23 | 2009-12-30 | 深圳市高斯贝尔家居智能电子有限公司 | 一种用于数据交互的缓存模式自适应系统及方法 |
CN101655773A (zh) * | 2008-08-18 | 2010-02-24 | 中兴通讯股份有限公司 | 磁盘阵列小型计算机系统接口目标器装置及数据传输方法 |
CN103077125A (zh) * | 2012-12-13 | 2013-05-01 | 北京锐安科技有限公司 | 一种高效利用存储空间的自适应自组织塔式缓存方法 |
-
2013
- 2013-08-26 CN CN201310376531.6A patent/CN104424119B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1334938A (zh) * | 1998-12-08 | 2002-02-06 | 英特尔公司 | 有多执行实体的系统中的缓冲存储管理 |
CN101616053A (zh) * | 2008-06-23 | 2009-12-30 | 深圳市高斯贝尔家居智能电子有限公司 | 一种用于数据交互的缓存模式自适应系统及方法 |
CN101655773A (zh) * | 2008-08-18 | 2010-02-24 | 中兴通讯股份有限公司 | 磁盘阵列小型计算机系统接口目标器装置及数据传输方法 |
CN103077125A (zh) * | 2012-12-13 | 2013-05-01 | 北京锐安科技有限公司 | 一种高效利用存储空间的自适应自组织塔式缓存方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106021414A (zh) * | 2016-05-13 | 2016-10-12 | 中国建设银行股份有限公司 | 一种访问多级缓存参数信息的方法及系统 |
CN106021414B (zh) * | 2016-05-13 | 2019-07-09 | 中国建设银行股份有限公司 | 一种访问多级缓存参数信息的方法及系统 |
CN106528761A (zh) * | 2016-11-04 | 2017-03-22 | 郑州云海信息技术有限公司 | 一种文件缓存方法及装置 |
CN106528761B (zh) * | 2016-11-04 | 2019-06-18 | 郑州云海信息技术有限公司 | 一种文件缓存方法及装置 |
CN107391696A (zh) * | 2017-07-27 | 2017-11-24 | 合肥泓泉档案信息科技有限公司 | 一种档案信息化管理系统 |
WO2020000734A1 (zh) * | 2018-06-28 | 2020-01-02 | 平安科技(深圳)有限公司 | 存储对象的空间管理方法、装置、计算机装置及存储介质 |
CN109492574A (zh) * | 2018-11-06 | 2019-03-19 | 北京润科通用技术有限公司 | 一种数据处理方法及装置 |
CN109492574B (zh) * | 2018-11-06 | 2021-03-23 | 北京润科通用技术有限公司 | 一种数据处理方法及装置 |
CN113760346A (zh) * | 2020-08-25 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 信息管理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104424119B (zh) | 2018-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10049051B1 (en) | Reserved cache space in content delivery networks | |
CN104424119A (zh) | 存储空间配置方法和装置 | |
US5305389A (en) | Predictive cache system | |
KR102036419B1 (ko) | 그래프 처리 성능 향상을 위한 복수 계층 캐싱 방법 및 복수 계층 캐싱 시스템 | |
US10257307B1 (en) | Reserved cache space in content delivery networks | |
US7284095B2 (en) | Latency-aware replacement system and method for cache memories | |
CN106844740B (zh) | 基于内存对象缓存系统的数据预读方法 | |
US20130205089A1 (en) | Cache Device and Methods Thereof | |
CN110232049A (zh) | 一种元数据缓存管理方法和装置 | |
EP2842040B1 (en) | Collaborative caching | |
KR102437775B1 (ko) | 효율적인 맵핑을 위한 페이지 캐시 장치 및 방법 | |
US10628318B2 (en) | Cache sector usage prediction | |
CN104572502B (zh) | 一种存储系统缓存策略自适应方法 | |
CN104657286A (zh) | 一种分级存储方法及装置 | |
CN108108089A (zh) | 一种图片加载方法及装置 | |
JP3499105B2 (ja) | 情報検索方法および情報検索装置 | |
US7493453B2 (en) | System, method and storage medium for prefetching via memory block tags | |
CN101739429A (zh) | 一种优化聚类搜索结果的方法及其装置 | |
US20080313407A1 (en) | Latency-aware replacement system and method for cache memories | |
Chen et al. | ECR: Eviction‐cost‐aware cache management policy for page‐level flash‐based SSDs | |
CN103442000B (zh) | Web缓存置换方法及装置、http代理服务器 | |
CN115562592A (zh) | 一种基于云对象存储的内存和磁盘混合缓存方法 | |
CN112231241B (zh) | 一种数据读取方法和装置、计算机可读存储介质 | |
KR101976320B1 (ko) | 라스트 레벨 캐시 메모리 및 이의 데이터 관리 방법 | |
JP6112193B2 (ja) | アクセス制御プログラム、ディスク装置及びアクセス制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |