Day12 分散式储存系统的必要功能

储存领域有个重要的定理 - CAP定理,C(Consistency一致性)A(Availability可用性)P(Partition分割),三个最多只能满足两个

试想一下,假如只有一台电脑,你要的资料都在这台电脑里,他满足了C和A,但没有满足P,因为只有一台机器,数据永远同步,永远存取得到

但是如果你的电脑没有数据,你的数据在远端呢?并且数据为了做备份保护,复制了两份共三份数据在三台电脑里,那们他只能满足CP或是AP,怎麽说呢?这就要看你的需求了,如果想要高一致性,也就是数据写入一台机器,必须等其他两台机器同步好,才能读,那可用性就大大的降低了,如果是追求高可用性,也就是前端不用等,那可能会回传不一致的数据,那C就会降低了,这是CAP基本定理

但也不是说两者不能取得平衡,接下来Lab2将会使用partition的方式,也就是同一个Object拆分成多个components,使用者要get这个object时,会需要将componets组合再回传,这不单满足了一致性,也减低了网路上需要传输的data,增加了可用性

我们会先实作最简单的分散式系统必要功能 - 心跳讯息,确保每台机器都还活着,没有因为记忆体不够或网路有问题disconnected

再来就是Object的metadata,metadata不但能帮我们快速定位object里各个component的存放位置,还能存version和hash来进去去重,节省储存空间
然後是Object的分散储存,我会介绍如何把一个object分个成若干components,然後把各个components放在不同机器,并实验如果一台机器挂了,data还能复原

最後是数据压缩的部分,在前端压缩,能有效的降低end-to-end的网路频宽的使用量,而且在SAN网路里,也能快速的传递components

附带一提,由於机器之间都是透过Restful API进行沟通,一个完备的系统应该是有很多if条件判断异常输入,由於这部分的检查过多,本Lab不会做过多的判断,预设永远有正确的输入,目的只是希望让程序码越短越好,方便读者理解object storage的架构


<<:  纠正很有用,但鼓励的效果更好。

>>:  [Day 12] Sass/SCSS 实作练习

PartiSQL简介

对於习惯用SQL的使用者, 无论是Scan或是Query还是会不太习惯, 也可以采用工具PartiS...

资料的含义 | ML#Day9

实务上,我们可能并没有自己想的那麽了解系统的真实面,这也造就一些起步上的困难,反思一下,这也关於问题...

今天就改变你的人生!不要寄望将来,立即行动,停止拖延。

今天就改变你的人生!不要寄望将来,立即行动,停止拖延。 Change your life today...

Day 11 ( 中级 ) 拍手换图案 ( 二代板 )

拍手换图案 ( 二代板 ) 教学原文参考:拍手换图案 ( V2 ) 这篇文章是针对 micro:bi...

课堂笔记 - 深度学习 Deep Learning (12)

Logistic regression的介绍 Logistic regression就跟其他的回归...