CN104331255A - 一种基于嵌入式文件系统的流式数据读取方法 - Google Patents

一种基于嵌入式文件系统的流式数据读取方法 Download PDF

Info

Publication number
CN104331255A
CN104331255A CN201410653260.9A CN201410653260A CN104331255A CN 104331255 A CN104331255 A CN 104331255A CN 201410653260 A CN201410653260 A CN 201410653260A CN 104331255 A CN104331255 A CN 104331255A
Authority
CN
China
Prior art keywords
task
subtask
data
reading
stream data
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
CN201410653260.9A
Other languages
English (en)
Other versions
CN104331255B (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.)
Zhengzhou Xinrand Network Technology Co ltd
Institute of Acoustics CAS
Original Assignee
Institute of Acoustics CAS
Beijing Intellix Technologies 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 Institute of Acoustics CAS, Beijing Intellix Technologies Co Ltd filed Critical Institute of Acoustics CAS
Priority to CN201410653260.9A priority Critical patent/CN104331255B/zh
Publication of CN104331255A publication Critical patent/CN104331255A/zh
Priority to PCT/CN2015/074082 priority patent/WO2016078259A1/zh
Priority to US15/527,323 priority patent/US20170322948A1/en
Application granted granted Critical
Publication of CN104331255B publication Critical patent/CN104331255B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • G06F16/1767Concurrency control, e.g. optimistic or pessimistic approaches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • G06F16/152File search processing using file content signatures, e.g. hash values
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明提出了一种基于嵌入式文件系统的流式数据读取方法,该方法包括:接收一个读取流式数据的请求,当被请求的流式数据存在于磁盘时,则为该请求新建一个读任务,并为新建的读任务分配存储空间并初始化相关参数;将读任务分解成多个子任务,每个子任务负责读取一段物理上连续的数据,并进行缓存;从子任务缓存中取出数据,按流式数据格式进行封装,每封装完一块数据就提交给本次读任务的调用方,提交完成后释放本次子任务并触发下一个子任务;当所有子任务都成功完成时,向任务调用方报告任务正常完成,等待任务调用方结束当前读任务。本发明有利于流式数据的高吞吐和大并发读取,有效地解决了在大量用户访问热点数据时服务器并发性能低下的问题。

Description

