位图的处理方法及装置与流程

文档序号:35234853发布日期:2023-08-25 02:36阅读:22来源:国知局
位图的处理方法及装置与流程

本申请涉及通信,尤其涉及一种位图的处理方法及装置。


背景技术:

1、位图(bitmap)是一种常用的数据结构,其将索引转换为偏移对应至相应的比特位(bit)上。bitmap支持布尔存储,通常置1(置位)表示true,置0(未置位)表示false。

2、bitmap用途广泛,例如:利用bitmap表示空闲端口号,置位表示该端口号已分配,未置位表示该端口号尚未分配。利用bitmap表示板卡号,置位表示该板卡在位,未置位表示该板卡尚未插入。在bgp路由中,每一条路由均对应一个bitmap,该bitmap包括的每个bit对应一个对端(peer)连接,置位表示该路由已向对应的对端同步,未置位表示该路由尚未向对应的对端同步。

3、在bgp存在大量路由(千万级别)或者大量对端连接(万级别)或者以上两种兼具时,现有采用数组切片的方式以实现对bitmap的存储。

4、例如,将每1024个bit划分为一个子图(submap),每一个submap可再细分为多个段(segment)。每个segment包括64个bit,一个submap最多再细分为16个segment(共16*64=1024bit)。

5、当某个segment全为0(后续称之为“空”)或者全为1(后续称为“满”)时,将对应submap所包括的freefullmap置位,如此,该segment即可释放,即submap内仅保留混合0/1(后续称为“半满“)的segment,以节省内存空间。

6、但是,上述bitmap存储方式也暴露出以下问题:1)随机访问效率不高。例如,用户欲查看10000的bit是否置位,网络设备在处理时,需要先访问9个(10000/1024=9)submap,然后,再访问每个submap下的多个segment,访问效率低;2)占用内存空间较大。例如,10000内仅存在1个置位bit,其它bit均未置位,但是,在存储时,仍然需要9个submap,至少消耗了32*9=288bytes。在大量路由(2000万)的情景下,bitmap的内存消耗达到了gb级别。


技术实现思路

1、有鉴于此,本申请提供了一种位图的处理方法及装置,用以解决bitmap存储方式所暴露的随机访问效率低、占用内存空间大的问题。

2、第一方面,本申请提供了一种位图的处理方法,所述方法应用于网络设备,所述网络设备内包括管理块superblock以及多个块block,所述方法包括:

3、接收用户输入的第一操作指令,所述第一操作指令包括待查看索引,所述待查看索引可转换为具有n个比特位bit的字符串;

4、若所述superblock的类型为第一类型,则根据所述字符串包括的第一数量个高位bit,选择所述superblock内包括的半满子图partiamap对应的第一bit;

5、若所述半满子图对应的第一bit置位,则从所述半满子图中获取低于所述第一bit的位中已置位的个数;

6、根据所述个数,确定所述个数在所述管理块包括的半满数组中的位置,并根据所述位置,确定所述字符串对应的第一block内的第二bit;

7、向所述用户显示操作结果,所述操作结果包括第二bit的当前状态。

8、第二方面,本申请提供了一种位图的处理装置,所述装置应用于网络设备,所述网络设备内包括管理块superblock以及多个块block,所述装置包括:

9、接收单元,用于接收用户输入的第一操作指令,所述第一操作指令包括待查看索引,所述待查看索引可转换为具有n个比特位bit的字符串;

10、第一选择单元,用于若所述superblock的类型为第一类型,则根据所述字符串包括的第一数量个高位bit,选择所述superblock内包括的半满子图partiamap对应的第一bit;

11、第一获取单元,用于若所述半满子图对应的第一bit置位,则从所述半满子图中获取低于所述第一bit的位中已置位的个数;

12、第一确定单元,用于根据所述个数,确定所述个数在所述管理块包括的半满数组中的位置,并根据所述位置,确定所述字符串对应的第一block内的第二bit;

13、显示单元,用于向所述用户显示操作结果,所述操作结果包括第二bit的当前状态。

14、第三方面,本申请提供了一种网络设备,包括处理器和机器可读存储介质,机器可读存储介质存储有能够被处理器执行的机器可执行指令,处理器被机器可执行指令促使执行本申请第一方面所提供的方法。

15、因此,通过应用本申请提供的位图的处理方法及装置,网络设备接收用户输入的第一操作指令,该第一操作指令包括待查看索引,待查看索引可转换为具有n个比特位bit的字符串;若superblock的类型为第一类型,则根据字符串包括的第一数量个高位bit,网络设备选择superblock内包括的半满子图partiamap对应的第一bit;若半满子图对应的第一bit置位,则网络设备从半满子图中获取低于第一bit的位中已置位的个数;根据个数,网络设备确定个数在管理块包括的半满数组中的位置,并根据位置,确定字符串对应的第一block内的第二bit;向用户显示操作结果,该操作结果包括第二bit的当前状态。

16、如此,网络设备内包括的多个block均为半满block,利用半满子图partiamap以及半满数组,可快速确定出用户所需的bit,解决了bitmap存储方式所暴露的随机访问效率低、占用内存空间大的问题。



技术特征:

1.一种位图的处理方法,其特征在于,所述方法应用于网络设备,所述网络设备内包括管理块superblock以及多个块block,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述若所述半满子图对应的第一bit置位,则从所述半满子图中获取低于所述第一bit的位中已置位的个数之前,所述方法还包括:

3.根据权利要求2所述的方法,其特征在于,所述若所述半满子图对应的第一bit置位,则从所述半满子图中获取低于所述第一bit的位中已置位的个数之前,所述方法还包括:

4.根据权利要求1所述的方法,其特征在于,所述位置内存储所述第一block的第一地址;

5.根据权利要求1所述的方法,其特征在于,所述位置内存储所述第一block内已置位的第三bit的偏移位置;

6.根据权利要求1所述的方法,其特征在于,所述接收用户输入的第一操作指令之前,所述方法还包括:

7.根据权利要求6所述的方法,其特征在于,所述生成具有所述第一类型的所述superblock之后,所述方法还包括:

8.根据权利要求7所述的方法,其特征在于,所述根据所述block内各bit的置位状态,从多种存储方式中,选择一种占用内存空间最小的存储方式,对所述block进行存储,具体包括:

9.根据权利要求6所述的方法,其特征在于,所述接收用户输入的第一操作指令之后,所述方法还包括:

10.一种位图的处理装置,其特征在于,所述装置应用于网络设备,所述网络设备内包括管理块superblock以及多个块block,所述装置包括:


技术总结
本申请提供一种位图的处理方法及装置,该方法包括:接收用户输入的第一操作指令,该第一操作指令包括待查看索引,所述待查看索引可转换为具有N个比特位Bit的字符串;若SuperBlock的类型为第一类型,则根据字符串包括的第一数量个高位Bit,选择SuperBlock内包括的半满子图PartiaMap对应的第一Bit;若半满子图对应的第一Bit置位,则从半满子图中获取低于第一Bit的位中已置位的个数;根据个数,确定个数在管理块包括的半满数组中的位置,并根据位置,确定字符串对应的第一Block内的第二Bit;向用户显示操作结果,该操作结果包括第二Bit的当前状态。

技术研发人员:王洋
受保护的技术使用者:新华三技术有限公司
技术研发日:
技术公布日:2024/1/14
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1