CN105740166B - 缓存的读取、读取处理方法及装置 - Google Patents
缓存的读取、读取处理方法及装置 Download PDFInfo
- Publication number
- CN105740166B CN105740166B CN201410766329.9A CN201410766329A CN105740166B CN 105740166 B CN105740166 B CN 105740166B CN 201410766329 A CN201410766329 A CN 201410766329A CN 105740166 B CN105740166 B CN 105740166B
- Authority
- CN
- China
- Prior art keywords
- data blocks
- cache
- data block
- file system
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种缓存的读取、读取处理方法及装置,其中,所述读取方法包括:发送对本地文件系统中多个数据块的读取请求;在判定所述多个数据块位于所述本地文件系统的缓存中,且所述多个数据块中的指定数据块的已读取部分的大小超过所述指定数据块大小的预设比例时,读取所述多个数据块中的下一个数据块。采用本发明提供的上述技术方案,解决了相关技术中,由于数据块的访问方式以顺序访问流的形式而导致的内存资源无法合理利用的问题,实现了异步获取多个数据块的过程,进而快速提升获取数据块的速度,合理使用内存资源。
Description
技术领域
本发明涉及通信领域,具体而言,涉及一种缓存的读取、读取处理方法及装置。
背景技术
随着计算、存储、通信等技术的发展,大规模流媒体服务已经广泛的应用到娱乐、教育、商业等各个领域,如何实现大规模流媒体文件的高效存储,同时支持高并发的用户是一个非常关键的问题。本专利提出的分布式流媒体服务中的本地文件用户态缓存方法不仅可以很好的提高流媒体文件的存储效率,同时也可以很好的应用在基于分块存储的分布式存储系统中,例如淘宝文件系统(Taobao File System,简称为TFS),分布式文件系统(Hadoop Distributed File System,简称为HDFS)等系统中。
由于视频文件较大,所以存储系统通常会将视频文件切分成固定大小的块文件(例如,切分成64MB大小的块文件)存储在后台分布式存储系统中。传统的文件系统在块文件存储上存在如下问题:传统的文件系统的缓存采用page_cache(分页缓存)的方式管理,流媒体文件的热点数据较低,空间局部性较差,数据多以顺序访问流的方式访问,容易出现缓存污染的问题,从而内存的资源无法得到合理的利用,并且通用文件系统的预取粒度并不高。
针对相关技术中,由于数据块的访问方式以顺序访问流的形式而导致的内存资源无法合理利用的问题,尚未提出有效的解决方案。
发明内容
为了解决上述技术问题,本发明提供了一种存的读取、读取处理方法及装置。
根据本发明的一个方面,提供了一种缓存的读取方法,包括:发送对本地文件系统中多个数据块的读取请求;在判定所述多个数据块位于所述本地文件系统的缓存中,且所述多个数据块中的指定数据块的已读取部分的大小超过所述指定数据块大小的预设比例时,读取所述多个数据块中的下一个数据块。
优选地,所述预设比例取值为1/2。
优选地,发送对本地文件系统中多个数据块的读取请求之后,还包括:在所述读取请求所请求的多个数据块位于所述本地文件系统的缓存中时,接收所述本地文件系统中共享内存的标识ID;确定所述ID与所述缓存的对应关系。
优选地,读取所述多个数据块中的下一个数据块,包括:根据所述对应关系确定所述缓存所对应的共享内存;通过所述共享内存中读取所述下一个数据块。
优选地,将所述缓存中指定文件发生变化后产生的脏数据块同步到硬盘中。
优选地,将所述缓存中指定文件发生变化后产生的脏数据块同步到硬盘中之后,包括:对所述脏数据进行更新;对更新后的脏数据块标记用于指示所述脏数据块已完成更新的标识。
根据本发明的另一个方面,还提供了一种缓存的读取处理方法,包括:获取本地文件系统中多个数据块的读取请求;在监测到所述多个数据块位于所述本地文件系统的缓存中,且所述多个数据块中的指定数据块的已读取部分的大小超过所述指定数据块大小的预设比例时,发送所述多个数据块中的下一个数据块至客户端。
优选地,在判断所述读取请求所请求的多个数据块未位于所述本地文件系统的缓存中时,通过所述缓存从所述本地文件系统的硬盘中获取所述多个数据块。
根据本发明的另一个方面,还提供了一种缓存的读取装置,包括:发送模块,用于发送对本地文件系统中多个数据块的读取请求;读取模块,用于在判定所述多个数据块位于所述本地文件系统的缓存中,且所述多个数据块中的指定数据块的已读取部分的大小超过所述指定数据块大小的预设比例时,读取所述多个数据块中的下一个数据块。
根据本发明的另一个方面,还提供了一种缓存的读取处理装置,包括:获取模块,用于获取本地文件系统中多个数据块的读取请求;发送模块,用于在监测到所述多个数据块位于所述本地文件系统的缓存中,且所述多个数据块中的指定数据块的已读取部分的大小超过所述指定数据块大小的预设比例时,发送所述多个数据块中的下一个数据块至客户端。
通过本发明,采用在多个数据块中的指定数据块的已读取部分的大小超过所述指定数据块大小的预设比例时,就执行“读取所述多个数据块中的下一个数据块”过程的技术手段,解决了相关技术中,由于数据块的访问方式以顺序访问流的形式而导致的内存资源无法合理利用的问题,实现了异步获取多个数据块的过程,进而快速提升获取数据块的速度,合理使用内存资源。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的缓存的读取方法的流程图;
图2是根据本发明实施例的缓存管理系统的数据读取策略的流程图;
图3为根据本发明实施例的缓存的读取装置的结构框图;
图4为根据本发明实施例的缓存的读取处理方法的流程图;
图5为根据本发明实施例的缓存的读取处理装置的结构框图;
图6为根据本发明优选实施例的缓存的读取策略的流程图;
图7为根据本发明优选实施例的读取策略中的数据块状态处理流程图;
图8为根据本发明优选实施例的缓存写入策略示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
为了解决上述技术问题,在本实施例中提供了一种缓存的读取方法,图1是根据本发明实施例的缓存的读取方法的流程图,如图1所示,包括以下步骤:
步骤S102,发送对本地文件系统中多个数据块的读取请求;
步骤S104,在判定上述多个数据块位于上述本地文件系统的缓存中,且上述多个数据块中的指定数据块的已读取部分的大小超过上述指定数据块大小的预设比例时,读取上述多个数据块中的下一个数据块。
通过上述各个步骤,采用在多个数据块中的指定数据块的已读取部分的大小超过上述指定数据块大小的预设比例时,就执行“读取上述多个数据块中的下一个数据块”过程的技术手段,解决了相关技术中,由于数据块的访问方式以顺序访问流的形式而导致的内存资源无法合理利用的问题,实现了异步获取多个数据块的过程,进而快速提升获取数据块的速度,合理使用内存资源。
可选地,上述预设比例取值为1/2,当然,对于上述预设比例的设定,完全是可以根据用户实际的需求进行设定的,例如,可以在读取指定数据块的部分超过指定数据块的3/4的大小时,执行异步获取下一个数据块的过程。
上述技术方案可以结合图2的流程进行更加详细的说明:
步骤S200,判断请求是否位于数据块后的1/2,如果是,则转步骤S204,如果否,则转步骤202;
步骤S202,结束进程;
步骤S204,判断是否正在预取下一个数据块,如果是,则转步骤S202,如果否,则转步骤S206;
步骤S206,创见异步读取数据块的请求,并提交到异步IO队列中。
在本发明实施例中,在执行完步骤S102的技术方案之后,还可以执行以下技术方案:在上述读取请求所请求的多个数据块位于上述本地文件系统的缓存中时,接收上述本地文件系统中共享内存的标识ID;确定上述ID与上述缓存的对应关系,基于上述提供的技术方案,对于上述步骤S104的技术方案有多种实现形式,在本发明实施例的一个可选示例中,根据上述对应关系确定上述缓存所对应的共享内存;通过上述共享内存中读取上述下一个数据块。
本发明实施例对上述技术方案的进一步改进在于,缓存的写入过程可以通过以下技术方案实现:将上述缓存中指定文件发生变化后产生的脏数据块同步到硬盘中,并在执行上述步骤之后,对上述脏数据进行更新;对更新后的脏数据块标记用于指示上述脏数据块已完成更新的标识。
以下结合以下两个过程对上述实施例提供的技术方案进行解释说明:
对于上述缓存的读取策略,可以通过以下流程进行详细说明:
步骤1.1:缓存系统初始化,每个缓存的块大小为1MB或者更大(默认为1MB)。所有的数据的读取均以块单位做读取。
步骤2.1:当有读取请求发生的时候,首先,定位该数据页所在的数据块,如果该数据块在缓存系统(相当于上述实施例的本地文件系统)中,将共享内存的ID传递给用户,由客户端的库函数完成ID到缓存的转换。如果数据页访问的位置为数据块的后1/2,那么缓存管理系统将会异步预取相邻的下一个数据块。
步骤3.1:如果该数据块不在内存中,将整个数据块读入到缓存中,这里的缓存是以只读的共享内存的形式组织,可以被多进程访问。
步骤4.1:读取结束后,调用释放引用的函数,通知文件系统,被读取的数据块的引用减1。
对于上述缓存的写入策略,可以通过以下流程进行详细说明:
步骤1.2:文件系统接收来自用户的写请求。
步骤2.2:判断写请求所访问的数据块是否在缓存中,如果不在缓存中,将数据写入到缓存中。
步骤3.2:在写入的整个过程中并不更新文件的元数据,直到调用了缓存管理系统所提供的文件元数据同步函数,磁盘上的有关该文件的元数据才会得到更新。
综上所述,本发明实施例提供了一个用户态的适用于大规模流媒体文件的缓存管理方法,该方法既能提高文件的写,同时又能提高文件系统的高并发读性能,可选地,本发明实施例提出的技术方案针对流媒体文件的原缓存管理(Raw Cache Management,简称为RCM)方法。
也就是说,本发明实施例上述提供的技术方案不仅采用共享内存的方式管理数据,还能够对即将访问到的数据块进行预取,上述技术方案可以有效减少缓存污染的问题。
在本实施例中还提供了一种缓存的读取装置,用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述,下面对该装置中涉及到的模块进行说明。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图3为根据本发明实施例的缓存的读取装置的结构框图。如图3所示,该装置包括:
发送模块30,用于发送对本地文件系统中多个数据块的读取请求;
读取模块32,与发送模块30连接,用于在判定上述多个数据块位于上述本地文件系统的缓存中,且上述多个数据块中的指定数据块的已读取部分的大小超过上述指定数据块大小的预设比例时,读取上述多个数据块中的下一个数据块。
通过上述各个模块的综合作用,采用在多个数据块中的指定数据块的已读取部分的大小超过上述指定数据块大小的预设比例时,就执行“读取上述多个数据块中的下一个数据块”过程的技术手段,解决了相关技术中,由于数据块的访问方式以顺序访问流的形式而导致的内存资源无法合理利用的问题,实现了异步获取多个数据块的过程,进而快速提升获取数据块的速度,合理使用内存资源。
为了更加晚上上述缓存的读取过程,在本发明实施例中还提供了一种缓存的读取处理方法,图4为根据本发明实施例的缓存的读取处理方法的流程图,如图4所示,包括以下步骤:
步骤S402,获取本地文件系统中多个数据块的读取请求;
步骤S404,在监测到上述多个数据块位于上述本地文件系统的缓存中,且上述多个数据块中的指定数据块的已读取部分的大小超过上述指定数据块大小的预设比例时,发送上述多个数据块中的下一个数据块至客户端。
通过上述各个步骤,采用在多个数据块中的指定数据块的已读取发送至客户端过程的技术手段,解决了相关技术中,由于数据块的访问方式以顺序访问流的形式而导致的内存资源无法合理利用的问题,实现了异步获取多个数据块的过程,进而快速提升获取数据块的速度,合理使用内存资源。
可选地,当判断上述读取请求所请求的多个数据块未位于上述本地文件系统的缓存中时,通过上述缓存从上述本地文件系统的硬盘中获取上述多个数据块。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必需的。
在本实施例中还提供了一种缓存的读取处理装置,用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述,下面对该装置中涉及到的模块进行说明。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图5为根据本发明实施例的缓存的读取处理装置的结构框图。如图5所示,该装置包括:
获取模块50,用于获取本地文件系统中多个数据块的读取请求;
发送模块52,与获取模块50连接,用于在监测到上述多个数据块位于上述本地文件系统的缓存中,且上述多个数据块中的指定数据块的已读取部分的大小超过上述指定数据块大小的预设比例时,发送上述多个数据块中的下一个数据块至客户端。
通过上述各个模块的综合作用,采用在多个数据块中的指定数据块的已读取发送至客户端过程的技术手段,解决了相关技术中,由于数据块的访问方式以顺序访问流的形式而导致的内存资源无法合理利用的问题,实现了异步获取多个数据块的过程,进而快速提升获取数据块的速度,合理使用内存资源。
为了更好的理解上述缓存的读取处理、读取流程,以下结合优选实施例进行说明,但不用于限定本发明实施例的技术方案:
可选地,以下技术方案在有Linux环境的阵列功能的主机或阵列系统上依次按以下步骤实现的,而对于分布式流媒体服务中的本地文件用户态缓存方法适用于所有在用户态实现的文件系统。上述的缓存管理方法包含有以下步骤:
对于上述读取策略,图6为根据本发明优选实施例的缓存的读取策略的流程图。
步骤S602:将读取请求划分数据块,判断该读请求是否跨越了多个数据块,如果读请求并没有跨越多个数据块,直接跳转到步骤S604;否则转步骤S606;
步骤S604;文件系统接受到读请求后,首先计算该请求的数据块信息,生成相应的哈希值,并在哈希链表中查找缓存中的数据块,此时会出现两种情况:该数据块不在缓存中,则转步骤S608,该数据块在缓存中,则转步骤S610;
步骤S606:按数据块大小将该读请求划分为多个子请求,并将这些子请求依次发送给文件系统;
步骤S608;需要从硬盘上将该数据块调入到内存中;
步骤S610;该I/O请求是否为释放共享内存引用,但是此时数据块的状态却是多样的,共有三种状态:OP_READING,OP_PREFETCH,OP_FINISHED,图7详细示出了如何根据上述三种状态对数据块进行处理的流程图,如图7所示,包括以下步骤:
步骤S702,判断此处数据块的状态;
步骤S704,当上述状态为OP_READING时,检查该数据块的信息是否合法;
状态为OP_READING表示之前有用户读取该数据块,但是该块数据正在读取中,该页没有就绪,此时将该读请求挂起到等待队列中。
步骤S706,当上述状态为OP_PREFETCH时,更新预取的统计信息;
状态为OP_PREFETCH表示该块数据之前并未被访问,但是由于预取,因此该块数据正在从磁盘上读取,此时将该读请求挂起到等待队列中。
步骤S708,当上述状态为OP_FINISHED时,直接返回该读取请求;
状态为OP_FINISHED,此时标志该数据块已经读取完整。当该读请求已经完成时,文件系统调用相应的回调函数,将曾经等待该块数据的读请求从等待队列中删除,并将读取的结果返回给用户。
需要说明的是,这个部分只对状态为OP_FINISHED有效。当该读请求访问的部分超过了整个块大小的1/2。那么将相邻的下一个数据块以异步的方式预取出来。
步骤S710,将该请求放入到等待队列中。
步骤S612,调用状态处理模块,找到该缓存,并将共享内存id号返回给用户。该数据块的共享内存引用加1;
步骤S614,将该数据块的共享内存引用减1;
步骤S616,预取数据块;
对于缓存写入策略
实际上,相关技术中通常的文件系统的做法是,每隔5秒将内存中的数据以及元数据写入到硬盘上,这样做虽然保证了数据的一致性,但是元数据的更新仍然略显频繁,本发明优选实施例提供了以下技术方案解决上述技术问题。
步骤2.1:首先,将该读请求划分数据块,判断该读请求是否跨越了多个数据块,如果读请求并没有跨越多个数据块,直接跳转到步骤2.2;否则按数据块大小将该写请求划分为多个子请求,并将这些子请求依次发送给文件系统。
步骤2.2:元数据不被更新,直接将数据写入到缓存就返回;
图8为根据本发明优选实施例的缓存写入策略示意图,如图8所示,包括以下步骤:
步骤S802:当用户执行了一个同步文件的元数据的调用RFS_SYNC()。总共分为三个阶段:首先,将缓存中与该文件有关的脏数据块同步到硬盘上,每更新一个数据块,将该数据块标记为Clean;,这样避免下次同步时影响到该数据块;
步骤S804:此时先更新有关该文件的系统元数据;
步骤S806:当系统的元数据更新结束后,开始更新该文件的元数据,包括该文件的大小,访问时间,以及文件的块指针等信息。
此时将脏数据写入到磁盘采用异步I/O的方式,当该文件所有的脏数据都同步到硬盘上时,才开始同步系统元数据。
综上所述,本发明实施例提供了一种分布式流媒体服务中的本地文件用户态缓存方法提供了读取,写入缓存的两种策略。在执行写操作时,根据流媒体文件写入的特征,直接提供相应的同步元数据接口,减少了元数据的频繁更新,提高了系统的性能。读取策略通过共享内存的方式减少了数据的二次拷贝,同时为读请求提供了更粗粒度的预取,提高了系统的顺序访问性能。实验表明,在多种顺序写负载下,本发明实施例的技术方案比传统文件系统在I/O带宽的性能指标上有非常显著的提高。
综上所述,本发明实施例达到了以下技术效果:缓存系统的预取机制可以提前预读出相应的数据块,优化了顺序访问文件的性能;某一文件系统实例所占用的内存的多少是可以设定的,不会全部占用内存,影响其他应用使用系统的内存;写入策略既提高了数据写入的效率,同时也保证了数据的一致性。
在另外一个实施例中,还提供了一种软件,该软件用于执行上述实施例及优选实施方式中描述的技术方案。
在另外一个实施例中,还提供了一种存储介质,该存储介质中存储有上述软件,该存储介质包括但不限于:光盘、软盘、硬盘、可擦写存储器等。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的对象在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种缓存的读取方法,其特征在于,包括:
发送对本地文件系统中多个数据块的读取请求;
在判定所述多个数据块位于所述本地文件系统的缓存中,且所述多个数据块中的指定数据块的已读取部分的大小超过所述指定数据块大小的预设比例时,读取所述多个数据块中的下一个数据块;
其中,在所述发送对本地文件系统中多个数据块的读取请求之后,所述方法还包括:在所述读取请求所请求的多个数据块位于所述本地文件系统的缓存中时,接收所述本地文件系统中共享内存的标识ID;确定所述ID与所述缓存的对应关系;
其中,所述读取所述多个数据块中的下一个数据块,包括:根据所述对应关系确定所述缓存所对应的共享内存;通过所述共享内存中读取所述下一个数据块;
其中,所述方法还包括:将所述缓存中指定文件发生变化后产生的脏数据块同步到硬盘中;
将所述缓存中指定文件发生变化后产生的脏数据块同步到硬盘中之后,所述方法还包括:对所述脏数据进行更新;对更新后的脏数据块标记用于指示所述脏数据块已完成更新的标识。
2.根据权利要求1所述的方法,其特征在于,所述预设比例取值为1/2。
3.一种缓存的读取处理方法,其特征在于,包括:
获取本地文件系统中多个数据块的读取请求;
在监测到所述多个数据块位于所述本地文件系统的缓存中,且所述多个数据块中的指定数据块的已读取部分的大小超过所述指定数据块大小的预设比例时,发送所述多个数据块中的下一个数据块至客户端;
其中,在所述获取本地文件系统中多个数据块的读取请求之后,所述方法还包括:在所述读取请求所请求的多个数据块位于所述本地文件系统的缓存中时,接收所述本地文件系统中共享内存的标识ID;确定所述ID与所述缓存的对应关系;
其中,所述发送所述多个数据块中的下一个数据块至客户端,包括:根据所述对应关系确定所述缓存所对应的共享内存;通过所述共享内存中将所述下一个数据块发送至所述客户端;
其中,所述方法还包括:将所述缓存中指定文件发生变化后产生的脏数据块同步到硬盘中;
将所述缓存中指定文件发生变化后产生的脏数据块同步到硬盘中之后,所述方法还包括:对所述脏数据进行更新;对更新后的脏数据块标记用于指示所述脏数据块已完成更新的标识。
4.根据权利要求3所述的方法,其特征在于,
在判断所述读取请求所请求的多个数据块未位于所述本地文件系统的缓存中时,通过所述缓存从所述本地文件系统的硬盘中获取所述多个数据块。
5.一种缓存的读取装置,其特征在于,包括:
发送模块,用于发送对本地文件系统中多个数据块的读取请求;
读取模块,用于在判定所述多个数据块位于所述本地文件系统的缓存中,且所述多个数据块中的指定数据块的已读取部分的大小超过所述指定数据块大小的预设比例时,读取所述多个数据块中的下一个数据块;
其中,在所述发送对本地文件系统中多个数据块的读取请求之后,所述装置还用于:在所述读取请求所请求的多个数据块位于所述本地文件系统的缓存中时,接收所述本地文件系统中共享内存的标识ID;以及还用于确定所述ID与所述缓存的对应关系;
其中,所述读取所述多个数据块中的下一个数据块,包括:根据所述对应关系确定所述缓存所对应的共享内存;通过所述共享内存中读取所述下一个数据块;
其中,所述装置还用于:将所述缓存中指定文件发生变化后产生的脏数据块同步到硬盘中;对所述脏数据进行更新;对更新后的脏数据块标记用于指示所述脏数据块已完成更新的标识。
6.一种缓存的读取处理装置,其特征在于,包括:
获取模块,用于获取本地文件系统中多个数据块的读取请求;
发送模块,用于在监测到所述多个数据块位于所述本地文件系统的缓存中,且所述多个数据块中的指定数据块的已读取部分的大小超过所述指定数据块大小的预设比例时,发送所述多个数据块中的下一个数据块至客户端;
其中,在所述获取本地文件系统中多个数据块的读取请求之后,所述装置还用于:在所述读取请求所请求的多个数据块位于所述本地文件系统的缓存中时,接收所述本地文件系统中共享内存的标识ID;以及还用于确定所述ID与所述缓存的对应关系;
其中,所述发送所述多个数据块中的下一个数据块至客户端,包括:根据所述对应关系确定所述缓存所对应的共享内存;通过所述共享内存中将所述下一个数据块发送至所述客户端;其中,所述装置还用于:将所述缓存中指定文件发生变化后产生的脏数据块同步到硬盘中;对所述脏数据进行更新;对更新后的脏数据块标记用于指示所述脏数据块已完成更新的标识。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410766329.9A CN105740166B (zh) | 2014-12-11 | 2014-12-11 | 缓存的读取、读取处理方法及装置 |
PCT/CN2015/090030 WO2016090985A1 (zh) | 2014-12-11 | 2015-09-18 | 缓存的读取、读取处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410766329.9A CN105740166B (zh) | 2014-12-11 | 2014-12-11 | 缓存的读取、读取处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105740166A CN105740166A (zh) | 2016-07-06 |
CN105740166B true CN105740166B (zh) | 2020-05-19 |
Family
ID=56106627
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410766329.9A Active CN105740166B (zh) | 2014-12-11 | 2014-12-11 | 缓存的读取、读取处理方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105740166B (zh) |
WO (1) | WO2016090985A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108132757B (zh) * | 2016-12-01 | 2021-10-19 | 阿里巴巴集团控股有限公司 | 数据的存储方法、装置及电子设备 |
CN108345546B (zh) * | 2017-05-09 | 2019-09-20 | 清华大学 | 用于确定处理器操作的方法及装置 |
CN108897495B (zh) * | 2018-06-28 | 2023-10-03 | 北京五八信息技术有限公司 | 缓存更新方法、装置、缓存设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101853218A (zh) * | 2010-05-12 | 2010-10-06 | 中兴通讯股份有限公司 | 用于磁盘阵列的读取方法和系统 |
CN102111448A (zh) * | 2011-01-13 | 2011-06-29 | 华为技术有限公司 | 分布式哈希表dht存储系统的数据预取方法、节点和系统 |
CN102521349A (zh) * | 2011-12-12 | 2012-06-27 | 深圳市创新科信息技术有限公司 | 一种文件预读方法 |
CN102945207A (zh) * | 2012-10-26 | 2013-02-27 | 浪潮(北京)电子信息产业有限公司 | 一种块级数据的缓存管理方法及系统 |
CN103608785A (zh) * | 2013-06-21 | 2014-02-26 | 华为技术有限公司 | 一种文件读取方法、存储设备及读取系统 |
CN103916465A (zh) * | 2014-03-21 | 2014-07-09 | 中国科学院计算技术研究所 | 一种基于分布式文件系统的数据预读装置及其方法 |
CN103984640A (zh) * | 2014-05-14 | 2014-08-13 | 华为技术有限公司 | 实现数据预取方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101382948A (zh) * | 2008-10-14 | 2009-03-11 | 成都市华为赛门铁克科技有限公司 | 一种文件存储方法、装置和系统 |
US8112587B2 (en) * | 2009-04-30 | 2012-02-07 | International Business Machines Corporation | Shared data prefetching with memory region cache line monitoring |
JP2013008094A (ja) * | 2011-06-22 | 2013-01-10 | Sony Corp | メモリ管理装置、メモリ管理方法、制御プログラム、および、記録媒体 |
US9390155B2 (en) * | 2012-08-22 | 2016-07-12 | Adobe Systems Incorporated | Accessing content in a content-aware mesh |
CN103645863B (zh) * | 2013-12-12 | 2017-12-08 | 北京奇安信科技有限公司 | 共享内存的数据读取方法和系统、写入方法和系统 |
-
2014
- 2014-12-11 CN CN201410766329.9A patent/CN105740166B/zh active Active
-
2015
- 2015-09-18 WO PCT/CN2015/090030 patent/WO2016090985A1/zh active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101853218A (zh) * | 2010-05-12 | 2010-10-06 | 中兴通讯股份有限公司 | 用于磁盘阵列的读取方法和系统 |
CN102111448A (zh) * | 2011-01-13 | 2011-06-29 | 华为技术有限公司 | 分布式哈希表dht存储系统的数据预取方法、节点和系统 |
CN102521349A (zh) * | 2011-12-12 | 2012-06-27 | 深圳市创新科信息技术有限公司 | 一种文件预读方法 |
CN102945207A (zh) * | 2012-10-26 | 2013-02-27 | 浪潮(北京)电子信息产业有限公司 | 一种块级数据的缓存管理方法及系统 |
CN103608785A (zh) * | 2013-06-21 | 2014-02-26 | 华为技术有限公司 | 一种文件读取方法、存储设备及读取系统 |
CN103916465A (zh) * | 2014-03-21 | 2014-07-09 | 中国科学院计算技术研究所 | 一种基于分布式文件系统的数据预读装置及其方法 |
CN103984640A (zh) * | 2014-05-14 | 2014-08-13 | 华为技术有限公司 | 实现数据预取方法及装置 |
Non-Patent Citations (1)
Title |
---|
Linux内核中的预取算法;吴峰光;《中国博士学位论文全文数据库(信息科技辑)》;20090915;第2009年卷(第9期);第38-43,51-54页 * |
Also Published As
Publication number | Publication date |
---|---|
WO2016090985A1 (zh) | 2016-06-16 |
CN105740166A (zh) | 2016-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101994021B1 (ko) | 파일 조작 방법 및 장치 | |
CN101763437B (zh) | 高速缓冲存储实现方法及装置 | |
US10540095B1 (en) | Efficient garbage collection for stable data | |
US8639658B1 (en) | Cache management for file systems supporting shared blocks | |
US8572338B1 (en) | Systems and methods for creating space-saving snapshots | |
US20170351620A1 (en) | Caching Framework for Big-Data Engines in the Cloud | |
US10298709B1 (en) | Performance of Hadoop distributed file system operations in a non-native operating system | |
CN105740166B (zh) | 缓存的读取、读取处理方法及装置 | |
CN112334891B (zh) | 用于搜索服务器的集中式存储 | |
CN112148736A (zh) | 缓存数据的方法、设备及存储介质 | |
US10936499B2 (en) | Method, device and computer programme product for storage management | |
US10467190B2 (en) | Tracking access pattern of inodes and pre-fetching inodes | |
US10387384B1 (en) | Method and system for semantic metadata compression in a two-tier storage system using copy-on-write | |
CN110162395B (zh) | 一种内存分配的方法及装置 | |
US7509461B1 (en) | Method and apparatus for intelligent buffer cache pre-emption | |
CN104021137A (zh) | 一种基于目录授权的客户端本地开闭文件的方法及系统 | |
KR101198400B1 (ko) | 메모리 관리 장치 및 방법 | |
CN115964444B (zh) | 一种云原生分布式多租户数据库实现方法及系统 | |
US10055139B1 (en) | Optimized layout in a two tier storage | |
US11010410B1 (en) | Processing data groupings belonging to data grouping containers | |
JP6584529B2 (ja) | ファイルにアクセスするための方法および装置、ならびに記憶システム | |
US10628391B1 (en) | Method and system for reducing metadata overhead in a two-tier storage architecture | |
CN110209343B (zh) | 数据存储方法、装置、服务器及存储介质 | |
CN109343928B (zh) | 虚拟化集群中虚拟机的虚拟内存文件重定向方法及其系统 | |
CN113672640A (zh) | 数据查询方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |