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

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

Info

Publication number
CN104536699A
CN104536699A CN201410768924.6A CN201410768924A CN104536699A CN 104536699 A CN104536699 A CN 104536699A CN 201410768924 A CN201410768924 A CN 201410768924A CN 104536699 A CN104536699 A CN 104536699A
Authority
CN
China
Prior art keywords
data
disk
write
write operation
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
CN201410768924.6A
Other languages
English (en)
Other versions
CN104536699B (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 CN201410768924.6A priority Critical patent/CN104536699B/zh
Publication of CN104536699A publication Critical patent/CN104536699A/zh
Application granted granted Critical
Publication of CN104536699B publication Critical patent/CN104536699B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/172Caching, prefetching or hoarding of files

Landscapes

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

Abstract

本发明实施例涉及一种基于嵌入式文件系统的流式数据写入方法,所述方法包括:接收待写入磁盘的流式数据;将接收的流式数据以链表结构进行组织并缓存,当缓存的数据长度达到设定的阈值时,触发将缓存的流式数据写入磁盘的写操作;从缓存中分离流式数据:计算本次欲写入磁盘的数据长度,所述长度须为磁盘扇区大小的整数倍,且对应区段的数据在物理上和逻辑上均保持连续,分离后的子链表对应的数据长度应与本次欲写入磁盘的数据长度相等;将分离出的流式数据写入磁盘:调用下层写接口将分离出的流式数据写入磁盘,写入数据时采用异步非阻塞模式,而非阻塞在将数据写入磁盘的过程中,待文件系统收到数据写入磁盘成功的消息后,尝试触发下一次写操作。

Description

一种基于嵌入式文件系统的流式数据写入方法
技术领域
本发明涉及数据存储技术领域,尤其涉及一种基于嵌入式文件系统的流式数据写入方法。
背景技术
随着互联网的迅速发展,存储技术及各种存储系统也得到了飞速发展,这些存储系统为大量的互联网信息及多媒体数据信息提供了方便、快速、高效的存储及访问服务。
嵌入式系统是一种完全嵌入受控器件内部,为特定应用而设计的专用计算机系统,嵌入式系统资源有限,结构简单,鉴于其特殊性和专用性,很少在嵌入式系统中采用通用的操作系统和文件系统,而是针对特定应用场景为嵌入式系统定制文件系统。可嵌入式系统的应用范围非常广泛,不可能有一种文件系统在所有嵌入式系统中一统天下,适用于大到嵌入式服务器,小到嵌入式机顶盒的所有情况,而是根据系统应用环境和目标等来选择构建合适的文件系统。
文件系统写入数据的速率一方面取决于底层写接口的IO性能,另一方面取决于文件系统自身的缓存策略和内部机制,而文件系统写入数据的并发能力则与其调度机制有关。
现有技术中,用户调用通用文件系统的IO接口写入数据,而写入过程中文件系统的缓存策略和调度机制用户无从知晓也不可控制,而文件系统写入数据时往往并没有充分利用硬件资源,从而导致了数据写入磁盘的效率和吞吐不够高、并发性能不够强的问题。
发明内容
本发明实施例提供了一种基于嵌入式文件系统的流式数据写入方法,以解决现有技术中存在的数据写入效率低下、吞吐和并发性能不够高的问题。
为了实现上述目的,本申请实施例提供了一种基于嵌入式文件系统的流式数据写入方法,所述方法包括:
接收待写入磁盘的流式数据;
将接收的流式数据以链表结构进行组织,并将所述流式数据缓存于存储区,当缓存的流式数据的长度达到设定的阈值时,触发将缓存的流式数据写入磁盘的写操作;
从缓存中分离流式数据:
查询所述文件的元数据,获取存储文件内容的磁盘位置信息,根据所述磁盘位置信息,计算本次欲写入磁盘的流式数据长度,所述长度须为磁盘扇区大小的整数倍,且对应区段的数据在物理上和逻辑上均保持连续;
从缓存中取出所述长度的流式数据,取出数据的操作实则从缓存数据的链表中分离出一个所述长度的子链表:根据所述长度找到分离节点,从所述分离节点处截取流式数据,分离后的子链表对应的数据长度应与本次欲写入磁盘的流式数据长度相等;
将分离出的流式数据写入磁盘;
调用下层写接口将分离出的流式数据写入磁盘,写入数据时采用异步非阻塞模式,而非阻塞在将数据写入磁盘的过程中,待文件系统收到数据写入磁盘成功的消息后,尝试触发下一次写操作。
优选地,所述接收待写入磁盘的流式数据之前,所述方法还包括:
接收到一个新的流式数据写入请求后,判断系统中是否存在所述文件;
如果不存在,则需要请求方手动建立所述文件;
如果存在,则为所述请求新建一个写任务,获取所述文件的元数据,并为所述任务分配存储空间。
优选地,所述写请求的参数包括文件名、写入文件的起始偏移和写入文件的结束偏移。
优选地,所述方法还包括:
为所述写请求建立写任务,为所述写任务分配任务空间,将所述文件名的哈希值、待写入数据的起始偏移和待写入数据的结束偏移存入所述任务空间。
优选地,所述方法还包括对任务进行预处理:
如果所述待写入流式数据的起始偏移对应于磁盘扇区(头扇区)中的位置不在扇区头,则从磁盘中读出头扇区数据并缓存;如果所述待写入流式数据的结束偏移对应于磁盘扇区(尾扇区)中的位置不在扇区尾,则从磁盘中读出尾扇区数据并缓存。
优选地,将分离出的流式数据写入磁盘,所述方法还包括:
计算当前写操作对应的起始偏移和结束偏移;
如果所述当前写操作对应的起始偏移等于写任务的起始偏移,则所述当前写操作为第一次写操作;如果所述当前写操作对应的结束偏移等于写任务的结束偏移,则当前写操作为最后一次写操作。
优选地,执行第一次写操作时,所述方法还包括:
当第一次写操作对应的起始偏移对应于磁盘扇区中的位置不为扇区头时,则将第一次写操作对应的起始偏移与扇区头对齐,并利用缓存的头扇区数据填充第一次写操作中扩充的数据。
优选地,执行最后一次写操作时,所述方法还包括:
当最后一次写操作对应的结束偏移对应于磁盘扇区中的位置不为扇区尾时,则将最后一次写操作对应的结束偏移与扇区尾对齐,并利用缓存的尾扇区数据填充最后一次写操作扩充的数据。
优选地,执行写操作时,从缓存的流式数据中取出指定长度的待写数据,具体包括:
根据当次写操作欲写入磁盘的数据长度,找到分离节点,将缓存流式数据的链表从分离节点后截断,复制所述分离点,将复制的分离点作为剩余链表的头结点,调整原始分离节点和复制分离点中的数据起始偏移和数据长度。
优选地,文件系统收到上一批数据写入磁盘成功的消息后,所述方法还包括:
写操作既可在缓存的数据量达到设定阈值时被触发,也可由数据写入磁盘成功的消息触发,两种触发方式通过任务锁进行互斥,确保同一时间只有一个写任务被触发;
当文件系统收到上一批数据写入磁盘成功的消息后,尝试触发下一次写操作,若任务锁尚未被抢占,则下一次写任务触发成功;否则,触发失败。
本发明实施例提供的基于嵌入式文件系统的流式数据写入方法,将接收的流式数据以链表结构进行组织,且每次写入磁盘的流式数据为一段逻辑和物理上均连续的数据,确保了流式数据写入的时序正常,写入流式数据时采用异步IO机制,还支持多核协作,提高了流式数据写入的效率。写入流式数据成功后,文件系统下层的写接口会发送写操作成功的通知消息,所述消息将触发下一次写操作。
附图说明
图1为本发明实施例一提供的基于嵌入式文件系统的流式数据写入方法流程图;
图2为本发明实施例一提供的基于嵌入式文件系统的流式数据写入方法的消息驱动流程图;
图3为本发明实施例一提供的流式数据以链表的结构缓存的示意图;
图4为本发明实施例一提供的写入流式数据的时序图;
图5为本发明实施例一提供的从缓存中取出数据时分离子链表的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明具体实施例作进一步的详细描述。
实施例一
下面以图1为例详细说明本发明实施例一提供的基于嵌入式文件系统的流式数据写入方法,图1为本发明实施例提供的基于嵌入式文件系统的流式数据写入方法流程图,在本发明实施例中实施主体可以为文件系统。图2为本发明实施例提供的基于嵌入式文件系统的流式数据写入方法的消息驱动流程图。结合图1和图2所示,该方法包括如下步骤:
步骤101、接收待写入磁盘的流式数据;
流式数据指将数据看作是数据流的形式来处理,数据块是数据流的最小组成单元。这里接收的流式数据来自内容分发网络(Content DeliveryNetwork,CDN)分发的流式数据。
具体地,在接收写入文件的流式数据之前,还包括以下步骤来为写请求创建一个新的写任务:
步骤11,接收到一个新的流式数据写入请求后,判断系统中是否存在所述文件;
写请求的参数包括文件名、写入文件的起始偏移和写入文件的结束偏移。
具体地,计算待写的所述文件的文件名的哈希值,通过文件名哈希值来查找文件在文件系统中的索引号。
步骤12,如果不存在,则需要请求方手动建立所述文件;
步骤13,如果存在,则为所述请求新建一个写任务,通过找到的索引号从对应的索引节点中获取所述文件的元数据,并为所述任务分配存储空间,将所述文件名的哈希值、待写入数据的起始偏移和待写入数据的结束偏移存入所述任务空间。
在一个具体的例子中,上述步骤具体过程可以是:当收到一个写入流式数据的请求时,首先判断待写的文件是否存在于文件系统中。若所述待写文件不存在于文件系统中,则写请求失败,需要用户在请求前先手动新建此文件,再发起写入流式数据的请求。若所述待写文件存在文件系统中,通过找到的索引号可从对应的索引节点中获取该文件的元数据信息,并为该写请求新建一个写任务,为写任务分配存储空间,并将文件名哈希值、待写入流式数据的起始偏移和待写入流式数据的结束偏移等信息存入任务空间。
所述方法还包括对任务进行预处理:
具体地,写任务新建成功后,首先对写任务进行预处理:提取本次写任务的起始偏移和结束偏移,分别计算起始偏移和结束偏移对应于磁盘扇区中的位置,若起始偏移对应于磁盘扇区中的位置不为零,即不在扇区头,则将起始偏移对应的扇区中的数据读出并缓存;同理,若结束偏移对应于磁盘扇区中的位置不为扇区尾,也将结束偏移对应的扇区中的数据读出并缓存。当头/尾扇区的数据读取完成后,下层接口会以消息的形式报告读取结果,文件系统收到头/尾扇区数据成功读出的消息后,任务预处理完成,文件系统向用户报告任务就绪状态,用户收到报告后,才可从CDN接收流式数据。
步骤102、将接收的流式数据以链表结构进行组织,并将所述流式数据缓存于存储区,当缓存的流式数据的长度达到设定的阈值时,触发将缓存的流式数据写入磁盘的写操作;
链表的结构是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的,链表中每一个元素称为结点,链表由一系列结点组成,结点可以在运行时动态生成。
具体地,图3为流式数据以链表结构缓存的示意图,如图3所示,链表中的每一个节点代表了一块数据,该数据按流式数据格式进行封装。文件系统收到来自CDN的流式数据后,通过链表进行组织并缓存,每个节点中的数据长度取决于流式数据的封装格式,且除了最后一个缓存节点,所有节点中缓存的数据长度都相同,相邻节点缓存的数据在逻辑上具有连续性,而同一节点中缓存的数据却不保证在物理上连续,也就是说同一节点中缓存的数据可能被写入到物理上不相邻的扇区中。
当缓存的流式数据的长度达到设定的阈值时,便触发将流式数据写入磁盘的写操作,文件系统向下层接口提交流式数据,由下层接口将数据写入磁盘。
具体地,在所述触发将所述流式数据写入磁盘的写操作之后,还包括以下步骤来判断当前写操作是否为第一次写操作或最后一次写操作:
步骤21,计算当前写操作对应的起始偏移和结束偏移;
步骤22,如果当前写操作对应的起始偏移等于写任务的起始偏移,则所述当前写操作为第一次写操作;当第一次写操作对应的起始偏移对应于磁盘扇区中的位置不为扇区头时,则将第一次写操作对应的起始偏移与扇区头对齐,并利用缓存的头扇区数据填充第一次写操作中扩充的数据。
具体地,对于第一次写操作,需判断起始偏移对应于磁盘扇区中的位置是否为扇区头,若第一次写操作对应的起始偏移对应于磁盘扇区中的位置不为扇区头,则将第一次写操作的起始偏移移至该扇区头对应的偏移位置处,并利用缓存中的头扇区数据对应补齐。
步骤23,如果当前写操作对应的结束偏移等于写任务的结束偏移,则当前写操作为最后一次写操作。
当最后一次写操作对应的结束偏移对应于磁盘扇区中的位置不为扇区尾时,则将最后一次写操作对应的结束偏移与扇区尾对齐,并利用缓存的尾扇区数据填充最后一次写操作扩充的数据。
具体地,对于最后一次写操作,需判断结束偏移对应于磁盘扇区中的位置是否为扇区尾,若最后一次写操作对应的结束偏移对应于磁盘扇区中的位置不为扇区尾,则将最后一次写操作的结束偏移移至该扇区尾对应的偏移位置处,并利用缓存中的尾扇区数据对应补齐。
经过上述步骤的预处理和补齐后的写任务能确保每次写操作对应的起始偏移和结束偏移恰好对应于扇区头和尾,同时每次写入磁盘的数据长度也为扇区大小的整数倍,这满足了下层写接口的调用要求,保障了流式数据的正确写入。
步骤103、查询所述文件的元数据,获取存储文件内容的磁盘位置信息,根据所述磁盘位置信息,计算本次欲写入磁盘的流式数据长度,所述长度须为磁盘扇区大小的整数倍,且对应区段的数据在物理上和逻辑上均保持连续;
具体地,如图4所示为本发明实施例提供的写入流式数据的时序图,每次写操作被触发后,文件系统根据存放待写数据的磁盘位置信息、当前缓存的数据长度和设定的单次写入磁盘的最大数据长度,来计算出本次写操作将要写入磁盘的流式数据的长度,由该长度表征的本次写操作将要写入磁盘的数据可保证在物理上和逻辑上均连续。计算该长度的原则是在不超过设定的最大值前提下,单次写操作尽可能多地将当前缓存区中的数据写入磁盘。
步骤104、从缓存中取出所述长度的流式数据,取出数据的操作实则从缓存数据的链表中分离出一个所述长度的子链表:根据所述长度找到分离节点,从所述分离节点处截取流式数据,分离后的子链表对应的数据长度应与本次欲写入磁盘的流式数据长度相等;
根据当次写操作欲写入磁盘的数据长度,找到分离节点,将缓存流式数据的链表从分离节点后截断,复制所述分离点,将复制出的分离点作为剩余链表的头结点,调整原始分离节点和复制分离点中的数据起始偏移和数据长度。
具体地,文件系统从缓存中取出相应长度的数据,且取出的数据即为本次写操作将要写入磁盘的数据。其中,从缓存中取出一段数据实质上是从一个长链表中分离出子链表的过程,首先依次累加链表中节点数据的长度,当累加的数据长度大于等于本次写操作欲写入磁盘的数据长度时,即找到了链表的分离节点,分离节点中也存放着一块按既定格式封装的流式数据,而本次写操作可能只需要将给节点中的一部分数据写入,节点中剩余数据需在下次写操作中被写入磁盘。
在一个具体的例子中,每次写操作被触发后,文件系统会从缓存数据中取出指定长度的数据,从缓存中取出数据实际上就是从长链表中分离出一个子链表的过程,图5是本发明实施例中从分离节点处截取子链表的示意图,如图5所示,首先从头结点依次累加链表节点中的数据长度,找到链表的分离节点i,由于链表节点不可切分,而本次写操作中不需要将节点i中的数据全部写入磁盘,故复制节点i,将复制出的节点命名为i’,将链表从分离节点的尾部切断,并将节点i作为分离出的子链表的尾节点,而节点i’作为剩余链表的头结点,调整节点i和i’中的起始偏移和有效数据长度,确保分离出的子链表中所有节点累加的数据长度等于本次写操作待写入磁盘的数据长度,同时还需保证节点i和节点i’中有效数据长度之和与复制前节点i中的数据长度相同,即保证分离前后缓存中数据长度和内容不变。
步骤105、将分离出的流式数据写入磁盘;
步骤106、调用下层写接口将分离出的流式数据写入磁盘,写入数据时采用异步非阻塞模式,而非阻塞在将数据写入磁盘的过程中,待文件系统收到数据写入磁盘成功的消息后,尝试触发下一次写操作。
文件系统收到上一批数据写入磁盘成功的消息后,所述方法还包括:
写操作既可在缓存的数据量达到设定阈值时被触发,也可由数据写入磁盘成功的消息触发,两种触发方式通过任务锁进行互斥,确保同一时间只有一个写任务被触发。
当文件系统收到上一批数据写入磁盘成功的消息后,尝试触发下一次写操作,若任务锁尚未被抢占,则下一次写任务触发成功;否则,触发失败。
执行写操作的过程实际上是传入子链表地址、写入长度、写入磁盘的起始扇区号等信息,从而调用下层接口将分离出的数据写入磁盘的过程,写入数据采用异步IO机制,即调用后立即返回。下层接口将数据写入磁盘后会以消息的形式报告写入完成情况,文件系统收到上一次写入数据成功的消息后,尝试触发下一次写操作,若触发成功则执行下一次写操作,若文件系统收到上一次写入数据失败的消息,则向用户报告异常,由用户主动结束本次写操作。
文件系统收取来自CDN的流式数据,当缓存的数据达到一定量时,文件系统会尝试触发写操作,当收到上一次写入数据成功的消息后,文件系统也会尝试执行下一次写操作。所述方法采用任务锁的机制,确保同一时刻只能有一次写操作被触发,任何时候,只要写操作被触发则将任务锁打开,待收到上次写入数据成功的消息后才将任务锁关闭,当任务锁处于打开状态时,尝试执行下一次写操作的任何请求都会被拒绝。
当所有数据都已经被成功写入磁盘后,文件系统向用户报告完成,若某次写入磁盘出错,文件系统则向用户报告异常。用户收到任务完成或异常的消息后,主动调用由文件系统提供的结束任务的接口,结束任务时会清理掉任务相关的缓存空间和任务空间。
因此,本发明实施例提供的基于嵌入式文件系统的流式数据写入方法,将接收的流式数据以链表的结构进行组织,当缓存的流式数据的长度达到设定的阈值时,触发将所述流式数据写入磁盘的写操作。当写操作被触发后,文件系统在所述链表中选取分离节点,从所述分离点处截取子链表,从而了从缓存中分离出了当次写操作将要写入磁盘的数据,且该段数据为一段逻辑和物理上均连续的数据,数据长度为磁盘扇区大小的整数倍,从而满足了下层接口对写入磁盘的接口的调用要求,确保了流式数据的正确写入,所述方法采用异步IO机制,而非阻塞在写数据的过程中,待上一批流式数据写入成功后,文件系统下层写接口发送数据写入成功的通知消息,该消息可驱动下一次写操作,此外,所述方法还支持多核协,提高了流式数据写入的效率,保证了流式数据的高并发写入。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。
以上所述的具体实施方式,对本发明实施例的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明实施例的具体实施方式而已,并不用于限定本发明实施例的保护范围,凡在本发明实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。

Claims (10)

1.一种基于嵌入式文件系统的流式数据写入方法,其特征在于,所述方法包括:
接收待写入磁盘的流式数据;
将接收的流式数据以链表结构进行组织,并将所述流式数据缓存于存储区,当缓存的流式数据的长度达到设定的阈值时,触发将缓存的流式数据写入磁盘的写操作;
从缓存中分离流式数据:
查询所述文件的元数据,获取存储文件内容的磁盘位置信息,根据所述磁盘位置信息,计算本次欲写入磁盘的流式数据长度,所述长度须为磁盘扇区大小的整数倍,且对应区段的数据在物理上和逻辑上均保持连续;
从缓存中取出所述长度的流式数据,取出数据的操作实则从缓存数据的链表中分离出一个所述长度的子链表:根据所述长度找到分离节点,从所述分离节点处截取流式数据,分离后的子链表对应的数据长度应与本次欲写入磁盘的流式数据长度相等;
将分离出的流式数据写入磁盘;
调用下层写接口将分离出的流式数据写入磁盘,写入数据时采用异步非阻塞模式,而非阻塞在将数据写入磁盘的过程中,待文件系统收到数据写入磁盘成功的消息后,尝试触发下一次写操作。
2.根据权利要求1所述的方法,其特征在于,所述接收待写入磁盘的流式数据之前,所述方法还包括:
接收到一个新的流式数据写入请求后,判断系统中是否存在所述文件;
如果不存在,则需要请求方手动建立所述文件;
如果存在,则为所述请求新建一个写任务,获取所述文件的元数据,并为所述任务分配存储空间。
3.根据权利要求2所述的方法,其特征在于,所述写请求的参数包括文件名、写入文件的起始偏移和写入文件的结束偏移。
4.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
为所述写请求建立写任务,为所述写任务分配任务空间,将所述文件名的哈希值、待写入数据的起始偏移和待写入数据的结束偏移存入所述任务空间。
5.根据权利要求1或4所述的方法,其特征在于,所述方法还包括对任务进行预处理:
如果所述待写入流式数据的起始偏移对应于磁盘扇区(头扇区)中的位置不在扇区头,则从磁盘中读出头扇区数据并缓存;如果所述待写入流式数据的结束偏移对应于磁盘扇区(尾扇区)中的位置不在扇区尾,则从磁盘中读出尾扇区数据并缓存。
6.根据权利要求1所述的方法,其特征在于,将分离出的流式数据写入磁盘,所述方法还包括:
计算当前写操作对应的起始偏移和结束偏移;
如果所述当前写操作对应的起始偏移等于写任务的起始偏移,则所述当前写操作为第一次写操作;
如果所述当前写操作对应的结束偏移等于写任务的结束偏移,则当前写操作为最后一次写操作。
7.根据权利要求1或6所述的方法,其特征在于,执行第一次写操作时,所述方法还包括:
当第一次写操作对应的起始偏移对应于磁盘扇区中的位置不为扇区头时,则将第一次写操作对应的起始偏移与扇区头对齐,并利用缓存的头扇区数据填充第一次写操作中扩充的数据。
8.根据权利要求1或6所述的方法,其特征在于,执行最后一次写操作时,所述方法还包括:
当最后一次写操作对应的结束偏移对应于磁盘扇区中的位置不为扇区尾时,则将最后一次写操作对应的结束偏移与扇区尾对齐,并利用缓存的尾扇区数据填充最后一次写操作扩充的数据。
9.根据权利要求1所述的方法,其特征在于,执行写操作时,从缓存的流式数据中取出指定长度的待写数据,具体包括:
根据当次写操作欲写入磁盘的数据长度,找到分离节点,将缓存流式数据的链表从分离节点后截断,复制所述分离点,将复制的分离点作为剩余链表的头结点,调整原始分离节点和复制分离点中的数据起始偏移和数据长度。
10.根据权利要求1所述的方法,其特征在于,文件系统收到上一批数据写入磁盘成功的消息后,所述方法还包括:
写操作既可由在缓存的数据量达到设定阈值时被触发,也可由数据写入磁盘成功的消息触发,两种触发方式通过任务锁进行互斥,确保同一时间只有一个写任务被触发;
当文件系统收到上一批数据写入磁盘成功的消息后,尝试触发下一次写操作,若任务锁尚未被抢占,则下一次写任务触发成功;否则,触发失败。
CN201410768924.6A 2014-12-11 2014-12-11 一种基于嵌入式文件系统的流式数据写入方法 Active CN104536699B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410768924.6A CN104536699B (zh) 2014-12-11 2014-12-11 一种基于嵌入式文件系统的流式数据写入方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410768924.6A CN104536699B (zh) 2014-12-11 2014-12-11 一种基于嵌入式文件系统的流式数据写入方法

Publications (2)

Publication Number Publication Date
CN104536699A true CN104536699A (zh) 2015-04-22
CN104536699B CN104536699B (zh) 2017-10-17

Family

ID=52852234

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410768924.6A Active CN104536699B (zh) 2014-12-11 2014-12-11 一种基于嵌入式文件系统的流式数据写入方法

Country Status (1)

Country Link
CN (1) CN104536699B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105224252A (zh) * 2015-09-28 2016-01-06 北京奇虎科技有限公司 数据存储方法及装置
CN105302660A (zh) * 2015-11-06 2016-02-03 湖南安存科技有限公司 面向分布式存储系统带流检测技术的纠删码写缓冲方法
CN105389124A (zh) * 2015-10-16 2016-03-09 联想(北京)有限公司 一种信息处理方法及电子设备
CN106227830A (zh) * 2016-07-25 2016-12-14 乐视控股(北京)有限公司 存储和读取文件的方法和装置
CN107329694A (zh) * 2017-06-22 2017-11-07 苏州交运电子科技有限公司 数据存储控制方法、控制装置及存储设备
CN109144963A (zh) * 2017-06-26 2019-01-04 阿里巴巴集团控股有限公司 一种重做日志持久化方法及设备
CN109375990A (zh) * 2018-09-29 2019-02-22 长沙新弘软件有限公司 一种基于原子操作的环形链表方法
CN109542348A (zh) * 2018-11-19 2019-03-29 郑州云海信息技术有限公司 一种数据下刷方法及装置
CN110727402A (zh) * 2019-09-12 2020-01-24 中航光电科技股份有限公司 一种高速fc数据实时接收不丢帧存储方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001037088A2 (en) * 1999-11-19 2001-05-25 Realchip, Inc. Programmable multi-tasking memory management system
CN102419765A (zh) * 2011-11-01 2012-04-18 无敌科技(西安)有限公司 一种流畅保存数据到通用文件系统的嵌入式装置及方法
CN103699660A (zh) * 2013-12-26 2014-04-02 清华大学 一种大规模网络流式数据缓存写入的方法
US20140289470A1 (en) * 2013-03-21 2014-09-25 Sharp Laboratories Of America, Inc. Computing Device Having Optimized File System and Methods for Use Therein

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001037088A2 (en) * 1999-11-19 2001-05-25 Realchip, Inc. Programmable multi-tasking memory management system
WO2001037088A3 (en) * 1999-11-19 2002-04-11 Realchip Inc Programmable multi-tasking memory management system
CN102419765A (zh) * 2011-11-01 2012-04-18 无敌科技(西安)有限公司 一种流畅保存数据到通用文件系统的嵌入式装置及方法
US20140289470A1 (en) * 2013-03-21 2014-09-25 Sharp Laboratories Of America, Inc. Computing Device Having Optimized File System and Methods for Use Therein
CN103699660A (zh) * 2013-12-26 2014-04-02 清华大学 一种大规模网络流式数据缓存写入的方法

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105224252A (zh) * 2015-09-28 2016-01-06 北京奇虎科技有限公司 数据存储方法及装置
CN105389124A (zh) * 2015-10-16 2016-03-09 联想(北京)有限公司 一种信息处理方法及电子设备
CN105389124B (zh) * 2015-10-16 2018-11-09 联想(北京)有限公司 一种信息处理方法及电子设备
CN105302660B (zh) * 2015-11-06 2018-09-04 湖南安存科技有限公司 面向分布式存储系统带流检测技术的纠删码写缓冲方法
CN105302660A (zh) * 2015-11-06 2016-02-03 湖南安存科技有限公司 面向分布式存储系统带流检测技术的纠删码写缓冲方法
CN106227830A (zh) * 2016-07-25 2016-12-14 乐视控股(北京)有限公司 存储和读取文件的方法和装置
CN107329694A (zh) * 2017-06-22 2017-11-07 苏州交运电子科技有限公司 数据存储控制方法、控制装置及存储设备
CN107329694B (zh) * 2017-06-22 2021-05-18 苏州奈特力智能科技有限公司 数据存储控制方法、控制装置及存储设备
CN109144963A (zh) * 2017-06-26 2019-01-04 阿里巴巴集团控股有限公司 一种重做日志持久化方法及设备
CN109375990A (zh) * 2018-09-29 2019-02-22 长沙新弘软件有限公司 一种基于原子操作的环形链表方法
CN109375990B (zh) * 2018-09-29 2021-07-20 长沙新弘软件有限公司 一种基于原子操作的环形链表方法
CN109542348A (zh) * 2018-11-19 2019-03-29 郑州云海信息技术有限公司 一种数据下刷方法及装置
CN109542348B (zh) * 2018-11-19 2022-05-10 郑州云海信息技术有限公司 一种数据下刷方法及装置
CN110727402A (zh) * 2019-09-12 2020-01-24 中航光电科技股份有限公司 一种高速fc数据实时接收不丢帧存储方法
CN110727402B (zh) * 2019-09-12 2022-03-15 中航光电科技股份有限公司 一种高速fc数据实时接收不丢帧存储方法

Also Published As

Publication number Publication date
CN104536699B (zh) 2017-10-17

Similar Documents

Publication Publication Date Title
CN104536699A (zh) 一种基于嵌入式文件系统的流式数据写入方法
US20210056074A1 (en) File System Data Access Method and File System
US20210173853A1 (en) Selective synchronization of content items in a content management system
EP3803618B1 (en) Distributed transactions in cloud storage with hierarchical namespace
US10659225B2 (en) Encrypting existing live unencrypted data using age-based garbage collection
US11294855B2 (en) Cloud-aware snapshot difference determination
US20190007206A1 (en) Encrypting object index in a distributed storage environment
US10628443B2 (en) Data syncing in a distributed system
US20190370362A1 (en) Multi-protocol cloud storage for big data and analytics
US9588977B1 (en) Data and metadata structures for use in tiering data to cloud storage
US20190370360A1 (en) Cloud storage distributed file system
US20160162509A1 (en) System and Method for Managing Deduplication Using Checkpoints in a File Storage System
US9785646B2 (en) Data file handling in a network environment and independent file server
CN103095769B (zh) 跨机房的数据同步方法以及系统
EP3575968A1 (en) Method and device for synchronizing active transaction lists
CN104881466B (zh) 数据分片的处理以及垃圾文件的删除方法和装置
CN105183400B (zh) 一种基于内容寻址的对象存储方法和系统
US11023433B1 (en) Systems and methods for bi-directional replication of cloud tiered data across incompatible clusters
CN108810112B (zh) 一种市场监管区块链系统的节点同步方法及装置
CN104794119B (zh) 用于中间件消息的存储与传输方法及系统
CN108076078A (zh) 一种云主机创建方法、装置及云服务系统
US10152493B1 (en) Dynamic ephemeral point-in-time snapshots for consistent reads to HDFS clients
US20170060957A1 (en) Optimized and consistent replication of file overwrites
CN106326035A (zh) 一种基于文件元数据的增量备份方法
CN105653209A (zh) 一种对象存储数据传输方法及装置

Legal Events

Date Code Title Description
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: 20210819

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: 20210819

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

Patentee after: INSTITUTE OF ACOUSTICS, CHINESE ACADEMY OF SCIENCES

Address before: 100190 Institute of acoustics, Chinese Academy of Sciences, No. 21 West Fourth Ring Road, Haidian District, Beijing

Patentee before: INSTITUTE OF ACOUSTICS, CHINESE ACADEMY OF SCIENCES

Patentee before: BEIJING INTELLIX TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right