CN103019964A - 一种缓存数据访问方法及数据缓存系统 - Google Patents

一种缓存数据访问方法及数据缓存系统 Download PDF

Info

Publication number
CN103019964A
CN103019964A CN2012105683335A CN201210568333A CN103019964A CN 103019964 A CN103019964 A CN 103019964A CN 2012105683335 A CN2012105683335 A CN 2012105683335A CN 201210568333 A CN201210568333 A CN 201210568333A CN 103019964 A CN103019964 A CN 103019964A
Authority
CN
China
Prior art keywords
user
memory block
data
lru
memory
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
Application number
CN2012105683335A
Other languages
English (en)
Other versions
CN103019964B (zh
Inventor
窦元
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Sohu New Media Information Technology Co Ltd
Original Assignee
Beijing Sohu New Media Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Sohu New Media Information Technology Co Ltd filed Critical Beijing Sohu New Media Information Technology Co Ltd
Priority to CN201210568333.5A priority Critical patent/CN103019964B/zh
Publication of CN103019964A publication Critical patent/CN103019964A/zh
Application granted granted Critical
Publication of CN103019964B publication Critical patent/CN103019964B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种缓存数据访问方法及数据缓存系统。其中,方法包括:接收用户的访问请求,访问请求中携带有键信息;根据键信息,查找哈希表得到对应的第一内存块;当访问请求为写数据请求,将第一内存块转移至全局LRU以及对应用户的用户LRU中与写后数据大小级别相同的第一链表头部,其中,用户LRU中预置有所有用户所属的内存块链表;如果用户占用内存达到内存限额,当第一链表不为空时,则取处于第一链表尾部的内存块保存写后数据;否则,当第一链表为空时,获取全局LRU中与写后数据大小级别相同的第二链表,取处于第二链表尾部的内存块保存写后数据;将保存写后数据的内存块转移至第一和第二链表的头部。

Description

一种缓存数据访问方法及数据缓存系统
技术领域
本发明涉及数据存储技术领域,更具体地说,涉及一种缓存数据访问方法及数据缓存系统。
背景技术
Memcached是分布式内存键/值缓存系统,“分布式”指可以将缓存分布到多台机器上,“内存”指缓存的内容全部保存在内存中,“键/值”指缓存的内容为键(key)和对应的值(value)。
单用户环境下,常用的缓存方法是用户自己架设Memcached,用命令行参数指定Memcached的可用内存大小和监听的地址,然后用程序通过Memcached客户端库连接对应地址访问缓存内容。如果单个Memcached大小不够用,就架设多个Memcached,再使用Memcached客户端库内置的分布式算法根据键key寻找对应后台Memcached地址的功能来访问缓存内容。
扩展到多用户环境下,通过一个管理程序管理多个Memcached,增加用户时启动一个(或多个)Memcached,通过命令行参数传递给Memcached该用户的最大内存配额,并将Memcached的地址传给用户程序,用户程序据此访问Memcached。
通过发明人的研究发现,现有Memcached应用中,用户一般不会用满分配给自己的Memcached配额,但由于Memcached本身是基于内存池实现的,即使用户需要缓存的数据量很少,在用户发起多次增删改数据请求后,内存池会多次收到分配或释放内存块的请求,使得Memcached在操作系统中的内存占用仍会达到启动时分配的上限,所以内存利用率不高。尤其在云计算环境下,用户数量很多,如果仍旧给每个用户单独架设一套Memcached,会存在管理难度高以及内存占用低效的问题。
发明内容
有鉴于此,本发明实施例提供一种缓存数据访问方法及数据缓存系统,以提高内存的利用率。
本发明实施例提供一种缓存数据访问方法,包括:
接收用户的访问请求,所述访问请求中携带有键信息;
根据所述键信息,查找哈希表得到对应的第一内存块;
当所述访问请求为写数据请求,将所述第一内存块转移至全局最近最少使用LRU以及对应所述用户的用户LRU中与写后数据大小级别相同的第一链表头部,其中,每个用户对应一个用户LRU,所述用户LRU中预置有所述用户所属的内存块链表;
如果所述用户占用内存达到内存限额,当所述第一链表不为空时,则取处于所述第一链表尾部的内存块保存所述写后数据;否则,当所述第一链表为空时,获取所述全局LRU中与写后数据大小级别相同的第二链表,取处于所述第二链表尾部的内存块保存所述写后数据;
将保存写后数据的内存块转移至所述第一链表和第二链表的头部。
优选的,还包括:将所述全局LRU、用户LRU及哈希表中对应所述第一内存块的记录信息删除。
优选的,还包括:当所述访问请求为写数据请求,且所述用户占用内存未达到内存限额时,则向内存池重新申请一块与写后数据大小级别相同的内存块进行所述写后数据的保存,同时增加所述用户的占用内存计数。
优选的,还包括:当所述访问请求为读数据请求时,将所述第一内存块中对应数据反馈给所述用户。
优选的,还包括:当所述访问请求为删除数据请求时,则将所述第一内存块放回至相应内存池,并将所述全局LRU、用户LRU及哈希表中对应所述第一内存块的记录信息删除,同时减少所述用户的占用内存计数。
优选的,还包括:根据所述用户的身份信息,对所述用户进行认证。
一种数据缓存系统,包括:
接收单元,用于接收用户的访问请求,所述访问请求中携带有键信息;
查找单元,用于根据所述键信息,查找哈希表得到对应的第一内存块;
第一转移单元,用于当所述访问请求为写数据请求,将所述第一内存块转移至全局LRU以及对应所述用户的用户LRU中与写后数据大小级别相同的第一链表头部,其中,每个用户对应一个用户LRU,所述用户LRU中预置有所述用户所属的内存块链表;
选择单元,用于如果所述用户占用内存达到内存限额,当所述第一链表不为空时,则取处于所述第一链表尾部的内存块保存所述写后数据;否则,当所述第一链表为空时,则获取所述全局LRU中与写后数据大小级别相同的第二链表,取处于所述第二链表尾部的内存块保存所述写后数据;
第二转移单元,用于将保存写后数据的内存块转移至所述第一链表和第二链表的头部。
优选的,还包括:
第一删除单元,用于将所述全局LRU、用户LRU及哈希表中对应所述第一内存块的记录信息删除。
优选的,还包括:
内存块申请单元,用于当所述访问请求为写数据请求,且所述用户占用内存未达到内存限额时,则向内存池重新申请一块与写后数据大小级别相同的内存块进行所述写后数据的保存,同时增加所述用户的占用内存计数。
优选的,还包括:
反馈单元,用于当所述访问请求为读数据请求时,将所述第一内存块中对应数据反馈给所述用户。
优选的,还包括:
第二删除单元,用于当所述访问请求为删除数据请求时,则将所述第一内存块放回至相应内存池,并将所述全局LRU、用户LRU及哈希表中对应所述第一内存块的记录信息删除,同时减少所述用户的占用内存计数。
优选的,还包括:
认证单元,用于根据所述用户的身份信息,对所述用户进行认证。
同现有技术相比,本发明提供的技术方案针对每个用户设置用户LRU,当用户发起写数据的访问请求时,如果该用户占用内存达到内存限额,则优先从用户LRU中申请相应的内存块,使得该用户的内存占用保持不变,提高该用户所属内存的利用率;而当用户LRU中不存在相应的内存块时,则从全局LRU中属于其它用户的内存块中申请相应的内存块,使得内存块可以在多个用户之间共享,从而进一步提高内存的利用率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种缓存数据访问方法步骤流程图;
图2为本发明实施例提供的另一种缓存数据访问方法步骤流程图;
图3为本发明实施例提供的一种数据缓存系统结构示意图;
图4为本发明实施例提供的又一种数据缓存系统结构示意图;
图5为本发明实施例提供的另一种数据缓存系统结构示意图;
图6为本发明实施例提供的第四种数据缓存系统结构示意图;
图7为本发明实施例提供的第五种数据缓存系统结构示意图;
图8为本发明实施例提供的第六种数据缓存系统结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面首先对本发明提供的一种缓存数据访问方法进行说明,参照图1所示,所述方法包括:
步骤101、接收用户的访问请求,所述访问请求中携带有键信息;
Memcached接收用户的访问请求,本发明实施例中,所述访问请求中携带有键信息,其中,通过用户信息,可以匹配到该用户所属的内存块。
步骤102、根据所述键信息,查找哈希表得到对应的第一内存块;
hash表(哈希表,又称散列表)是根据键信息直接进行访问的数据结构,用来根据键信息查找对应的内存块,内存块中放的就是缓存内容(包括key和对应的value)。该数据结构通过把键映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做哈希表。在Memcached中,散列表将键映射到的不是记录的位置,而是包含多个记录的链表的位置,在链表中查找记录时是顺序查找的。
本发明实施例中,Memcached根据所述键信息,可以获得所述键信息对应的值信息,进而,可以在哈希表中查找获得保存所述值信息的内存块,并根据所述用户信息,在保存所述值信息的内存块中提取出该用户所属的内存块。
该步骤中,第一内存块即为保存对应值信息,且属于该发起访问请求的用户的内存块。
步骤103、当所述访问请求为写数据请求,将所述第一内存块转移至全局LRU以及对应所述用户的用户LRU中与写后数据大小级别相同的第一链表头部,其中,每个用户对应一个用户LRU,所述用户LRU中预置有所述用户所属的内存块链表;
该步骤中,写数据的操作包括:修改数据以及增加数据。
LRU(Least Recently Used,最近最少使用)是内存管理的一种算法,在Memcached中的实现是将内存块以链表形式链接起来,每次访问时,将访问到的内存块挪到链表头部,因此,链表尾部放的就是长期没有访问的内存块。Memcached在内存占用达到限制时,会开始回收链表尾部的内存块用于存放新的数据,因此内存占用到达限制后就不会增加。Memcached中的LRU由多个链表构成,每个链表中的内存块大小相同。
本发明实施例中,全局LRU将多个内存池中的所有内存块按照大小分成若干级LRU链表保存,每个内存池里分配出来的内存块大小相同,每个链表中的内存块大小相同。
此外,额外设置了用户LRU,每个用户对应一个用户LRU,所述用户LRU中预置有所述用户所属的内存块链表。例如:假设Memcache中有m个内存池,最大可支持n个用户使用,则全局LRU由m个链表组成,每个链表对应一个内存池,用户LRU由m*n个链表组成,其中每个用户对应m个链表。也就是说,在用户LRU中,按照所属用户,分别设置有多组LRU链表,每组LRU链表属于同一用户,其中,每组LRU链表至少有一个LRU链表,每个链表中的内存块大小相同。具体实施时,可以在系统里设定每级内存池至少有1M的内存,这样就保证了在需要一定大小的内存块的时候,要么在全局LRU中能找到,要么在内存池中能找到。
该步骤中,当所述访问请求为写数据请求时,首先将查找哈希表得到对应的第一内存块分别转移到全局LRU和用户LRU中与写后数据大小级别相同的第一链表的头部。所述第一链表包括:全局LRU与写后数据大小级别相同的链表以及用户LRU中与写后数据大小级别相同的链表。
步骤104、如果所述用户占用内存达到内存限额,当所述第一链表不为空时,则取处于所述第一链表尾部的内存块保存所述写后数据;否则,当所述第一链表为空时,则获取所述全局LRU中与写后数据大小级别相同的第二链表,取处于所述第二链表尾部的内存块保存所述写后数据;
该步骤中,如果该用户占用内存达到内存限额,则优先从用户LRU中申请相应的内存块,查找与写后数据大小级别相同的第一链表是否为空,如果第一链表不为空,则取处于所述第一链表尾部的内存块保存所述写后数据,通过该实现方式,利用所属该用户的用户LRU中长期没有访问的内存块存放写后的数据,使得该用户的内存占用保持不变;
而如果从用户LRU中申请相应的内存块的结果是,与写后数据大小级别相同的第一链表为空,则在全局LRU中查找是否存在与写后数据大小级别相同的第二链表,如果存在这样的内存链表,则取处于所述第二链表尾部的内存块保存所述写后数据。通过该实现方式,利用全局LRU中属于其它用户的长期没有访问的内存块存放该访问用户写后的数据,使得内存块可以在多个用户之间共享。
此外,如果全局LRU中对应第二链表也为空,则向用户反馈内存已用完的提示信息。
步骤105、将保存写后数据的内存块转移至所述第一链表和第二链表的头部。
该步骤中,将写后的数据保存至相应内存块中之后,将该内存块转移至所述用户LRU以及全局LRU中对应第一和第二链表的头部,该相应内存块包括上述用户LRU中第一链表尾部的内存块,或者,上述全局LRU中第二链表尾部的内存块。
此时,减少内存块原来所在的用户LRU对应的用户的占用内存计数,并增加内存块新放到的用户LRU所对应的用户的占用内存计数。
上述本发明提供的技术方案中,通过针对每个用户设置用户LRU,当用户发起写数据的访问请求时,如果该用户占用内存达到内存限额,则优先从用户LRU中申请相应的内存块,使得该用户的内存占用保持不变,提高该用户所属内存的利用率;而当用户LRU中不存在相应的内存块时,则从全局LRU中属于其它用户的内存块中申请相应的内存块,使得内存块可以在多个用户之间共享,从而进一步提高内存的利用率。
为了便于对本发明进一步的理解,下面结合本发明的具体实施方式对本发明进行详细描述。
在本发明的一个优选实施例中,如图2所示,还可以包括以下步骤:
步骤106、将所述全局LRU、用户LRU及哈希表中对应所述第一内存块的记录信息删除。
该实施例中,当所述访问请求为写数据请求,由于写数据并不是在该第一内存块中进行,因此,可以将所述全局LRU、用户LRU及哈希表中对应所述第一内存块的记录信息删除,即删除所述第一内存块在所述全局LRU、用户LRU及哈希表中的记录,将所述第一内存块重新放回内存池中,以释放所述第一内存块的存储空间。
此外,当所述访问请求为写数据请求,且所述用户占用内存未达到内存限额时,则向内存池重新申请一块内存块进行所述写后数据的保存。
本发明实施例中,“在原内存块中进行写数据操作”的前提是写后数据与原数据的大小相近,从而可以使用同一个内存池中的同一个内存块进行写后的数据的存储,但这个条件并不是总能被满足的,因此,现有Memcached在应用时需要重新申请内存块,从而在新申请的内存块中保存写后的数据。重新申请的内存块需要与写后数据大小级别相同。
上述实施例中,用户的访问请求为写数据请求。当所述访问请求为读数据请求时,将所述第一内存块中对应数据反馈给所述用户。
该实施例中,当接收用户的读数据请求之后,Memcached根据所述读数据请求中携带的键信息以及用户信息查找哈希表,以确定是否存在对应的第一内存块,如果存在对应的第一内存块,则直接将所述第一内存块中对应数据反馈给所述用户。如果不存在对应的第一内存块,则可以向用户反馈请求失败的提示信息。
另外,当所述访问请求为删除数据请求时,则删除所述第一内存块中的对应数据,并将所述全局LRU、用户LRU及哈希表中对应所述第一内存块的记录信息删除。
该实施例中,当接收用户的删除数据请求之后,Memcached根据所述删除数据请求中携带的键信息以及用户信息查找哈希表,以确定是否存在对应的第一内存块,如果存在对应的第一内存块,则将所述第一内存块放回至相应内存池,并且,将所述全局LRU、用户LRU及哈希表中对应所述第一内存块的记录信息删除,以释放所述第一内存块的存储空间,同时减少所述用户的占用内存计数。可以通过所述用户的占用内存计数判断所述用户占用内存是否达到内存限额,具体实施时,可以通过一内存占用计数器进行所述用户占用内存的统计,当计数器达到阈值时,可以确定所述用户占用内存达到内存限额。
上述各实施例中,为了提高访问的安全性,可以根据所述用户的身份信息,对所述用户进行认证。
具体实施时,可以采用SASL(Simple Authentication and Security Layer,简单验证和安全层)的方式进行用户认证。SASL是一种用来扩充C/S模式验证能力的机制。在Memcached中最常用的sasl方式是通过用户名/密码的组合来进行用户认证。
在进行用户认证时,由Memcached将所述用户信息和当前网络连接关联在一起,使得该用户以后连接该当前网络并发起访问请求时,可以直接访问对应该用户的用户LRU。
相应上述缓存数据访问方法,本发明实施例还提供了一种数据缓存系统,如图3所示,为该系统的结构示意图,该系统具体可以包括:
接收单元301,用于接收用户的访问请求,所述访问请求中携带有键信息;
查找单元302,用于根据所述键信息,查找哈希表得到对应的第一内存块;
第一转移单元303,用于当所述访问请求为写数据请求,将所述第一内存块转移至全局LRU以及对应所述用户的用户LRU中与写后数据大小级别相同的第一链表头部,其中,每个用户对应一个用户LRU,所述用户LRU中预置有所述用户所属的内存块链表;
选择单元304,用于如果所述用户占用内存达到内存限额,当所述第一链表不为空时,则取处于所述第一链表尾部的内存块保存所述写后数据;否则,当所述第一链表为空时,则获取所述全局LRU中与写后数据大小级别相同的第二链表,取处于所述第二链表尾部的内存块保存所述写后数据;
第二转移单元305,用于将保存写后数据的内存块转移至所述第一链表和第二链表的头部。
上述系统实施例中,通过针对每个用户设置用户LRU,当用户发起写数据的访问请求时,如果该用户占用内存达到内存限额,则优先从用户LRU中申请相应的内存块,使得该用户的内存占用保持不变,提高该用户所属内存的利用率;而当用户LRU中不存在相应的内存块时,则从全局LRU中属于其它用户的内存块中申请相应的内存块,使得内存块可以在多个用户之间共享,从而进一步提高内存的利用率。
在本发明提供的另一个系统实施例中,如图4所示,所述系统还可以包括:
第一删除单元306,用于将所述全局LRU、用户LRU及哈希表中对应所述第一内存块的记录信息删除。
该系统中,当所述访问请求为写数据请求,由于写数据并不是在该第一内存块中进行,因此,可以通过设置该第一删除单元,将所述全局LRU、用户LRU及哈希表中对应所述第一内存块的记录信息删除,即删除所述第一内存块在所述全局LRU、用户LRU及哈希表中的记录,将所述第一内存块重新放回内存池中,以释放所述第一内存块的存储空间。
在本发明提供的又一个系统实施例中,如图5所示,还可以包括:
内存块申请单元307,用于当所述访问请求为写数据请求,且所述用户占用内存未达到内存限额时,则向内存池重新申请一块与写后数据大小级别相同的内存块进行所述写后数据的保存,同时增加所述用户的占用内存计数。
本发明提供的再一个系统实施例中,如图6所示,还可以包括:
反馈单元308,用于当所述访问请求为读数据请求时,将所述第一内存块中对应数据反馈给所述用户。
当接收用户的读数据请求之后,Memcached根据所述读数据请求中携带的键信息以及用户信息查找哈希表,以确定是否存在对应的第一内存块,如果存在对应的第一内存块,则直接将所述第一内存块中对应数据反馈给所述用户。如果不存在对应的第一内存块,则可以向用户反馈请求失败的提示信息。
此外,如图7所示,该系统还可以包括:
第二删除单元309,用于当所述访问请求为删除数据请求时,则将所述第一内存块放回至相应内存池,并将所述全局LRU、用户LRU及哈希表中对应所述第一内存块的记录信息删除,同时减少所述用户的占用内存计数。
当接收用户的删除数据请求之后,Memcached根据所述删除数据请求中携带的键信息以及用户信息查找哈希表,以确定是否存在对应的第一内存块,如果存在对应的第一内存块,则将所述第一内存块放回至相应内存池,将所述全局LRU、用户LRU及哈希表中对应所述第一内存块的记录信息删除,以释放所述第一内存块的存储空间。
如图8所示,上述系统还可以包括:
认证单元310,用于根据所述用户信息,对所述用户进行认证。
为了提高访问的安全性,可以根据所述用户的身份信息,对所述用户进行认证。
对于系统实施例而言,由于其基本相应于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明实施例的精神或范围的情况下,在其它实施例中实现。因此,本发明实施例将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (12)

1.一种缓存数据访问方法,其特征在于,包括:
接收用户的访问请求,所述访问请求中携带有键信息;
根据所述键信息,查找哈希表得到对应的第一内存块;
当所述访问请求为写数据请求,将所述第一内存块转移至全局最近最少使用LRU以及对应所述用户的用户LRU中与写后数据大小级别相同的第一链表头部,其中,每个用户对应一个用户LRU,所述用户LRU中预置有所述用户所属的内存块链表;
如果所述用户占用内存达到内存限额,当所述第一链表不为空时,则取处于所述第一链表尾部的内存块保存所述写后数据;否则,当所述第一链表为空时,获取所述全局LRU中与写后数据大小级别相同的第二链表,取处于所述第二链表尾部的内存块保存所述写后数据;
将保存写后数据的内存块转移至所述第一链表和第二链表的头部。
2.根据权利要求1所述的方法,其特征在于,还包括:将所述全局LRU、用户LRU及哈希表中对应所述第一内存块的记录信息删除。
3.根据权利要求1所述的方法,其特征在于,还包括:当所述访问请求为写数据请求,且所述用户占用内存未达到内存限额时,则向内存池重新申请一块与写后数据大小级别相同的内存块进行所述写后数据的保存,同时增加所述用户的占用内存计数。
4.根据权利要求1所述的方法,其特征在于,还包括:当所述访问请求为读数据请求时,将所述第一内存块中对应数据反馈给所述用户。
5.根据权利要求1所述的方法,其特征在于,还包括:当所述访问请求为删除数据请求时,则将所述第一内存块放回至相应内存池,并将所述全局LRU、用户LRU及哈希表中对应所述第一内存块的记录信息删除,同时减少所述用户的占用内存计数。
6.根据权利要求1~5中任一项所述的方法,其特征在于,还包括:
根据所述用户的身份信息,对所述用户进行认证。
7.一种数据缓存系统,其特征在于,包括:
接收单元,用于接收用户的访问请求,所述访问请求中携带有键信息;
查找单元,用于根据所述键信息,查找哈希表得到对应的第一内存块;
第一转移单元,用于当所述访问请求为写数据请求,将所述第一内存块转移至全局LRU以及对应所述用户的用户LRU中与写后数据大小级别相同的第一链表头部,其中,每个用户对应一个用户LRU,所述用户LRU中预置有所述用户所属的内存块链表;
选择单元,用于如果所述用户占用内存达到内存限额,当所述第一链表不为空时,则取处于所述第一链表尾部的内存块保存所述写后数据;否则,当所述第一链表为空时,则获取所述全局LRU中与写后数据大小级别相同的第二链表,取处于所述第二链表尾部的内存块保存所述写后数据;
第二转移单元,用于将保存写后数据的内存块转移至所述第一链表和第二链表的头部。
8.根据权利要求7所述的系统,其特征在于,还包括:
第一删除单元,用于将所述全局LRU、用户LRU及哈希表中对应所述第一内存块的记录信息删除。
9.根据权利要求7所述的系统,其特征在于,还包括:
内存块申请单元,用于当所述访问请求为写数据请求,且所述用户占用内存未达到内存限额时,则向内存池重新申请一块与写后数据大小级别相同的内存块进行所述写后数据的保存,同时增加所述用户的占用内存计数。
10.根据权利要求7所述的系统,其特征在于,还包括:
反馈单元,用于当所述访问请求为读数据请求时,将所述第一内存块中对应数据反馈给所述用户。
11.根据权利要求7所述的系统,其特征在于,还包括:
第二删除单元,用于当所述访问请求为删除数据请求时,则将所述第一内存块放回至相应内存池,并将所述全局LRU、用户LRU及哈希表中对应所述第一内存块的记录信息删除,同时减少所述用户的占用内存计数。
12.根据权利要求7~11中任一项所述的系统,其特征在于,还包括:
认证单元,用于根据所述用户的身份信息,对所述用户进行认证。
CN201210568333.5A 2012-12-24 2012-12-24 一种缓存数据访问方法及数据缓存系统 Active CN103019964B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210568333.5A CN103019964B (zh) 2012-12-24 2012-12-24 一种缓存数据访问方法及数据缓存系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210568333.5A CN103019964B (zh) 2012-12-24 2012-12-24 一种缓存数据访问方法及数据缓存系统

Publications (2)

Publication Number Publication Date
CN103019964A true CN103019964A (zh) 2013-04-03
CN103019964B CN103019964B (zh) 2016-01-27

Family

ID=47968589

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210568333.5A Active CN103019964B (zh) 2012-12-24 2012-12-24 一种缓存数据访问方法及数据缓存系统

Country Status (1)

Country Link
CN (1) CN103019964B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107766153A (zh) * 2017-10-17 2018-03-06 华为技术有限公司 一种内存管理方法及装置
CN108280229A (zh) * 2018-02-26 2018-07-13 腾讯科技(深圳)有限公司 内存数据读写方法和装置
CN108874304A (zh) * 2018-03-30 2018-11-23 北京奇艺世纪科技有限公司 一种缓存系统的规则配置方法和装置
CN110032529A (zh) * 2018-01-11 2019-07-19 武汉斗鱼网络科技有限公司 一种内存管理方法及相关装置
CN110109763A (zh) * 2019-04-12 2019-08-09 厦门亿联网络技术股份有限公司 一种共享内存管理方法及装置
CN112437120A (zh) * 2020-11-05 2021-03-02 北京浪潮数据技术有限公司 缓存系统的访问监听方法、系统、电子设备及存储介质
CN113010455A (zh) * 2021-03-18 2021-06-22 北京金山云网络技术有限公司 数据处理方法、装置和电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101131673A (zh) * 2006-08-22 2008-02-27 中兴通讯股份有限公司 一种通用缓存的方法
US7856530B1 (en) * 2007-10-31 2010-12-21 Network Appliance, Inc. System and method for implementing a dynamic cache for a data storage system
CN102117309A (zh) * 2010-01-06 2011-07-06 卓望数码技术(深圳)有限公司 一种数据缓存系统和数据查询方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101131673A (zh) * 2006-08-22 2008-02-27 中兴通讯股份有限公司 一种通用缓存的方法
US7856530B1 (en) * 2007-10-31 2010-12-21 Network Appliance, Inc. System and method for implementing a dynamic cache for a data storage system
CN102117309A (zh) * 2010-01-06 2011-07-06 卓望数码技术(深圳)有限公司 一种数据缓存系统和数据查询方法

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107766153A (zh) * 2017-10-17 2018-03-06 华为技术有限公司 一种内存管理方法及装置
CN110032529A (zh) * 2018-01-11 2019-07-19 武汉斗鱼网络科技有限公司 一种内存管理方法及相关装置
CN108280229A (zh) * 2018-02-26 2018-07-13 腾讯科技(深圳)有限公司 内存数据读写方法和装置
CN108280229B (zh) * 2018-02-26 2022-01-25 腾讯科技(深圳)有限公司 内存数据读写方法和装置
CN108874304A (zh) * 2018-03-30 2018-11-23 北京奇艺世纪科技有限公司 一种缓存系统的规则配置方法和装置
CN108874304B (zh) * 2018-03-30 2021-06-22 北京奇艺世纪科技有限公司 一种缓存系统的规则配置方法和装置
CN110109763A (zh) * 2019-04-12 2019-08-09 厦门亿联网络技术股份有限公司 一种共享内存管理方法及装置
CN112437120A (zh) * 2020-11-05 2021-03-02 北京浪潮数据技术有限公司 缓存系统的访问监听方法、系统、电子设备及存储介质
CN112437120B (zh) * 2020-11-05 2023-06-30 北京浪潮数据技术有限公司 缓存系统的访问监听方法、系统、电子设备及存储介质
CN113010455A (zh) * 2021-03-18 2021-06-22 北京金山云网络技术有限公司 数据处理方法、装置和电子设备
CN113010455B (zh) * 2021-03-18 2024-09-03 北京金山云网络技术有限公司 数据处理方法、装置和电子设备

Also Published As

Publication number Publication date
CN103019964B (zh) 2016-01-27

Similar Documents

Publication Publication Date Title
CN103019964A (zh) 一种缓存数据访问方法及数据缓存系统
CN107209715B (zh) 文件数据访问方法和计算机系统
CN106708427A (zh) 一种适用于键值对数据的存储方法
CN103116552B (zh) 用于在分布式存储系统中分配存储空间的方法和装置
CN103473239B (zh) 一种非关系型数据库数据更新方法和装置
US20150339077A1 (en) Logical volume space sharing
CN104778222B (zh) 基于usb存储设备的媒体库建立及更新方法
CN105339910B (zh) 在混合驱动器中的虚拟nand容量扩展
CN105701219B (zh) 一种分布式缓存的实现方法
CN103338242B (zh) 一种基于多级缓存的混合云存储系统和方法
CN103186350A (zh) 混合存储系统及热点数据块的迁移方法
CN100424699C (zh) 一种属性可扩展的对象文件系统
CN106775446A (zh) 基于固态硬盘加速的分布式文件系统小文件访问方法
CN104035925B (zh) 数据存储方法、装置和存储系统
TW200726125A (en) File distribution and access mechanism and method for file management
CN107784108A (zh) 一种数据存储管理方法、装置及设备
CN110413612A (zh) 一种基于混合索引的混合内存性能优化方法及系统
CN107026876A (zh) 一种文件数据访问系统及方法
CN103473337A (zh) 一种分布式存储系统中处理面向海量目录和文件的方法
CN105573682A (zh) 一种san存储系统及其数据读写方法
CN102521114A (zh) 一种虚拟化环境下的文件系统日志存储系统
CN109189772A (zh) 用于无文件系统存储介质的文件管理方法及系统
CN107679420A (zh) 一种基于分布式文件系统的权限设置方法及系统
CN104572505A (zh) 一种保证海量数据缓存最终一致性的系统及方法
CN109164976A (zh) 利用写缓存优化存储设备性能

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP02 Change in the address of a patent holder
CP02 Change in the address of a patent holder

Address after: 100086 12, 1201, 3 building, 2 South Road, Haidian District Academy of Sciences, Beijing.

Patentee after: Beijing Sohu New Media Information Technology Co., Ltd.

Address before: 100084 Beijing Haidian District Zhongguancun East Road 1 hospital 9 building Sohu cyber Building 8 floor 802 room.

Patentee before: Beijing Sohu New Media Information Technology Co., Ltd.