CN106844740B - 基于内存对象缓存***的数据预读方法 - Google Patents
基于内存对象缓存***的数据预读方法 Download PDFInfo
- Publication number
- CN106844740B CN106844740B CN201710077397.8A CN201710077397A CN106844740B CN 106844740 B CN106844740 B CN 106844740B CN 201710077397 A CN201710077397 A CN 201710077397A CN 106844740 B CN106844740 B CN 106844740B
- Authority
- CN
- China
- Prior art keywords
- data
- user
- queue
- memory object
- reading
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- Fuzzy Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于内存对象缓存***的数据预读方法,所述的预读方法为当后端数据库第一次返回用户所需数据发出的访问请求时,提取本次数据访问的数据特性,并根据所述数据特性提取相关联的关联性数据,所述的关联性数据随用户所需数据一次性地返回至前端内存对象缓存***。同时在预读中增加监控***,通过在内存对象缓存***中引入预读和监控***,有效的提高了缓存的命中率以及***的稳定性,充分的利用了***的资源,减少了许多不必要的***I/O以及其他***资源的浪费,同时使得内存对象缓存***体现的更加智能和实时,缓存的更新变得更加的主动。
Description
技术领域
本发明涉及数据读取技术领域,尤其涉及一种基于内存对象缓存***的数据预读方法。
背景技术
基于内存对象缓存***,它们可以在传统数据库的垂直方向上,加入一特制的缓存结构,不仅可以改进底层数据库的用户请求和事务执行的响应时间,还能够简化其底层的数据库操作,例如:基于键值的数据访问方式。如此一来,可以在付出较小的***代价下,使得底层数据库在应付海量数据涌入的同时,扩展性得以大幅度提高,具体表现在:缓解了传统外存设备所带来的性能瓶颈,还能够同时在CPU和存储两个方面带来得天独厚的扩展性优势,使其能够适应大数据的动态性变化,较大的减少了不必要的***I/O。
目前,基于内存对象缓存***在国内外大中型企业的数据中心内部得到了较大规模的部署和应用,例如:国内淘宝、京东的抢购***、滴滴的实时叫车***、国外的Facebook的图片缓存***以及Twitter数百TB级的缓存***等等。它们具体用到的内存对象缓存***主要是开源的Memcached和Redis两种。
Memcached 是一个高性能的分布式的内存对象的缓存*** ,通过在内存里维护一个统一的巨大的hash 表,能够存储各种格式的数据。一般使用场景是将其部署在一前端结点之上,通过网络与后端的数据库连接。当***正常运转之后,每次接收到的用户查询(读方向),都会在该位于前端的内存对象缓存***里寻找其想要的数据,以尽量减少后端数据库的访问次数,以提高外部的动态 Web 等应用之速度和其用户体验。
Redis 同 Memcached 一样,也是一个 C/S 结构的内存对象缓存***实现,Redis在很多方面与 Memcached 具有相同的特征,不同的是 Redis 增加了持久化的功能,并支持更多的数据类型,和事务控制。在缓存方面的应用,Redis和Memcached基本类似。
以上两个***中都是以被动的方式来填充其内存中的数据,也即根据计算机程序的空间局部性原理,当满足了某个用户请求的数据A之后,***才将该数据保留至该缓存***中,以便用于下一次访问的命中,从而避免之后的数据库自身的操作,达到节省开销和提升性能的效果。但是,为之付出的代价是第一次访问数据A的性能为次优,而且接下来大量的访问都是在重复这一过程:大量的数据访问请求需要穿透缓存到达数据库(缓存穿透),之后才将满足用户请求的数据保留到缓存中。在大数据高并发这样的***中,这种次优的解决方案无疑被放大化,致使资源利用率不够充分,后端数据库的I/O过于频繁。同时,大量的网络I/O会产生许多的次网络I/O,极有可能引发缓存无底洞的问题(当缓存***性能不佳时,通过增加节点,但是依然没有好转的现象),这会导致一次批量操作会涉及多次网络操作,也就意味着批量操作会随着实例的增多,耗时会不断增大。而且如果在某一时刻同时有大量的请求穿透了缓存,所有请求都去查数据库,在这一瞬间会导致数据库CPU和内存负载过高,甚至宕机(缓存雪崩现象)。
发明内容
有鉴于此,针对减少甚至避免缓存穿透以及缓存无底洞现象的发生,减少次优请求的发生等问题,提供一种基于主动工作方式的内存对象缓存***数据预读方法,该方法可以提高内存对象缓存***的性能,会根据用户的请求动态的筛选出用户下次最有可能访问的数据并返回到内存对象缓存***中,并且根据***资源的使用情况以及当前缓存的命中率来确定返回数据量的大小,从而达到极大化的利用***资源。
一种基于内存对象缓存***的数据预读方法,所述的预读方法为当后端数据库第一次返回用户所需数据发出的访问请求时,提取本次数据访问的数据特性,并根据所述数据特性提取相关联的关联性数据,所述的关联性数据随用户所需数据一次性地返回至前端内存对象缓存***。
作为优选,为了节省空间,并对本发明提出的数据预测算法的部分预测错误预测进行弥补,所述的关联性数据添加到缓存***的有效时间为6个小时,如果在6个小时之内该数据未被访问,内存对象缓存***自动销毁该数据占用的内存并释放相应的空间。
所述的预读方法实现包括以下步骤:
S1,当用户发出数据请求后,***首先判断用户请求的数据是否在内存对象缓存***中,如果在内存对象缓存***中命中,***直接从内存对象缓存***中将数据返回给用户并结束此次访问;
S2,如果请求的数据未在内存对象缓存***中命中,监控***会根据当前***性能判断是否开启预读功能,如果当前***性能不佳,监控***关闭预读功能,并直接访问后台数据库,将用户请求的数据添加到内存对象缓存***后返回用户请求的数据提供给用户;
S3,如果当前***性能好,开启预读功能,此时,***根据当前***运行的状态、缓存命中率以及用户请求的数据量的大小来确定预读窗口的大小,随后***从数据库中获取用户请求的数据并将其添加到待缓存队列中,接下来,***会判断加入到队列中的数据量是否小于预读窗口的大小;
S31,如果队列中的数据小于当前***的预读窗口大小,***会判断当前待缓存队列中的最新数据是否在数据库中与其他表中数据存在关联,如果存在关联关系,那么***将会把相关联的数据加入到待缓存队列中,直至队列中的数据大于预读窗口的大小或者队列中的数据已经再无相关联的数据,一旦队列中的数据大于预读窗口的大小,则跳转到S32,如果队列中的数据已经不存在关联关系,但是依然小于预读窗口的大小,那么***就会从队列中获取最新数据所在表中的最新N条记录并添加到待缓存队列中,如果最新的N条数据在待缓存队列中已经存在,则继续获取次新的记录添加到待缓存队列中;
S32如果待缓存队列中数据已经大于预读窗口的大小,那么***直接将待缓存队列中的数据添加到缓存中并返回用户请求的数据。
其中,所述当前***性能判断包括对***进行分级,可分为不繁忙状态L1、一般繁忙状态L2及繁忙状态L3三级。
所述的不繁忙状态L1可定义为CPU处于用户模式下的时间百分比和***模式下的时间百分比之和小于百分之七十,内存使用处于空闲内存占***总内存的百分比小于等于百分之六十,I/O使用处于每秒进行读写操作的次数相对最大读写次数的百分比小于等于百分之六十,当前网络的使用处于使用的带宽占总带宽的百分比小于等于百分之六十,宽带延迟小于50ms。
所述的繁忙状态L3定义为CPU处于用户模式下的时间百分比和***模式下的时间百分比之和不小于百分之八十五,内存使用处于空闲内存占***总内存的百分比不小于百分之八十,I/O使用处于每秒进行读写操作的次数相对最大读写次数的百分比大于等于百分之八十,当前网络的使用处于使用的带宽占总带宽的百分比不小于百分之八十,宽带延迟大于100ms。
处于不繁忙状态L1和繁忙状态L3之间的定义为一般繁忙状态L2。
其中,所述的预读窗口大小由以下条件判断:
***在不繁忙状态下L1: 缓存命中率较低时:R1=R0*4*2;缓存命中率较高时:R1=R0*4;
***在一般繁忙状态下L2:缓存命中率较低时:R1=R0*2*2;缓存命中率较高时:R1=R0*2;
***在繁忙状态下L3:关闭数据预读功能,清理不必要的进程,释放内存空间;
其中定义预读窗口的基本单位为数据表中的一条记录,记为R,记路用户请求的数据对应的数据量为R0。
有益效果:通过在内存对象缓存***中引入预读和监控***,有效的提高了缓存的命中率以及***的稳定性,充分的利用了***的资源,减少了许多不必要的***I/O以及其他***资源的浪费,同时使得内存对象缓存***体现的更加智能和实时,缓存的更新变得更加的主动。
附图说明
图1 基于内存对象缓存***的数据预读方法技术路线流程图;
图2基于内存对象缓存***的数据预读方法中预读功能的实现。
具体实施方式
下面结合附图,对本发明的一种基于内存对象缓存***的数据预读方法做详细说明。
一种基于内存对象缓存***的数据预读方法,所述的预读方法为当后端数据库第一次返回用户所需数据发出的访问请求时,提取本次数据访问的数据特性,并根据所述数据特性提取相关联的关联性数据,所述的关联性数据随用户所需数据一次性地返回至前端内存对象缓存***。更具体的来说,当后端数据库返回用户第一次对A数据发出的访问请求时,通过洞悉本次数据访问的数据特性,将此次未被访问的其他数据关联起来(此处标记为B),B并随着A一次性地返回至前端内存对象缓存***。之后,当用户第一次提出访问B数据时,可以直接在内存对象缓存***中找到数据B,而无需经历在后端寻找数据的过程,以提高该数据库***的性能。换句话说,在***开销可以接受的情况下,为基于内存对象的缓存***量身定做一种预读(Read-ahead)算法,并且将其应用至现在的缓存***运行环境中,以提升整个数据库***(“整个”指的是前端加后端)的吞吐能力。
如图1所示,当用户首次访问数据库中某一数据时,通过预读算法,将此次未被访问的其他数据关联起来,并随着被访问的数据一次性地返回至数据库。之后,当用户第一次访问到预读到数据库中的数据时,可以直接在缓存中命中,无需经历在后台寻找数据的过程。以此提高缓存的性能并减少非必要I/O;另一方面,需要对数据库进行动态的预读,通过这种策略来决定将哪些数据,多大的数据量加入到缓存中可以使得内存对象缓存***达到较好的状态。
当user1访问***,发出请求A时,由于请求的数据不在内存对象缓存***中,所以该请求会穿过内存对象缓存***。此时,性能监控***检测到***的性能极佳,所以该请求从数据库中获取了请求A所需要的数据A后,***将对该数据进行分析,随后该请求将携带数据A与数据A相关联的B,C,D一起返回到内存对象缓存***中,并将user1请求的数据A发送给用户。
当user2访问***,发出请求B时,由于请求的数据B已经在内存对象缓存***中,所以***会直接从缓存中将数据返回给user2。当user3访问***,发出请求E时,由于请求的数据不在缓存中,所以该请求会穿透内存对象缓存***,想后台数据库索取数据。但是由于当前***性能不佳,所以***关闭了预读功能,只是将用户请求的数据E添加到缓存中并返回给user3;同时,监控***会清理不必要的进程,释放内存空间,并去掉不必要的I/O操作来对***进行优化。
当user4访问***时,此时***的性能依然很差,所以依然仅从数据库***中获取请求的数据后,更新缓存并相应user4的请求。
从这些请求过程中可以看出,内存对象缓存***因为有了预读和监控,变得更加智能,更加主动。预读和监控的加入,使得整个***更加的稳定和灵活。
其中预读方法的实现:如图2所示,首先,当一个用户发出数据请求后,***首先会判断用户请求的数据是否在缓存中,如果在缓存中命中,那么***直接从内存对象缓存***中将数据返回给用户并结束此次访问操作;
如果未在内存对象缓存***中命中,那么此时监控***会根据当前***的CPU,内存的使用情况,以及当前发生的I/O情况来判断是否开启预读功能,如果当前***性能不佳,则监控***会关闭***的预读功能,并直接访问后台数据库,将用户请求的数据添加到内存对象缓存***后返回用户请求的数据给用户;
如果当前***开启了预读功能,此时,***会首先根据当前***运行的状态,缓存命中率以及用户请求的数据量的大小来确定预读窗口的大小,然后,***从数据库中获取用户请求的数据并将其添加到待缓存队列中,接下来,***会判断加入到队列中的数据数据量是否小于预读窗口的大小,如果待缓存队列中数据已经大于预读窗口的大小,那么***直接将待缓存队列中的数据添加到缓存中并返回用户请求的数据。
如果队列中的数据小于当前***的预读窗口大小,则***会判断当前待缓存队列中的最新数据是否在数据库中与其他表中数据存在关联,如果存在关联关系,那么***将会把相关联的数据加入到待缓存队列中。接下来如果加入关联数据后的队列依然小于预读窗口的大小,***会继续寻找相关联的数据,直至队列中的数据大于预读窗口的大小或者队列中的数据已经再无相关联的数据,一旦队列中的数据大于预读窗口的大小,***就会将待缓存队列中的数据添加到内存对象缓存***中,并返回用户需要的数据。如果队列中的数据已经不存在关联关系,但是依然小于预读窗口的大小,那么***就会从队列中获取最新数据所在表中的最新N条记录并添加到待缓存队列中,如果最新的N条数据在待缓存队列中已经存在,则继续获取次新的记录添加到待缓存队列中。接下来,如此循环,直至待缓存队列中的数据大于预读窗口的大小。
在这里,充分地利用了数据之间的关联关系,尽可能的将和当前数据相关联的数据放入到缓存中。因为相关联的数据在下次被访问到的概率最大。
类似于微博和微信朋友圈,用户最新发布的消息,近期被查看或者修改的可能性最大,而且当前用户进行的某些操作,在接下来其他用户进行相同操作的可能性也极大,所以在本发明提出的数据预读算法中,充分利用了数据和用户操作的时间局部性原理(时间局部性:如果一个信息项正在被访问,那么在近期它很可能还会被再次访问),主动的获取用户请求的数据所对应的表中的最新数据添加到缓存中。
同时,新添加入到缓存的数据默认有效时间是6个小时,如果在6个小时之内该数据未被访问,内存对象缓存***会自动销毁该数据占用的内存并释放相应的空间。这样做的目的是为了节省空间,并对数据预测算法的部分预测错误预测进行弥补。
在运行预读算法时,需要考虑前端结点和后端结点的网络负载情况。
在这里优先考虑内存对象缓存***的缓存命中率和***的运行状况,监控的目的是在当前***运行状态下达到较大的缓存命中率,所以当用户请求穿透缓存时,需要马上确定***CPU,内存,I/O,当前网络的使用情况,以及缓存命中率的大小,并根据这些数据以及用户发来的请求所对应的数据特征来确定当前预读窗口的大小;所以每次用户请求对应的预读窗口大小都是不同的。
经过多次的实验测试,本发明根据***的使用情况定义了***的三个性能级别:L1,L2,L3 如下所示:
其中
user%:表示CPU处在用户模式下的时间百分比。
sys%:表示CPU处在***模式下的时间百分比。
free%:表示空闲内存占***总内存的百分比。
IOPS: 每秒进行读写(I/O)操作的次数,每个硬盘设备都有一个最大值。
IO%:当前每秒进行读写(I/O)操作的次数相对最大IOPS的百分比。
bandwidth%:指当前***中使用的带宽占总带宽的百分比。
T :表示网络延迟程度。
定义预读窗口的基本单位为数据表中的一条记录,记为R。比如用户此次请求一共涉及到数据表中的10条记录,那么,用户此次请求的数据量为10R。并记用户请求的数据对应的数据量为R0。
在这里,本专利定义数据预读窗口大小如下:
当***处于L1时,预读窗口大小为用户请求数据量的4倍;如果命中率较低(低于70%),预读窗口再扩大2倍,即此时的预读窗口大小为 R1 = R0 * 4 * 2;如果命中率较高(高于70%),那么此时预读窗口的大小为R1=R0*4;
当***性能适中时,即***处于L2状态下,预读窗口大小为用户请求数据量的2倍;如果命中率较低(低于70%),预读窗口再扩大2倍,即此时的预读窗口大小为 R1 = R0 *2* 2;如果命中率较高(高于70%),那么此时预读窗口的大小为R1=R0*2;
当***性能极差时,即***处于L3状态下,那么***将关闭预读功能,直接返回用户请求的数据。
所以,预读窗口大小计算公式如下:
L1状态下:
缓存命中率较低时:R1=R0*4*2;
缓存命中率较高时:R1=R0*4;
L2状态下:
缓存命中率较低时:R1=R0*2*2;
缓存命中率较高时:R1=R0*2;
L3状态下:关闭数据预读功能。在L3状态下,监控***会主动清理不必要的进程,释放内存空间,并去掉不必要的I/O操作来对***进行优化,以及释放一些网络资源,从而达到可以再次开启预读功能的条件。
由此可见,被用来填充内存对象缓存***的数据,与***当前的运行状态,缓存命中率以及用户发出请求所对应的数据量的大小有着极大的关系,用来填充内存对象缓存***的数据具有极大的动态特性。
基于内存对象的缓存***的数据预读方法,适用于传统数据库和内存数据库***的结合场景,而且重点在于引入了数据预读算法后,如何在保持***较高性能的情况下在内存对象缓存***达到较高的缓存命中率。本发明的实现方法可以充分的应用于实际***中,具有较好的前景和实用性。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (4)
1.一种基于内存对象缓存***的数据预读方法,其特征在于,所述的预读方法为:当后端数据库第一次返回用户所需数据发出的访问请求时,提取本次数据访问的数据特性,并根据所述数据特性提取相关联的关联性数据,所述的关联性数据随用户所需数据一次性地返回至前端内存对象缓存***;所述的关联性数据添加到缓存***的有效时间为6个小时,如果在6个小时之内该数据未被访问,内存对象缓存***自动销毁该数据占用的内存并释放相应的空间;所述的预读方法实现包括以下步骤:
S1,当用户发出数据请求后,***首先判断用户请求的数据是否在内存对象缓存***中,如果在内存对象缓存***中命中,***直接从内存对象缓存***中将数据返回给用户并结束此次访问;
S2,如果请求的数据未在内存对象缓存***中命中,监控***会根据当前***性能判断是否开启预读功能,如果当前***性能不佳,监控***关闭预读功能,并直接访问后台数据库,将用户请求的数据添加到内存对象缓存***后返回用户请求的数据提供给用户;
S3,如果当前***性能好,开启预读功能,此时,***根据当前***运行的状态、缓存命中率以及用户请求的数据量的大小来确定预读窗口的大小,随后***从数据库中获取用户请求的数据并将其添加到待缓存队列中,接下来,***会判断加入到队列中的数据量是否小于预读窗口的大小;
S31,如果队列中的数据小于当前***的预读窗口大小,***会判断当前待缓存队列中的最新数据是否在数据库中与其他表中数据存在关联,如果存在关联关系,那么***将会把相关联的数据加入到待缓存队列中,直至队列中的数据大于预读窗口的大小或者队列中的数据已经再无相关联的数据,一旦队列中的数据大于预读窗口的大小,则跳转到S32,如果队列中的数据已经不存在关联关系,但是依然小于预读窗口的大小,那么***就会从队列中获取最新数据所在表中的最新N条记录并添加到待缓存队列中,如果最新的N条数据在待缓存队列中已经存在,则继续获取次新的记录添加到待缓存队列中;
S32,如果待缓存队列中数据已经大于预读窗口的大小,那么***直接将待缓存队列中的数据添加到缓存中并返回用户请求的数据。
2.根据权利要求1所述的基于内存对象缓存***的数据预读方法,其特征在于,所述当前***性能判断包括对***进行分级,可分为不繁忙状态L1、一般繁忙状态L2及繁忙状态L3三级。
3.根据权利要求2所述的基于内存对象缓存***的数据预读方法,其特征在于,所述的不繁忙状态L1可定义为CPU处于用户模式下的时间百分比和***模式下的时间百分比之和小于百分之七十,内存使用处于空闲内存占***总内存的百分比小于等于百分之六十,I/O使用处于每秒进行读写操作的次数相对最大读写次数的百分比小于等于百分之六十,当前网络的使用处于使用的带宽占总带宽的百分比小于等于百分之六十,宽带延迟小于50ms;所述的繁忙状态L3定义为CPU处于用户模式下的时间百分比和***模式下的时间百分比之和不小于百分之八十五,内存使用处于空闲内存占***总内存的百分比不小于百分之八十,I/O使用处于每秒进行读写操作的次数相对最大读写次数的百分比大于等于百分之八十,当前网络的使用处于使用的带宽占总带宽的百分比不小于百分之八十,宽带延迟大于100ms;处于不繁忙状态L1和繁忙状态L3之间的定义为一般繁忙状态L2。
4.根据权利要求2所述的基于内存对象缓存***的数据预读方法,其特征在于,所述的预读窗口大小由以下条件判断:***在不繁忙状态下L1:缓存命中率较低时:R1=R0*4*2;缓存命中率较高时:R1=R0*4;***在一般繁忙状态下L2:缓存命中率较低时:R1=R0*2*2;缓存命中率较高时:R1=R0*2;***在繁忙状态下L3:关闭数据预读功能,清理不必要的进程,释放内存空间;其中定义预读窗口的基本单位为数据表中的一条记录,记为R,记路用户请求的数据对应的数据量为R0。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710077397.8A CN106844740B (zh) | 2017-02-14 | 2017-02-14 | 基于内存对象缓存***的数据预读方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710077397.8A CN106844740B (zh) | 2017-02-14 | 2017-02-14 | 基于内存对象缓存***的数据预读方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106844740A CN106844740A (zh) | 2017-06-13 |
CN106844740B true CN106844740B (zh) | 2020-12-29 |
Family
ID=59128199
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710077397.8A Active CN106844740B (zh) | 2017-02-14 | 2017-02-14 | 基于内存对象缓存***的数据预读方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106844740B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107329908A (zh) * | 2017-07-07 | 2017-11-07 | 联想(北京)有限公司 | 一种数据处理方法和电子设备 |
CN107277159B (zh) * | 2017-07-10 | 2020-05-08 | 东南大学 | 一种基于机器学习的超密集网络小站缓存方法 |
CN110324366B (zh) * | 2018-03-28 | 2022-07-29 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置及*** |
TW202014898A (zh) | 2018-10-04 | 2020-04-16 | 宏碁股份有限公司 | 電腦系統、其遊戲載入方法及電腦程式產品 |
CN111104528B (zh) * | 2018-10-29 | 2023-05-16 | 浙江宇视科技有限公司 | 图片获取方法、装置及客户端 |
CN110673786B (zh) | 2019-09-03 | 2020-11-10 | 浪潮电子信息产业股份有限公司 | 数据缓存的方法和装置 |
CN111258967A (zh) * | 2020-02-11 | 2020-06-09 | 西安奥卡云数据科技有限公司 | 文件***中数据读取方法、装置及计算机可读存储介质 |
CN111399784B (zh) * | 2020-06-03 | 2020-10-16 | 广东睿江云计算股份有限公司 | 一种分布式存储的预读写方法及装置 |
CN111782391A (zh) * | 2020-06-29 | 2020-10-16 | 北京达佳互联信息技术有限公司 | 资源分配方法、装置、电子设备和存储介质 |
CN115827508B (zh) * | 2023-01-09 | 2023-05-09 | 苏州浪潮智能科技有限公司 | 一种数据处理方法、***、设备以及存储介质 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508638B (zh) * | 2011-09-27 | 2014-09-17 | 华为技术有限公司 | 用于非一致性内存访问的数据预取方法和装置 |
KR20130047431A (ko) * | 2011-10-31 | 2013-05-08 | 에스케이씨앤씨 주식회사 | 대용량 배치처리를 위한 메모리 선적재 및 병렬처리 방법 |
CN103902260B (zh) * | 2012-12-25 | 2016-08-31 | 华中科技大学 | 一种对象文件***的预取方法 |
CN103257935B (zh) * | 2013-04-19 | 2016-07-13 | 华中科技大学 | 一种缓存管理方法及其应用 |
CN103399856B (zh) * | 2013-07-01 | 2017-09-15 | 北京科东电力控制***有限责任公司 | 面向scada***的爆发式数据缓存处理***及其方法 |
CN103729471B (zh) * | 2014-01-21 | 2017-03-08 | 华为软件技术有限公司 | 数据库查询方法和装置 |
CN104657143A (zh) * | 2015-02-12 | 2015-05-27 | 中復保有限公司 | 高性能数据缓存方法 |
CN104715048B (zh) * | 2015-03-26 | 2018-06-05 | 浪潮集团有限公司 | 一种文件***缓存预读取方法 |
CN104731974A (zh) * | 2015-04-13 | 2015-06-24 | 上海新炬网络信息技术有限公司 | 基于大数据流式计算的动态页面加载方法 |
CN104881467B (zh) * | 2015-05-26 | 2018-08-31 | 上海交通大学 | 基于频繁项集的数据关联性分析和预读取方法 |
CN105279240B (zh) * | 2015-09-28 | 2018-07-13 | 暨南大学 | 客户端起源信息关联感知的元数据预取方法及*** |
-
2017
- 2017-02-14 CN CN201710077397.8A patent/CN106844740B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN106844740A (zh) | 2017-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106844740B (zh) | 基于内存对象缓存***的数据预读方法 | |
EP3229142B1 (en) | Read cache management method and device based on solid state drive | |
CN105872040B (zh) | 一种利用网关节点缓存优化分布式块存储写性能的方法 | |
US10430338B2 (en) | Selectively reading data from cache and primary storage based on whether cache is overloaded | |
US8352517B2 (en) | Infrastructure for spilling pages to a persistent store | |
KR101023883B1 (ko) | 고속 저장 장치를 캐쉬로 사용하는 스토리지 시스템 | |
US20170371807A1 (en) | Cache data determining method and apparatus | |
US9372810B2 (en) | Collaborative caching | |
CN107888687B (zh) | 一种基于分布式存储***的代理客户端存储加速方法及*** | |
CN102307234A (zh) | 基于移动终端的资源检索方法 | |
CN103607312A (zh) | 用于服务器***的数据请求处理方法及*** | |
CN105095495B (zh) | 一种分布式文件***缓存管理方法和*** | |
KR20140097924A (ko) | 우선 순위를 가지는 이중 캐싱 방법 및 이를 위한 장치 | |
CN109002503A (zh) | 一种元数据读取方法、装置、设备及可读存储介质 | |
CN103294609A (zh) | 信息处理装置和存储器管理方法 | |
US9996470B2 (en) | Workload management in a global recycle queue infrastructure | |
CN114116634B (zh) | 一种缓存方法、装置及可读存储介质 | |
CN113835624A (zh) | 基于异构内存的数据迁移方法及装置 | |
CN104158863A (zh) | 基于事务级别全程高速缓冲的云存储机制 | |
US7376792B2 (en) | Variable cache data retention system | |
CN106021414B (zh) | 一种访问多级缓存参数信息的方法及*** | |
CN111752905B (zh) | 一种基于对象存储的大文件分布式缓存*** | |
CN113672169A (zh) | 流处理***的数据读写方法和流处理*** | |
CN111488370B (zh) | 列表分页快速响应***和方法 | |
CN115658318A (zh) | 一种基于分布式异构存储架构的多租户缓存方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |