磁盘

B树、B-树、B+树、B树都是什么

≡放荡痞女 提交于 2021-01-10 07:27:24
B 树、 B- 树、 B+ 树、 B* 树都是什么 B 树 即二叉搜索树: 1. 所有非叶子结点至多拥有两个儿子( Left 和 Right ); 2. 所有结点存储一个关键字; 3. 非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; 如: B 树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中;否则,如果查询关键字比结点关键字小,就进入左儿子;如果比结点关键字大,就进入右儿子;如果左儿子或右儿子的指针为空,则报告找不到相应的关键字; 如果 B 树的所有非叶子结点的左右子树的结点数目均保持差不多(平衡),那么 B 树的搜索性能逼近二分查找;但它比连续内存空间的二分查找的优点是,改变 B 树结构(插入与删除结点)不需要移动大段的内存数据,甚至通常是常数开销; 如: 但 B 树在经过多次插入与删除后,有可能导致不同的结构: 右边也是一个 B 树,但它的搜索性能已经是线性的了;同样的关键字集合有可能导致不同的树结构索引;所以,使用 B 树还要考虑尽可能让 B 树保持左图的结构,和避免右图的结构,也就是所谓的“平衡”问题; 实际使用的 B 树都是在原 B 树的基础上加上平衡算法,即“平衡二叉树”;如何保持 B 树结点分布均匀的平衡算法是平衡二叉树的关键;平衡算法是一种在 B 树中插入和删除结点的策略; B- 树 是一种多路搜索树(并不是二叉的):

使用MegaCli监控H700 Raid卡磁盘

泄露秘密 提交于 2020-03-02 03:08:45
使用过程中发现有多个Virtual Drive存在的问题,因此在上一个版本上做了改进。 # zabbix_agentd userparams配置 $ cat zabbix_agentd.userparams.conf UserParameter=raid.h700[*],/usr/local/etc/scripts/check_h700_status_plus.py $1 # zabbix_server调用 $ zabbix_get -s 192.168.10.100 -k raid.h700['State'] Virtual Drive:0 Code:0 Info:Optimal Virtual Drive:1 Code:0 Info:Optimal $ zabbix_get -s 192.168.10.100 -k raid.h700['Cache'] Virtual Drive:0 Code:0 Info:WriteBack Virtual Drive:1 Code:0 Info:WriteBack 源码如下: ####################################################################################### # H700 Raid卡磁盘监控扩展版(包括对多个Virtual Drive进行检查)

磁盘的基础知识——扇区、柱面、磁道、族

老子叫甜甜 提交于 2020-03-01 14:06:15
磁盘的物理结构 磁盘是由若干块坚硬金属材料制成的并涂以磁性介质的盘片压制而成。每个盘有两面,每面各有一个磁头,都可记录信息。要了解硬盘的物理结构,需要弄懂磁道、扇区、柱面、簇等几个概念. 磁道:磁盘上划分了很多个同心圆,这些同心圆就是磁道。但打开 硬盘,用户不能看到这些,实际上磁道是被磁头磁化的同心圆。磁道之间是 有间隔的,因为磁化单元太近会产生干扰. 扇区:每条磁道被分成若干等份的区域,每个区域就是一片扇区。 扇区是硬盘数据存储的最小单位 . 柱面:假如一块磁盘只有3个磁盘片,每块盘片的磁道数是相等的.从 外圈开始,这些磁道被分成了0磁道、1磁道、2磁道……。具有相同磁道编 号的同心圆组成面就称作柱面。为了便于理解,柱面可以看作没有底的铁 桶。柱面数就是磁盘上的磁道数。 柱面是硬盘分区的最小单位. 一个硬盘的容量=柱面数(或磁道数)×磁头数×扇区数×每个扇区的大小(通常是512字节) 簇:扇区是硬盘数据存储的最小单位,但操作系统无法对数目众多的扇区进行寻 址,所以操作系统就将相邻的扇区组合在一起,形成一个簇,然后再对簇进 行管理.每个簇可以包括2、4、8、16、32、64个扇区。族有时也称作磁盘块(block)。它是属于文件系统层面的概念,是文件系统层中数据存储的基本单位。 磁盘的分区 要掌握硬盘的分区,需要掌握 MBR、扩展分区、逻辑分区的概念. 硬盘里分为两个区域

JAVA实用工具类

牧云@^-^@ 提交于 2019-12-07 14:35:07
在开发java项目时,经常都需要频繁处理数据,如果能非常合适、严谨的处理数据,那么将对程序有莫大的好处,例如,提高程序的稳定性,而且有时候数据在使用前是必须处理的,否则就会出错。例如,在操作前对被除数的处理(如果是0怎么办)、字符串转化、编码转换等,针对项目开发中对数据的频繁操作,在我们程序的开发过程中是很有必要对这些处理数据的工具方法进行统一归类使用的,而下面的这个工具类就封装了很多对基础数据的处理操作的方法。因为方法很多,为了方便查询,我先对方法及其实现的功能列了一个清单,如下: 同时也希望大家能把自己使用的工具类发上来共享,谢谢。 一、功能方法目录清单: 1、getString(String sSource)的功能是判断参数是否为空,为空返回"",否则返回其值; 2、getString(int iSource)的功能是判断参数是否为0,为0则返回"",否则返回其值; 3、GBKtoISO(String s)的功能是进行编码转换,由GBK转为 iso-8859-1; 4、ISOtoGBK(String s)的功能是进行编码转换,由iso-8859-1 转为 GBK; 5、getArray(String[] aSource)的功能是判断参数是否为空,为空则返回一个长度为0的字符串数组,否则返回其值; 6、getInt(String sSource)的功能是判断参数是否为空