书签 分享 收藏 举报 版权申诉 / 27

一种操作请求的处理方法和装置.pdf

  • 上传人:62****3
  • 文档编号:4256524
  • 上传时间:2018-09-12
  • 格式:PDF
  • 页数:27
  • 大小:1.96MB
  • 摘要
    申请专利号:

    CN201310422912.3

    申请日:

    2013.09.16

    公开号:

    CN103530319A

    公开日:

    2014.01.22

    当前法律状态:

    授权

    有效性:

    有权

    法律详情:

    授权|||实质审查的生效IPC(主分类):G06F 17/30申请日:20130916|||公开

    IPC分类号:

    G06F17/30

    主分类号:

    G06F17/30

    申请人:

    华为技术有限公司

    发明人:

    覃伟峰

    地址:

    518129 广东省深圳市龙岗区坂田华为总部办公楼

    优先权:

    专利代理机构:

    深圳市深佳知识产权代理事务所(普通合伙) 44285

    代理人:

    王仲凯

    PDF完整版下载: PDF下载
    内容摘要

    本发明实施例公开了一种操作请求的处理方法和装置,用于提高使用磁盘作为存储设备的文件系统的可靠性。本发明实施例方法包括:依据应用程序使用的文件分片在磁盘空间的存储位置顺序为所述应用程序建立操作处理顺序,所述文件分片在所述磁盘空间中顺序存储;根据所述操作处理顺序依次处理所述应用程序的操作请求。

    权利要求书

    权利要求书
    1.  一种操作请求的处理方法,其特征在于,包括:
    依据应用程序使用的文件分片在磁盘空间的存储位置顺序为所述应用程序建立操作处理顺序,所述文件分片在所述磁盘空间中顺序存储;
    根据所述操作处理顺序依次处理所述应用程序的操作请求。

    2.  根据权利要求1所述的方法,其特征在于,所述依据应用程序使用的文件分片在磁盘空间的存储位置顺序为所述应用程序建立操作处理顺序,包括:
    获取所述应用程序对应的文件分片在所述磁盘空间的逻辑区块地址LBA;
    按照所述应用程序对应的文件分片的LBA从小到大的顺序建立所述应用程序的操作处理顺序。

    3.  根据权利要求1或2所述的方法,其特征在于,若所述应用程序的操作请求是写数据请求,所述根据所述操作处理顺序依次处理所述应用程序的操作请求,包括:
    按照所述操作处理顺序轮询所述应用程序写入的数据缓冲区中的数据是否超过预置的缓冲门限;
    将所述应用程序写入的数据缓冲区中超过所述预置的缓冲门限的数据写入对应的文件分片。

    4.  根据权利要求1至3中任一项所述的方法,其特征在于,所述应用程序对应的文件分片是根据所述应用程序的文件分片分配请求,按照资源池中的文件分片的顺序,依据预置的分配顺序规则为所述应用程序分配的。

    5.  根据权利要求4所述的方法,其特征在于,所述文件分片分配请求携带所述应用程序设定的文件分片存储路径和文件名;
    所述按照资源池中的文件分片的顺序,依据预置的分配顺序规则为所述应用程序分配包括:
    将分配给所述应用程序的文件分片移动到所述设定的文件分片存储路径指定的存放位置,并将分配给所述应用程序的文件分片重命名为设定的文件名。

    6.  根据权利要求5所述的方法,其特征在于,所述依据应用程序使用的 文件分片在磁盘空间的存储位置顺序为所述应用程序建立操作处理顺序之前还包括:
    在资源池中创建文件分片,其中,若所述磁盘空间中没有创建分配组,则所述资源池内创建的文件分片数量大于或等于所有应用程序并发操作所需要的文件分片数量,若所述磁盘空间中创建有分配组,则所述资源池内创建的文件分片数量大于或等于所有应用程序并发操作所需要的文件分片数量乘以所述磁盘空间包括的分配组的个数;
    将所述资源池中的所有文件分片分别与所述磁盘空间内地址连续的LBA建立映射关系。

    7.  根据权利要求1或2所述的方法,其特征在于,若根据所述操作处理顺序轮到操作请求是由发起文件分片释放请求的应用程序执行的,所述根据所述操作处理顺序依次处理所述应用程序的操作请求具体为:
    删除所述操作请求为文件分片释放请求的应用程序和所述操作请求为文件分片释放请求的应用程序对应的文件分片之间的映射关系;
    所述方法还包括:
    将所述操作请求为文件分片释放请求的应用程序对应的文件分片移动到资源池内。

    8.  一种操作请求的处理装置,其特征在于,包括:
    处理顺序建立模块,用于依据应用程序使用的文件分片在磁盘空间的存储位置顺序为所述应用程序建立操作处理顺序,所述文件分片在所述磁盘空间中顺序存储;
    操作请求处理模块,用于根据所述操作处理顺序依次处理所述应用程序的操作请求。

    9.  根据权利要求8所述的装置,其特征在于,所述处理顺序建立模块,包括:
    逻辑区块地址LBA获取子模块,用于获取所述应用程序对应的文件分片在所述磁盘空间的LBA;
    处理顺序建立子模块,用于按照所述应用程序对应的文件分片的LBA从小到大的顺序建立所述应用程序的操作处理顺序。

    10.  根据权利要求8或9所述的装置,其特征在于,若所述应用程序的操作请求是写数据请求,所述操作请求处理模块,包括:
    数据缓冲判断子模块,用于按照所述操作处理顺序轮询所述应用程序写入的数据缓冲区中的数据是否超过预置的缓冲门限;
    存储子模块,用于将所述应用程序写入的数据缓冲区中超过所述预置的缓冲门限的数据写入对应的文件分片中。

    11.  根据权利要求8至10所述的装置,其特征在于,所述应用程序对应的文件分片是根据所述应用程序的文件分片分配请求,按照资源池中的文件分片的顺序,依据预置的分配顺序规则为所述应用程序分配的。

    12.  根据权利要求11项所述的装置,其特征在于,所述文件分片分配请求携带所述应用程序设定的文件分片存储路径和文件名,所述操作请求的处理装置,还包括:重配置模块,其中,
    所述重配置模块,用于将分配给所述应用程序的文件分片移动到所述设定的文件分片存储路径指定的存放位置,并将分配给所述应用程序的文件分片重命名为设定的文件名。

    13.  根据权利要求12所述的装置,其特征在于,所述操作请求的处理装置,还包括:
    文件分片创建模块,用于所述处理顺序建立模块依据应用程序使用的文件分片在磁盘空间的存储位置顺序为所述应用程序建立操作处理顺序之前,在资源池中创建文件分片,其中,若所述磁盘空间中没有创建分配组,则所述资源池内创建的文件分片数量大于或等于所有应用程序并发操作所需要的文件分片数量,若所述磁盘空间中创建有分配组,则所述资源池内创建的文件分片数量大于或等于所有应用程序并发操作所需要的文件分片数量乘以所述磁盘空间包括的分配组的个数;
    映射模块,用于将所述资源池中的所有文件分片分别与所述磁盘空间内地址连续的LBA建立映射关系。

    14.  根据权利要求8或9所述的装置,其特征在于,若根据所述操作处理顺序轮到发起操作请求是由发起文件分片释放请求的应用程序执行的,所述操作请求处理模块,具体用于删除所述操作请求为文件分片释放请求的应 用程序和所述操作请求为文件分片释放请求的应用程序对应的文件分片之间的映射关系;
    所述操作请求的处理装置,还包括:
    文件分片回收模块,用于将所述操作请求为文件分片释放请求的应用程序对应的文件分片移动到资源池内。

    说明书

    说明书一种操作请求的处理方法和装置
    技术领域
    本发明涉及计算机技术领域,尤其涉及一种操作请求的处理方法和装置。
    背景技术
    现在的存储设备一般以机械磁盘为主,受机械磁盘的磁盘寻道机制决定其随机读写能力比较差,现有技术中存在一种支持预分配机制的文件系统,具有更高的读写性能。例如,带预分配机制的文件系统在创建时,文件系统的磁盘空间被分成多个相同大小的线性区域,这些线性区域被称为分配组(AG,Allocation Groups)。每个分配组管理自己的索引节点(inode,index node)和空闲的存储空间。因为分配组相互独立,所以处理器的多个内核可同时对多个分配组进行寻址。在将数据写入文件系统前,会预先分配文件所需的可用空间,这样文件的内容就不会分散的存储在文件系统中,故可以大大减少文件系统碎片的数目。
    但是为了保证分配组机制的长期有效性,在分配组之间会存在均衡的机制,多个应用程序使用的文件会被均衡的分布到各个分配组之中。例如,文件系统被分为3个分配组,共有6个文件(分别为文件0、文件1、...、文件5),每个分配组中会被分配两个文件,即文件0和文件3属于分配组1,文件1和文件4属于分配组2,文件2和文件5属于分配组3,那么在对文件操作的时候,就可能存在非常大的磁盘空间跳跃。例如文件0和文件1分别在两个不同的分配组,当需要写文件0和文件1时,需要跳跃的地址是接近一个分配组的大小,又如对文件的写操作是一种无序的行为,操作了文件0之后,可能接着就要操作文件5,然后再操作文件1,文件0﹑文件5﹑文件1分别属于不同的分配组,则同样会导致需要跳跃的地址非常大。可见在对多个文件操作的时候,可能需要非常大的地址跳跃,这样会增加磁盘寻道的时间和难度,随着磁盘容量的增大,磁盘寻道的时间和难度会更大,而磁盘的长时间寻道和长距离移动 会加剧机械磁盘的磨损,同时也会产生比较大的震动,降低了使用磁盘作为存储设备的文件系统的可靠性。
    发明内容
    本发明实施例提供了一种操作请求的处理方法和装置,用于提高使用磁盘作为存储设备的文件系统的可靠性。
    为解决上述技术问题,本发明实施例提供以下技术方案:
    第一方面,本发明实施例提供一种操作请求的处理方法,包括:
    依据应用程序使用的文件分片在磁盘空间的存储位置顺序为所述应用程序建立操作处理顺序,所述文件分片在所述磁盘空间中顺序存储;
    根据所述操作处理顺序依次处理所述应用程序的操作请求。
    结合第一方面,在第一方面的第一种可能的实现方式中,所述依据应用程序使用的文件分片在磁盘空间的存储位置顺序为所述应用程序建立操作处理顺序,包括:
    获取所述应用程序对应的文件分片在所述磁盘空间的逻辑区块地址LBA;
    按照所述应用程序对应的文件分片的LBA从小到大的顺序建立所述应用程序的操作处理顺序。
    结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,若所述应用程序的操作请求是写数据请求,所述根据所述操作处理顺序依次处理所述应用程序的操作请求,包括:
    按照所述操作处理顺序轮询所述应用程序写入的数据缓冲区中的数据是否超过预置的缓冲门限;
    将所述应用程序写入的数据缓冲区中超过所述预置的缓冲门限的数据写入对应的文件分片。
    结合第一方面或第一方面的第一种或第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述应用程序对应的文件分片是根据所述应用程序的文件分片分配请求,按照资源池中的文件分片的顺序,依据预置的分配顺序规则为所述应用程序分配的。
    结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述文件分片分配请求携带所述应用程序设定的文件分片存储路径和文件名;
    所述按照资源池中的文件分片的顺序,依据预置的分配顺序规则为所述应用程序分配包括:
    将分配给所述应用程序的文件分片移动到所述设定的文件分片存储路径指定的存放位置,并将分配给所述应用程序的文件分片重命名为设定的文件名。
    结合第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述依据应用程序使用的文件分片在磁盘空间的存储位置顺序为所述应用程序建立操作处理顺序之前还包括:
    在资源池中创建文件分片,其中,若所述磁盘空间中没有创建分配组,则所述资源池内创建的文件分片数量大于或等于所有应用程序并发操作所需要的文件分片数量,若所述磁盘空间中创建有分配组,则所述资源池内创建的文件分片数量大于或等于所有应用程序并发操作所需要的文件分片数量乘以所述磁盘空间包括的分配组的个数;
    将所述资源池中的所有文件分片分别与所述磁盘空间内地址连续的LBA建立映射关系。
    结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第六种可能的实现方式中,若根据所述操作处理顺序轮到操作请求是由发起文件分片释放请求的应用程序执行的,所述根据所述操作处理顺序依次处理所述应用程序的操作请求具体为:
    删除所述操作请求为文件分片释放请求的应用程序和所述操作请求为文件分片释放请求的应用程序对应的文件分片之间的映射关系;
    所述方法还包括:
    将所述操作请求为文件分片释放请求的应用程序对应的文件分片移动到资源池内。
    第二方面,本发明实施例还提供一种操作请求的处理装置,包括:
    处理顺序建立模块,用于依据应用程序使用的文件分片在磁盘空间的存 储位置顺序为所述应用程序建立操作处理顺序,所述文件分片在所述磁盘空间中顺序存储;
    操作请求处理模块,用于根据所述操作处理顺序依次处理所述应用程序的操作请求。
    结合第二方面,在第二方面的第一种可能的实现方式中,所述处理顺序建立模块,包括:
    逻辑区块地址LBA获取子模块,用于获取所述应用程序对应的文件分片在所述磁盘空间的LBA;
    处理顺序建立子模块,用于按照所述应用程序对应的文件分片的LBA从小到大的顺序建立所述应用程序的操作处理顺序。
    结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,若所述应用程序的操作请求是写数据请求,所述操作请求处理模块,包括:
    数据缓冲判断子模块,用于按照所述操作处理顺序轮询所述应用程序写入的数据缓冲区中的数据是否超过预置的缓冲门限;
    存储子模块,用于将所述应用程序写入的数据缓冲区中超过所述预置的缓冲门限的数据写入对应的文件分片中。
    结合第二方面或第二方面的第一种或第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述应用程序对应的文件分片是根据所述应用程序的文件分片分配请求,按照资源池中的文件分片的顺序,依据预置的分配顺序规则为所述应用程序分配的。
    结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述文件分片分配请求携带所述应用程序设定的文件分片存储路径和文件名,所述操作请求的处理装置,还包括:重配置模块,其中,
    所述重配置模块,用于将分配给所述应用程序的文件分片移动到所述设定的文件分片存储路径指定的存放位置,并将分配给所述应用程序的文件分片重命名为设定的文件名。
    结合第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述操作请求的处理装置,还包括:
    文件分片创建模块,用于所述处理顺序建立模块依据应用程序使用的文件分片在磁盘空间的存储位置顺序为所述应用程序建立操作处理顺序之前,在资源池中创建文件分片,其中,若所述磁盘空间中没有创建分配组,则所述资源池内创建的文件分片数量大于或等于所有应用程序并发操作所需要的文件分片数量,若所述磁盘空间中创建有分配组,则所述资源池内创建的文件分片数量大于或等于所有应用程序并发操作所需要的文件分片数量乘以所述磁盘空间包括的分配组的个数;
    映射模块,用于将所述资源池中的所有文件分片分别与所述磁盘空间内地址连续的LBA建立映射关系。
    结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第六种可能的实现方式中,若根据所述操作处理顺序轮到发起操作请求是由发起文件分片释放请求的应用程序执行的,所述操作请求处理模块,具体用于删除所述操作请求为文件分片释放请求的应用程序和所述操作请求为文件分片释放请求的应用程序对应的文件分片之间的映射关系;
    所述操作请求的处理装置,还包括:
    文件分片回收模块,用于将所述操作请求为文件分片释放请求的应用程序对应的文件分片移动到资源池内。
    从以上技术方案可以看出,本发明实施例具有以下优点:
    在本发明实施例中,依据应用程序使用的文件分片在磁盘空间的存储位置顺序为应用程序建立操作处理顺序,建立完操作处理顺序之后根据操作处理顺序依次处理应用程序的操作请求。由于文件分片在磁盘空间是顺序存储的,故依据存储顺序先后的多个文件分片在磁盘空间的存储位置顺序为多个应用程序建立的操作处理顺序能够保证在各个应用程序在对文件分片进行操作时对磁盘空间的寻道和移动也是顺序进行的。也就是说,操作处理顺序前后相邻的应用程序使用的文件分片在磁盘空间的存储位置顺序也是顺序存储的,故对操作处理顺序前后相邻的多个应用程序在进行依次处理其操作请求时在磁盘空间的跳跃较小,若磁盘空间的容量很大时,可以极大的缩短磁盘的寻道时间和避免在磁盘中的较长距离移动,故可以很大程度上减少机械磁盘的磨损,同时也避免产生比较大的震动,提高了使用磁盘作为存储设备的 文件系统的可靠性。
    附图说明
    为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的技术人员来讲,还可以根据这些附图获得其他的附图。
    图1为本发明实施例提供的一种操作请求的处理方法的流程方框示意图;
    图2-a为本发明实施例中多个文件分片在磁盘空间中顺序存储的一种实现方式示意图;
    图2-b为本发明实施例中多个文件分片在磁盘空间中顺序存储的另一种实现方式示意图;
    图3为本发明实施例提供的另一种操作请求的处理方法的流程方框示意图;
    图4为本发明实施例中操作请求的处理方法的实现框架示意图;
    图5为本发明实施例提供的并发操作的多个应用程序对各自文件分片的操作处理示意图;
    图6-a为本发明实施例提供的一种操作请求的处理装置的组成结构示意图;
    图6-b为本发明实施例提供的一种处理顺序建立模块的组成结构示意图;
    图6-c为本发明实施例提供的一种操作请求处理模块的组成结构示意图;
    图6-d为本发明实施例提供的另一种操作请求的处理装置的组成结构示意图;
    图6-e为本发明实施例提供的另一种操作请求的处理装置的组成结构示意图;
    图6-f为本发明实施例提供的另一种操作请求的处理装置的组成结构示意图;
    图7为本发明实施例提供的另一种操作请求的处理装置的组成结构示意图。
    具体实施方式
    本发明实施例提供了一种操作请求的处理方法和装置,用于提高使用磁盘作为存储设备的文件系统的可靠性。
    为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域的技术人员所获得的所有其他实施例,都属于本发明保护的范围。
    本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本发明的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
    以下分别进行详细说明。
    本发明操作请求的处理方法的一个实施例,可应用于对文件系统的管理中,该方法可包括:依据应用程序使用的文件分片在磁盘空间的存储位置顺序为所述应用程序建立操作处理顺序,所述文件分片在所述磁盘空间中顺序存储;根据所述操作处理顺序依次处理所述应用程序的操作请求。
    请参阅图1所示,本发明一个实施例提供的操作请求的处理方法,可以包括如下步骤:
    101、依据应用程序使用的文件分片在磁盘空间的存储位置顺序为上述应用程序建立操作处理顺序。
    其中,上述文件分片在上述磁盘空间中顺序存储。
    在本发明实施例中,文件系统中并发的有多个应用程序分别使用一个文件分片,其中,多个应用程序各自使用的文件分片在磁盘空间中顺序存储,即在磁盘空间内按照存储位置的前后顺序,每个文件分片分别被一个应用程 序所使用,每个文件分片用于存储使用该文件分片的应用程序产生的数据,例如,应用程序1使用的是文件分片1,其表示的意思是文件分片1是用来存储应用程序1产生的数据。另外,多个文件分片是根据各个文件分片在磁盘空间中的存储位置顺序依次存储在磁盘空间的,通常每个文件分片都会占用一定的存储空间,例如每个文件分片的大小为1GB(Gigabyte,吉字节),共有10个并发操作的应用程序,每个应用程序使用一个文件分片,则共有10个文件分片,这10个文件分片在磁盘空间的存储位置顺序是连续的,即每个大小为1GB的文件分片在磁盘空间中是依次存储的,共会占用磁盘空间的10GB存储空间,若磁盘空间还被划分为分配组,则在磁盘空间中占用的10GB存储空间可以指的是同一个分配组内的存储位置,也可以同时占用跨两个分配组内的存储位置,但是这个10GB存储空间中10个文件分片的存储位置在磁盘空间内是按照存储位置的前后顺序进行存储的。
    需要说明的是,在本发明实施例中,多个应用程序各自使用的文件分片在磁盘空间中顺序存储,指的是,多个文件分片在磁盘空间中的存储位置是按照在磁盘空间中存储位置的先后顺序来存储的,具体的,可以包括两种含义,第一种是多个文件分片在磁盘空间中的存储位置是连续的,例如,如图2-a所示,为本发明实施例中多个文件分片在磁盘空间中顺序存储的一种实现方式示意图,以3个文件分片为例,分别为文件分片1、文件分片2、文件分片3,经过文件映射管理,这3个文件分片映射到磁盘空间中的存储位置是相邻的,如图2-a所示,文件分片1、文件分片2、文件分片3在磁盘空间中的存储位置是连续的。第二种是多个文件分片在磁盘空间中的存储位置是按照前后顺序分布的,即可以表示经过文件映射管理,多个文件分片在磁盘空间中的存储位置不是连续的,但是仍然满足前后顺序的关系。如图2-b所示,为本发明实施例中多个文件分片在磁盘空间中顺序存储的另一种实现方式示意图。仍以3个文件分片为例,分别为文件分片4、文件分片5、文件分片6,经过文件映射管理,这3个文件分片映射到磁盘空间中的存储位置并不是相邻的,但文件分片4、文件分片6、文件分片5在磁盘空间中仍然是顺序存储的,如图2-b所示,在磁盘空间中按照存储位置的前后顺序分别顺序的存储有文件分片4、文件分片6、文件分片5。
    在获取到并发的多个应用程序各自使用的文件分片在磁盘空间的存储位置顺序之后,依据应用程序使用的文件分片在磁盘空间的存储位置顺序为多个应用程序建立操作处理顺序,其中,操作处理顺序指的是文件系统处理多个应用程序操作各自的文件分片的先后顺序。若某一个应用程序使用的文件分片在磁盘空间的存储位置顺序最靠前的,则为该应用程序建立的操作处理顺序是最优先的,同样的,若某一个应用程序使用的文件分片在磁盘空间的存储位置顺序是最靠后的,则为该应用程序建立的操作处理顺序也是最后的。例如:并发操作的应用程序共有5个,分别为应用程序1﹑应用程序2﹑应用程序3﹑应用程序4﹑应用程序5,应用程序1使用的文件分片为文件分片1,应用程序2使用的文件分片为文件分片2,应用程序3使用的文件分片为文件分片3,应用程序4使用的文件分片为文件分片4,应用程序5使用的文件分片为文件分片5,5个文件分片在磁盘空间的存储位置顺序依次是文件分片3﹑文件分片2﹑文件分片4﹑文件分片1﹑文件分片5,如果用大小顺序表示5个文件分片在磁盘空间的存储位置顺序,则5个文件分片从小到大依次为:文件分片3<文件分片2<文件分片4<文件分片1<文件分片5,则依据这5个文件分片在磁盘空间的存储顺序为5个应用程序建立的操作处理顺序用大小顺序就可以表示为:应用程序3>应用程序2>应用程序4>应用程序1>应用程序5,故这个5个应用程序建立的操作处理顺序中最优先处理的应用程序3,其次是应用程序2,然后是应用程序4,接下来是应用程序1,最后处理的是应用程序5。
    在本发明的一些实施例中,步骤101依据应用程序使用的文件分片在磁盘空间的存储位置顺序为上述应用程序建立操作处理顺序,具体可以包括如下步骤:
    A1﹑获取应用程序对应的文件分片的逻辑区块地址(LBA,Logic Block Address);
    A2﹑按照上述应用程序对应的文件分片的LBA从小到大的顺序建立上述应用程序的操作处理顺序。
    其中,步骤A1中首先获取到每个文件分片被映射到磁盘空间中的LBA,也就是说,文件分片在磁盘空间的存储位置顺序可以用LBA来表示,由于多 个文件分片在磁盘空间中顺序存储,故这些多个文件分片映射到磁盘空间的LBA的地址也是按照顺序先后分布的,其中,LBA用于表示某个文件分片的地址或是某个地址所指向的文件分片。
    步骤A2按照上述应用程序对应的文件分片的LBA从小到大的顺序建立上述应用程序的操作处理顺序。可选的,在获取到各个文件分片的LBA后,按照各个文件分片的LBA从小到大的顺序对各个文件分片进行排序,也就是说,LBA越小的文件分片其排序就越靠前,而LBA越大的文件分片其排序就越靠后。其中按照各个文件分片的LBA从小到大的顺序对各个文件分片进行排序的方式有多种,例如,可以用各个文件分片的LBA作为各个文件分片的标记位,根据各个文件分片的标记位表示的数值从小到大对各个文件分片进行排序,也可以以各个文件分片的LBA对各个文件分片进行重命名,对重命名后的多个文件分片对文件名按照B-tree(多路搜索树)进行排序,当然也可以使用其它的排序算法对多个文件分片进行排序。例如,并发操作的应用程序共有5个,5个应用程序分别使用一个文件分片,5个文件分片排序先后依次为:文件分片3<文件分片2<文件分片4<文件分片1<文件分片5,则为应用程序1建立与应用程序1正在使用的文件分片1的排序顺序(文件分片1的排序顺序是第4位)相同的操作处理顺序就是第4顺序位,建立的5个应用程序的操作处理顺序就可以表示为:应用程序3>应用程序2>应用程序4>应用程序1>应用程序5。
    需要说明的是,应用程序对应的文件分片是根据上述应用程序的文件分片分配请求,按照资源池中的文件分片的顺序,依据预置的分配顺序规则为所述应用程序分配的。在本发明实施例中,可以设定唯一的资源池,文件系统用于管理资源池。应用程序使用的文件分片可以是文件系统在资源池中创建的多个文件分片,每个文件分片在磁盘空间中对应有存储位置,且并发操作的多个应用程序各自使用的文件分片在磁盘空间中是顺序存储。也就是说,文件分片与磁盘空间建立有映射关系,文件分片作为一种资源,可以用来存储数据,当应用程序需要使用文件分片来存储数据时应用程序可以向资源池来申请文件分片,则文件系统就可以将资源池中的文件分片分配给应用程序来使用,并且文件系统在为应用程序分配文件分片时依据预置的分配顺序规 则为应用程序分配资源池中的文件分片,其中,文件系统预先设置向应用程序分配资源池中的文件分片的分配顺序规则,文件系统根据该分配顺序规则向多个应用程序来分配文件分片,例如,按照资源池中文件分片的排列顺序从小到大的顺序依次从资源池中取出文件分片分配给应用程序,也可以按照资源池中文件分片的排列顺序从大到小的顺序依次从资源池中取出文件分片分配给应用程序。例如,当资源池有3个待分配的文件分片时,3个待分配的文件分片分别为文件分片1、文件分片2、文件分片3,这3个文件分片在磁盘空间中的存储位置顺序是文件分片2、文件分片1、文件分片3,则当应用程序1向资源池来申请文件分片时,文件系统优先选择在磁盘空间中存储位置顺序最靠前的文件分片(即文件分片2)分配给应用程序1。
    为了保证资源池中能够有足够的文件分片可以用于分配给并发操作的所有应用程序,可以在资源池内创建的文件分片数量大于所有应用程序并发操作所需要的文件分片数量乘以磁盘空间包括的分配组的个数,这样就可以满足在磁盘空间的一个分配组内的存储位置对应的资源池中的文件分片数量就能够保证所有应用程序并发操作所需要的文件分片数量,也就是说,在资源池中创建的文件分片要能够保证所有并发操作的应用程序请求分配文件分片的需要。
    需要说明的是,在本发明的一些实施例中,文件分片分配请求携带上述应用程序设定的文件分片存储路径和文件名。则按照资源池中的文件分片的顺序,依据预置的分配顺序规则为上述应用程序分配,包括:
    将分配给上述应用程序的文件分片移动到设定的文件分片存储路径指定的存放位置,并将分配给上述应用程序的文件分片重命名为设定的文件名。
    需要说明的是,在本发明的一些实施例中,步骤101依据应用程序使用的文件分片在磁盘空间的存储位置顺序为上述应用程序建立操作处理顺序,之前还可以包括如下步骤:
    B1、在资源池中创建文件分片,其中,若磁盘空间中没有创建分配组,则资源池内创建的文件分片数量大于或等于所有应用程序并发操作所需要的文件分片数量,若磁盘空间中创建有分配组,则资源池内创建的文件分片数量大于或等于所有应用程序并发操作所需要的文件分片数量乘以磁盘空间包 括的分配组的个数;
    B2、将资源池中的所有文件分片分别与磁盘空间内地址连续的LBA建立映射关系。
    其中,步骤101之前,本发明实施例中还可以包括在资源池中创建文件分片的实现方式,步骤B1中在资源池中创建的文件分片数量要能够保证并发操作的所有应用程序对文件分片数量的需要。对于普通的磁盘空间,即磁盘空间中没有创建分配组的情况下,资源池内创建的文件分片数量大于或等于所有应用程序并发操作所需要的文件分片数量;对于在磁盘空间中创建有分配组的情况下,因为各个分配组都是相互独立的,故为了满足并发操作的应用程序对文件分片的操作需要,资源池内创建的文件分片数量大于或等于所有应用程序并发操作所需要的文件分片数量乘以磁盘空间包括的分配组的个数。
    在资源池中创建完文件分片之后,步骤B2中将资源池中的所有文件分片分别与磁盘空间内地址连续的LBA建立映射关系,即需要将资源池中的所有文件分片与磁盘空间内的LBA地址进行对应。
    在建立完成文件分片和LBA地址的映射关系后,还可以按照资源池中的每个文件分片对应的LBA的取值大小对资源池中的所有文件分片进行排序,按照LBA地址的取值大小对资源池中的所有文件分片进行排序可以方便于后续过程中当有应用程序请求文件分片时,文件系统可以按照文件分片在资源池中的排序先后将文件分片分配给应用程序。
    102、根据上述操作处理顺序依次处理应用程序的操作请求。
    在本发明实施例中,为并发操作的多个应用程序建立完操作处理顺序之后,就根据建立的操作处理顺序依次处理应用程序的操作请求。例如,若5个文件分片在磁盘空间的存储位置顺序从小到大依次为:文件分片3<文件分片2<文件分片4<文件分片1<文件分片5,通过步骤101的描述可知,可以为5个应用程序建立的操作处理顺序为:应用程序3>应用程序2>应用程序4>应用程序1>应用程序5,那么依据这5个应用程序的操作处理顺序,就应该优先处理应用程序3对文件分片3的操作请求,其次是处理应用程序2对文件分片2的操作请求,然后是处理应用程序4对文件分片4的操作请求, 接下来是处理应用程序1对文件分片1的操作请求,最后处理的是应用程序5对文件分片5的操作请求。
    需要说明的是,在本发明实施例中,应用程序的操作请求具体可以指的是应用程序读取文件分片中存储的数据的请求,也可以指的是应用程序将数据写入文件分片中的请求,还可以指的是应用程序对文件分片中存储的数据进行修改的请求,还可以指的是应用程序对文件分片的删除的请求。并且并发操作的多个应用程序对各自文件分片的操作请求可以是完全一样的请求,仍以前述的5个应用程序为例说明,5个应用程序对各自文件分片的操作请求都可以是写数据请求,当然并发操作的多个应用程序对各自文件分片的操作请求也可以是都不相同的,这需要根据应用程序自身对文件分片的操作要求来决定。例如5个应用程序是视频监控系统中分别控制5个不同摄像头进行视频监控的应用程序,则这5个应用程序对各自的文件分片的操作请求通常都是写数据请求。又如5个应用程序中有2个应用程序是控制视频监控摄像头进行视频监控的,有1个应用程序是聊天工具,有1个应用程序是文件内容清理工具,还有1个应用程序是照片处理工具,则控制摄像头进行视频监控的2个应用程序对文件分片的操作请求可以是写监控画面数据,聊天工具的应用程序对文件分片的操作请求可以是修改用户的属性数据,文件内容清理工具的应用程序对文件分片的操作请求可以是删除某个文件分片,照片处理工具的应用程序对文件分片的操作请求可以是对照片图片数据进行修改。
    需要说明的是,在本发明的一些实施例中,若根据操作处理顺序轮到操作请求是由发起文件分片释放请求的应用程序执行的,步骤102根据操作处理顺序依次处理应用程序的操作请求具体为:
    删除操作请求为文件分片释放请求的应用程序和操作请求为文件分片释放请求的应用程序对应的文件分片之间的映射关系。
    本发明实施例提供的操作请求的处理方法,在删除了操作请求为文件分片释放请求的应用程序和操作请求为文件分片释放请求的应用程序对应的文件分片之间的映射关系之后,还可以包括如下步骤:
    将操作请求为文件分片释放请求的应用程序对应的文件分片移动到资源池内。
    其中,步骤102中是对并发操作的多个应用程序按照操作处理顺序依次进行处理的描述,那么对于具体到发起操作请求为文件分片释放请求的应用程序,此处实施例中是以操作请求是文件分片释放请求为例进行说明的,对于操作请求是文件分片释放请求的应用程序,删除操作请求为文件分片释放请求的应用程序和操作请求为文件分片释放请求的应用程序对应的文件分片之间的映射关系,则删除掉映射关系后,应用程序就释放掉了正在使用的文件分片,将被释放掉的文件分片移动到资源池中,可以实现对文件分片的回收再利用。
    需要说明的是,在本发明的实施例中是为正在使用各自文件分片的多个应用程序建立的操作处理顺序,也就是说,本发明实施例中操作处理顺的建立是针对并发操作的多个应用程序来建立的,故本发明实施例中还可以包括如下方法:实时监测正在使用文件分片的应用程序的数量是否变化,若是,重新执行步骤101依据应用程序使用的文件分片在磁盘空间的存储位置顺序为应用程序建立操作处理顺序。可以理解的是,当并发操作的应用程序的数量发生变化时,表示有新的应用程序加入并发操作,或者有应用程序退出了并发操作。
    由前述的本发明实施例可知,依据应用程序使用的文件分片在磁盘空间的存储位置顺序为应用程序建立操作处理顺序,建立完操作处理顺序之后根据操作处理顺序依次处理应用程序的操作请求。由于多个应用程序各自使用的文件分片在磁盘空间是顺序存储的,故依据存储顺序先后的多个文件分片在磁盘空间的存储位置顺序为多个应用程序建立的操作处理顺序能够保证各个应用程序在对文件分片进行操作时对磁盘空间的寻道和移动也是顺序进行的。也就是说,操作处理顺序前后相邻的应用程序使用的文件分片在磁盘空间的存储位置顺序也是顺序存储的,故对操作处理顺序前后相邻的多个应用程序在进行依次处理其操作请求时在磁盘空间的跳跃较小,若磁盘空间的容量很大时,可以极大的缩短磁盘的寻道时间和避免在磁盘中的较长距离移动,故可以很大程度上减少机械磁盘的磨损,同时也避免产生比较大的震动,提高了使用磁盘作为存储设备的文件系统的可靠性。
    请参阅图3所示,本发明另一个实施例提供的操作请求的处理方法,可 以包括如下步骤:
    301、在资源池中创建文件分片。
    其中,若磁盘空间中没有创建分配组,则资源池内创建的文件分片数量大于或等于所有应用程序并发操作所需要的文件分片数量,若磁盘空间中创建有分配组,则资源池内创建的文件分片数量大于或等于所有应用程序并发操作所需要的文件分片数量乘以磁盘空间包括的分配组的个数。
    在本发明实施例中,步骤301描述的是如何创建文件分片的过程,文件分片在资源池被创建完成后,文件分片就可以被分配给应用程序用来存储数据。为了保证本发明实施例中创建的文件分片足够保证并发操作的所有应用程序对文件分片数量的需要。首先要区分磁盘空间中是否划分有分配组,对于普通的磁盘空间,即磁盘空间中没有创建分配组的情况下,资源池内创建的文件分片数量大于或等于所有应用程序并发操作所需要的文件分片数量。对于在磁盘空间中创建有分配组的情况下,因为各个分配组都是相互独立的,故为了满足并发操作的应用程序对文件分片的操作需要,资源池内创建的文件分片数量大于或等于所有应用程序并发操作所需要的文件分片数量乘以磁盘空间包括的分配组的个数。
    302、将资源池中的所有文件分片分别与磁盘空间内地址连续的LBA建立映射关系。
    在资源池中创建完文件分片之后,可以将资源池中的所有文件分片分别与磁盘空间内地址连续的LBA建立映射关系,即需要将资源池中的所有文件分片与磁盘空间内的LBA地址进行对应。也就是说,可以用文件分片对应的磁盘空间内的LBA地址来表示文件分片在磁盘空间的存储位置顺序,可以理解的是,对文件分片在磁盘空间的存储位置顺序也可以用其它方式来表示,只要能够保证文件分片与存储位置顺序的对应即可。
    303、接收应用程序发送的文件分片分配请求。
    在本发明实施例中,步骤301和步骤302描述的是在资源池中创建文件分片的过程,在创建完文件分片之后,接下来描述如何为应用程序分配文件分片,以对某一个应用程序为例来进行说明,详见步骤303至步骤305的说明,其它应用程序申请分配文件分片的方式与此类似。
    当应用程序需要使用文件分片来存储数据时,应用程序可以向文件系统发送文件分片分配请求,以使文件系统为其分配文件分片。需要说明的是,应用程序发送的文件分片分配请求除了向文件系统申请文件分片外,还可以在文件分片分配请求中携带应用程序设定的文件分片存储路径和文件名,也就是说,应用程序还可以向文件系统指定文件系统为应用程序分配的文件分片应该存储在哪里以及采用什么样的名称,当然应用程序也可以不需要向文件系统指明这些,而是按照文件系统默认的文件分片存储路径和文件名来存储文件分片。
    304、按照文件分片在资源池中的排列顺序,依据预置的分配顺序规则为上述应用程序分配文件分片。
    在接收到应用程序发送的文件分配请求之后,按照文件分片在资源池中的排列顺序,按照资源池中文件分片的排列顺序从小到大的顺序从资源池中取出LBA地址最小的文件分片分配给应用程序,也可以按照资源池中文件分片的排列顺序从大到小的顺序从资源池中取出LBA地址最大的文件分片分配给应用程序。其中,文件系统为应用程序分配文件分片遵循预置的分配顺序规则,当然文件系统为并发操作的其它应用程序分配文件分片也应该遵循相同的分配顺序规则,至于分配顺序规则的设定可以结合具体的应用场景来决定应该如何设置。
    具体的,若文件分片分配请求携带应用程序设定的文件分片存储路径和文件名,将分配给上述应用程序的文件分片移动到设定的文件分片存储路径指定的存放位置,并将分配给上述应用程序的文件分片重命名为设定的文件名。
    在本发明实施例中,应用程序发送的文件分片分配请求中携带有应用程序设定的文件分片存储路径和文件名时,按照应用程序的要求将分配给应用程序的文件分片移动到应用程序指定的存储路径,并将分配给应用程序的文件分片进行重命名。按照应用程序的要求移动文件分片的存储路径和对文件分片进行重命名,可以便于应用程序对文件分片的操作。
    305、获取资源池中的当前文件分片数量。
    在本发明实施例中,步骤303至步骤304描述的是如何为应用程序分配 文件分片的过程,当文件系统为应用程序分配了文件分片之后,还可以对资源池中的文件分片资源进行监控,具体的,可以执行步骤305至307。
    文件系统在为应用程序分配了文件分片之后,获取资源池中的当前文件分片数量,也就是说,从资源池中取出文件分片分配给应用程序之后,检测资源池中还剩余下多少文件分片没有分配出去,然后触发执行步骤306。
    306、判断资源池中的当前文件分片数量是否小于预设的资源阈值。
    在本发明实施例中,可以预先设置一个资源阈值,该资源阈值用于表示资源池中必须留存的文件分片的数量门限,在获取到资源池中当前文件分片数量之后,将当前文件分片数量与预设的资源阈值进行比较,若资源池中的当前文件分片数量大于或等于资源阈值,则说明资源池中留存的文件分片数量能够满足并发操作的所有应用程序对文件分片的需要,若资源池中的当前文件分片数量小于资源阈值,则触发执行步骤307。
    307、若资源池中的当前文件分片数量小于资源阈值,在资源池中创建新的文件分片。
    在本发明实施例中,当资源池中的当前文件分片数量小于资源阈值时,说明资源池中留存的文件分片数量可能不能满足并发操作的所有应用程序对文件分片的需要,故可以在资源池中的当前文件分片数量小于资源阈值时在资源池中创建新的文件分片,其中在资源池中创建新的文件分片的方式与前述步骤301中在资源池中创建文件分片是相类似,可参阅前述步骤的描述,此处不再赘述。
    308、获取各个应用程序对应的各个文件分片的LBA地址。
    在本发明实施例中,前述步骤305至步骤307描述的是对资源池中的文件分片数量的监控过程,接下来对正在使用各自的文件分片的多个应用程序建立操作处理顺序的一种实现方式进行详细说明,请参阅步骤308至步骤310的说明。
    当使用文件分片对应的磁盘空间内的LBA地址来表示文件分片在磁盘空间的存储位置顺序时,在为并发操作的各个应用程序建立操作处理顺序时,首先获取到各个应用程序正在使用的各个文件分片的LBA地址。
    309、按照各个文件分片的LBA从小到大的顺序对各个文件分片进行排 序。
    在本发明实施例中,获取到并发操作的各个应用程序正在使用的LBA地址之后,按照LBA地址从小到大的顺序对各个文件分片进行排序。
    310、根据各个文件分片的排序先后,为各个应用程序建立与自己对应的文件分片的排序顺序相同的操作处理顺序。
    按照LBA地址从小到大对各个文件分片进行排序之后,根据各个文件分片的排序先后,为各个应用程序建立与自己对应的文件分片的排序顺序相同的操作处理顺序。例如,并发操作的应用程序共有5个,5个应用程序分别使用一个文件分片,5个文件分片排序先后依次为:文件分片3<文件分片2<文件分片4<文件分片1<文件分片5,则建立的5个应用程序的操作处理顺序就可以表示为:应用程序3>应用程序2>应用程序4>应用程序1>应用程序5。
    311、若各个应用程序对各自文件分片的操作请求是写数据请求,按照操作处理顺序轮询每个应用程序写入的数据缓冲区中的数据是否超过预置的缓冲门限。
    前述步骤308至步骤310中为并发操作的各个应用程序建立操作处理顺序之后,接下来通过步骤311至步骤314说明本发明实施例中如何根据操作处理顺序依次处理各个应用程序对各自文件分片的操作请求,具体的,以各个应用程序对各自文件分片的操作请求都是写数据请求为例进行说明。
    在本发明实施例中,获取到各个应用程序的操作处理顺序之后,按照操作处理顺序逐一的轮询每个应用程序写入的数据缓冲区中的数据是否超过预置的缓冲门限。例如,并发操作的应用程序共有5个,建立的5个应用程序的操作处理顺序就可以表示为:应用程序3>应用程序2>应用程序4>应用程序1>应用程序5,则首先判断应用程序3写入的数据缓冲区中的数据是否超过预置的缓冲门限,若应用程序3超过了预置的缓冲门限,触发执行步骤313,若应用程序3没有超过预置的缓冲门限,则继续判断操作处理顺序为第2位的应用程序2是否超过预置的操作处理顺序,按照这样的方式依次判断应用程序4、应用程序1和应用程序1,对于超过预置的缓冲门限的应用程序,则需要进一步的触发步骤313来执行。需要说明的是,缓冲门限为根据应用 程序使用的数据缓冲区的容量来设定其取值大小,例如,应用程序使用的数据缓冲区的容量为1M,则缓冲门限就可以设置为1M,则当应用程序写入数据缓冲区中的数据超过1M时,触发执行步骤313。
    312、将应用程序写入的第一数据缓冲区中超过预置的缓冲门限的数据存储到应用程序所使用的文件分片中。
    在本发明实施例中,对于步骤311中轮询结果为数据缓冲区中的数据超过预置的缓冲门限的应用程序执行步骤312,本发明实施例中对于每个应用程序可以分别设置数据缓冲区,若应用程序有数据需要存储,可以首先将数据写入到数据缓冲区中,当数据缓冲区已满的情况下,将数据缓冲区中的数据全部写入到应用程序使用的文件分片中,这样可以避免数据缓冲区中数据的溢出,同时可以提高数据写入文件分片的效率。
    需要说明的是,在本发明的一些实施例中,对于每个应用程序可以设置两个数据缓冲区,采用乒乓(ping-pang)存储机制,例如为应用程序设置两个数据缓冲区,分别为第一数据缓冲区和第二数据缓冲区。应用程序首先将数据写入到第一数据缓冲区中,当第一数据缓冲区中已满时,将第一数据缓冲区中的数据写入到应用程序正在使用的文件分片,同时启用第二数据缓冲区,应用程序继续使用第二数据缓冲区来存储数据,则第一数据缓冲区和第二数据缓冲区轮流交替使用,可以避免应用程序写数据出现的错误。
    313、判断应用程序正在写入的第二数据缓冲区中的数据是否超过预置的缓冲门限。
    在本发明实施例中,应用程序在将数据写入第二数据缓冲区时,可以继续判断应用程序正在写入的第二数据缓冲区中的数据是否超过预置的缓冲门限,即需要判断应用程序正在使用的第二数据缓冲区是否已经写满,若是,触发执行步骤314。
    314、若第二数据缓冲区中的数据超过预置的缓冲门限,将第二数据缓冲区中的数据存储到应用程序所使用的文件分片中。
    在步骤314中判断应用程序正在写入的第二数据缓冲区中的数据超过预置的缓冲门限时,将第二数据缓冲区中数据存储到应用程序所使用的文件分片。通过第一数据缓冲区和第二数据缓冲区交替轮流使用的方式,可以避免 数据从数据缓冲区的溢出,并且从数据缓冲区中将数据一次性的写入到文件分片中,也可以提高数据存储到文件分片中的效率。
    从以上描述的实施例可知,在资源池中创建的文件分片分别与磁盘空间内地址连续的LBA地址建立了映射关系,故多个应用程序各自使用的文件分片在磁盘空间是顺序存储的,依据存储顺序先后的多个文件分片在磁盘空间的存储位置顺序为多个应用程序建立的操作处理顺序能够保证在对各个应用程序各自使用的文件分片进行操作时对磁盘空间的寻道和移动也是顺序进行的。也就是说,操作处理顺序前后相邻的应用程序使用的文件分片在磁盘空间的存储位置顺序也是顺序存储的,故对操作处理顺序前后相邻的多个应用程序在进行依次处理其操作请求时在磁盘空间的跳跃较小,若磁盘空间的容量很大时,可以极大的缩短磁盘的寻道时间和避免在磁盘中的较长距离移动,故可以很大程度上减少机械磁盘的磨损,同时也避免产生比较大的震动,提高了使用磁盘作为存储设备的文件系统的可靠性。并且可以根据应用程序设定的文件分片存储路径和文件名来存储文件分片,便于应用程序对文件分片的操作。并且应用程序交替轮流使用两个数据缓冲区,可以避免数据缓冲区中数据的溢出,同时可以提高数据写入文件分片的效率。
    为便于更好的理解和实施本发明实施例的上述方案,下面举例相应的应用场景来进行具体说明。
    请参阅如图4所示,为本发明实施例中操作请求的处理方法的实现框架示意图。
    在本发明实施例中,文件系统对资源池的管理主要可以包括如下几种方法:文件分片创建、文件分片分配、文件分片回收、文件分片排序管理和资源池监控等五个方面。接下来分别对各种方法进行说明:
    1)、文件分片创建
    通过文件系统命令建立资源池,在资源池中创建多个文件分片。其中,只创建有一个资源池,在资源池中可以以目录的方式管理文件分片,通过目录创建命令创建资源池的管理目录,在资源池对应的目录下使用文件创建命令创建文件分片,例如可以利用文件系统支持的工具或命令来创建文件分片,一种可行的实现流程是,先创建一个文件分片,然后使用truncate函数把该文 件分片设置为指定的大小,同时建立文件分片和磁盘空间中的LBA地址之间的映射关系,故通过裁剪(truncate)命令可以指定文件分片的大小,并建立文件分片和磁盘空间中LBA地址之间的映射关系。其中,文件分片的大小根据应用程序需要的文件大小要求来配置,例如默认配置文件分片的大小为1GB。对于存在分配组的磁盘空间,可以配置资源池内文件分片的数量大于或等于所有应用程序并发操作所需要的文件分片数量乘以分配组的个数。例如整个监控系统一共有100个摄像头,每个摄像头都由一个应用程序来操作,每个应用程序操作1个文件分片,在磁盘空间内共划分的分配组个数是4个,其中分配组的个数可以通过文件系统命令获取到,则资源池目录下至少应该创建的文件分片的个数为:100×4=400个文件分片,这样可以保证在1个分配组内的文件分片数量就可以足够支持文件系统中并发操作的所有文件分片。
    2)、文件分片排序管理
    对于资源池中创建完成的文件分片,可以通过文件系统命令(xfs_bmap)获取文件分片的起始LBA地址,并使用系统重命名(rename)命令把文件名称以LBA进行重命名,然后按照LBA地址从小到大的顺序通过B-Tree或者其排序技术对文件分片进行排序记录。如果文件系统已经按照文件名称的数字大小进行了自动排序,则此处就不需要再进行排序记录了。
    3)、文件分片分配
    每个应用程序需要新的文件分片的时候,通过资源池的申请接口申请文件分片,应用程序向文件系统发送文件分片分配请求。在文件分片分配请求中应用程序还可以携带其指定的期望新文件分片存放的存储路径和文件名(例如/mnt/app1/recod_1.dat)。根据文件排序记录按照一定的规则(例如从小到大或从大到小)从资源池内取出文件分片,然后分配给应用程序,并把此文件分片通过文件系统的移动(mv)命令移动到应用程序指定的存储路径并重命名为应用程序期望的文件名(如mv/pool/123456/mnt/app1/recod_1.dat,按照应用程序的要求从资源池中把LBA地址为123456的文件分片移动到了应用程序期望的/mnt/app1/路径,并命名为recod_1.dat)。
    4)、资源池监控
    在为应用程序分配文件分片之后,可以通过定时器定时自动监控资源池中的文件分片数量,当其低于预设的资源阈值的时候,再自动创建新的文件分片。
    5)、文件分片回收
    当应用程序有要删除文件分片时,调用资源池的释放接口,把应用程序指定的文件分片通过文件系统命令移动到资源池内进行回收,回收的时候也可以通过文件系统(xfs_bmap)命令获取文件分片的起始LBA,并把文件名称以LBA地址使用文件重命名命令进行重命名。
    接下来举例进行说明描述对应用程序的操作请求的处理过程。
    请参阅图5所示,为本发明实施例提供的并发操作的多个应用程序对各自文件分片的操作处理示意图。根据多个应用程序正在使用的文件分片以LBA地址从小到大为顺序建立各个应用程序的应用逻辑顺序表,其中,应用逻辑顺序表包括了正在使用各自的文件分片的多个应用程序建立操作处理顺序。例如控制摄像头的应用程序有四个并发操作,分别为Cam0、Cam1、Cam2、Cam3,磁盘空间中设置有4个分配组,分别为AG0、AG1、AG2、AG3,其中,图5中仅示出了AG0和AG1,对于AG2和AG3未做显示,磁盘空间的LBA地址从LBA0至LBA xxxxxxxx,磁盘空间被划分为4个分配组,则从LBA0至LBA10000000为AG0,从LBA10000000至LBA20000000为AG1,以此类推。
    Cam0、Cam1、Cam2、Cam3都向文件系统请求申请分配文件分片,文件系统为Cam0分配的是文件分片0,文件系统为Cam1分配的是文件分片1,文件系统为Cam2分配的是文件分片2,文件系统为Cam3分配的是文件分片3。则根据各个文件分片的LBA地址,按照LBA地址从小到大的顺序,四个并发操作分配到的文件分片的LBA地址是文件分片0<文件分片2<文件分片1<文件分片3,则应用程序对应的应用逻辑顺序表中四个并发操作的逻辑处理顺序应该满足如下关系:Cam0>Cam2>Cam1>Cam3,即如果在同一个时间段内,按照逻辑处理顺序,应该优先处理Cam0的应用读写请求,接着处理Cam2的应用读写请求,然后处理Cam1的应用读写请求,最后处理Cam3的应用读写请求。
    在文件系统内应该建立轮询机制,根据应用逻辑顺序表,逐一轮询每个应用程序的数据缓冲区是否已满,如果满了就把数据下发到应用程序正在使用的文件分片中进行存储,不满则跳过。如图5所示应用程序对文件分片的操作处理示意图,循环的按照顺序轮询Cam0>Cam2>Cam1>Cam3的数据缓冲区,并按此顺序下发其缓冲数据。
    在本发明实施例中,为了安全起见,应用程序的数据缓冲可以采用ping-pong机制,即为一个应用程序建立两个数据缓冲区,一个数据缓冲区写满了之后在写数据到文件分片的时候,切换到另外一个数据缓冲区继续缓冲数据,等这个缓冲区写满之后,另外一个数据缓冲区应该已经处理完数据,两者角色再互换,这样可提升效率和避免缓冲数据溢出。
    需要说明的,本发明实施例中,可以实时监测正在使用文件分片的应用程序的数量是否变化,当有新的应用程序加入或者退出的时候,需要重新更新应用逻辑顺序表,然后按照更新后的应用逻辑顺序表来处理各个应用程序对各自文件分片的操作请求。
    从以上描述的实施例可知,在资源池中创建的文件分片分别与磁盘空间内地址连续的LBA地址建立了一一映射关系,故多个应用程序各自使用的文件分片在磁盘空间是顺序存储的,依据存储顺序先后的多个文件分片在磁盘空间的存储位置顺序为多个应用程序建立的操作处理顺序能够保证在对各个应用程序各自使用的文件分片进行操作时对磁盘空间的寻道和移动也是顺序进行的。也就是说,操作处理顺序前后相邻的应用程序其各自使用的文件分片在磁盘空间的存储位置顺序也是顺序存储的,故对操作处理顺序前后相邻的多个应用程序在进行依次处理其操作请求时在磁盘空间的跳跃较小,若磁盘空间的容量很大时,可以极大的缩短磁盘的寻道时间和避免在磁盘中的较长距离移动,故可以很大程度上减少机械磁盘的磨损,同时也避免产生比较大的震动,提高了使用磁盘作为存储设备的文件系统的可靠性。并且可以根据应用程序设定的文件分片存储路径和文件名来存储文件分片,便于应用程序对文件分片的操作。并且应用程序交替轮流使用两个数据缓冲区,可以避免数据缓冲区中数据的溢出,同时可以提高数据写入文件分片的效率。
    需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表 述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
    为便于更好的实施本发明实施例的上述方案,下面还提供用于实施上述方案的相关装置。
    请参阅图6-a所示,本发明实施例提供的一种操作请求的处理装置600,可以包括:处理顺序建立模块601和操作请求处理模块602,其中,
    处理顺序建立模块601,用于依据应用程序使用的文件分片在磁盘空间的存储位置顺序为正在使用各自的文件分片的多个所述应用程序建立操作处理顺序,所述多个应用程序各自使用的文件分片在所述磁盘空间中顺序存储;
    操作请求处理模块602,用于根据所述操作处理顺序依次处理所述应用程序的操作请求。
    在本发明实施例中,处理顺序建立模块601依据应用程序使用的文件分片在磁盘空间的存储位置顺序为上述应用程序建立操作处理顺序,建立完操作处理顺序之后操作请求处理模块602根据操作处理顺序依次处理上述应用程序的操作请求。由于多个应用程序各自使用的文件分片在磁盘空间是顺序存储的,故依据存储顺序先后的多个文件分片在磁盘空间的存储位置顺序为多个应用程序建立的操作处理顺序能够保证在对各个应用程序各自使用的文件分片进行操作时对磁盘空间的寻道和移动也是顺序进行的。也就是说,操作处理顺序前后相邻的应用程序其各自使用的文件分片在磁盘空间的存储位置顺序也是顺序存储的,故对操作处理顺序前后相邻的多个应用程序在进行依次处理其操作请求时在磁盘空间的跳跃较小,若磁盘空间的容量很大时,可以极大的缩短磁盘的寻道时间和避免在磁盘中的较长距离移动,故可以很大程度上减少机械磁盘的磨损,同时也避免产生比较大的震动,提高了使用磁盘作为存储设备的文件系统的可靠性。
    请参阅如图6-b所示,在本发明的一些实施例中,处理顺序建立模块601,包括:
    逻辑区块地址LBA获取子模块6011,用于获取所述应用程序对应的文件 分片在所述磁盘空间的LBA;
    处理顺序建立子模块6012,用于按照所述应用程序对应的文件分片的LBA从小到大的顺序建立所述应用程序的操作处理顺序。
    在上述实施例中,处理顺序建立子模块6012通过LBA地址的大小顺序建立了并发操作的多个应用程序的操作处理顺序。
    请参阅如图6-c所示,在本发明的一些实施例中,若应用程序的操作请求是写数据请求,所述操作请求处理模块602,包括:
    数据缓冲判断子模块6021,用于按照所述操作处理顺序轮询所述应用程序写入的数据缓冲区中的数据是否超过预置的缓冲门限;
    存储子模块6022,用于将所述应用程序写入的数据缓冲区中超过所述预置的缓冲门限的数据写入对应的文件分片中。
    在上述实施例中,对于应用程序的操作请求是写数据请求,数据缓冲判断子模块6021判断出哪个应用程序使用的数据缓冲区已经写满后,存储子模块6022将已经写满了的应用程序的数据缓冲区中的数据存储到应用程序正在使用的文件分片,这样可以避免数据缓冲区中数据的溢出,同时可以提高数据写入文件分片的效率。
    在本发明的一些实施例中,所述应用程序对应的文件分片是根据所述应用程序的文件分片分配请求,按照资源池中的文件分片的顺序,依据预置的分配顺序规则为所述应用程序分配的。
    请参阅如图6-d所示,在本发明的一些实施例中,文件分片分配请求携带上述应用程序设定的文件分片存储路径和文件名,操作请求的处理装置600,还包括:重配置模块603,其中,
    所述重配置模块603,用于将分配给所述应用程序的文件分片移动到所述设定的文件分片存储路径指定的存放位置,并将分配给所述应用程序的文件分片重命名为设定的文件名。
    在上述实施例中,重配置模块603按照应用程序的要求移动文件分片的存储路径和对文件分片进行重命名,可以便于应用程序对文件分片的操作。
    在本发明的另一些实施例中,请参阅如图6-e所示,在图6-d所示的操作请求的处理装置600的基础上,操作请求的处理装置600,还包括:
    文件分片创建模块604,用于所述处理顺序建立模块601依据应用程序使用的文件分片在磁盘空间的存储位置顺序为所述应用程序建立操作处理顺序之前,在资源池中创建文件分片,其中,若所述磁盘空间中没有创建分配组,则所述资源池内创建的文件分片数量大于或等于所有应用程序并发操作所需要的文件分片数量,若所述磁盘空间中创建有分配组,则所述资源池内创建的文件分片数量大于或等于所有应用程序并发操作所需要的文件分片数量乘以所述磁盘空间包括的分配组的个数;
    映射模块605,用于将所述资源池中的所有文件分片分别与所述磁盘空间内地址连续的LBA建立映射关系。
    在上述实施例中,文件分片创建模块604实现了在资源池中创建文件分片,映射模块605建立了资源池中的所有文件分片分别与磁盘空间内地址连续的LBA的映射关系。
    请参阅如图6-f所示,在本发明的一些实施例中,若根据所述操作处理顺序轮到操作请求是由发起文件分片释放请求的应用程序执行的,所述操作请求处理模块602,具体用于删除所述操作请求为文件分片释放请求的应用程序和所述操作请求为文件分片释放请求的应用程序对应的文件分片之间的映射关系;
    所述操作请求的处理装置600,还包括:
    文件分片回收模块606,用于将所述操作请求为文件分片释放请求的应用程序对应的文件分片移动到资源池内。
    在上述实施例中,操作请求处理模块602删除所述操作请求为文件分片释放请求的应用程序和所述操作请求为文件分片释放请求的应用程序对应的文件分片之间的映射关系,则删除掉映射关系后,应用程序就释放掉了正在使用的文件分片,文件分片回收模块606将被释放掉的文件分片移动到资源池中,可以实现对文件分片的回收再利用。
    需要说明的是,上述装置各模块/单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,其带来的技术效果与本发明方法实施例相同,具体内容可参见本发明前述所示的方法实施例中的叙述,此处不再赘述。
    本发明实施例还提供一种计算机存储介质,其中,该计算机存储介质存储有程序,该程序执行包括上述方法实施例中记载的部分或全部步骤。
    接下来介绍本发明实施例提供的另一种操作请求的处理装置,请参阅图7所示,操作请求的处理装置700包括:
    输入装置701、输出装置702、处理器703和存储器704(其中操作请求的处理装置700中的处理器703的数量可以一个或多个,图7中以一个处理器为例)。在本发明的一些实施例中,输入装置701、输出装置702、处理器703和存储器704可通过总线或其它方式连接,其中,图7中以通过总线连接为例。
    其中,处理器703,用于执行如下步骤:依据应用程序使用的文件分片在磁盘空间的存储位置顺序为所述应用程序建立操作处理顺序,所述文件分片在所述磁盘空间中顺序存储;根据所述操作处理顺序依次处理所述应用程序的操作请求。
    在本发明的一些实施例中,处理器703具体用于执行以下步骤:获取所述应用程序对应的文件分片在所述磁盘空间的逻辑区块地址LBA;按照所述应用程序对应的文件分片的LBA从小到大的顺序建立所述应用程序的操作处理顺序。
    在本发明的一些实施例中,若所述应用程序的操作请求是写数据请求,处理器703具体用于执行以下步骤:按照所述操作处理顺序轮询所述应用程序写入的数据缓冲区中的数据是否超过预置的缓冲门限;将所述应用程序写入的数据缓冲区中超过所述预置的缓冲门限的数据写入对应的文件分片。
    在本发明的一些实施例中,所述文件分片分配请求携带所述应用程序设定的文件分片存储路径和文件名;处理器703具体用于执行以下步骤:将分配给所述应用程序的文件分片移动到所述设定的文件分片存储路径指定的存放位置,并将分配给所述应用程序的文件分片重命名为设定的文件名。
    在本发明的一些实施例中,处理器703还用于执行以下步骤:在资源池中创建文件分片,其中,若所述磁盘空间中没有创建分配组,则所述资源池内创建的文件分片数量大于或等于所有应用程序并发操作所需要的文件分片数量,若所述磁盘空间中创建有分配组,则所述资源池内创建的文件分片数 量大于或等于所有应用程序并发操作所需要的文件分片数量乘以所述磁盘空间包括的分配组的个数;将所述资源池中的所有文件分片分别与所述磁盘空间内地址连续的LBA建立映射关系。
    在本发明的一些实施例中,若根据所述操作处理顺序轮到发起操作请求为文件分片释放请求的应用程序执行,处理器703具体用于执行以下步骤:删除所述操作请求为文件分片释放请求的应用程序和所述操作请求为文件分片释放请求的应用程序对应的文件分片之间的映射关系;以及处理器703还用于执行以下步骤:将所述操作请求为文件分片释放请求的应用程序对应的文件分片移动到资源池内。
    在本发明实施例中,处理器703依据应用程序使用的文件分片在磁盘空间的存储位置顺序为应用程序建立操作处理顺序,建立完操作处理顺序之后根据操作处理顺序依次处理应用程序的操作请求。由于多个应用程序各自使用的文件分片在磁盘空间是顺序存储的,故依据存储顺序先后的多个文件分片在磁盘空间的存储位置顺序为多个应用程序建立的操作处理顺序能够保证在对各个应用程序各自使用的文件分片进行操作时对磁盘空间的寻道和移动也是顺序进行的。也就是说,操作处理顺序前后相邻的应用程序其各自使用的文件分片在磁盘空间的存储位置顺序也是顺序存储的,故对操作处理顺序前后相邻的多个应用程序在进行依次处理其操作请求时在磁盘空间的跳跃较小,若磁盘空间的容量很大时,可以极大的缩短磁盘的寻道时间和避免在磁盘中的较长距离移动,故可以很大程度上减少机械磁盘的磨损,同时也避免产生比较大的震动,提高了使用磁盘作为存储设备的文件系统的可靠性。
    另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
    通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
    综上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照上述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对上述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

    关 键  词:
    一种 操作 请求 处理 方法 装置
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:一种操作请求的处理方法和装置.pdf
    链接地址:https://www.zhuanlichaxun.net/p-4256524.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1