一种基于嵌入式文件系统的流式数据读取方法
技术领域
本发明涉及数据存储技术领域,尤其涉及一种基于嵌入式文件系统的流式数据读取方法。
背景技术
随着互联网及多媒体产业的迅猛发展,各种存储技术及存储系统也得到了飞速发展。这些存储系统为海量的互联网信息及多媒体数据信息提供了方便、快速、高效的存储及访问服务。
嵌入式系统资源有限,结构简单,介于其特殊性和专用性,很少在嵌入式系统中采用通用的操作系统和文件系统,而是针对特定应用场景为嵌入式系统定制文件系统;可嵌入式系统的应用范围非常广泛,不可能有一种文件系统在所有嵌入式系统中一统天下,适用于大到嵌入式服务器,小到嵌入式机顶盒等的所有情况,而是根据系统应用环境和目标等来选择构建合适的文件系统。不同文件系统管理磁盘的策略和读写数据的方法不一样,现有技术最亟待解决的就是数据读取的高吞吐、高并发问题。
文件系统读取数据的速率一方面取决于底层接口的IO性能,另一方面取决于文件系统自身的调度效率,文件系统读取数据的并发能力则与内部调度机制有关。
发明内容
本发明的目的在于,为嵌入式流服务提供高吞吐、高并发的数据读取服务,从而提出了一种基于嵌入式文件系统的流式数据读取方法。
为实现上述目的,本发明提出了一种基于嵌入式文件系统的流式数据读取方法,该方法包括以下步骤:
接收一个读取流式数据的请求,当被请求的流式数据存在于磁盘时,则为该请求新建一个读任务,并为新建的读任务分配存储空间并初始化相关参数;
将读任务分解成多个子任务,每个子任务负责读取一段物理上连续的数据,并进行缓存;
从子任务缓存中取出数据,按流式数据格式进行封装,每封装完一块数据就提交给本次读任务的调用方,提交完成后释放本次子任务并触发下一个子任务;
当所有子任务都成功完成时,向任务调用方报告任务正常完成,等待任务调用方结束当前读任务。
优选地,当收到一个读取流式数据的请求时,计算请求文件名的哈希值,通过对哈希值进行查找,进而判断被请求数据是否存在于磁盘。
优选地,一个读取流式数据的请求参数包括:文件名、读取数据的起始偏移和结束偏移,在为该请求新建一个读任务后,为读任务分配存储空间,将文件名哈希值、待读取数据的起始偏移、结束偏移信息存入读任务分配的存储空间,从而完成读任务初始化。
优选地,根据读任务的起始偏移和结束偏移,计算出任务长度,结合待读流式数据存放于磁盘中的位置信息,将所述读任务分解成多个子任务;所有子任务通过链表串联,按先后顺序依次触发子任务。
优选地,在每个子任务开始后,首先获取本次子任务欲读取流式数据的起始扇区和长度,根据欲读取流式数据长度为待读取流式数据申请内存空间,再根据起始扇区计算出将从哪一块磁盘中读流式数据,最后调用下层接口从指定磁盘中读取指定区段的流式数据。
优选地,在每个子任务完成后,底层接口发送消息通知文件系统当前子任务执行成功或失败,文件系统在收到子任务成功完成的消息后,从当前子任务缓存中取出数据。
优选地,在执行每个子任务时会为待读流式数据预分配内存空间,用于缓存从磁盘中读出的数据;每个子任务标识的待读流式数据长度须为磁盘扇区大小的整数倍,且子任务从磁盘中读取数据时采用异步非阻塞IO模式。
优选地,在上一次子任务成功结束后向文件系统发送消息,文件系统收到消息后从子任务的数据缓存区将数据拷贝到新申请的内存中,并按流式数据格式进行封装,封装好后提交给本次读取任务的调用方,进而触发下一个子任务,直到所有子任务均已结束。
优选地,对于尚未完成的读任务,通过向前调整任务结束位置提前结束任务,对于已经读取完成的任务,通过向后调整任务结束位置追加读取数据。
优选地,在每个子任务进行过程中,根据需要更改读任务结束偏移,当新任务结束偏移比当前子任务结束偏移小,则忽略本次更新;否则,用新任务结束偏移替换任务参数中的读数据结束偏移,并根据新任务结束偏移重新生成子任务。
与现有技术相比,本发明的优势在于:
1、高效性——本发明通过对任务进行分解,保障了每个子任务读取一段逻辑和物理上均连续的数据,同时限制单个子任务读取的数据长度,提高了读取数据的效率;
2、高并发——采用异步读机制,调用下层读接口后立即返回,无需阻塞在读数据过程中;还支持多核协作,子任务成功执行后下层接口发送消息报告子任务成功执行,此消息再去驱动下一子任务,下一子任务则可能由另一个核执行,这两点为流式数据读取的高并发性能提供了保障。
此外,本发明还允许用户在读取数据的过程中更改结束偏移,丰富了用户的操作方式,在流服务应用场景中具有较大优势。
附图说明
图1是本发明实施例提供的一种基于嵌入式文件系统的流式数据读取方法流程示意图;
图2是图1所示发明实施例消息驱动流程图;
图3是图1所示发明实施例读任务流程图;
图4是图1所示发明实施例子任务链表示意图。
具体实施方式
下面结合附图和实例对本发明进行详细说明,使得本发明的上述优点更加明确:
本发明实施例针对现有嵌入式流服务中存在的数据读取效率和并发能力不够高的问题,提出了一种基于嵌入式文件系统的流式数据读取方法,该方法通过对任务进行分解,提高了读取数据的效率,采用异步读机制保障了流式数据的高并发读取,还允许用户在读取数据的过程中更改结束偏移,丰富了用户的操作方式,在流服务应用场景中具有较大优势。
图1是本发明实施例提供的一种基于嵌入式文件系统的流式数据读取方法流程示意图,图2是消息驱动流程图,本发明实施例采用事件驱动机制,所有事件以消息为载体进行驱动,有关启动任务、更新任务、处理读出数据和结束任务都是由消息驱动。以下结合图1和图2对本发明实施例进行详细说明,如图1所示,该方法包括步骤101-104:
在步骤101,接收一个读取流式数据的请求,当被请求的流式数据存在磁盘时,则为该请求新建一个读任务,并为新建的读任务分配存储空间并初始化相关参数。
具体地,消息接收器负责接收所有消息,对收到的消息进行判断,根据消息类型进行响应,消息类型包括启动任务、更新任务、处理读出数据和结束任务。当用户调用文件系统提供的接口请求读取数据成功后,文件系统会发出一个启动消息,消息接收器收到启动消息后,由文件系统执行图2的第一个分支“启动任务”,启动任务即为新请求创建一个读任务。
优选地,当收到一个读取流式数据的请求时,首先判断被请求的流式数据是否存在,判断方法是:计算请求文件名的哈希值,对哈希值进行查找,若能找到,即被请求的流式数据存在于磁盘中,则立即为该请求新建一个读任务,为新任务分配存储空间并初始化相关参数;若被请求的流式数据不存在于磁盘中,则通知用户读请求失败。
一个流式数据读取请求参数包括文件名、读取数据的起始偏移和结束偏移等,新建一个读任务后,为新任务分配内存空间,将文件名哈希值、待读取数据的起始偏移、结束偏移等信息存入任务空间,从而完成任务初始化。
在步骤102,将读任务分解成多个子任务,每个子任务负责读取一段物理上连续的数据,并进行缓存;
具体地,在读任务创建成功后,文件系统获取被请求文件的元数据信息,结合被请求的流式数据存储在磁盘的的位置信息,依据待读流式数据的起始偏移和待读数据长度对读任务进行划分,划分后的子任务在逻辑上具有连续性,每个子任务负责读取一段逻辑上和物理上均连续的数据,而相邻子任务读出的数据在物理上不一定连续。
优选地,在读任务新建成功后,提取本次读任务的起始偏移和任务长度,查询待读流式数据对应的文件索引信息,可获取存放流式数据的磁盘位置信息,对任务长度和起始偏移进行计算,结合存放流式数据的磁盘位置信息,将该读任务分解成若干个子任务,每个子任务负责读取一段逻辑上和物理上均连续的数据,数据长度为扇区大小的整数倍;相邻子任务读出的数据在逻辑上具有连续性,但物理上却可能不连续,因为一个流式数据往往并非是连续存储在磁盘中,划分子任务的目的就是为了保证每次从磁盘中读出一段物理上连续的数据,同时,为了保障读取流式数据的效率,对子任务的数据长度进行限制,单个子任务读取的数据长度不宜太长。子任务信息以链表的方式存储,链表中每个节点中包含本次子任务读取数据的起始扇区和本次子任务读取数据的长度,该长度用扇区数表示。待任务分解结束后,主动触发第一个子任务。
在触发一个子任务后,首先获取本次子任务欲读取数据的起始扇区和欲读数据长度,其中,本次子任务欲读数据长度由扇区数和扇区大小算出,根据算出的长度为本次子任务申请内存空间,用于缓存从磁盘中读出的数据,再根据起始扇区编号找到存储本次子任务待读流式数据的磁盘,调用下层接口并传入磁盘编号、起始扇区编号、扇区数、待读流式数据的缓存地址等参数,便可从指定磁盘中读取指定数据。
在步骤103,从子任务缓存中取出数据,按流式数据格式进行封装,每封装完一块数据就提交给本次读任务的调用方,提交完成后释放本次子任务并触发下一个子任务;
具体地,在生成子任务后,由文件系统主动触发第一个子任务,开启子任务后,文件系统先获取子任务参数,包括读取数据的起始扇区号和本次待读扇区数目,通过扇区大小和待读扇区数计算出本次子任务待读数据量,根据此数据量申请内存空间,用于缓存待读数据,再通过计算得出本次子任务待读起始扇区所在磁盘编号,最后调用下层读接口从指定磁盘中读出数据,传入磁盘编号、起始扇区号、扇区数等参数,调用后立即返回而不是等数据完全读出后再返回,待数据完全读出子任务缓存后,下层接口会发送消息报告子任务成功完成,消息接收器收到消息后判断消息类型为子任务完成通知消息,文件系统则执行图1中第三个分支“处理读出数据”,该流程为整个读任务中最主要流程,每当收到上一子任务成功完成的消息后,即由此消息触发下一子任务,循环进行此流程直至所有子任务全部执行或某个子任务执行失败。
优选地,子任务从磁盘中读取数据时采用异步非阻塞IO模式,调用下层接口后立即返回而无需阻塞在IO过程中,该机制适用于多核协作,利于多任务的高并发实现和流式数据的高效读取。当本次子任务对应的数据被完全读出后,底层接口会发送消息报告子任务是否成功完成,文件系统收到子任务成功完成的消息后,从子任务缓存中取出数据,按流式数据格式进行封装,每封装完一块数据就提交给本次读任务的调用方,直到本次子任务读出的数据已全部提交或剩余数据暂不足提交,对于不足提交的剩余数据,将其暂时缓存,待下一子任务从磁盘读出数据后,再取出缓存数据进行封装并提交。
图3是图1所示发明实施例的读任务流程图,该流程对读出数据进行处理,即按流式数据格式对数据进行封装,封装后每块数据中的内容长度为某一固定值,此值与具体流服务应用场景有关,子任务读出的数据按流式数据根式封装后可能有剩余,剩余数据不足以封装成一块流式数据提交给用户,则将子任务剩余数据缓存,待下一子任务完成后再对数据进行封装,循环进行此流程直至所有子任务均已完成,当所有子任务均已完成后,按流式数据格式封装数据后剩余数据仍可能不足以封装成最后一块标准数据,由于此段数据是整个读任务的最后一段数据,已无后续数据存在,所以最后一块数据不足以封装成一块标准数据但仍然提交给用户。
读任务进行过程中,用户可以根据需要更改读任务结束偏移,如用户发现自己只需要读一部分数据而非整个文件,则可以向前调整任务结束偏移,则可以调用嵌入式文件系统为用户提供的更新任务参数的接口,调用接口后文件系统会发送一条更新任务的消息,消息接收器收到此消息后,文件系统执行图2中第二个分支“更新任务”,
比较原始任务结束偏移和新任务结束偏移的大小关系,若新任务结束偏移小于原始任务结束偏移则为向前更新,即提前结束任务。文件系统获取当前子任务读取的数据偏移,若新任务结束偏移比当前子任务读取的数据偏移小则更新不可能完成,直接忽略本次更新请求;若新任务结束偏移比当前子任务读取偏移大,则用新的任务结束偏移替换任务参数中的读数据结束偏移,并根据新的结束偏移重新生成子任务,更新子任务链表。
在步骤104,当所有子任务都成功完成时,向任务调用方报告任务正常完成,等待任务调用方结束当前读任务。
具体地,当子任务执行失败、处理读出数据出错或更新任务出错时,文件系统会主动向用户报告异常,当所有子任务都成功完成且处理读出数据正常时,文件系统会向用户报告读任务正常完成,用户收到文件系统的异常或完成报告后,主动结束任务,结束任务的接口也由文件系统实现,供用户调用。原则上,用户可以在任何时候主动结束一个读任务。
优选地,将读出的数据封装并提交完成后子任务才算结束,子任务结束时释放任务空间和数据空间,释放任务空间即删除子任务链表中的当前头结点,数据空间指的是子任务开始时申请的用于缓存读出数据的内存空间。只有当上一个子任务成功完成后,才能触发下一个子任务,若某个子任务执行失败,当文件系统收到失败消息时,会主动向任务调用方报告任务异常,当所有子任务都已成功完成时,文件系统也会向任务调用方报告任务正常完成,等待任务调用方结束当前读任务。
任务调用方收到文件系统报告异常或任务结束后可调用文件系统提供的接口函数主动结束任务,甚至在任务进行过程中任务调用方也可主动结束该任务,除此之外,本发明实施例还支持中途更新任务参数,对于尚未完成的任务,可以通过向前调整任务结束偏移来提前结束任务,对于已经读取完成的任务,还可以向后调整任务结束偏移来追加读取数据,该方法为用户提供了灵活多变的操作方式,适合于流式数据的多种应用场景中。
图4是图1所示本发明实施例子任务链表示意图,如图4所示,链表中每个节点表示一个子任务,节点中包含子任务参数,如起始扇区号、扇区数目、磁盘编号等,该任务链表在启动任务时生成,每当一个子任务执行完成后则释放链表头结点,将“当前子任务”指向下一子任务,图4中虚线框中节点即表示已经执行完成的子任务,每次触发一个子任务则通过“当前子任务”获取任务参数,“当前子任务”始终指向任务链表的头结点。当更新任务结束偏移后,先删除更新参数前的任务链表,再通过新任务结束偏移和当前任务状态重新计算并生成新的任务链表。
本发明实施例通过对读任务进行分解,保障了每个子任务读取一段逻辑和物理上均连续的数据,同时限制单个子任务读取的数据长度,提高了读取数据的效率;采用异步读机制,调用下层读接口后立即返回,无需阻塞在读数据过程中;还支持多核协作,子任务成功执行后下层接口发送消息报告子任务成功执行,此消息再去驱动下一子任务,下一子任务则可能由另一个核执行,这两点为流式数据读取的高并发性能提供了保障。
需要说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

