请求的分配方法、装置、存储介质及电子装置制造方法及图纸

技术编号:38687853 阅读:20 留言:0更新日期:2023-09-02 23:01
本申请实施例提供了一种请求的分配方法、装置、存储介质及电子装置,其中,该方法包括:获取多个第一元数据访问请求,并将每个第一元数据访问请求拆分为多个子访问请求,其中,多个子访问请求包括:读请求、操作请求,每个第一元数据访问请求携带有元数据的第一逻辑块地址;将多个读请求分配至多个第一线程;控制多个第一线程在目标树上并行处理多个读请求,并在目标树中确定多个读请求对应的叶子节点,其中,目标树用于存储元数据的第一逻辑块地址和物理块地址;将多个操作请求分配至第二线程,以使第二线程根据叶子节点在目标树上处理操作请求。通过本申请,解决了现有技术中访问元数据时系统整体的吞吐量低、时延小的问题。时延小的问题。时延小的问题。

【技术实现步骤摘要】
请求的分配方法、装置、存储介质及电子装置


[0001]本申请实施例涉及通信领域,具体而言,涉及一种请求的分配方法、装置、存储介质及电子装置。

技术介绍

[0002]元数据(Mete data)是指描述数据的数据(data about data),可以理解为比一般意义的数据范畴更加广泛的数据,不仅仅是表示数据的类型、名称、值等信息,也进一步提供了数据的上下文信息,例如数据所属域、数据来源等等。在数据存储系统中,元数据是信息存储的基础,是数据的最小单元。近年来,随着信息技术的发展,产生了海量的数据,但是如何有效地管理和组织这些海量数据已经成为一个突出的问题。对于存储的大量数据,查询分析其中的数据内容和数据含义,才能更加有效的利用数据。在存储系统中元数据的高效组织和管理是解决这一问题的有效手段,能支持系统对数据的管理和维护。简言之,只有有效的管理元数据,数据才变得更有价值。因此,如何有效的管理元数据和使用元数据,是一个非常值得探讨的问题。
[0003]在全闪存数据存储中,必然涉及到大量且高并发的数据访问和查询问题,有效的管理元数据,才能增加并发访问量和访问效率。因此全闪存中元数据的多并发读、写有效管理方法至关重要,可使大规模并发随机访问元数据有更高的吞吐量和更小的时延。
[0004]因此,现有技术中有访问元数据时系统整体的吞吐量低、时延小的问题并未得到有效解决。

技术实现思路

