用于使得能够修改文件系统卷内的多个数据对象的系统和方法技术方案

技术编号:20596313 阅读:23 留言:0更新日期:2019-03-16 11:57
设备可以被配置为执行使得能够可以被用来以并行方式将文件系统卷内的分配单元分配到数据对象的技术。文件系统驱动可以被配置为基于在逻辑上划分为一个或多个窗口的分配映射结构来执行分配操作。每个窗口可以能够在分配操作期间被独立地锁定。窗口元数据可以被用来评估分配映射结构的窗口。

A system and method for making it possible to modify multiple data objects in a file system volume

Devices can be configured to perform techniques that enable allocation units within file system volumes to be allocated to data objects in parallel. File system drivers can be configured to perform allocation operations based on an allocation mapping structure logically divided into one or more windows. Each window can be locked independently during the allocation operation. Window metadata can be used to evaluate windows that allocate mapping structures.

【技术实现步骤摘要】
【国外来华专利技术】用于使得能够修改文件系统卷内的多个数据对象的系统和方法相关申请本申请要求享有于2016年4月1日提交的美国临时申请No.62/317,375的权益,该美国临时申请通过引用整体纳入。
本公开内容涉及用于与文件系统一起使用的系统和方法,并且更具体地涉及用于修改文件系统卷内的多个数据对象的技术。
技术介绍
包括膝上型计算机或台式计算机、平板计算机、电视、数字视频录像机(DVR)、机顶盒、数字媒体播放器、视频游戏设备、视频游戏控制台、视频监视系统和蜂窝电话的设备可以利用文件系统来控制如何在计算机可读介质上存储数据和从计算机可读介质检索数据。例如,设备可以根据定义的文件系统卷从存储设备读数据和将数据写到存储设备,所述存储设备诸如是存储卡(例如,安全数字(SD)存储卡,包括标准容量(SDSC)格式、高容量(SDHC)格式和扩展容量(SDXC)格式)、硬盘驱动器和/或固态驱动器,固态驱动器包括通用串行总线(USB)固态驱动器(所谓的“闪存(flash)”驱动器、“拇指(thumb)”驱动器或“跳跃(jump)”驱动器)。文件系统的类型包括,例如,基于扩展文件系统(ext)的文件系统、基于分层文件系统(HFS)的文件系统、基于XFS文件系统的文件系统、基于Z文件系统(ZFS)的文件系统、基于新技术文件系统(NTFS)的文件系统以及基于文件分配表(FAT)文件系统的文件系统,包括FAT12文件系统、FAT16文件系统、FAT32文件系统、exFAT文件系统和事务性exFAT文件系统。相应的数据对象(例如,文件)可以存储在卷内的存储设备中。多个应用可以指示修改存储在卷内的相应的数据对象。当前用于修改存储在卷内的相应的数据对象的技术可能不太理想。
技术实现思路
通常,本公开内容描述了用于修改文件系统卷内的多个数据对象的技术。特别地,本公开内容描述了用于使得能够以并行方式修改文件系统内的多个数据对象的技术。本文描述的技术可以被用来以并行方式将一个文件系统卷内的分配单元分配到多个文件。本文描述的技术对于要求将多个相对大的文件同时存储到存储设备(例如,记录多个视频流)的用户应用特别有用。应注意,文档通过引用纳入本文是出于描述的目的,并且不应该被理解为对于本文使用的术语的限制和/或造成歧义。例如,在一个纳入的参考文献提供的一个术语的定义不同于另一个纳入的参考文献提供的该术语的定义和/或不同于如该术语在本文中使用的定义的情况下,应以广泛地包括每个相应的定义的方式和/或以替代地包括每个特定定义的方式解释该术语。根据本公开内容的一个实施例,一种用于为数据对象的存储分配簇的方法包括:接收对应于将簇分配到该数据对象的指令,将指派到该数据对象的一个分配映射结构的一个窗口锁定,将簇分配到该数据对象,以及将指派到该数据对象的该窗口解锁。根据本公开内容的另一个实施例,一种用于为数据对象的存储分配簇的设备包括一个或多个处理器,所述一个或多个处理器被配置为接收对应于将簇分配到该数据对象的指令,将指派到该数据对象的一个分配映射结构的一个窗口锁定,将簇分配到该数据对象,以及将指派到该数据对象的该窗口解锁。根据本公开内容的另一个实施例,一种非暂时性计算机可读存储介质包括存储在其上的指令,所述指令在执行时导致设备的一个或多个处理器接收对应于将簇分配到该数据对象的指令,将指派到该数据对象的一个分配映射结构的一个窗口锁定,将簇分配到该数据对象,以及将指派到该数据对象的该窗口解锁。根据本公开内容的另一个实施例,一种用于为数据对象的存储分配簇的仪器包括用于接收对应于将簇分配到该数据对象的指令的装置,用于将指派到该数据对象的一个分配映射结构的一个窗口锁定的装置,用于将簇分配到该数据对象的装置,以及用于将指派到该数据对象的该窗口解锁的装置。在附图和以下描述中阐述了一个或多个实施例的细节。其他特征、目的和优点将从该描述和附图以及权利要求变得明显。附图说明图1是例示了可以实施本公开内容的一个或多个技术的计算设备的一个实施例的方框图。图2是例示了可以实施本公开内容的一个或多个技术的计算设备的操作系统的一个实施例的方框图。图3是例示了根据示例文件系统定义的卷的一个实施例的概念图。图4是例示了指示存储到待被修改的卷的相应的数据对象的多个应用的一个实施例的概念图。图5A-图5B是例示了导致以串行方式执行相应的分配操作的一个实施例的概念图。图6是例示了根据本公开内容的一个或多个技术在逻辑上组织分配映射结构的一个实施例的概念图。图7是例示了根据本公开内容的一个或多个技术导致执行相应的分配操作的一个实施例的概念图。图8是例示了根据本公开内容的一个或多个技术导致执行相应的分配操作的一个实施例的流程图。具体实施方式可以根据定义的文件系统在存储设备上安排、组织和/或管理用户数据。例如,微软可扩展固件倡议FAT32文件系统规范(MicrosoftExtensibleFirmwareInitiativeFAT32FileSystemSpecification)(版本1.03,2000年12月6日)——其全部内容通过引用纳入——定义了FAT32文件系统的各方面,并且微软exFAT修订版1.00文件系统基本规范(MicrosoftexFATRevision1.00FileSystemBasicSpecification)(第四版,2009年1月1日)——其被描述在美国专利号8,321,439的附录A中并且其全部内容通过引用纳入——定义了exFAT文件系统的各方面。此外,文件系统可以包括其他专有文件系统。文件系统可以指定卷的结构和要求,其中卷是为存储和检索用户数据所必需的数据空间定义的一组逻辑结构。如下文参考图3详细描述的,卷可以包括引导记录、文件分配表、分配位映射和用户数据。用户数据可以包括目录和文件和/或类似的数据结构。目录、文件和/或类似的数据结构中的每个通常可以被称为数据对象或数据项。在基于Unix的文件系统中,术语索引节点(inode)可用来指代文件或目录数据对象。如本文所使用的,术语索引节点可以更通常指代与用户数据相关联的数据对象。用户数据可以被物理地存储到存储设备的一个或多个扇区。文件系统可以根据多个扇区定义一个簇(或分配单元),其中簇是存储器的可以分配到数据对象的最小逻辑单元。因此,一个或多个簇被分配到存储在存储设备上的每个数据对象。文件系统内的文件分配表、分配位映射和/或类似逻辑结构提供数据对象到一个或多个分配的簇的映射,并且这样可以被称为分配映射结构。如下文进一步详细描述的,文件系统驱动可以允许应用和/或与应用相关联的进程使得数据对象在存储设备上被修改。例如,修改数据对象可以包括创建文件、添加附加数据到文件、从文件移除数据或删除文件。修改数据对象可以包括将附加簇分配到数据对象或将簇从数据对象解除分配。此外,当簇到数据对象的分配改变时,文件系统内的文件分配表、分配位映射和类似的逻辑结构被更新。例如,当用户向文档添加内容时,使用文字处理应用生成的文档文件的大小可以增加(即,包括更多数据并且在存储设备上要求附加的空间)。文档文件的大小可以以这样的方式增加,即需要将附加簇分配到文档文件。在此情况下,文字处理应用可以向文件系统驱动发出一个或多个指令(例如,写文件命令),并且文件系统驱动本文档来自技高网
...

