Delphi strPas及磁盘阵列再认识

今天代码审核发现我很多问题:先说问题1.程序中调用了Pchar toStr方法,当时用到时好像是delphi有提示此方法就直接用了,被审核出来说可能有内存泄漏,才注意看其实现,原来是我们自己封装的,真正实现代码只有一行Result=strPas(aPchar);然后再看strPas的实现原来strUtils中也是只有一行:Result=aPchar;看到这里我直接将apchar当str用,不再通过几层函数调用进行。2.strtoint居然没用默认值,也没有加异常捕获;3.居然有些无用和冗余的代码。看来以后一定要经常反思自己写过的代码,弄清楚流程是否有更好更简洁的方案才行。

今天被问到磁盘陈列的知识,貌似知道大概的原理也能描述是什么意思,但具体好像自己印象不深了,就搜索加深下印象

RAID 5 是一种存储性能、数据安全和存储成本兼顾的存储解决方案。 RAID 5可以理解为是RAID 0和RAID 1的折中方案。RAID 5可以为系统提供数据安全保障,但保障程度要比Mirror低而磁盘空间利用率要比Mirror高。RAID 5具有和RAID 0相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度比对单个磁盘进行写入操作稍慢。同时由于多个数据对应一个奇偶校验信息,RAID 5的磁盘空间利用率要比RAID 1高,存储成本相对较低。

RAID5把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上,其中任意N-1块磁盘上都存储完整的数据,也就是说有相当于一块磁盘容量的空间用于存储奇偶校验信息。因此当RAID5的一个磁盘发生损坏后,不会影响数据的完整性,从而保证了数据安全。当损坏的磁盘被替换后,RAID还会自动利用剩下奇偶校验信息去重建此磁盘上的数据,来保持RAID5的高可靠性。

  (做raid 5阵列所有磁盘容量必须一样大,当容量不同时,会以最小的容量为准。 最好硬盘转速一样,否则会影响性能,而且可用空间=磁盘数n-1,其中有一块是专门用来校验的,在存储数据的时候,校验盘里面是不会被存入数据的) (Raid 5 没有独立的奇偶校验盘,所有校验信息分散放在所有磁盘上,只是在存储空间上为N-1)

你可能感兴趣的:(Delphi)