[0005]本申请实施例提供了一种请求的分配方法、装置、存储介质及电子装置,以至少解决相关技术中访问元数据时系统整体的吞吐量低、时延小的问题。
[0006]根据本申请的一个实施例,提供了一种请求的分配方法,包括:获取多个第一元数据访问请求,并将每个第一元数据访问请求拆分为多个子访问请求,其中,所述多个子访问请求包括:读请求、操作请求,所述每个第一元数据访问请求携带有元数据的第一逻辑块地址;将多个读请求分配至多个第一线程;控制所述多个第一线程在目标树上并行处理所述多个读请求,并在所述目标树中确定所述多个读请求对应的叶子节点,其中,所述目标树用于存储所述元数据的第一逻辑块地址和物理块地址;将多个所述操作请求分配至第二线程,以使所述第二线程根据所述叶子节点在所述目标树上处理所述操作请求。
[0007]在一个示例性实施例中,在所述目标树中确定所述多个读请求对应的叶子节点,包括:确定每个第一元数据访问请求中携带的第一逻辑块地址;根据所述第一逻辑块地址遍历所述目标树中的节点信息,以确定每个所述读请求对应的叶子节点。
[0008]在一个示例性实施例中,在所述第一元数据访问请求为查询请求的情况下,将所述操作请求分配至第二线程之后,所述方法还包括:控制所述第二线程确定所述叶子节点中是否存储有所述第一逻辑块地址对应的物理块地址;在所述叶子节点中存储有所述物理
块地址的情况下,控制所述第二线程返回所述物理块地址。
[0009]在一个示例性实施例中,控制所述第二线程确定所述叶子节点中是否存储有所述第一逻辑块地址对应的物理块地址之后,所述方法还包括:在所述叶子节点中未存储有所述物理块地址的情况下,控制所述第二线程返回空值。
[0010]在一个示例性实施例中,在所述第一元数据访问请求为插入请求的情况下,将多个所述操作请求分配至第二线程之后,所述方法还包括:控制所述第二线程在所述叶子节点中串行插入第一关键字,其中,所述第一元数据访问请求中携带有所述第一关键字,所述第一关键字指示第一逻辑块地址与第一物理块地址的对应关系;在将所述第一关键字已分别插入至所述叶子节点的情况下,确定所述叶子节点是否需要更新;在所述叶子节点需要更新的情况下,对所述叶子节点执行分裂操作。
[0011]在一个示例性实施例中,对所述叶子节点执行分裂操作之后,所述方法还包括:确定所述叶子节点中存储的多个第二关键字;确定所述多个第二关键字中的第三关键字,并将所述第三关键字插入所述叶子节点的父节点中。
[0012]在一个示例性实施例中,将所述第三关键字插入所述叶子节点的父节点中之后,所述方法还包括:确定插入所述第三关键字的父节点是否需要更新;在插入所述第三关键字的父节点需要更新的情况下,将所述父节点对应的更新请求分配至第三线程,以使所述第三线程 在所述目标树上并行处理所述更新请求。
[0013]在一个示例性实施例中,确定所述叶子节点是否需要更新,包括:确定所述叶子节点中存储的关键字的数值,以及确定允许所述叶子节点存储的关键字的最大值;根据所述数值和所述最大值的大小关系确定所述叶子节点是否需要更新。
[0014]在一个示例性实施例中,根据所述数值和所述最大值的大小关系确定所述叶子节点是否需要更新,包括:在所述数值大于所述最大值的情况下,确定所述叶子节点需要更新;在所述数值小于或者等于所述最大值的情况下,确定所述叶子节点不需要更新。
[0015]在一个示例性实施例中,控制所述第二线程在所述叶子节点中串行插入第一关键字,包括:插入步骤:在多个所述第二线程中的任一线程获取到目标锁的情况下,控制所述任一线程在所述叶子节点中插入对应的第一关键字;循环执行所述插入步骤,直至每个所述第二线程均在所述叶子节点中插入第一关键字。
[0016]在一个示例性实施例中,控制所述第二线程在所述叶子节点中串行插入第一关键字,包括:将多个所述第二线程分配至同一线程队列中;在所述线程队列中依次取出任一第二线程,控制所述任一第二线程在所述叶子节点中插入第一关键字,直至每个所述第二线程串行均在所述叶子节点中插入第一关键字。
[0017]在一个示例性实施例中,在所述第一元数据访问请求为删除请求的情况下,将所述操作请求分配至第二线程之后,所述方法还包括:控制所述第二线程在所述叶子节点中串行删除第二关键字,其中,所述第一元数据访问请求中携带有所述第二关键字,所述第二关键字指示第一逻辑块地址与物理块地址的对应关系;在将多个所述第二关键字均删除的情况下,确定所述叶子节点是否需要更新;在所述叶子节点需要更新的情况下,对所述叶子节点执行合并操作。
[0018]在一个示例性实施例中,对所述叶子节点执行合并操作之后,所述方法还包括:在所述合并操作为将所述叶子节点的第四关键字插入所述叶子节点的情况下,确定所述叶子
节点的兄弟节点的第四关键字和父节点的第五关键字;将所述第四关键字插入所述父节点,以及将所述第五关键字插入至所述叶子节点;在所述合并操作为将所述叶子节点的关键字插入所述叶子节点的兄弟节点的情况下,删除所述叶子节点的父节点的第六关键字,其中,所述第六关键字的孩子指针指向所述叶子节点和所述兄弟节点。
[0019]在一个示例性实施例中,将所述第四关键字插入所述父节点之后,所述方法还包括:确定插入所述第四关键字的父节点是否需要更新;在插入所述第四关键字的父节点需要更新的情况下,将所述父节点对应的更新请求分配至第四线程,以使所述第四线程在所述目标树上并行处理所述更新请求。
[0020]在一个示例性实施例中,在所述第一元数据访问请求为删除请求和插本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种请求的分配方法,其特征在于,包括:获取多个第一元数据访问请求,并将每个第一元数据访问请求拆分为多个子访问请求,其中,所述多个子访问请求包括:读请求、操作请求,所述每个第一元数据访问请求携带有元数据的第一逻辑块地址;将多个读请求分配至多个第一线程;控制所述多个第一线程在目标树上并行处理所述多个读请求,并在所述目标树中确定所述多个读请求对应的叶子节点,其中,所述目标树用于存储所述元数据的第一逻辑块地址和物理块地址;将多个所述操作请求分配至第二线程,以使所述第二线程根据所述叶子节点在所述目标树上处理所述操作请求。2.根据权利要求1所述的方法,其特征在于,在所述目标树中确定所述多个读请求对应的叶子节点,包括:确定每个第一元数据访问请求中携带的第一逻辑块地址;根据所述第一逻辑块地址遍历所述目标树中的节点信息,以确定每个所述读请求对应的叶子节点。3.根据权利要求1所述的方法,其特征在于,在所述第一元数据访问请求为查询请求的情况下,将所述操作请求分配至第二线程之后,所述方法还包括:控制所述第二线程确定所述叶子节点中是否存储有所述第一逻辑块地址对应的物理块地址;在所述叶子节点中存储有所述物理块地址的情况下,控制所述第二线程返回所述物理块地址。4.根据权利要求3所述的方法,其特征在于,控制所述第二线程确定所述叶子节点中是否存储有所述第一逻辑块地址对应的物理块地址之后,所述方法还包括:在所述叶子节点中未存储有所述物理块地址的情况下,控制所述第二线程返回空值。5.根据权利要求1所述的方法,其特征在于,在所述第一元数据访问请求为插入请求的情况下,将多个所述操作请求分配至第二线程之后,所述方法还包括:控制所述第二线程在所述叶子节点中串行插入第一关键字,其中,所述第一元数据访问请求中携带有所述第一关键字,所述第一关键字指示第一逻辑块地址与第一物理块地址的对应关系;在将所述第一关键字已分别插入至所述叶子节点的情况下,确定所述叶子节点是否需要更新;在所述叶子节点需要更新的情况下,对所述叶子节点执行分裂操作。6.根据权利要求5所述的方法,其特征在于,对所述叶子节点执行分裂操作之后,所述方法还包括:确定所述叶子节点中存储的多个第二关键字;确定所述多个第二关键字中的第三关键字,并将所述第三关键字插入所述叶子节点的父节点中。7.根据权利要求6所述的方法,其特征在于,将所述第三关键字插入所述叶子节点的父节点中之后,所述方法还包括:
确定插入所述第三关键字的父节点是否需要更新;在插入所述第三关键字的父节点需要更新的情况下,将所述父节点对应的更新请求分配至第三线程,以使所述第三线程在所述目标树上并行处理所述更新请求。8.根据权利要求5所述的方法,其特征在于,确定所述叶子节点是否需要更新,包括:确定所述叶子节点中存储的关键字的数值,以及确定允许所述叶子节点存储的关键字的最大值;根据所述数值和所述最大值的大小关系确定所述叶子节点是否需要更新。9.根据权利要求8所述的方法,其特征在于,根据所述数值和所述最大值的大小关系确定所述叶子节点是否需要更新,包括:在所述数值大于所述最大值的情况下,确定所述叶子节点需要更新;在所述数值小于或者等于所述最大值的情况下,确定所述叶子节点不需要更新。10.根据权利要求5所述的方法,其特征在于,控制所述第二线程在所述叶子节点中串行插入第一关键字,包括:插入步骤:在多个所述第二线程中的任一线程获取到目标锁的情况下,控制所述任一线程在所述叶子节点中插入对应的第一关键字;循环执行所述插入步骤,直至每个所述第二线程均在所述叶子节点中插入第一关键字。11.根据权利要求5所述的方法,其特征在于,控制所述第二线程在所述叶子节点中串行插入第一关键字,包括:将多个所述第二线程分配至同一线程队列中;在所述线程队列中依次取出任一第二线程,控制所述任一第二线程在所述叶子节点中插入第一关键字,直至每个所述第二线程串行均在所述叶子节点中插入第一关键字。12.根据权利要求1所述的方法,其特征在于,在所述第一元数据访问请求为删除请求的情况下,将所述操作请求分配至第二线程之后,所述方法还包括:控制所述第二线程在所述叶子节点中串行删除第二关键字,其中,所述第一元数据访问请求中携带有所述...

【专利技术属性】
技术研发人员:刚亚州
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:

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

1