CN101122885A - 一种数据缓存处理方法、系统及数据缓存装置 - Google Patents

一种数据缓存处理方法、系统及数据缓存装置 Download PDF

Info

Publication number
CN101122885A
CN101122885A CNA2007100770393A CN200710077039A CN101122885A CN 101122885 A CN101122885 A CN 101122885A CN A2007100770393 A CNA2007100770393 A CN A2007100770393A CN 200710077039 A CN200710077039 A CN 200710077039A CN 101122885 A CN101122885 A CN 101122885A
Authority
CN
China
Prior art keywords
node
data
internal fragmentation
key word
chained list
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
CNA2007100770393A
Other languages
English (en)
Other versions
CN100498740C (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.)
Shenzhen Tencent Computer Systems Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CNB2007100770393A priority Critical patent/CN100498740C/zh
Publication of CN101122885A publication Critical patent/CN101122885A/zh
Priority to PCT/CN2008/072302 priority patent/WO2009033419A1/zh
Application granted granted Critical
Publication of CN100498740C publication Critical patent/CN100498740C/zh
Priority to US12/707,735 priority patent/US20100146213A1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明适用于数据缓存领域,提供了一种数据缓存处理方法、系统及数据缓存装置,所述方法包括下述步骤:配置缓存中的节点,以及所述节点对应的内存分片,所述节点用于存储数据的索引信息和指向对应内存分片的指针,所述内存分片用于存储写入缓存的数据;根据配置的节点以及对应的内存分片对数据进行缓存处理。本发明对数据的大小要求较低,通用性好,不需要对单个存储数据大小分布的先验知识,既提高了缓存的通用性,又可以有效减少内存的浪费,提高内存使用率。

Description

