打字猴:1.700509485e+09
1700509485
1700509486 数据科学家养成手册 [:1700503628]
1700509487 数据科学家养成手册 13.6 稳定最重要
1700509488
1700509489 在存储这个层面来说,稳定是非常关键的。这里说的稳定不是指物理层面的硬件不要损坏或者发生其他故障,而是指读写性能方面的稳恒。
1700509490
1700509491 不论支持任何种业务,通常我们都希望完成单项任务的时间是以时间μ为平均值,以尽可能小的值σ为方差的正态分布(如图13-11和图13-12所示)。
1700509492
1700509493
1700509494
1700509495   图13-11 μ=10, σ=2的正态分布     图13-12 μ=10, σ=0.8的正态分布   一次标准读写的完成时间,第二种情况通常要比第一种情况理想。我们都有这样的体会:在一次任务中,如果每次完成的时间都稳定在一个值附近,体验就会显得非常平稳。这种稳定的时间长度由于预期性很好,所以可以基于它去做各种相关任务时间的估算——这些时间的估算值也是稳定且可靠的。例如,使用B-TREE树索引对表中的非重字段查找进行加速时,时间复杂度为O(log n),从“根”到任何一片“叶子”所花费的时间非常稳定。但是,如果不使用这种方式(例如直接使用顺序查找),麻烦就大了。
1700509496
1700509497
1700509498 在不使用索引进行顺序查找的情况下,在对非重字段进行查找时,由于任何一条数据成为被选中数据的概率相同,所以查找的时间复杂度就是O(n),平均每次理论查找次数为。然而,每个样本被查找时所花费的时间迥异,第1个样本被查找到的时间为1,第2个为2,第n个为n。查找时间统计模型方差为
1700509499
1700509500
1700509501
1700509502
1700509503 随着n的增大,方差值就会增大。我们看到的现象是:每次查找的时间都和平均值相差很大,查找时间平均值对描述查找时间而言失去了意义——这有悖于统计学对中平均值的定义。
1700509504
1700509505 这种不稳定的现象简直糟透了。在一个系统中,如果接连发生这种不稳定现象的叠加,则会导致一系列操作时间的不可预知及不可控,最终导致系统层面的调度成为不可解的问题。存储方面,在硬件环境已经确定的情况下,如果希望写入和读取的速度相对稳定,则需要考虑在统计层面研究读写性能,分散I/O热点,并尽量保证对任意数据的读写性能不发生歪斜(5)。
1700509506
1700509507
1700509508
1700509509
1700509510 数据科学家养成手册 [:1700503629]
1700509511 数据科学家养成手册 13.7 安全性和副本
1700509512
1700509513 数据科学家养成手册 [:1700503630]
1700509514 13.7.1 RAID
1700509515
1700509516 在数据存储环节,最后要考虑的就是安全性问题。这里的安全性不是指防范黑客攻击,而是指数据本身和介质的安全问题。
1700509517
1700509518 由于磁盘本身有一定的失效概率,所以需要通过在磁盘上增加数据的副本来保证数据的安全性。在计算机磁盘底层还有一个环节可以调整,那就是磁盘阵列(Redundant Arrays of Independent Disks,RAID,如图13-13所示)。
1700509519
1700509520 RAID在服务器上的应用很普及。借助RAID卡,硬盘有很多种RAID模式可以设置。
1700509521
1700509522
1700509523
1700509524
1700509525 图13-13 RAID卡
1700509526
1700509527 1.RAID0:条带化(Striping)
1700509528
1700509529 RAID0模式将数据读写分散在两块磁盘上,奇数标号的块在一侧,偶数标号的块在另一侧,写入时轮流对两块磁盘进行写入(如图13-14所示)。由于RAID卡的带宽通常比磁盘的I/O能力高得多,所以这种模式可以让写入速度成倍增长,且与磁盘的数量成正比。读出的时候,由于连续读或者随机读的期望都基于读取每块磁盘上数据的概率均等,所以读出的速度理论上也和磁盘的数量成正比。读写的速率上限就是主机的总线(BUS)带宽。
1700509530
1700509531
1700509532
1700509533
1700509534 图13-14 RAID0模式
[ 上一页 ]  [ :1.700509485e+09 ]  [ 下一页 ]