[发明专利]一种基于嵌入式文件系统的流式数据写入方法在审
申请号: | 201410768924.6 | 申请日: | 2014-12-11 |
公开(公告)号: | CN104536699A | 公开(公告)日: | 2015-04-22 |
发明(设计)人: | 陈君;吴京洪;李明哲;樊皓;叶晓舟 | 申请(专利权)人: | 中国科学院声学研究所;北京中科智网科技有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06;G06F17/30 |
代理公司: | 北京亿腾知识产权代理事务所 11309 | 代理人: | 陈霁 |
地址: | 100190 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 嵌入式 文件系统 数据 写入 方法 | ||
技术领域
本发明涉及数据存储技术领域,尤其涉及一种基于嵌入式文件系统的流式数据写入方法。
背景技术
随着互联网的迅速发展,存储技术及各种存储系统也得到了飞速发展,这些存储系统为大量的互联网信息及多媒体数据信息提供了方便、快速、高效的存储及访问服务。
嵌入式系统是一种完全嵌入受控器件内部,为特定应用而设计的专用计算机系统,嵌入式系统资源有限,结构简单,鉴于其特殊性和专用性,很少在嵌入式系统中采用通用的操作系统和文件系统,而是针对特定应用场景为嵌入式系统定制文件系统。可嵌入式系统的应用范围非常广泛,不可能有一种文件系统在所有嵌入式系统中一统天下,适用于大到嵌入式服务器,小到嵌入式机顶盒的所有情况,而是根据系统应用环境和目标等来选择构建合适的文件系统。
文件系统写入数据的速率一方面取决于底层写接口的IO性能,另一方面取决于文件系统自身的缓存策略和内部机制,而文件系统写入数据的并发能力则与其调度机制有关。
现有技术中,用户调用通用文件系统的IO接口写入数据,而写入过程中文件系统的缓存策略和调度机制用户无从知晓也不可控制,而文件系统写入数据时往往并没有充分利用硬件资源,从而导致了数据写入磁盘的效率和吞吐不够高、并发性能不够强的问题。
发明内容
本发明实施例提供了一种基于嵌入式文件系统的流式数据写入方法,以解决现有技术中存在的数据写入效率低下、吞吐和并发性能不够高的问题。
为了实现上述目的,本申请实施例提供了一种基于嵌入式文件系统的流式数据写入方法,所述方法包括:
接收待写入磁盘的流式数据;
将接收的流式数据以链表结构进行组织,并将所述流式数据缓存于存储区,当缓存的流式数据的长度达到设定的阈值时,触发将缓存的流式数据写入磁盘的写操作;
从缓存中分离流式数据:
查询所述文件的元数据,获取存储文件内容的磁盘位置信息,根据所述磁盘位置信息,计算本次欲写入磁盘的流式数据长度,所述长度须为磁盘扇区大小的整数倍,且对应区段的数据在物理上和逻辑上均保持连续;
从缓存中取出所述长度的流式数据,取出数据的操作实则从缓存数据的链表中分离出一个所述长度的子链表:根据所述长度找到分离节点,从所述分离节点处截取流式数据,分离后的子链表对应的数据长度应与本次欲写入磁盘的流式数据长度相等;
将分离出的流式数据写入磁盘;
调用下层写接口将分离出的流式数据写入磁盘,写入数据时采用异步非阻塞模式,而非阻塞在将数据写入磁盘的过程中,待文件系统收到数据写入磁盘成功的消息后,尝试触发下一次写操作。
优选地,所述接收待写入磁盘的流式数据之前,所述方法还包括:
接收到一个新的流式数据写入请求后,判断系统中是否存在所述文件;
如果不存在,则需要请求方手动建立所述文件;
如果存在,则为所述请求新建一个写任务,获取所述文件的元数据,并为所述任务分配存储空间。
优选地,所述写请求的参数包括文件名、写入文件的起始偏移和写入文件的结束偏移。
优选地,所述方法还包括:
为所述写请求建立写任务,为所述写任务分配任务空间,将所述文件名的哈希值、待写入数据的起始偏移和待写入数据的结束偏移存入所述任务空间。
优选地,所述方法还包括对任务进行预处理:
如果所述待写入流式数据的起始偏移对应于磁盘扇区(头扇区)中的位置不在扇区头,则从磁盘中读出头扇区数据并缓存;如果所述待写入流式数据的结束偏移对应于磁盘扇区(尾扇区)中的位置不在扇区尾,则从磁盘中读出尾扇区数据并缓存。
优选地,将分离出的流式数据写入磁盘,所述方法还包括:
计算当前写操作对应的起始偏移和结束偏移;
如果所述当前写操作对应的起始偏移等于写任务的起始偏移,则所述当前写操作为第一次写操作;如果所述当前写操作对应的结束偏移等于写任务的结束偏移,则当前写操作为最后一次写操作。
优选地,执行第一次写操作时,所述方法还包括:
当第一次写操作对应的起始偏移对应于磁盘扇区中的位置不为扇区头时,则将第一次写操作对应的起始偏移与扇区头对齐,并利用缓存的头扇区数据填充第一次写操作中扩充的数据。
优选地,执行最后一次写操作时,所述方法还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院声学研究所;北京中科智网科技有限公司;,未经中国科学院声学研究所;北京中科智网科技有限公司;许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410768924.6/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置