一种数据缓存处理方法、系统及数据缓存装置
技术领域
本发明属于数据缓存领域,尤其涉及一种数据缓存处理方法、系统及数据缓存装置。
背景技术
在计算机与互联网应用中,为了提高用户的访问速度并降低后端服务器的压力,在数据库、磁盘等慢速系统或设备的前端,一般采用缓存(Cache)技术,利用内存等访问速度较快的设备存储用户经常访问的数据,由于内存的访问速度比磁盘等快得多,既可以减轻后端设备的压力,又能够及时响应用户请求。
缓存中可以存储各种数据类型,例如用户的属性数据、图片数据以及用户需要保存的各种文件等。图1示出了现有缓存的结构,包含头部结构、哈希(Hash)桶和多个节点(Node)。其中,头部结构中保存有哈希桶(Hash Bucket)的位置,Hash桶的桶深(hash值个数),节点数,已经使用的节点数等。Hash桶中存储各hash值对应的节点链表头指针,该指针指向一个节点,由于每个节点都指向下一个节点直至最后一个节点,因此从该指针可以得到整条节点链。
节点中存储关键字(Key)、数据(Data)和指向下一节点的指针,是缓存的主要操作单元。在某个hash值所对应的节点链表长度不够时,设立由多个节点组成的附加节点链表备用,其头指针保存在附加头部。附加节点链表与节点链表的组织形式一致。
当插入一条记录时,得到需要写入缓存的数据及其对应的关键字,根据该关键字通过Hash散列算法确定对应的hash值,顺序遍历该hash值对应的节点链表,查找是否存在对应于该关键字的记录,如果有则更新该记录,如果没有则将数据插入到该节点链表的最后一个节点。如果该节点链表中的节点已经用完,则将该关键字和数据存储在附加节点链表头指针指向的附加节点链表中。
当读取一条记录时,根据该记录的关键字通过Hash散列算法确定对应的hash值,顺序遍历该hash值对应的节点链表,查找是否存在对应于该关键字的记录,如果没有查找到再去查找附加节点链表,如果已经查找到,则将相应数据返回。
当删除一条记录时,根据该记录的关键字通过Hash散列算法确定对应的hash值,顺序遍历该hash值对应的节点链表,查找是否存在对应于该关键字的记录,如果没有查找到再去查找附加节点链表,查找到后删除此关键字和相应数据。
在现有缓存中,由于一块数据必须存储在一个节点内,因此节点内的数据空间必须大于所需要存储的数据长度,这就需要在缓存使用之前对缓存的数据大小有一个较为明确的认识,避免较大的数据无法存入缓存。同时,由于实际应用中数据的大小一般存在较大的差别,但每个数据都需要占用一个节点,容易造成内存空间的浪费,在数据较小时浪费的内存空间更大。另外,记录的查找效率低,查找完单个节点链表后,如果没有查找到相应记录还需要查找附加节点链表,在附加节点链表较长的情况下查找消耗的时间较多。
发明内容
本发明实施例的目的在于提供一种数据缓存处理方法,旨在解决采用现有缓存的结构对数据进行缓存处理时,容易导致内存空间浪费,记录查找效率低的问题。
本发明实施例是这样实现的,一种数据缓存处理方法,所述方法包括下述步骤:
配置缓存中的节点,以及所述节点对应的内存分片,所述节点用于存储数据的索引信息和指向对应内存分片的指针,所述内存分片用于存储写入缓存的数据;
根据配置的节点以及对应的内存分片对数据进行缓存处理。
本发明实施例的另一目的在于提供一种数据缓存处理系统,所述系统包括:
缓存配置单元,用于配置缓存中的节点,以及所述节点对应的内存分片,所述节点用于存储数据的索引信息和指向对应内存分片的指针,所述内存分片用于存储写入缓存的数据;以及
缓存处理操作单元,用于根据配置的节点以及对应的内存分片对数据进行缓存处理。
本发明实施例的另一目的在于提供一种数据缓存装置,所述装置包括节点区和内存分片区,所述节点区包括:
头部结构,用于存储哈希桶的位置,哈希桶的桶深,节点区的节点总数,已使用的节点数,哈希桶使用数,以及空闲节点链表头指针;
哈希桶,用于存储每个哈希值对应的节点链表头指针;以及
至少一个节点,用于存储记录的关键字,节点中的数据长度,节点对应的内存分片链表头指针,节点链表前指针,以及节点链表后指针;
所述内存分片区包括:
头部结构,用于存储所述内存分片区的内存分片总数,内存分片大小,空闲内存分片总数,空闲内存分片链表头指针,以及内存分片链表头指针;以及
至少一个内存分片,用于存储写入缓存的数据,以及下一内存分片指针。
在本发明实施例中,配置缓存的节点以及节点对应的内存分片,节点中存储数据的索引信息和指向对应内存分片的指针,将数据存储在内存分片中,根据节点以及节点对应的内存分片执行各种数据缓存处理操作,该发明实施例对数据的大小要求较低,通用性好,不需要对单个存储数据大小分布的先验知识,既提高了缓存的通用性,又可以有效减少内存的浪费,提高内存使用率。
附图说明
图1是现有技术提供的缓存的结构图;
图2是本发明实施例提供的缓存的结构图;
图3是本发明实施例提供的在缓存中插入一条记录的实现流程图;
图4是本发明实施例提供的从缓存中读出一条记录的实现流程图;
图5是本发明实施例提供的从缓存中删除一条记录的实现流程图;
图6是本发明实施例提供的数据缓存处理系统的结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明实施例中,配置缓存的节点以及节点对应的内存分片,节点中存储数据的索引信息和指向对应内存分片的指针,将数据存储在内存分片中,并根据节点以及节点对应的内存分片执行各种数据缓存处理操作,例如插入记录、读取记录或者删除记录等。
图2示出了本发明实施例提供的缓存的结构,包括节点区和内存分片(Chunk)区两个区。内存分片区是在内存中分配的一个共享内存区,该共享内存区划分为至少一个内存分片,用于存储数据,同一个节点对应的数据可以存储在多个内存分片中,需要的内存分片数量根据数据的大小分配。节点中存储索引信息和指向对应内存分片的指针。
节点区包含头部结构,Hash桶和至少一个节点。头部结构主要存储如下信息:
1.Hash桶的位置,指向Hash桶的起始位置;
2.Hash桶的桶深,表示Hash桶内hash值的个数;
3.节点总数,表示该缓存最多可以存储的记录个数;
4.已使用的节点数;
5.Hash桶使用数,表示Hash桶中当前节点链表的个数;
6.LRU操作附加链表头指针,指向LRU操作附加链表的头部;
7.LRU操作附加链表尾指针,指向LRU操作附加链表的尾部;
8.空闲节点链表头指针,指向空闲节点链表的头部,每次需要分配节点时,从空闲节点链表上取下一个节点使用,并将空闲节点链表头指针指向下一个节点。
Hash桶主要存储每个hash值对应的节点链表头指针。根据数据对应的关键字通过Hash散列算法确定对应的hash值,获取该hash值在Hash桶中的位置,查找对应的节点链表头指针,从而查找到该hash值对应的整条节点链。
节点主要存储以下信息:
1.关键字,用来唯一确定一条记录,不同记录的关键字不能重复;
2.节点中的数据长度,表示一个节点中实际存储数据的长度,可以据此计算所使用的内存分片数量;
3.内存分片链表头指针,指向存储该节点数据的内存分片链表上的一个内存分片,通过该指针可以得到该节点对应的整条内存分片链;
4.节点链表前指针,指向当前节点链表上的前一个节点;
5.节点链表后指针,指向当前节点链表上的后一个节点;
6.节点使用状态链表前指针,指向节点使用状态链表上的前一个节点;
7.节点使用状态链表后指针,指向节点使用状态链表上的后一个节点;
8.最后访问时间,记录该条记录的最后访问时间;
9.访问次数,记录该条记录在缓存中被访问的次数。
在本发明实施例中,可以根据节点链表前指针和节点链表后指针对节点链表进行灵活的节点插入或者删除等配置,例如将一个节点删除时,根据该节点的节点链表前指针和节点链表后指针调整其相邻的上一节点的节点链表后指针和下一节点的节点链表前指针,使得删除了该节点后的节点链表连续。
另外,本发明实施例通过节点使用状态链表头指针、节点使用状态链表尾指针、节点使用状态链表前指针、节点使用状态链表后指针,以及节点的最后访问时间、访问次数可以实现缓存的最近最少用(Least Recently Used,LRU)等操作,将节点中最近最少使用的数据移出内存,回收相应的内存分片和节点,以节省内存空间。
本发明实施例中,记录节点的使用状态,按照节点的最后访问时间和访问次数执行LRU操作,对节点进行淘汰。当一个节点被访问时,将该节点的前一个节点的节点使用状态链表后指针指向该节点的后一个节点,将该节点后一个节点的节点使用状态链表前指针指向该节点的前一个节点,这样就将该节点的前后节点连接起来,然后将该节点的节点使用状态链表后指针指向节点使用状态链表头指针指向的节点,将节点使用状态链表头指针指向该节点,从而将该节点插到使用状态链表的头部。当其他节点被访问时作类似处理,节点使用状态链表尾指针指向最少被访问的节点。在执行LRU操作时,删除节点使用状态链表尾指针当前指向的节点对应的内存分片中的数据,将该节点的内存分片回收。
内存分片区主要存储数据分片的链表结构和数据,包括头部结构和至少一个内存分片。
头部结构主要保存如下信息:
1.内存分片总数,表示内存分片区中的总内存分片数;
2.内存分片大小,表示一个内存分片能够存储的数据长度;
3.空闲内存分片总数,表示缓存还可以增加存储的最大数据长度;
4.空闲内存分片链表头指针,指向空闲内存分片链表的头部,每次需要分配节点内存分片时,从空闲内存分片链表上取空闲的内存分片使用。
内存分片包含数据区和内存分片后指针,分别用于存储实际记录的数据和下一内存分片指针。如果一个内存分片不够存储一条记录的数据,则可以将多个内存分片链接起来,将数据分片存储在每个内存分片对应的数据存储区域中。
图3示出了本发明实施例提供的在缓存中插入一条记录的实现流程,详述如下:
在步骤S301中,获取需要写入缓存的数据及其对应的关键字,根据该关键字通过Hash散列算法获取对应的hash值;
在步骤S302中,根据该hash值在Hash桶中的位置,获取该hash值对应的节点链表头指针;
在步骤S303中,根据该节点链表头指针,遍历Hash桶中的节点链表,查找该关键字是否已存在,是则执行步骤S304,否则执行步骤S308;
在步骤S304中,判断回收存储该关键字对应的记录的节点和内存分片后,空闲内存分片的总容量是否能够容纳该写入缓存的数据,是则执行步骤S305,否则结束;
在步骤S305中,将该关键字对应的记录中的数据删除,将原存储该记录的数据的内存分片链表头指针指向空闲内存分片链表,回收删除了数据后的内存分片。
在步骤S306中,根据数据的大小重新分配需要的内存分片;
在步骤S307中,将数据进行分片后依次写入分配的内存分片中,形成存储该数据的内存分片链表,并将节点的内存分片链表头指针指向该内存分片链表的头部;
在步骤S308中,判断空闲的总内存分片的容量是否能够容纳该写入缓存的数据,是则执行步骤S309,否则结束;
在步骤S309中,从空闲节点链表上取出一个节点;
在步骤S310中,根据需要存储的数据长度和内存分片的大小分配相应数量的内存分片,从空闲内存分片链表上取出所分配的内存分片,执行步骤S307将数据进行分片后依次写入所分配的内存分片中,形成存储该数据的内存分片链表,并将节点的内存分片链表头指针指向该内存分片链表的头部。
在本发明实施例中,添加一条记录时,如果用户数据超过一个内存分片所能存储的数据量,则需要将用户数据分片存储到多个内存分片中去。假设需要n个内存分片,前n-1个数据分片的大小都等于内存分片保存数据的容量,最后一个内存分片保存剩余数据,可能小于该内存分片的容量。读取一条记录的过程则相反。
图4示出了本发明实施例提供的从缓存中读出一条记录的实现流程,详述如下:
在步骤S401中,获取需要读取的数据的关键字,根据该关键字通过Hash散列算法获取该关键字对应的hash值;
在步骤S402中,根据hash值在Hash桶中的位置,查找对应的节点链表头指针;
在步骤S403中,根据该节点链表头指针,遍历Hash桶中的节点链表,查找该关键字是否已存在,是则执行步骤S404,否则结束;
在步骤S404中,查找该节点对应的内存分片链表头指针;
在步骤S405中,从该内存分片链表头指针指向的内存分片链表中依次读取内存分片数据,恢复成完整的数据块,返回给用户。
图5示出了本发明实施例提供的从缓存中删除一条记录的实现流程,详述如下:
在步骤S501中,获取需要读取的数据的关键字,根据该关键字通过Hash散列算法获取该关键字对应的hash值;
在步骤S502中,根据hash值在Hash桶中的位置,查找对应的节点链表头指针;
在步骤S503中,根据该节点链表头指针,遍历Hash桶中的节点链表,查找该关键字是否已存在,是则执行步骤S504,否则结束;
在步骤S504中,查找该节点对应的内存分片链表头指针;
在步骤S505中,将该内存分片链表中保存的数据删除,并将该内存分片链表中的内存分片的内存分片后指针全部指向空闲内存分片链表,从而将内存分片回收至空闲内存分片链表中;
在步骤S506中,将该节点的内存分片链表头指针指向空闲节点链表,从而将该节点回收至空闲节点链表中。
图6示出了本发明实施例提供的数据缓存处理系统的结构,详述如下:
缓存配置单元61对缓存63中的节点,以及节点对应的内存分片进行配置。其中,节点中存储数据的索引信息和指向对应内存分片的指针,内存分片中存储写入缓存63的数据。如前所述,索引信息中包含有数据的关键字,节点中的数据长度,节点对应的内存分片链表头指针,节点链表前指针,以及节点链表后指针等信息。
在对缓存63进行配置时,节点区配置模块611配置节点区存储的信息,节点区中包括头部结构、Hash桶以及至少一个节点,节点区头部结构、Hash桶和节点中存储的信息如前所述,不再赘述。内存分片区配置模块612配置内存分片区存储的信息,内存分片区中包括头部结构和至少一个内存分片,内存分片区头部结构和内存分片中存储的信息如前所述,不再赘述。
缓存处理操作单元62根据配置的节点以及对应的内存分片对数据进行缓存处理。
当插入一条记录时,记录插入模块621根据需要写入缓存63的数据所对应的关键字,查询节点链表,当节点链表中存在该关键字时,删除该关键字对应的内存分片中的数据,回收删除数据后的内存分片,并根据数据的大小分配相应的内存分片,将数据分片后依次写入所分配的内存分片中,当节点链表中不存在该关键字时,分配一个空闲节点,以及与该数据的长度对应的内存分片,将数据分片依次写入所分配的内存分片中。
当读取一条记录时,记录读取模块622根据需要写入缓存63的数据所对应的关键字,查询节点链表,当节点链表中存在该关键字时,依次读取该关键字对应的内存分片中的数据,恢复成完整的数据块。
当删除一条记录时,记录删除模块623根据需要写入缓存63的数据所对应的关键字,查询节点链表,当节点链表中存在该关键字时,将该关键字对应的内存分片中的数据删除,回收删除数据后的内存分片以及对应的节点。
作为本发明的一个实施例,通过最近最少使用处理模块624,可以根据记录的访问时间和访问次数对缓存63中的数据进行LRU操作,将最近最少使用的数据移出内存,回收相应的内存分片和节点,以节省内存空间。
本发明实施例对数据的大小要求较低,通用性好,不需要对单个存储数据大小分布的先验知识,既提高了缓存的通用性,又可以有效减少内存的浪费,提高内存使用率。同时,数据查找效率比较高,支持LRU等操作。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (15)