Claims (10)

1.一种基于嵌入式文件系统的流式数据读取方法,其特征在于:
接收一个读取流式数据的请求,当被请求的流式数据存在于磁盘时,则为该请求新建一个读任务,并为新建的读任务分配存储空间并初始化相关参数;
将所述读任务分解成多个子任务,每个子任务负责读取一段物理上连续的数据,并进行缓存;
从子任务缓存中取出数据,按流式数据格式进行封装,每封装完一块数据就提交给本次读任务的调用方,提交完成后释放本次子任务并触发下一个子任务;
当所有子任务都成功完成时,向任务调用方报告任务正常完成,等待任务调用方结束当前读任务。
2.根据权利要求1所述的方法,其特征在于:通过以下步骤判断所述被请求的流式数据是否存在磁盘:
当收到一个读取流式数据的请求时,计算请求文件名的哈希值,通过在文件系统元数据中对所述哈希值进行查找,进而判断被请求数据是否存在于磁盘。
3.根据权利要求1所述的方法,其特征在于:所述一个读取流式数据的请求参数包括:文件名、读取数据的起始偏移和结束偏移,在为该请求新建一个读任务后,为读任务分配存储空间,将文件名哈希值、待读流式取数据的起始偏移、结束偏移信息存入读任务分配的存储空间,从而完成读任务初始化。
4.根据权利要求1所述的方法,其特征在于:将所述读任务分解成多个子任务的步骤包括:
根据读任务的起始偏移和结束偏移,计算出任务长度,结合待读流式数据存放于磁盘中的位置信息,将所述读任务分解成多个子任务;
所有子任务通过链表串联,按先后顺序依次触发子任务。
5.根据权利要求1所述的方法,其特征在于:在所述每个子任务开始后,首先获取本次子任务欲读取流式数据的起始扇区和长度,根据欲读取流式数据长度为待读取流式数据申请内存空间,再根据起始扇区计算出将从哪一块磁盘读出流式数据,最后调用下层接口从指定磁盘中读取指定区段的流式数据。
6.根据权利要求1所述的方法,其特征在于:在执行每个子任务时会为待读流式数据预分配内存空间,用于缓存从磁盘中读出的数据;每个子任务标识的待读流式数据长度须为磁盘扇区大小的整数倍,且子任务从磁盘中读取数据时采用异步非阻塞IO模式。
7.根据权利要求1所述的方法,其特征在于:在所述每个子任务完成后,底层接口发送消息通知文件系统当前子任务执行成功或失败,文件系统在收到子任务成功完成的消息后,从当前子任务缓存中取出数据。
8.根据权利要求1所述的方法,其特征在于:在上一次子任务成功结束后向文件系统发送消息,文件系统在收到消息后从子任务的数据缓存区将数据拷贝到新申请的内存中,并按流式数据格式进行封装,封装好后提交给本次读取任务的调用方,进而触发下一个子任务,直到所有子任务均已结束。
9.根据权利要求1所述的方法,其特征在于,对于尚未完成的读任务,通过向前调整任务结束位置提前结束任务;对于已经读取完成的任务,通过向后调整任务结束位置追加读取数据。
10.根据权利要求1所述的方法,其特征在于:在所述每个子任务进行过程中,可根据需要更改读任务结束偏移,当新任务结束偏移比当前子任务结束偏移小,则忽略本次更新;否则,用新任务结束偏移替换任务参数中的读数据结束偏移,并根据新任务结束偏移重新生成子任务。
CN201410653260.9A 2014-11-17 2014-11-17 一种基于嵌入式文件系统的流式数据读取方法 Active CN104331255B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201410653260.9A CN104331255B (zh) 2014-11-17 2014-11-17 一种基于嵌入式文件系统的流式数据读取方法
PCT/CN2015/074082 WO2016078259A1 (zh) 2014-11-17 2015-03-12 一种基于嵌入式文件系统的流式数据读取方法
US15/527,323 US20170322948A1 (en) 2014-11-17 2015-03-12 Streaming data reading method based on embedded file system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410653260.9A CN104331255B (zh) 2014-11-17 2014-11-17 一种基于嵌入式文件系统的流式数据读取方法