【技术保护点】
1.一种用于为数据对象的存储分配簇的方法,该方法包括:接收对应于将簇分配到该数据对象的指令;确定一个分配映射结构的一个窗口是否已经被指派到该数据对象;将指派到该数据对象的一个窗口锁定;将该窗口内的簇分配到该数据对象;以及将指派到该数据对象的该窗口解锁。

【技术特征摘要】
【国外来华专利技术】2016.04.01 US 62/317,375;2017.03.30 US 15/474,8261.一种用于为数据对象的存储分配簇的方法,该方法包括:接收对应于将簇分配到该数据对象的指令;确定一个分配映射结构的一个窗口是否已经被指派到该数据对象;将指派到该数据对象的一个窗口锁定;将该窗口内的簇分配到该数据对象;以及将指派到该数据对象的该窗口解锁。2.根据权利要求1所述的方法,其中一个数据对象包括一个文件,并且一个分配映射结构包括一个文件分配表或一个分配位映射。3.根据权利要求1所述的方法,其中一个窗口包括多个簇。4.根据权利要求3所述的方法,其中一个窗口中包括的簇的数目等于一个中央处理单元的一个页面大小中的位的数目。5.根据权利要求1所述的方法,还包括:当确定一个窗口未被指派到该数据对象时,将一个窗口元数据结构锁定,使用该窗口元数据评估一个或多个窗口,将一个窗口指派到该数据对象,以及将该窗口元数据结构解锁。6.根据权利要求5所述的方法,其中评估一个或多个窗口包括确定一个或多个窗口的用户数目和可用的簇的数目。7.根据权利要求5所述的方法,其中将一个窗口元数据结构锁定包括应用自旋锁或互斥对象中的一个。8.一种为数据对象的存储分配簇的设备,该设备包括:一个或多个处理器,所述一个或多个处理器被配置为:接收对应于将簇分配到该数据对象的指令;确定一个分配映射结构的一个窗口是否已经被指派到该数据对象;将指派到该数据对象的一个窗口锁定;将该窗口内的簇分配到该数据对象;以及将指派到该数据对象的该窗口解锁。9.根据权利要求8所述的设备,其中一个数据对象包括一个文件,并且一个分配映射结构包括一个文件分配表或一个分配位映射。10.根据权利要求8所述的设备,其中一个窗口包括多个簇。11....

【专利技术属性】
技术研发人员:A·奥塔帕玛科夫
申请(专利权)人:图科塞拉集团公司图科塞拉公司
类型:发明
国别省市:芬兰,FI

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1