1.一种数据缓存处理方法,其特征在于,所述方法包括下述步骤:
配置缓存中的节点,以及所述节点对应的内存分片,所述节点用于存储数据的索引信息和指向对应内存分片的指针,所述内存分片用于存储写入缓存的数据;
根据配置的节点以及对应的内存分片对数据进行缓存处理。
2.如权利要求1所述的方法,其特征在于,当插入一条记录时,所述根据配置的节点以及对应的内存分片对数据进行缓存处理的步骤具体为:
根据需要写入缓存的数据所对应的关键字,查询节点链表中是否存在该关键字;
当节点链表中存在该关键字,且回收该关键字对应的内存分片后,空闲内存分片的总容量能够容纳所述写入缓存的数据时,回收该关键字对应的内存分片,根据所述写入缓存的数据的大小分配相应的内存分片,将所述写入缓存的数据分片后依次写入所分配的内存分片中;
当节点链表中不存在该关键字时,且空闲内存分片的总容量能够容纳所述写入缓存的数据时,分配一个空闲节点,以及与所述写入缓存的数据的大小对应的内存分片,将所述写入缓存的数据分片后依次写入所分配的内存分片中。
3.如权利要求1所述的方法,其特征在于,当读取一条记录时,所述根据配置的节点以及对应的内存分片对数据进行缓存处理的步骤具体为:
根据需要写入缓存的数据所对应的关键字,查询节点链表中是否存在该关键字,是则依次读取该关键字对应的内存分片中的数据,恢复成完整的数据块,否则结束。
4.如权利要求1所述的方法,其特征在于,当删除一条记录时,所述根据配置的节点以及对应的内存分片对数据进行缓存处理的步骤具体为:
根据需要写入缓存的数据所对应的关键字,查询节点链表中是否存在该关键字,是则将该关键字对应的内存分片中的数据删除,回收删除数据后的内存分片以及对应的节点,否则结束。
5.如权利要求1所述的方法,其特征在于,所述根据配置的节点以及对应的内存分片对数据进行缓存处理的步骤进一步包括:
根据记录的访问时间和访问次数对缓存中的数据进行最近最少使用LRU操作。
6.如权利要求1至5任一权利要求所述的方法,其特征在于,所述数据的索引信息包括数据的关键字,节点中的数据长度,节点对应的内存分片链表头指针,节点链表前指针,以及节点链表后指针。
7.一种数据缓存处理系统,其特征在于,所述系统包括:
缓存配置单元,用于配置缓存中的节点,以及所述节点对应的内存分片,所述节点用于存储数据的索引信息和指向对应内存分片的指针,所述内存分片用于存储写入缓存的数据;以及
缓存处理操作单元,用于根据配置的节点以及对应的内存分片对数据进行缓存处理。
8.如权利要求7所述的系统,其特征在于,所述缓存配置单元包括:
节点区配置模块,用于配置节点区存储的信息,所述节点区包括头部结构、哈希桶以及至少一个节点;
内存分片区配置模块,用于配置内存分片区存储的信息,所述内存分片区包括头部结构以及至少一个内存分片。
9.如权利要求7所述的系统,其特征在于,所述缓存处理操作单元包括:
记录插入模块,用于根据需要写入缓存的数据所对应的关键字,查询节点链表,当节点链表中存在该关键字时,删除该关键字对应的内存分片中的数据,回收删除数据后的内存分片,并根据数据的大小分配相应的内存分片,将数据分片后依次写入所分配的内存分片中,当节点链表中不存在该关键字时,分配一个空闲节点,以及与该数据的长度对应的内存分片,将数据分片依次写入所分配的内存分片中。
10.如权利要求7所述的系统,其特征在于,所述缓存处理操作单元包括:
记录读取模块,用于根据需要写入缓存的数据所对应的关键字,查询节点链表,当节点链表中存在该关键字时,依次读取该关键字对应的内存分片中的数据,恢复成完整的数据块。
11.如权利要求7所述的系统,其特征在于,所述缓存处理操作单元包括:
记录删除模块,用于根据需要写入缓存的数据所对应的关键字,查询节点链表,当节点链表中存在该关键字时,将该关键字对应的内存分片中的数据删除,回收删除数据后的内存分片以及对应的节点。
12.如权利要求7所述的系统,其特征在于,所述缓存处理操作单元包括:
最近最少使用处理模块,用于根据记录的访问时间和访问次数对缓存中的数据进行最近最少使用LRU操作。
13.如权利要求7至12任一权利要求所述的系统,其特征在于,所述数据的索引信息包括数据的关键字,节点中的数据长度,节点对应的内存分片链表头指针,节点链表前指针,以及节点链表后指针。
14.一种数据缓存装置,其特征在于,所述装置包括节点区和内存分片区,所述节点区包括:
头部结构,用于存储哈希桶的位置,哈希桶的桶深,节点区的节点总数,已使用的节点数,哈希桶使用数,以及空闲节点链表头指针;
哈希桶,用于存储每个哈希值对应的节点链表头指针;以及
至少一个节点,用于存储记录的关键字,节点中的数据长度,节点对应的内存分片链表头指针,节点链表前指针,以及节点链表后指针;
所述内存分片区包括:
头部结构,用于存储所述内存分片区的内存分片总数,内存分片大小,空闲内存分片总数,空闲内存分片链表头指针,以及内存分片链表头指针;以及
至少一个内存分片,用于存储写入缓存的数据,以及下一内存分片指针。
15.如权利要求14所述的装置,其特征在于,所述节点区的头部结构中进一步存储有节点使用状态链表头指针和节点使用状态链表尾指针;
所述节点中进一步存储有节点使用状态链表前指针,节点使用状态链表后指针,节点的最后访问时间,以及节点的访问次数。
CNB2007100770393A 2007-09-11 2007-09-11 一种数据缓存处理方法、系统及数据缓存装置 Active CN100498740C (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CNB2007100770393A CN100498740C (zh) 2007-09-11 2007-09-11 一种数据缓存处理方法、系统及数据缓存装置
PCT/CN2008/072302 WO2009033419A1 (fr) 2007-09-11 2008-09-09 Procédé de traitement de mise en antémémoire de données, système et dispositif de mise en antémémoire de données
US12/707,735 US20100146213A1 (en) 2007-09-11 2010-02-18 Data Cache Processing Method, System And Data Cache Apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2007100770393A CN100498740C (zh) 2007-09-11 2007-09-11 一种数据缓存处理方法、系统及数据缓存装置

Publications (2)

Publication Number Publication Date
CN101122885A true CN101122885A (zh) 2008-02-13
CN100498740C CN100498740C (zh) 2009-06-10

Family

ID=39085224

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2007100770393A Active CN100498740C (zh) 2007-09-11 2007-09-11 一种数据缓存处理方法、系统及数据缓存装置

Country Status (3)

Country Link
US (1) US20100146213A1 (zh)
CN (1) CN100498740C (zh)
WO (1) WO2009033419A1 (zh)

Cited By (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009033419A1 (fr) * 2007-09-11 2009-03-19 Tencent Technology (Shenzhen) Company Limited Procédé de traitement de mise en antémémoire de données, système et dispositif de mise en antémémoire de données
CN102196298A (zh) * 2011-05-19 2011-09-21 广东星海数字家庭产业技术研究院有限公司 一种分布式视频点播系统与方法
CN102436420A (zh) * 2010-10-20 2012-05-02 微软公司 使用辅助存储器的低ram空间、高吞吐量的持久键值存储
CN102831181A (zh) * 2012-07-31 2012-12-19 北京光泽时代通信技术有限公司 缓存文件的目录刷新方法及采用该方法的代理缓存服务器
CN102880628A (zh) * 2012-06-15 2013-01-16 福建星网锐捷网络有限公司 哈希数据存储方法和装置
CN102999434A (zh) * 2011-09-15 2013-03-27 阿里巴巴集团控股有限公司 一种内存管理方法及装置
CN103020182A (zh) * 2012-11-29 2013-04-03 深圳市新国都技术股份有限公司 一种基于hash算法的数据查找方法
WO2013075627A1 (zh) * 2011-11-21 2013-05-30 华为技术有限公司 一种数据的缓存方法、装置和服务器
CN103139224A (zh) * 2011-11-22 2013-06-05 腾讯科技(深圳)有限公司 一种网络文件系统及网络文件系统的访问方法
CN103152627A (zh) * 2013-03-15 2013-06-12 华为终端有限公司 机顶盒时移数据存储方法、装置和机顶盒
CN103560976A (zh) * 2013-11-20 2014-02-05 迈普通信技术股份有限公司 一种控制数据发送的方法、装置及系统
CN103714059A (zh) * 2012-09-28 2014-04-09 腾讯科技(深圳)有限公司 一种更新数据的方法及装置
CN103905503A (zh) * 2012-12-27 2014-07-02 中国移动通信集团公司 数据存取方法、调度方法、设备及系统
CN104462549A (zh) * 2014-12-25 2015-03-25 瑞斯康达科技发展股份有限公司 一种数据处理方法和装置
CN104598390A (zh) * 2011-11-14 2015-05-06 北京奇虎科技有限公司 一种数据存储方法及装置
CN104850507A (zh) * 2014-02-18 2015-08-19 腾讯科技(深圳)有限公司 一种数据缓存方法和数据缓存装置
CN105095261A (zh) * 2014-05-08 2015-11-25 北京奇虎科技有限公司 数据插入方法和装置
WO2016019803A1 (zh) * 2014-08-06 2016-02-11 阿里巴巴集团控股有限公司 基于分布式内存和数据库的数据处理方法、装置和系统
CN105701130A (zh) * 2014-11-28 2016-06-22 阿里巴巴集团控股有限公司 数据库数值扣减方法及系统
CN105740352A (zh) * 2016-01-26 2016-07-06 华中电网有限公司 用于智能电网调度控制系统的历史数据服务系统
CN106202121A (zh) * 2015-05-07 2016-12-07 阿里巴巴集团控股有限公司 数据存储及导出的方法和设备
CN106547603A (zh) * 2015-09-23 2017-03-29 北京奇虎科技有限公司 减少golang语言系统垃圾回收时间的方法和装置
CN107018040A (zh) * 2017-02-27 2017-08-04 杭州天宽科技有限公司 一种端口数据采集、缓存并展示的实现方法
CN107544964A (zh) * 2016-06-24 2018-01-05 吴建凰 一种用于时序数据库的数据块存储方法
CN107678682A (zh) * 2017-08-16 2018-02-09 芜湖恒天易开软件科技股份有限公司 用于充电桩费率存储的方法
CN107967301A (zh) * 2017-11-07 2018-04-27 许继电气股份有限公司 一种电力电缆隧道监控数据的存储、查询方法及装置
CN108228479A (zh) * 2018-01-29 2018-06-29 深圳市泰比特科技有限公司 一种嵌入式flash数据存储方法及系统
CN109614372A (zh) * 2018-10-26 2019-04-12 阿里巴巴集团控股有限公司 一种对象存储、读取方法、装置、及业务服务器
CN109766341A (zh) * 2018-12-27 2019-05-17 厦门市美亚柏科信息股份有限公司 一种建立哈希映射的方法、装置、存储介质
CN110109763A (zh) * 2019-04-12 2019-08-09 厦门亿联网络技术股份有限公司 一种共享内存管理方法及装置
CN110244911A (zh) * 2019-06-20 2019-09-17 北京奇艺世纪科技有限公司 一种数据处理方法及系统
CN110457398A (zh) * 2019-08-15 2019-11-15 广州蚁比特区块链科技有限公司 区块数据存储方法及装置
CN111367461A (zh) * 2018-12-25 2020-07-03 北京兆易创新科技股份有限公司 一种存储空间管理方法及装置
CN111371703A (zh) * 2018-12-25 2020-07-03 迈普通信技术股份有限公司 一种报文重组方法及网络设备
CN112433674A (zh) * 2020-11-16 2021-03-02 连邦网络科技服务南通有限公司 一种计算机用数据迁移系统及方法
CN112947856A (zh) * 2021-02-05 2021-06-11 彩讯科技股份有限公司 一种内存数据的管理方法、装置、计算机设备及存储介质
CN113687964A (zh) * 2021-09-09 2021-11-23 腾讯科技(深圳)有限公司 数据处理方法、装置、电子设备、存储介质及程序产品
CN113806249A (zh) * 2021-09-13 2021-12-17 济南浪潮数据技术有限公司 一种对象存储有序列举方法、装置、终端及存储介质

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101656659B (zh) * 2008-08-19 2012-05-23 中兴通讯股份有限公司 一种混合业务流的缓存处理方法、存储转发方法及装置
CN103136278B (zh) * 2011-12-05 2016-10-05 腾讯科技(深圳)有限公司 一种读取数据的方法及装置
KR101434887B1 (ko) * 2012-03-21 2014-09-02 네이버 주식회사 네트워크 스위치를 이용한 캐시 시스템 및 캐시 서비스 제공 방법
CN102647251A (zh) * 2012-03-26 2012-08-22 北京星网锐捷网络技术有限公司 数据传输方法及系统、发送端设备与接收端设备
CN103544117B (zh) * 2012-07-13 2017-03-01 阿里巴巴集团控股有限公司 一种数据读取方法及装置
CN102831694B (zh) * 2012-08-09 2015-01-14 广州广电运通金融电子股份有限公司 一种图像识别系统及图像存储控制方法
US9348752B1 (en) 2012-12-19 2016-05-24 Amazon Technologies, Inc. Cached data replication for cache recovery
CN111324451B (zh) * 2017-01-25 2023-04-28 安科讯(福建)科技有限公司 一种基于lte协议栈的内存块越界的定位方法及其系统
WO2018162069A1 (en) * 2017-03-09 2018-09-13 Huawei Technologies Co., Ltd. Computer system for distributed machine learning
CN106874124B (zh) * 2017-03-30 2023-04-14 光一科技股份有限公司 一种基于SQLite快速加载技术的面向对象用电信息采集终端
US10642660B2 (en) * 2017-05-19 2020-05-05 Sap Se Database variable size entry container page reorganization handling based on use patterns
US10789176B2 (en) * 2018-08-09 2020-09-29 Intel Corporation Technologies for a least recently used cache replacement policy using vector instructions

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5537574A (en) * 1990-12-14 1996-07-16 International Business Machines Corporation Sysplex shared data coherency method
US5263160A (en) * 1991-01-31 1993-11-16 Digital Equipment Corporation Augmented doubly-linked list search and management method for a system having data stored in a list of data elements in memory
US5829051A (en) * 1994-04-04 1998-10-27 Digital Equipment Corporation Apparatus and method for intelligent multiple-probe cache allocation
US5797004A (en) * 1995-12-08 1998-08-18 Sun Microsystems, Inc. System and method for caching and allocating thread synchronization constructs
US6728854B2 (en) * 2001-05-15 2004-04-27 Microsoft Corporation System and method for providing transaction management for a data storage space
US6854033B2 (en) * 2001-06-29 2005-02-08 Intel Corporation Using linked list for caches with variable length data
US6892378B2 (en) * 2001-09-17 2005-05-10 Hewlett-Packard Development Company, L.P. Method to detect unbounded growth of linked lists in a running application
TW591526B (en) * 2002-04-09 2004-06-11 Via Tech Inc Data maintenance method of DSM system
CA2384185A1 (en) * 2002-04-29 2003-10-29 Ibm Canada Limited-Ibm Canada Limitee Resizable cache sensitive hash table
US7096323B1 (en) * 2002-09-27 2006-08-22 Advanced Micro Devices, Inc. Computer system with processor cache that stores remote cache presence information
CN100498740C (zh) * 2007-09-11 2009-06-10 腾讯科技(深圳)有限公司 一种数据缓存处理方法、系统及数据缓存装置

Cited By (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009033419A1 (fr) * 2007-09-11 2009-03-19 Tencent Technology (Shenzhen) Company Limited Procédé de traitement de mise en antémémoire de données, système et dispositif de mise en antémémoire de données
US10558705B2 (en) 2010-10-20 2020-02-11 Microsoft Technology Licensing, Llc Low RAM space, high-throughput persistent key-value store using secondary memory
CN102436420A (zh) * 2010-10-20 2012-05-02 微软公司 使用辅助存储器的低ram空间、高吞吐量的持久键值存储
CN102196298A (zh) * 2011-05-19 2011-09-21 广东星海数字家庭产业技术研究院有限公司 一种分布式视频点播系统与方法
CN102999434A (zh) * 2011-09-15 2013-03-27 阿里巴巴集团控股有限公司 一种内存管理方法及装置
CN104598390B (zh) * 2011-11-14 2019-06-04 北京奇虎科技有限公司 一种数据存储方法及装置
CN104598390A (zh) * 2011-11-14 2015-05-06 北京奇虎科技有限公司 一种数据存储方法及装置
WO2013075627A1 (zh) * 2011-11-21 2013-05-30 华为技术有限公司 一种数据的缓存方法、装置和服务器
CN103139224B (zh) * 2011-11-22 2016-01-27 腾讯科技(深圳)有限公司 一种网络文件系统及网络文件系统的访问方法
CN103139224A (zh) * 2011-11-22 2013-06-05 腾讯科技(深圳)有限公司 一种网络文件系统及网络文件系统的访问方法
CN102880628A (zh) * 2012-06-15 2013-01-16 福建星网锐捷网络有限公司 哈希数据存储方法和装置
CN102880628B (zh) * 2012-06-15 2015-02-25 福建星网锐捷网络有限公司 哈希数据存储方法和装置
CN102831181B (zh) * 2012-07-31 2014-10-01 北京光泽时代通信技术有限公司 缓存文件的目录刷新方法
CN102831181A (zh) * 2012-07-31 2012-12-19 北京光泽时代通信技术有限公司 缓存文件的目录刷新方法及采用该方法的代理缓存服务器
CN103714059A (zh) * 2012-09-28 2014-04-09 腾讯科技(深圳)有限公司 一种更新数据的方法及装置
CN103714059B (zh) * 2012-09-28 2019-01-29 腾讯科技(深圳)有限公司 一种更新数据的方法及装置
CN103020182B (zh) * 2012-11-29 2016-04-20 深圳市新国都技术股份有限公司 一种基于hash算法的数据查找方法
CN103020182A (zh) * 2012-11-29 2013-04-03 深圳市新国都技术股份有限公司 一种基于hash算法的数据查找方法
CN103905503A (zh) * 2012-12-27 2014-07-02 中国移动通信集团公司 数据存取方法、调度方法、设备及系统
CN103905503B (zh) * 2012-12-27 2017-09-26 中国移动通信集团公司 数据存取方法、调度方法、设备及系统
CN103152627B (zh) * 2013-03-15 2016-08-03 华为终端有限公司 机顶盒时移数据存储方法、装置和机顶盒
CN103152627A (zh) * 2013-03-15 2013-06-12 华为终端有限公司 机顶盒时移数据存储方法、装置和机顶盒
CN103560976B (zh) * 2013-11-20 2018-12-07 迈普通信技术股份有限公司 一种控制数据发送的方法、装置及系统
CN103560976A (zh) * 2013-11-20 2014-02-05 迈普通信技术股份有限公司 一种控制数据发送的方法、装置及系统
CN104850507A (zh) * 2014-02-18 2015-08-19 腾讯科技(深圳)有限公司 一种数据缓存方法和数据缓存装置
CN104850507B (zh) * 2014-02-18 2019-03-15 腾讯科技(深圳)有限公司 一种数据缓存方法和数据缓存装置
CN105095261A (zh) * 2014-05-08 2015-11-25 北京奇虎科技有限公司 数据插入方法和装置
WO2016019803A1 (zh) * 2014-08-06 2016-02-11 阿里巴巴集团控股有限公司 基于分布式内存和数据库的数据处理方法、装置和系统
CN105335297A (zh) * 2014-08-06 2016-02-17 阿里巴巴集团控股有限公司 基于分布式内存和数据库的数据处理方法、装置和系统
CN105335297B (zh) * 2014-08-06 2018-05-08 阿里巴巴集团控股有限公司 基于分布式内存和数据库的数据处理方法、装置和系统
CN105701130A (zh) * 2014-11-28 2016-06-22 阿里巴巴集团控股有限公司 数据库数值扣减方法及系统
CN105701130B (zh) * 2014-11-28 2019-02-01 阿里巴巴集团控股有限公司 数据库数值扣减方法及系统
CN104462549B (zh) * 2014-12-25 2018-03-23 瑞斯康达科技发展股份有限公司 一种数据处理方法和装置
CN104462549A (zh) * 2014-12-25 2015-03-25 瑞斯康达科技发展股份有限公司 一种数据处理方法和装置
CN106202121A (zh) * 2015-05-07 2016-12-07 阿里巴巴集团控股有限公司 数据存储及导出的方法和设备
CN106202121B (zh) * 2015-05-07 2019-06-28 阿里巴巴集团控股有限公司 数据存储及导出的方法和设备
CN106547603B (zh) * 2015-09-23 2021-05-18 北京奇虎科技有限公司 减少golang语言系统垃圾回收时间的方法和装置
CN106547603A (zh) * 2015-09-23 2017-03-29 北京奇虎科技有限公司 减少golang语言系统垃圾回收时间的方法和装置
CN105740352A (zh) * 2016-01-26 2016-07-06 华中电网有限公司 用于智能电网调度控制系统的历史数据服务系统
CN107544964A (zh) * 2016-06-24 2018-01-05 吴建凰 一种用于时序数据库的数据块存储方法
CN107018040A (zh) * 2017-02-27 2017-08-04 杭州天宽科技有限公司 一种端口数据采集、缓存并展示的实现方法
CN107678682A (zh) * 2017-08-16 2018-02-09 芜湖恒天易开软件科技股份有限公司 用于充电桩费率存储的方法
CN107967301B (zh) * 2017-11-07 2021-05-04 许继电气股份有限公司 一种电力电缆隧道监控数据的存储、查询方法及装置
CN107967301A (zh) * 2017-11-07 2018-04-27 许继电气股份有限公司 一种电力电缆隧道监控数据的存储、查询方法及装置
CN108228479A (zh) * 2018-01-29 2018-06-29 深圳市泰比特科技有限公司 一种嵌入式flash数据存储方法及系统
CN108228479B (zh) * 2018-01-29 2021-04-30 深圳市泰比特科技有限公司 一种嵌入式flash数据存储方法及系统
CN109614372B (zh) * 2018-10-26 2023-06-02 创新先进技术有限公司 一种对象存储、读取方法、装置、及业务服务器
CN109614372A (zh) * 2018-10-26 2019-04-12 阿里巴巴集团控股有限公司 一种对象存储、读取方法、装置、及业务服务器
CN111371703A (zh) * 2018-12-25 2020-07-03 迈普通信技术股份有限公司 一种报文重组方法及网络设备
CN111367461B (zh) * 2018-12-25 2024-02-20 兆易创新科技集团股份有限公司 一种存储空间管理方法及装置
CN111367461A (zh) * 2018-12-25 2020-07-03 北京兆易创新科技股份有限公司 一种存储空间管理方法及装置
CN109766341A (zh) * 2018-12-27 2019-05-17 厦门市美亚柏科信息股份有限公司 一种建立哈希映射的方法、装置、存储介质
CN109766341B (zh) * 2018-12-27 2022-04-22 厦门市美亚柏科信息股份有限公司 一种建立哈希映射的方法、装置、存储介质
CN110109763A (zh) * 2019-04-12 2019-08-09 厦门亿联网络技术股份有限公司 一种共享内存管理方法及装置
CN110244911A (zh) * 2019-06-20 2019-09-17 北京奇艺世纪科技有限公司 一种数据处理方法及系统
CN110457398A (zh) * 2019-08-15 2019-11-15 广州蚁比特区块链科技有限公司 区块数据存储方法及装置
CN112433674B (zh) * 2020-11-16 2021-07-06 连邦网络科技服务南通有限公司 一种计算机用数据迁移系统及方法
CN112433674A (zh) * 2020-11-16 2021-03-02 连邦网络科技服务南通有限公司 一种计算机用数据迁移系统及方法
CN112947856A (zh) * 2021-02-05 2021-06-11 彩讯科技股份有限公司 一种内存数据的管理方法、装置、计算机设备及存储介质
CN112947856B (zh) * 2021-02-05 2024-05-03 彩讯科技股份有限公司 一种内存数据的管理方法、装置、计算机设备及存储介质
CN113687964A (zh) * 2021-09-09 2021-11-23 腾讯科技(深圳)有限公司 数据处理方法、装置、电子设备、存储介质及程序产品
CN113687964B (zh) * 2021-09-09 2024-02-02 腾讯科技(深圳)有限公司 数据处理方法、装置、电子设备、存储介质及程序产品
CN113806249A (zh) * 2021-09-13 2021-12-17 济南浪潮数据技术有限公司 一种对象存储有序列举方法、装置、终端及存储介质
CN113806249B (zh) * 2021-09-13 2023-12-22 济南浪潮数据技术有限公司 一种对象存储有序列举方法、装置、终端及存储介质

Also Published As

Publication number Publication date
CN100498740C (zh) 2009-06-10
US20100146213A1 (en) 2010-06-10
WO2009033419A1 (fr) 2009-03-19

Similar Documents

Publication Publication Date Title
CN100498740C (zh) 一种数据缓存处理方法、系统及数据缓存装置
CN107066393B (zh) 提高地址映射表中映射信息密度的方法
CN102111448B (zh) 分布式哈希表dht存储系统的数据预取方法、节点和系统
CN110825748B (zh) 利用差异化索引机制的高性能和易扩展的键值存储方法
US9298384B2 (en) Method and device for storing data in a flash memory using address mapping for supporting various block sizes
CN104238962B (zh) 向缓存中写入数据的方法及装置
CN100541453C (zh) 大容量缓存实现方法及存储系统
CN103838853B (zh) 一种基于不同存储介质的混合文件系统
US20040205044A1 (en) Method for storing inverted index, method for on-line updating the same and inverted index mechanism
CN101464901B (zh) 一种对象存储设备中的对象查找方法
CN101162441B (zh) 数据的存取装置和方法
CN101533408A (zh) 一种海量数据的处理方法及处理装置
CN107491523A (zh) 存储数据对象的方法及装置
CN107256196A (zh) 基于闪存阵列的支持零拷贝的缓存系统及方法
CN100424699C (zh) 一种属性可扩展的对象文件系统
CN102314397A (zh) 缓存数据块的处理方法
CN110321325A (zh) 文件索引节点查找方法、终端、服务器、系统及存储介质
CN112395212A (zh) 减少键值分离存储系统的垃圾回收和写放大的方法及系统
CN102915340A (zh) 一种扩展的基于b+树对象文件系统
CN109407985B (zh) 一种数据管理的方法以及相关装置
CN108304259A (zh) 内存管理方法及系统
CN111831691B (zh) 一种数据读写方法及装置、电子设备、存储介质
CN109408416B (zh) 一种地址映射表项页管理方法及装置
CN108804571B (zh) 一种数据存储方法、装置以及设备
CN112395260B (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
ASS Succession or assignment of patent right

Owner name: SHENZHEN TENCENT COMPUTER SYSTEM CO., LTD.

Free format text: FORMER OWNER: TENGXUN SCI-TECH (SHENZHEN) CO., LTD.

Effective date: 20130114

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 518044 SHENZHEN, GUANGDONG PROVINCE TO: 518057 SHENZHEN, GUANGDONG PROVINCE

TR01 Transfer of patent right

Effective date of registration: 20130114

Address after: The South Road in Guangdong province Shenzhen city Fiyta building 518057 floor 5-10 Nanshan District high tech Zone

Patentee after: Shenzhen Tencent Computer System Co., Ltd.

Address before: Shenzhen Futian District City, Guangdong province 518044 Zhenxing Road, SEG Science Park 2 East Room 403

Patentee before: Tencent Technology (Shenzhen) Co., Ltd.