CN102843396A - 一种分布式缓存系统中的数据写入及读取方法及装置 - Google Patents

一种分布式缓存系统中的数据写入及读取方法及装置 Download PDF

Info

Publication number
CN102843396A
CN102843396A CN2011101700534A CN201110170053A CN102843396A CN 102843396 A CN102843396 A CN 102843396A CN 2011101700534 A CN2011101700534 A CN 2011101700534A CN 201110170053 A CN201110170053 A CN 201110170053A CN 102843396 A CN102843396 A CN 102843396A
Authority
CN
China
Prior art keywords
data
read
index information
written
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
CN2011101700534A
Other languages
English (en)
Other versions
CN102843396B (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.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN201110170053.4A priority Critical patent/CN102843396B/zh
Priority to PCT/CN2012/072212 priority patent/WO2012174888A1/zh
Publication of CN102843396A publication Critical patent/CN102843396A/zh
Application granted granted Critical
Publication of CN102843396B publication Critical patent/CN102843396B/zh
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
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • 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

Abstract

本发明公开了一种分布式缓存系统中的数据写入和读取的方法及装置,在该分布式缓存系统中,在该内存中保存数据的索引信息,而在硬盘中保存数据信息,当在进行数据的写入和读取时,内存中保存的索引信息,对硬盘进行相应的操作。由于在本发明实施例中通过内存和硬盘的结合,实现数据的写入和读取,内存只用于保存索引信息,并在数据的读、写操作时结合内存和硬盘进行,因此可以避免将所有的数据都保存在内存上,可以满足大容量数据缓存的需要,并且在进行数据的写入和读取时,结合内存和硬盘进行,从而可以提高数据读写效率,提升系统的可靠性。

Description

一种分布式缓存系统中的数据写入及读取方法及装置
技术领域
本发明涉及云计算技术领域,尤其涉及一种分布式缓存系统中的数据写入及读取的方法及装置。
背景技术
云计算(Cloud Computing)是网格计算(Grid Computing)、分布式计算(Distributed Computing)、并行计算(Parallel Computing)、效用计算(Utility Computing)、网络存储(Network Storage Technologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机技术和网络技术发展融合的产物。它旨在通过网络把多个成本相对较低的计算实体整合成一个具有强大计算能力的系统。分布式缓存是云计算范畴中的一个领域,其作用是提供海量数据的分布式存储服务以及高速读写访问的能力。
分布式缓存系统是由若干服务器节点和客户端互相连接构成的,服务器节点负责数据的存储,客户端可以对服务器做数据的写入、读取、更新、删除等操作。分布式缓存系统的特性是并发性高、延迟小。
但是,在现有技术中,硬盘采用机械寻道及磁头数据读取的方法,其随机访问的并发性能非常低,而且读写的延时较高,因此,为了提升系统的性能,大多数分布式缓存系统依靠增大内存的使用,来提升系统的性能,但是内存的容量相比硬盘也要小得多,内存能够存放的数据受容量的影响,满足不了大容量TB级别的分布式缓存的要求,并且内存的价格相比硬盘是非常昂贵的,这无疑增加了成本。
发明内容
有鉴于此,本发明提供一种分布式缓存系统中的数据写入及读取的方法及装置,用以解决现有技术中分布式缓存系统通过内存存取数据,内存的缓存容量小,无法满足大容量缓存需求的问题。
本发明提供一种分布式缓存系统中的数据写入方法,所述方法包括:
根据接收到的写入操作指令,判断内存中是否保存有待写入数据的索引信息;
当确定自身内存中保存有该待写入数据的索引信息时,查找自身磁盘中对应该索引信息的存储区域,将该待写入数据写入该存储区域中,并对内存中该待写入数据对应的索引信息进行更新;
当确定自身内存中未保存该待写入数据的索引信息时,将该待写入数据写入到磁盘中的存储区域中,并在内存中保存该待写入数据的索引信息。
本发明提供一种分布式缓存系统中的数据读取方法,所述方法包括:
根据接收到的读取操作指令,判断自身内存中是否缓存有该待读取数据;
当确定内存中缓存有该待读取数据时,从所述内存中读取该待读取数据;
当确定内存中未缓存该待读取数据时,根据内存中保存的该待读取数据的索引信息,查找磁盘中保存该待读取数据的存储空间,从该存储空间中读取该待读取数据。
本发明提供一种分布式缓存系统中的数据写入装置,所述装置包括:
判断模块,用于根据接收到的写入操作指令,判断自身内存中是否保存有待写入数据的索引信息;
第一写入模块,用于当确定自身内存中保存有该待写入数据的索引信息时,查找自身磁盘中对应该索引信息的存储区域,将该待写入数据写入该存储区域中,并对内存中该待写入数据对应的索引信息进行更新;
第二写入模块,用于当确定自身内存中未保存该待写入数据的索引信息时,将该待写入数据写入到磁盘中的存储区域中,并根据该待写入数据在磁盘中写入的存储区域,在内存中保存该待写入数据的索引信息。
本发明提供一种分布式缓存系统中的数据读取装置,所述读取装置包括:
判断模块,用于根据接收到的读取操作指令,判断自身内存中是否缓存有该待读取数据;
第一读取模块,用于当确定内存中缓存有该待读取数据时,从所述内存中读取该待读取数据;
第二读取模块,用于当确定内存中未缓存该待读取数据时,根据内存中保存的该待读取数据的索引信息,查找磁盘中保存该待读取数据的存储空间,从该存储空间中读取该待读取数据。
本发明提供一种分布式缓存系统中的数据写入和读取的方法及装置,由于在本发明实施例中通过内存和硬盘的结合,实现数据的写入和读取,内存只用于保存索引信息,并在数据的读、写操作时结合内存和硬盘进行,因此可以避免将所有的数据都保存在内存上,能够满足大容量数据缓存的需要,并且在进行数据的写入和读取时,结合内存和硬盘进行,从而可以提高数据读写效率。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例提供的一种分布式缓存系统中的数据写入过程;
图2为本发明实施例提供的一种分布式缓存系统中数据写入的详细过程;
图3为本发明实施例提供的一种分布式缓存系统中的数据读取过程;
图4为本发明实施例提供的一种分布式缓存系统中的数据读取的详细过程;
图5为本发明实施例提供的一种分布式缓存系统中的数据写入装置的结构示意图;
图6为本发明实施例提供的一种分布式缓存系统中的数据读取装置的结构示意图。
具体实施方式
本发明为了满足分布式缓存系统中大容量缓存需求,同时提高数据读写效率、提升系统的可靠性,提供了一种分布式缓存系统中数据的写入和读取的方法及装置。通过内存和硬盘的结合,实现数据的写入和读取,内存只用于保存索引信息,并在数据的读、写操作时结合内存和硬盘进行,因此可以避免将所有的数据都保存在内存上,能够满足大容量数据缓存的需要,并且在进行数据的写入和读取时,结合内存和硬盘进行,从而可以提高数据读写效率,提升系统的可靠性。
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1为本发明实施例提供的一种分布式缓存系统中的数据写入过程,该写入过程包括以下几个步骤:
S101:接收写入操作指令。
S102:根据接收到的写入操作指令,判断自身内存中是否保存有待写入数据的索引信息,当判定结果为是时,进行步骤S103,否则,进行步骤S104。
其中,所述索引信息包括:键值的长度信息、键值的内容信息、写入数据所在磁盘的存储区域信息、偏移量信息、写入数据的长度信息及写入数据的内容信息。
S103:查找自身磁盘中对应该索引信息的存储区域,将该待写入数据写入该存储区域中,并对内存中该待写入数据对应的索引信息进行更新。
S104:将该待写入数据写入到磁盘中的存储区域中,并根据该待写入数据在磁盘中写入的存储区域,在内存中保存该待写入数据的索引信息。
另外,在本发明实施例中当确定自身内存中未保存该待写入数据的索引信息时,还可以判断自身内存中是否存在可用的存储空间,当确定自身内存中存在可用的存储空间时,将该待写入数据写入到磁盘中的存储区域中,并根据该待写入数据在磁盘中写入的存储区域,在内存中保存该待写入数据的索引信息;当确定自身内存中无可用的存储空间时,则该写入操作失败。
在本发明实施例中为了提高内存中存储空间的利用率,当确定自身内存中未保存该待写入数据的索引信息时,将该待写入数据写入到磁盘中的存储区域中,并根据该待写入数据在磁盘中写入的存储区域,在内存中保存该待写入数据的索引信息之前,判断自身内存中是否含有回收的索引信息存储空间,当内存中含有回收的索引信息存储空间时,将该待写入数据的索引信息保存到所述存储空间内,否则,在内存中为该待写入数据的索引信息分配一个未使用过的存储空间并保存该索引信息。
另外,在本发明实施例中为了进一步提高数据写入效率,减少写入操作的响应时间,当将该待写入数据写入到磁盘中的存储区域时,根据待写入数据的容量,将磁盘中的存储区域划分为多个子区域,依次将该待写入数据写入每个子区域。
具体的,根据待写入数据的容量,将磁盘中的存储区域划分为多个子区域,保持一个处于活动状态的子区域,将待写入数据依次写入到该处于活动状态的子区域中,当该子区域中存储数据的容量达到设定的存储阈值时,关闭该子区域,同时激活另一个子区域,在该激活的另一个子区域中进行数据的写入。由于该数据的写入过程是依次进行的,即每个存储子区域是顺序被写入的,因此该数据写入过程不需要磁盘的寻道,使数据的写入速度较快,提高了数据写入的效率。并且,所有对数据的增、删、改等操作都变成了数据顺序的写入,大大提升了系统访问的并发量和减少了时延。
在本发明实施例中为了提高分布式缓存系统的可靠性,使系统尽快从故障中恢复,可以定期将内存中保存的索引信息直接映射到磁盘的存储区域中,当系统从故障中恢复时,获取映射到磁盘中的索引信息,并将该索引信息写入内存。
或者,在系统中为了进一步缩短系统从故障中恢复的时间,系统将某一时刻,内存及硬盘的数据信息生成快照,当系统从故障中恢复时,获取索引信息及磁盘中数据信息的快照,根据获取的快照,恢复内存中的索引信息,及磁盘中的数据信息。
具体的,当系统出现故障后恢复时,获取映射到磁盘中的索引信息,并将该索引信息写入内存,如果系统意外宕机,未能获取映射到磁盘中的索引信息时,通过获取索引信息及磁盘中数据信息的快照,根据获取的快照,恢复内存中的索引信息,及磁盘中的数据信息。
另外,在本发明实施例中为了提高当系统出现故障时,对内存中的索引信息恢复的准确性及效率,在针对磁盘中的数据进行删除操作时,删除磁盘中保存的该数据,并对该数据在内存对应的索引信息进行删除。
图2为本发明实施例提供的一种分布式缓存系统中数据写入的详细过程,该过程包括以下步骤:
S201:根据接收到的写入操作指令,判断自身内存中是否保存有待写入数据的索引信息,当判断结果为是时,进行步骤S202,否则,进行步骤S203。
S202:查找自身磁盘中对应该索引信息的存储区域,将该待写入数据写入该存储区域中,并对内存中该待写入数据对应的索引信息进行更新。
S203:判断自身内存中是否含有回收的索引信息存储空间,当判断结果为否时,进行步骤S204,当判断结果为是时,进行步骤S205。
S204:判断自身内存中是否存在可用的存储空间,当判断结果为是时,进行步骤S205,否则,数据写入过程结束。
S205:将该待写入数据写入该存储区域中,并根据该待写入数据在磁盘中写入的存储区域,在内存中保存该待写入数据的索引信息。
由于在本发明实施例中通过内存和硬盘的结合,实现数据的写入,内存只用于保存索引信息,并在数据的写操作时结合内存和硬盘进行,因此可以避免将所有的数据都保存在内存上,可以满足大容量数据缓存的需要,并且在进行数据的写入和读取时,结合内存和硬盘进行,从而可以提高数据读写效率,提升系统的可靠性。
图3为本发明实施例提供的一种分布式缓存系统中的数据读取过程,该读取过程包括以下几个步骤:
S301:接收读取操作指令。
S302:根据接收到的读取操作指令,判断自身内存中是否缓存有该待读取数据,当判断结果为是时,进行步骤S303,否则,进行步骤S304。
S303:从所述内存中读取该待读取数据。
其中,所述内存中缓存有部分数据,该数据的使用频率比较高,不断的被不同的客户端,或相同客户端在不同时刻读取,因此可以根据数据被读取的频率,将被读取的频率比较高的数据缓存在内存中。
S304:根据内存中保存的该待读取数据的索引信息,查找磁盘中保存该待读取数据的存储空间,从该存储空间中读取该待读取数据。
另外,本发明实施例为了进一步提高数据读取的效率,增加内存的利用率,在进行数据读取时,可以采用预读的方式,该预读方式包括:
根据查找到的所述存储空间中保存的数据信息,确定该待读取数据的当前信息及后续信息;
读取该待读取数据的当前信息,并将待读取数据的后续信息保存到内存中。
在本发明实施例中为了提高磁盘中存储区域的利用率,提升系统的性能,根据设定的时间间隔,定期对磁盘中的存储区域进行清理及合并,包括:
根据设定的时间间隔,统计针对磁盘中的数据信息保存的访问记录,根据该访问记录,对磁盘中的数据信息进行清理。
其中,设定的时间可以为任意时间,为了保证分布式缓存系统的可靠性,提高清理的效率,一般采用操作量较少的空闲时间。
所述方法还包括:
根据磁盘的存储区域中每个子区域中写入的数据信息的容量,对不同子区域中写入的数据信息进行合并。
具体的针对磁盘的存储区域中每个子区域中写入的数据信息的容量,占自身最大容量的比例设定一个阈值,当子区域中写入的数据信息的容量占自身最大容量的比例值小于设定的阈值时,对该子区域进行合并。其中,设定的阈值可以是任意值,一般设定的阈值可以为80%。
以一个具体实施例进行说明,单独线程在每天空闲时间段进行数据信息的清理合并,释放磁盘的存储空间。针对磁盘中每个子存储区域中保存的数据信息,在内存中统计并保存该数据信息的访问记录,当在磁盘中写入或删除数据信息时、对内存中保存的访问记录进行更新;根据磁盘的存储区域中每个子区域中写入的数据信息的容量,当子区域中写入的数据信息的容量占自身最大容量的比例值小于80%时,对该子区域进行合并,合并时,根据子区域中写入的数据信息的容量占自身最大容量的比例值大小,优先合并比例值较小的。
图4为本发明实施例提供的一种分布式缓存系统中的数据读取的详细过程,该过程包括以下步骤:
S401:根据接收到的读取操作指令,判断自身内存中是否缓存有该待读取数据,当判断结果为是时,进行步骤S402,否则,进行步骤S403。
S402:从所述内存中读取该待读取数据。
S403:根据内存中保存的该待读取数据的索引信息,查找磁盘中保存该待读取数据的存储空间。
S404:根据查找到的所述存储空间中保存的数据信息,确定该待读取数据的当前信息及后续信息,读取该待读取数据的当前信息,并将待读取数据的后续信息保存到内存中。
由于在本发明实施例中通过内存和硬盘的结合,实现数据的读取,内存只用于保存索引信息,并在数据的读操作时结合内存和硬盘进行,因此可以避免将所有的数据都保存在内存上,可以满足大容量数据缓存的需要,并且在进行数据的读取时,结合内存和硬盘进行,从而可以提高数据读取效率,提升系统的可靠性。
图5为本发明实施例提供的一种分布式缓存系统中的数据写入装置的结构示意图,所述写入装置包括:
判断模块51,用于根据接收到的写入操作指令,判断自身内存中是否保存有待写入数据的索引信息;
第一写入模块52,用于当确定自身内存中保存有该待写入数据的索引信息时,查找自身磁盘中对应该索引信息的存储区域,将该待写入数据写入该存储区域中,并对内存中该待写入数据对应的索引信息进行更新;
第二写入模块53,用于当确定自身内存中未保存该待写入数据的索引信息时,将该待写入数据写入到磁盘中的存储区域中,并根据该待写入数据在磁盘中写入的存储区域,在内存中保存该待写入数据的索引信息。
所述第二写入模块53,具体用于判断自身内存中是否含有回收的索引信息存储空间;当内存中含有回收的索引信息存储空间时,将该待写入数据的索引信息保存到所述存储空间内,否则,在内存中为该待写入数据的索引信息分配一个未使用过的存储空间并保存该索引信息。
所述第一写入模块51,具体用于根据待写入数据的容量,将磁盘中的存储区域划分为多个子区域,依次将该待写入数据写入每个子区域。
由于在本发明实施例中通过内存和硬盘的结合,实现数据的写入,内存只用于保存索引信息,并在数据的写操作时结合内存和硬盘进行,因此可以避免将所有的数据都保存在内存上,能够满足大容量数据缓存的需要,并且在进行数据的写入时,结合内存和硬盘进行,从而可以提高数据写操作的效率。
所述写入装置还包括:
恢复模块54,用于当系统出现故障后恢复时,获取映射到磁盘中的索引信息,并将该索引信息写入内存。
所述写入装置还包括:
恢复模块54,用于当系统出现故障后恢复时,获取索引信息及磁盘中数据信息的快照;根据获取的快照,恢复内存中的索引信息,及磁盘中的数据信息。
图6为本发明实施例提供的一种分布式缓存系统中的数据读取装置的结构示意图,所述读取装置包括:
判断模块61,用于根据接收到的读取操作指令,判断自身内存中是否缓存有该待读取数据;
第一读取模块62,用于当确定内存中缓存有该待读取数据时,从所述内存中读取该待读取数据;
第二读取模块63,用于当确定内存中未缓存该待读取数据时,根据内存中保存的该待读取数据的索引信息,查找磁盘中保存该待读取数据的存储空间,从该存储空间中读取该待读取数据。
所述第二读取模块63,具体用于根据查找到的所述存储空间中保存的数据信息,确定该待读取数据的当前信息及后续信息;读取该待读取数据的当前信息,并将待读取数据的后续信息保存到内存中。
由于在本发明实施例中通过内存和硬盘的结合,实现数据的读取,内存只用于保存索引信息,并在数据的读操作时结合内存和硬盘进行,因此可以避免将所有的数据都保存在内存上,能够满足大容量数据缓存的需要,并且在进行数据的读取时,结合内存和硬盘进行,从而可以提高数据读取效率。
所述读取装置还包括:
清理模块64,用于根据设定的时间间隔,统计针对磁盘中的数据信息保存的访问记录;根据该访问记录,对磁盘中的数据信息进行清理。
所述读取装置还包括:
合并模块65,用于根据磁盘的存储区域中每个子区域中写入的数据信息的容量,对不同子区域中写入的数据信息进行合并。
上述说明示出并描述了本发明的优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。

Claims (19)

1.一种分布式缓存系统中的数据写入方法,其特征在于,所述方法包括:
根据接收到的写入操作指令,判断内存中是否保存有待写入数据的索引信息;
当确定自身内存中保存有该待写入数据的索引信息时,查找自身磁盘中对应该索引信息的存储区域,将该待写入数据写入该存储区域中,并对内存中该待写入数据对应的索引信息进行更新;
当确定自身内存中未保存该待写入数据的索引信息时,将该待写入数据写入到磁盘中的存储区域中,并在内存中保存该待写入数据的索引信息。
2.如权利要求1所述的方法,其特征在于,所述索引信息包括:
键值的长度信息、键值的内容信息、写入数据所在磁盘的存储区域信息、偏移量信息、写入数据的长度信息及写入数据的内容信息。
3.如权利要求1所述的方法,其特征在于,所述在内存中保存该待写入数据的索引信息包括:
判断自身内存中是否含有回收的索引信息存储空间;
当内存中含有回收的索引信息存储空间时,将该待写入数据的索引信息保存到所述存储空间内,否则,在内存中为该待写入数据的索引信息分配一个未使用过的存储空间并保存该索引信息。
4.如权利要求1所述的方法,其特征在于,所述将该待写入数据写入该存储区域中,包括:
根据待写入数据的容量,将磁盘中的存储区域划分为多个子区域,依次将该待写入数据写入每个子区域。
5.如权利要求1所述的方法,其特征在于,所述方法还包括:
当系统出现故障后恢复时,获取映射到磁盘中的索引信息,并将该索引信息写入内存。
6.如权利要求1所述的方法,其特征在于,所述方法还包括:
当系统出现故障后恢复时,获取索引信息及磁盘中数据信息的快照;
根据获取的快照,恢复内存中的索引信息,及磁盘中的数据信息。
7.一种分布式缓存系统中的数据读取方法,其特征在于,所述方法包括:
根据接收到的读取操作指令,判断自身内存中是否缓存有该待读取数据;
当确定内存中缓存有该待读取数据时,从所述内存中读取该待读取数据;
当确定内存中未缓存该待读取数据时,根据内存中保存的该待读取数据的索引信息,查找磁盘中保存该待读取数据的存储空间,从该存储空间中读取该待读取数据。
8.如权利要求7所述的方法,其特征在于,从该存储空间中读取该待读取数据包括:
根据查找到的所述存储空间中保存的数据信息,确定该待读取数据的当前信息及后续信息;
读取该待读取数据的当前信息,并将待读取数据的后续信息保存到内存中。
9.如权利要求7所述的方法,其特征在于,所述方法还包括:
根据设定的时间间隔,统计针对磁盘中的数据信息保存的访问记录;
根据该访问记录,对磁盘中的数据信息进行清理。
10.如权利要求7所述的方法,其特征在于,所述方法还包括:
根据磁盘的存储区域中每个子区域中写入的数据信息的容量,对不同子区域中写入的数据信息进行合并。
11.一种分布式缓存系统中的数据写入装置,其特征在于,所述装置包括:
判断模块,用于根据接收到的写入操作指令,判断自身内存中是否保存有待写入数据的索引信息;
第一写入模块,用于当确定自身内存中保存有该待写入数据的索引信息时,查找自身磁盘中对应该索引信息的存储区域,将该待写入数据写入该存储区域中,并对内存中该待写入数据对应的索引信息进行更新;
第二写入模块,用于当确定自身内存中未保存该待写入数据的索引信息时,将该待写入数据写入到磁盘中的存储区域中,并根据该待写入数据在磁盘中写入的存储区域,在内存中保存该待写入数据的索引信息。
12.如权利要求11所述的写入装置,其特征在于,第二写入模块,具体用于判断自身内存中是否含有回收的索引信息存储空间;当内存中含有回收的索引信息存储空间时,将该待写入数据的索引信息保存到所述存储空间内,否则,在内存中为该待写入数据的索引信息分配一个未使用过的存储空间并保存该索引信息。
13.如权利要求11所述的写入装置,其特征在于,第一写入模块,具体用于根据待写入数据的容量,将磁盘中的存储区域划分为多个子区域,依次将该待写入数据写入每个子区域。
14.如权利要求11所述的写入装置,其特征在于,所述写入装置还包括:
恢复模块,用于当系统出现故障后恢复时,获取映射到磁盘中的索引信息,并将该索引信息写入内存。
15.如权利要求11所述的写入装置,其特征在于,所述写入装置还包括:
恢复模块,用于当系统出现故障后恢复时,获取索引信息及磁盘中数据信息的快照;根据获取的快照,恢复内存中的索引信息,及磁盘中的数据信息。
16.一种分布式缓存系统中的数据读取装置,其特征在于,所述读取装置包括:
判断模块,用于根据接收到的读取操作指令,判断自身内存中是否缓存有该待读取数据;
第一读取模块,用于当确定内存中缓存有该待读取数据时,从所述内存中读取该待读取数据;
第二读取模块,用于当确定内存中未缓存该待读取数据时,根据内存中保存的该待读取数据的索引信息,查找磁盘中保存该待读取数据的存储空间,从该存储空间中读取该待读取数据。
17.如权利要求16所述的读取装置,其特征在于,所述第二读取模块,具体用于根据查找到的所述存储空间中保存的数据信息,确定该待读取数据的当前信息及后续信息;读取该待读取数据的当前信息,并将待读取数据的后续信息保存到内存中。
18.如权利要求16所述的读取装置,其特征在于,所述读取装置还包括:
清理模块,用于根据设定的时间间隔,统计针对磁盘中的数据信息保存的访问记录;根据该访问记录,对磁盘中的数据信息进行清理。
19.如权利要求16所述的读取装置,其特征在于,所述读取装置还包括:
合并模块,用于根据磁盘的存储区域中每个子区域中写入的数据信息的容量,对不同子区域中写入的数据信息进行合并。
CN201110170053.4A 2011-06-22 2011-06-22 一种分布式缓存系统中的数据写入及读取方法及装置 Active CN102843396B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201110170053.4A CN102843396B (zh) 2011-06-22 2011-06-22 一种分布式缓存系统中的数据写入及读取方法及装置
PCT/CN2012/072212 WO2012174888A1 (zh) 2011-06-22 2012-03-12 一种分布式缓存系统中的数据写入及读取方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110170053.4A CN102843396B (zh) 2011-06-22 2011-06-22 一种分布式缓存系统中的数据写入及读取方法及装置

Publications (2)

Publication Number Publication Date
CN102843396A true CN102843396A (zh) 2012-12-26
CN102843396B CN102843396B (zh) 2018-03-13

Family

ID=47370456

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110170053.4A Active CN102843396B (zh) 2011-06-22 2011-06-22 一种分布式缓存系统中的数据写入及读取方法及装置

Country Status (2)

Country Link
CN (1) CN102843396B (zh)
WO (1) WO2012174888A1 (zh)

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103150232A (zh) * 2013-02-01 2013-06-12 浪潮(北京)电子信息产业有限公司 存储快照创建方法和装置
CN103488772A (zh) * 2013-09-27 2014-01-01 珠海金山网络游戏科技有限公司 一种通过外存对文件进行缓存的方法、系统及设备
WO2014146240A1 (zh) * 2013-03-19 2014-09-25 华为技术有限公司 分布式存储系统的数据更新方法及服务器
CN104361009A (zh) * 2014-10-11 2015-02-18 北京中搜网络技术股份有限公司 一种基于倒排索引的实时索引方法
CN104899249A (zh) * 2015-05-04 2015-09-09 中国科学院信息工程研究所 一种海量数据下可靠索引更新系统及方法
WO2016065927A1 (zh) * 2014-10-30 2016-05-06 华为技术有限公司 将数据对象写入ip硬盘的方法、装置及系统
CN105701219A (zh) * 2016-01-14 2016-06-22 北京邮电大学 一种分布式缓存的实现方法
CN105787124A (zh) * 2016-03-28 2016-07-20 中国建设银行股份有限公司 应用于数据库的数据处理方法、装置及数据存储系统
CN106156065A (zh) * 2015-03-30 2016-11-23 华为技术有限公司 一种文件持久化方法、删除方法以及相关装置
CN106294603A (zh) * 2016-07-29 2017-01-04 北京奇虎科技有限公司 文件存储方法及装置
CN106802774A (zh) * 2017-01-18 2017-06-06 广东睿江云计算股份有限公司 写请求处理方法和装置、读请求处理方法和装置
CN107066527A (zh) * 2017-02-24 2017-08-18 湖南蚁坊软件股份有限公司 一种基于堆外内存的缓存索引的方法及系统
CN107506156A (zh) * 2017-09-28 2017-12-22 焦点科技股份有限公司 一种块设备的io优化方法
CN108021333A (zh) * 2016-11-03 2018-05-11 阿里巴巴集团控股有限公司 随机读写数据的系统、装置及方法
CN108197456A (zh) * 2018-01-16 2018-06-22 飞天诚信科技股份有限公司 一种设备数据的缓存方法及装置
CN108595459A (zh) * 2017-12-30 2018-09-28 北京百度网讯科技有限公司 关系索引更新方法、装置和电子设备
CN105549911B (zh) * 2015-12-14 2019-01-25 曙光信息产业股份有限公司 Nvram的数据传输方法和装置
CN109783523A (zh) * 2019-01-24 2019-05-21 广州虎牙信息科技有限公司 一种数据处理方法、装置、设备和存储介质
CN110516479A (zh) * 2019-08-16 2019-11-29 济南浪潮数据技术有限公司 一种数据写入方法及相关装置
CN110703981A (zh) * 2018-07-10 2020-01-17 中兴通讯股份有限公司 一种数据读写方法、终端及计算机可读存储介质
WO2020024772A1 (zh) * 2018-08-03 2020-02-06 华为技术有限公司 查询数据的方法和装置
CN110825575A (zh) * 2019-11-13 2020-02-21 重庆秦嵩科技有限公司 一种内存检测方法
CN111221467A (zh) * 2018-11-26 2020-06-02 深圳市茁壮网络股份有限公司 数据写入、读取方法及对应的装置
CN111274456A (zh) * 2020-01-20 2020-06-12 中国科学院计算技术研究所 基于nvm主存的数据索引方法及数据处理系统
CN111290973A (zh) * 2020-05-11 2020-06-16 深圳市科信通信技术股份有限公司 数据写入方法、装置、计算机设备及存储介质
CN111400350A (zh) * 2020-03-13 2020-07-10 上海携程商务有限公司 配置数据读取方法、系统、电子设备和存储介质
CN111563052A (zh) * 2020-04-30 2020-08-21 深圳忆联信息系统有限公司 降低读延时的缓存方法、装置、计算机设备及存储介质
CN113297309A (zh) * 2021-05-31 2021-08-24 平安证券股份有限公司 流数据写入方法、装置、设备及存储介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109933288A (zh) * 2019-03-11 2019-06-25 北京安信易德科技有限公司 走时表分布式存储方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101187901A (zh) * 2007-12-20 2008-05-28 康佳集团股份有限公司 一种实现文件访问的高速缓存系统和方法
US20090119261A1 (en) * 2005-12-05 2009-05-07 Collarity, Inc. Techniques for ranking search results
CN101644996A (zh) * 2009-09-25 2010-02-10 杭州华三通信技术有限公司 索引数据的存储方法和存储控制装置
CN101686209A (zh) * 2008-09-24 2010-03-31 阿里巴巴集团控股有限公司 消息转发系统中存储消息的方法和装置
CN102014158A (zh) * 2010-11-29 2011-04-13 北京兴宇中科科技开发股份有限公司 一种云存储服务客户端高效细粒度数据缓存系统与方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101841438B (zh) * 2010-04-02 2011-10-05 中国科学院计算技术研究所 一种访问存储海量并发tcp流的流记录的方法或系统
CN102024020B (zh) * 2010-11-04 2013-02-06 曙光信息产业(北京)有限公司 一种分布式文件系统中高效的元数据访存方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090119261A1 (en) * 2005-12-05 2009-05-07 Collarity, Inc. Techniques for ranking search results
CN101187901A (zh) * 2007-12-20 2008-05-28 康佳集团股份有限公司 一种实现文件访问的高速缓存系统和方法
CN101686209A (zh) * 2008-09-24 2010-03-31 阿里巴巴集团控股有限公司 消息转发系统中存储消息的方法和装置
CN101644996A (zh) * 2009-09-25 2010-02-10 杭州华三通信技术有限公司 索引数据的存储方法和存储控制装置
CN102014158A (zh) * 2010-11-29 2011-04-13 北京兴宇中科科技开发股份有限公司 一种云存储服务客户端高效细粒度数据缓存系统与方法

Cited By (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103150232B (zh) * 2013-02-01 2016-06-01 浪潮(北京)电子信息产业有限公司 存储快照创建方法和装置
CN103150232A (zh) * 2013-02-01 2013-06-12 浪潮(北京)电子信息产业有限公司 存储快照创建方法和装置
WO2014146240A1 (zh) * 2013-03-19 2014-09-25 华为技术有限公司 分布式存储系统的数据更新方法及服务器
CN103488772A (zh) * 2013-09-27 2014-01-01 珠海金山网络游戏科技有限公司 一种通过外存对文件进行缓存的方法、系统及设备
CN104361009A (zh) * 2014-10-11 2015-02-18 北京中搜网络技术股份有限公司 一种基于倒排索引的实时索引方法
CN104361009B (zh) * 2014-10-11 2017-10-31 北京中搜网络技术股份有限公司 一种基于倒排索引的实时索引方法
WO2016065927A1 (zh) * 2014-10-30 2016-05-06 华为技术有限公司 将数据对象写入ip硬盘的方法、装置及系统
CN106156065A (zh) * 2015-03-30 2016-11-23 华为技术有限公司 一种文件持久化方法、删除方法以及相关装置
CN104899249A (zh) * 2015-05-04 2015-09-09 中国科学院信息工程研究所 一种海量数据下可靠索引更新系统及方法
CN104899249B (zh) * 2015-05-04 2018-07-13 中国科学院信息工程研究所 一种海量数据下可靠索引更新系统及方法
CN105549911B (zh) * 2015-12-14 2019-01-25 曙光信息产业股份有限公司 Nvram的数据传输方法和装置
CN105701219A (zh) * 2016-01-14 2016-06-22 北京邮电大学 一种分布式缓存的实现方法
CN105701219B (zh) * 2016-01-14 2019-04-02 北京邮电大学 一种分布式缓存的实现方法
CN105787124A (zh) * 2016-03-28 2016-07-20 中国建设银行股份有限公司 应用于数据库的数据处理方法、装置及数据存储系统
CN106294603A (zh) * 2016-07-29 2017-01-04 北京奇虎科技有限公司 文件存储方法及装置
CN106294603B (zh) * 2016-07-29 2019-07-23 北京奇虎科技有限公司 文件存储方法及装置
CN108021333A (zh) * 2016-11-03 2018-05-11 阿里巴巴集团控股有限公司 随机读写数据的系统、装置及方法
CN106802774A (zh) * 2017-01-18 2017-06-06 广东睿江云计算股份有限公司 写请求处理方法和装置、读请求处理方法和装置
CN107066527B (zh) * 2017-02-24 2019-10-29 湖南蚁坊软件股份有限公司 一种基于堆外内存的缓存索引的方法及系统
CN107066527A (zh) * 2017-02-24 2017-08-18 湖南蚁坊软件股份有限公司 一种基于堆外内存的缓存索引的方法及系统
CN107506156A (zh) * 2017-09-28 2017-12-22 焦点科技股份有限公司 一种块设备的io优化方法
CN108595459B (zh) * 2017-12-30 2022-02-15 北京百度网讯科技有限公司 关系索引更新方法、装置和电子设备
CN108595459A (zh) * 2017-12-30 2018-09-28 北京百度网讯科技有限公司 关系索引更新方法、装置和电子设备
CN108197456B (zh) * 2018-01-16 2020-05-19 飞天诚信科技股份有限公司 一种设备数据的缓存方法及装置
CN108197456A (zh) * 2018-01-16 2018-06-22 飞天诚信科技股份有限公司 一种设备数据的缓存方法及装置
CN110703981A (zh) * 2018-07-10 2020-01-17 中兴通讯股份有限公司 一种数据读写方法、终端及计算机可读存储介质
US11579986B2 (en) 2018-08-03 2023-02-14 Huawei Cloud Computing Technologies Co., Ltd. Data query method and apparatus
WO2020024772A1 (zh) * 2018-08-03 2020-02-06 华为技术有限公司 查询数据的方法和装置
CN111221467A (zh) * 2018-11-26 2020-06-02 深圳市茁壮网络股份有限公司 数据写入、读取方法及对应的装置
CN109783523A (zh) * 2019-01-24 2019-05-21 广州虎牙信息科技有限公司 一种数据处理方法、装置、设备和存储介质
CN109783523B (zh) * 2019-01-24 2022-02-25 广州虎牙信息科技有限公司 一种数据处理方法、装置、设备和存储介质
CN110516479A (zh) * 2019-08-16 2019-11-29 济南浪潮数据技术有限公司 一种数据写入方法及相关装置
CN110825575B (zh) * 2019-11-13 2023-04-04 重庆秦嵩科技有限公司 一种内存检测方法
CN110825575A (zh) * 2019-11-13 2020-02-21 重庆秦嵩科技有限公司 一种内存检测方法
CN111274456A (zh) * 2020-01-20 2020-06-12 中国科学院计算技术研究所 基于nvm主存的数据索引方法及数据处理系统
CN111274456B (zh) * 2020-01-20 2023-09-12 中国科学院计算技术研究所 基于nvm主存的数据索引方法及数据处理系统
CN111400350A (zh) * 2020-03-13 2020-07-10 上海携程商务有限公司 配置数据读取方法、系统、电子设备和存储介质
CN111400350B (zh) * 2020-03-13 2023-05-02 上海携程商务有限公司 配置数据读取方法、系统、电子设备和存储介质
CN111563052A (zh) * 2020-04-30 2020-08-21 深圳忆联信息系统有限公司 降低读延时的缓存方法、装置、计算机设备及存储介质
CN111563052B (zh) * 2020-04-30 2023-08-08 深圳忆联信息系统有限公司 降低读延时的缓存方法、装置、计算机设备及存储介质
CN111290973A (zh) * 2020-05-11 2020-06-16 深圳市科信通信技术股份有限公司 数据写入方法、装置、计算机设备及存储介质
CN113297309A (zh) * 2021-05-31 2021-08-24 平安证券股份有限公司 流数据写入方法、装置、设备及存储介质
CN113297309B (zh) * 2021-05-31 2023-11-10 平安证券股份有限公司 流数据写入方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN102843396B (zh) 2018-03-13
WO2012174888A1 (zh) 2012-12-27

Similar Documents

Publication Publication Date Title
CN102843396A (zh) 一种分布式缓存系统中的数据写入及读取方法及装置
US9921955B1 (en) Flash write amplification reduction
US8069191B2 (en) Method, an apparatus and a system for managing a snapshot storage pool
CN102521269B (zh) 一种基于索引的计算机连续数据保护方法
CN101833512A (zh) 一种内存回收方法及其装置
CN103761190B (zh) 数据处理方法及装置
CN109614377A (zh) 分布式文件系统的文件删除方法、装置、设备及存储介质
CN103530388A (zh) 一种云存储系统中提升性能的数据处理方法
CN102750317A (zh) 数据持久化处理方法、装置及数据库系统
CN102831088A (zh) 基于混合存储器的数据迁移方法和装置
Zhou et al. I/O characteristics of smartphone applications and their implications for eMMC design
US9417973B2 (en) Apparatus and method for fault recovery
US20180107601A1 (en) Cache architecture and algorithms for hybrid object storage devices
CN107357680A (zh) 数据处理设备和数据处理的方法
CN103516549B (zh) 一种基于共享对象存储的文件系统元数据日志机制
US20080209132A1 (en) Disk snapshot acquisition method
CN103037004A (zh) 云存储系统操作的实现方法和装置
CN103221925A (zh) 数据处理方法和存储设备
CN104424186A (zh) 一种流计算应用中实现持久化的方法及装置
CN103678149A (zh) 数据处理的方法及设备
CN109213693A (zh) 存储管理方法、存储系统和计算机程序产品
CN105260128A (zh) 一种将数据写入存储设备的方法及存储设备
CN113626431A (zh) 一种基于lsm树的延迟垃圾回收的键值分离存储方法及系统
CN113204407A (zh) 一种内存超配管理方法及装置
CN102541750A (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
GR01 Patent grant
GR01 Patent grant