Publications (2)

Publication Number Publication Date
CN104331255A true CN104331255A (zh) 2015-02-04
CN104331255B CN104331255B (zh) 2018-04-17

Family

ID=52405990

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410653260.9A Active CN104331255B (zh) 2014-11-17 2014-11-17 一种基于嵌入式文件系统的流式数据读取方法

Country Status (3)

Country Link
US (1) US20170322948A1 (zh)
CN (1) CN104331255B (zh)
WO (1) WO2016078259A1 (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016078259A1 (zh) * 2014-11-17 2016-05-26 中国科学院声学研究所 一种基于嵌入式文件系统的流式数据读取方法
CN106598735A (zh) * 2016-12-13 2017-04-26 广东金赋科技股份有限公司 一种分布式计算方法、主控节点、计算节点和系统
WO2017092350A1 (zh) * 2015-12-01 2017-06-08 乐视控股(北京)有限公司 提高缓存命中率的方法及装置
CN107547294A (zh) * 2016-06-24 2018-01-05 财团法人电信技术中心 网络效能的测试系统与测试方法
WO2018054200A1 (zh) * 2016-09-26 2018-03-29 上海泓智信息科技有限公司 文件读取方法和装置
CN110516738A (zh) * 2019-08-23 2019-11-29 佳都新太科技股份有限公司 一种分布式比对聚类方法、装置、电子设备及存储介质
CN110781137A (zh) * 2019-10-28 2020-02-11 柏科数据技术(深圳)股份有限公司 分布式系统的目录读取方法、装置、服务器和存储介质
CN110781159A (zh) * 2019-10-28 2020-02-11 柏科数据技术(深圳)股份有限公司 Ceph目录文件信息读取方法、装置、服务器及存储介质
CN113127443A (zh) * 2020-01-14 2021-07-16 北京京东振世信息技术有限公司 一种更新缓存数据的方法和装置
CN113487026A (zh) * 2021-07-05 2021-10-08 江苏号百信息服务有限公司 一种图计算中io节点高效读取数据的方法及系统
WO2023077451A1 (zh) * 2021-11-05 2023-05-11 中国科学院计算技术研究所 一种基于列存数据库的流式数据处理方法及系统

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10387207B2 (en) * 2016-12-06 2019-08-20 International Business Machines Corporation Data processing
CN111611105A (zh) * 2020-05-15 2020-09-01 杭州涂鸦信息技术有限公司 一种对并发业务请求异步处理的优化方法及相关设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5109511A (en) * 1988-05-31 1992-04-28 Hitachi, Ltd. Shared resource managing method and system
CN101656751A (zh) * 2008-08-18 2010-02-24 北京数码大方科技有限公司 加速上传与下载文件的方法及其系统
US20110145037A1 (en) * 2009-12-16 2011-06-16 Vertafore, Inc. Document management method and apparatus to process a workflow task by parallel or serially processing subtasks thereof
CN102467415A (zh) * 2010-11-03 2012-05-23 大唐移动通信设备有限公司 一种业务面任务处理方法及设备
CN103942098A (zh) * 2014-04-29 2014-07-23 国家电网公司 一种任务处理系统和方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101650669A (zh) * 2008-08-14 2010-02-17 英业达股份有限公司 多线程下执行磁盘读写的方法
CN102368779B (zh) * 2011-01-25 2013-04-17 麦克奥迪实业集团有限公司 一种用于移动互联网设备的超大图像加载显示方法
CN104331255B (zh) * 2014-11-17 2018-04-17 中国科学院声学研究所 一种基于嵌入式文件系统的流式数据读取方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5109511A (en) * 1988-05-31 1992-04-28 Hitachi, Ltd. Shared resource managing method and system
CN101656751A (zh) * 2008-08-18 2010-02-24 北京数码大方科技有限公司 加速上传与下载文件的方法及其系统
US20110145037A1 (en) * 2009-12-16 2011-06-16 Vertafore, Inc. Document management method and apparatus to process a workflow task by parallel or serially processing subtasks thereof
CN102467415A (zh) * 2010-11-03 2012-05-23 大唐移动通信设备有限公司 一种业务面任务处理方法及设备
CN103942098A (zh) * 2014-04-29 2014-07-23 国家电网公司 一种任务处理系统和方法

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016078259A1 (zh) * 2014-11-17 2016-05-26 中国科学院声学研究所 一种基于嵌入式文件系统的流式数据读取方法
WO2017092350A1 (zh) * 2015-12-01 2017-06-08 乐视控股(北京)有限公司 提高缓存命中率的方法及装置
CN107547294A (zh) * 2016-06-24 2018-01-05 财团法人电信技术中心 网络效能的测试系统与测试方法
WO2018054200A1 (zh) * 2016-09-26 2018-03-29 上海泓智信息科技有限公司 文件读取方法和装置
CN106598735A (zh) * 2016-12-13 2017-04-26 广东金赋科技股份有限公司 一种分布式计算方法、主控节点、计算节点和系统
CN110516738B (zh) * 2019-08-23 2022-09-16 佳都科技集团股份有限公司 一种分布式比对聚类方法、装置、电子设备及存储介质
CN110516738A (zh) * 2019-08-23 2019-11-29 佳都新太科技股份有限公司 一种分布式比对聚类方法、装置、电子设备及存储介质
CN110781137A (zh) * 2019-10-28 2020-02-11 柏科数据技术(深圳)股份有限公司 分布式系统的目录读取方法、装置、服务器和存储介质
CN110781159A (zh) * 2019-10-28 2020-02-11 柏科数据技术(深圳)股份有限公司 Ceph目录文件信息读取方法、装置、服务器及存储介质
CN113127443A (zh) * 2020-01-14 2021-07-16 北京京东振世信息技术有限公司 一种更新缓存数据的方法和装置
CN113487026A (zh) * 2021-07-05 2021-10-08 江苏号百信息服务有限公司 一种图计算中io节点高效读取数据的方法及系统
CN113487026B (zh) * 2021-07-05 2024-05-03 江苏号百科技有限公司 一种图计算中io节点高效读取数据的方法及系统
WO2023077451A1 (zh) * 2021-11-05 2023-05-11 中国科学院计算技术研究所 一种基于列存数据库的流式数据处理方法及系统

Also Published As

Publication number Publication date
CN104331255B (zh) 2018-04-17
US20170322948A1 (en) 2017-11-09
WO2016078259A1 (zh) 2016-05-26

Similar Documents

Publication Publication Date Title
CN104331255A (zh) 一种基于嵌入式文件系统的流式数据读取方法
JP7271059B2 (ja) マルチクラスタウェアハウス
US9344750B2 (en) Method and system for scheduling commercial advertisement
US9830181B2 (en) Method and system for gracefully shutdown virtual system
JP2007518174A5 (zh)
KR102006513B1 (ko) 공유 볼륨의 어플리케이션 일관된 스냅샷 기법
CN107729020A (zh) 一种实现大规模容器快速部署的方法
CN102710763B (zh) 一种分布式缓存池化、分片及故障转移的方法及系统
CN102084331A (zh) 在多处理器/多线程环境下协调存储请求的装置、系统和方法
JP2012511773A (ja) 効率的なデータ同期化のための方法及びシステム
KR20110074489A (ko) 데이터 즉시 청킹을 사용하여 파일 입출력을 스케줄 하는 방법
US9639571B2 (en) Methods and systems for increasing capacity and performing data rebalancing without downtime to a distributed shared-nothing database with serializable isolation
CN109164981B (zh) 磁盘管理方法、装置、存储介质和设备
CN113010496B (zh) 一种数据迁移方法、装置、设备和存储介质
CN104536699B (zh) 一种基于嵌入式文件系统的流式数据写入方法
US11271800B1 (en) Leaderless, parallel, and topology-aware protocol for achieving consensus with recovery from failure of all nodes in a group
CN102955817A (zh) 一种基于共享内存的对象管理与恢复方法及系统
CN103593243A (zh) 一种动态可扩展的增加虚拟机资源的方法
CN106959893A (zh) 加速器、用于加速器的内存管理方法以及数据处理系统
KR20020061543A (ko) 어플리케이션 데이터를 다운로드하기 위한 방법 및 장치
US20200201819A1 (en) Data mesh parallel file system caching
CN100372283C (zh) 多点下载中保证数据块在整个系统均匀分布的方法和装置
WO2018233332A1 (zh) 一种分布式存储内存管理方法、系统及计算机存储介质
CN104202371B (zh) 一种基于iSCSI块直存的跨设备扩容方法和装置
JP5742614B2 (ja) リストア処理プログラム、リストア方法、及び情報処理装置

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
TR01 Transfer of patent right

Effective date of registration: 20210813

Address after: Room 1601, 16th floor, East Tower, Ximei building, No. 6, Changchun Road, high tech Industrial Development Zone, Zhengzhou, Henan 450001

Patentee after: Zhengzhou xinrand Network Technology Co.,Ltd.

Address before: 100190, No. 21 West Fourth Ring Road, Beijing, Haidian District

Patentee before: INSTITUTE OF ACOUSTICS, CHINESE ACADEMY OF SCIENCES

Effective date of registration: 20210813

Address after: 100190, No. 21 West Fourth Ring Road, Beijing, Haidian District

Patentee after: INSTITUTE OF ACOUSTICS, CHINESE ACADEMY OF SCIENCES

Address before: 100190, No. 21 West Fourth Ring Road, Beijing, Haidian District

Patentee before: INSTITUTE OF ACOUSTICS, CHINESE ACADEMY OF SCIENCES

Patentee before: BEIJING INTELLIX TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right