原创 Linux中idr_tree算法描述

2009-4-2 12:10 3908 10 11 分类: 软件与OS

       Idr_tree是内核提供的一种算法,其实现了整型id号与一个内核指针之间的映射。Idr_tree算法的实现采用了radix_tree的思想,其数据结构定义与radix tree有着类似之处。Idr_tree2003年的时候引入至内核,目前在scsi盘符空间的管理、i<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />2c总线设备号与设备结构之间的映射方面都有应用。


      


       在整型id与内存指针之间的映射可以采用数组的方式,但是随着存储规模的增大,数组的方式显然不能满足应用的需求;另一种方式可以采用链表进行映射信息的管理,同样不能管理较大的映射资源。所以,在Linux中采用树进行映射资源的管理。这种树就是idr_tree


<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 


采用idr_tree来管理整型id与内存指针之间的映射关系具有如下两方面对优势:


1、  具有很好的映射关系查找效率。


2、  能够很好的扩展存储规模,动态增大树的规模对查找性能影响不是很大。


 


       Idr_tree的结构示意图描述如下图所示:


点击看大图


 


       Idr_tree的叶子节点用于存储用户定义的数据,通常用于存储用户需要查找的内存指针。树中的每个节点定义为idr_layer,该数据结构中包含了一个bitmap位图,用于描述下层节点的属性。当下层节点不存在空穴(空闲节点)时,上层节点bitmap位图中的对应位置位。因此在查找过程中,从顶层节点开始,判断每个节点的bitmap信息,然后遍历第一个bit位为0的下层节点,直到遍历到叶子节点为止。由此可见,Idr_tree的算法复杂度与树的层次数量相关。Idr_tree是动态生成的,随着叶子节点的增多,树的层次将会不断增大。


   


    Linux中带中文注释的idr实现源码https://static.assets-stash.eet-china.com/album/old-resources/2009/4/2/50103c41-c090-4854-9458-148c3e9f144c.rar


 

文章评论1条评论)

登录后参与讨论

用户411565 2009-4-2 12:15

这个算法是我在分析scsi盘符管理时进行整理的,原理上与radix-tree应该是一样的,查找效率还是比较高的。
相关推荐阅读
用户411565 2012-12-18 12:58
我的存储之道博客
大家好,最近一直在做存储方面的工作,所以我在51CTO上专门开辟了一个空间讨论存储相关的问题,喜欢存储的朋友可以可以访问我的存储博客: 存储之道 (http://alanwu.blog.51cto...
用户411565 2012-04-06 21:39
SAS Cable可以有多长?
SAS接口是高端硬盘的主流接口,是存储系统的理想选择。我们知道高速信号的传输距离和传输线相关的,那么SAS作为外部通信接口,其Cable线具体可以有多长呢? 我在网上找到上图所示的眼图测...
用户411565 2012-04-06 21:38
对TRIM SCSI命令的一些分析
前一段时间做了一些对SSD方面进行优化的工作,SSD最大的问题在于长时间使用之后,IO性能会急剧下降。其主要问题在于为了防止“写放大”问题的产生,SSD的firmware采用了类似于log方式的算...
用户411565 2012-04-06 21:35
惊叹!我们的跨洋网络
  每次地质自然灾害的时候,总会伴随着网络的问题,这是由于我们的越洋光纤网络出了故障,受到自然力的破坏而导致断裂。越洋光纤,听起来的确是件非常不可思议的事情,工程量非常的巨大,但正是如此伟大的...
用户411565 2012-04-06 21:33
科学仪器网络模型
科学仪器概述     科学仪器发展趋势 科学是从测量开始的,科学仪器是信息技术的源头,是信息产业的重要组成部分,是现代科学与工业的基石。科学仪器产业的发展关系到国家科学研究实力、生...
用户411565 2012-04-06 21:16
谈谈RAID产品与技术
说起RAID,学计算机的同学马上会说RAID技术简单啊,就是将数据条带化,然后计算一些冗余数据,一并写入磁盘。通过RAID技术一方面提高系统的IO性能;另一方面提高系统的可靠性。单纯从RAID的原...
我要评论
1
10
关闭 站长推荐上一条 /2 下一条