在大数据和人工智能的带动下,越来越多的大型公司开始争夺云服务市场这块香饽饽。
AWS、阿里云、Azure,这些耳熟能详的云服务商依然牢牢占据着全球70%以上的市场,但是随着去年“区块链”这个领域的兴起,未来云服务市场可能发生改变。
目前我们所知道的云服务商、云存储机构都属于中心化存储,而去中心化存储反而拥有更高速,更廉价,更隐私的特点。此前去中心化存储一直无法解决文件上传、下载的信任问题,而“区块链”的出现,正好弥补了去中心化存储的信任问题。
今天,就从传输速度方面来讲讲,去中心化存储,为何能颠覆阿里云、AWS。
去中心化存储拥有比传统云存储数据传输更快的速度,原因是:
首先, 我要讲解的是互联网底层架构。
影响网络传输速度的因素:
  1. 中间经过的路由的数量,一般来说中间经过的路由数量越多,传输速度越慢
  2. 两端的带宽大小,以及剩余情况,特别是服务器端,如果服务器端带宽爆满了,速度肯定会变慢。
  3. 两端中间路由的带宽大小,瓶颈往往是中间最慢的路由,特别是在跨越运营商的时候,或者跨越国界的时候,非常容易遇到瓶颈
  4. 局部的热点事件,也很容易引起网络的拥塞,因为带宽总量不变,当别人用多了,你自然就用少了。
互联网在实际运行的过程中,就像一个城市的交通,其实非常复杂,存在着巨大的不确定性,很难预测。所以不能简单理解为地址位置距离越近,网速越快;但是有一点可以肯定,如果地理位置距离远的,网速一定不会快。下面这个图就是美国的网络运行示意图。
这是东南亚各国的带宽总览,可以看出不少国家的总接入带宽是很少的。
另外,国际流量的调查表格如下:
从表中可以看出,东南亚各国平均到每个人头的跨国带宽是非常低的,另外不少国家的跨国网络也是非常弱的。在此,我抛出一个问题,像Amazon这样的全球顶级云服务提供商, 能够保证每个地方都高速访问吗?
下面来解释这个问题。我们先看一张图,这是Amazon的云服务的全球机房部署图
可以看出,亚马逊云服务在东南亚地区只在新加坡重点部署了两个节点。 我猜测这样做的原因可能是:新加坡国内环境安全且经济实力较为强大,在这里布置节点,使得管理成本最低。
但是,从前面的报告来看,东南亚不少国家的国际互联网连接是很弱的。想象一下,一个泰国的用户,如果把文件存放在新加坡的亚马逊服务器节点上,他必须通过跨国连接才能访问,而柬埔寨整个国家的跨国互联网非常弱,可以推断,他的传输速度一定是很低的。
那么我设计的PPIO去中心化存储为什么能解决这个问题?
因为一旦PPIO项目主网启动,很快,我们的服务方将会遍布全球各地。为什么我们的服务方会遍布全球各地?大家都会有闲置的硬盘空间或者带宽,如果这些闲置空间可以出租赚钱,相信没有人会拒绝。PPIO就是将用户闲置的硬盘空间和带宽进行出租,再通过区块链技术,保证激励是公开透明的,只要用户把存储和带宽接入PPIO提供服务,就能获得激励。
当世界各地都有服务方接入PPIO之后,就相当于在世界各地部署了机房来提供存储服务,用最近的距离服务最近的人,传输速度自然就得到提高。想象一下,上网人数多的地方,同样提供服务的人也会更多,这样,人越多上网速度反而越快。

这是将来世界各地的PPIO服务方地图

我在设计PPIO的时候,引入了P2P的经典重叠网络。所谓重叠网络,简单地说就是在基本物理互联网之上,再做一层基于节点与节点之间的平等逻辑互联网。
PPIO重叠网络就是采用自组织非结构网络的方式,这个方式鼓励就近连接(网络距离)。保持就近连接,存储时会将数据优先存储在就近的租户上,分发时也会优先从距离用户近的节点传输数据,这样能充分利用本地带宽,极大提高传输速度。
当更多的节点加入PPIO网络,每个节点就更容易找到更近更快的临近节点,用于存储或者发布下载。服务器带宽不再是瓶颈,用户增长带来的是更快的传输速度和更好的用户体验。
P2P自组织网络的建立过程
PPIO网络中每个节点会随时维持自己的长连接节点。这些节点我们称为邻居。每个节点维持连接的邻居,会自动进行淘汰,从而使每个节点在长期的在线过程中,适中动态保持连接自己的相对快的邻居,就形成了自组织的P2P重叠网络:
为实现以上操作,每个节点要维持两个实时的库,一个是邻居库,一个是有效候选节点库,这两个库对于重叠网络选择节点至关重要。另外每个节点还要维护历史邻居库,该库记录了历史上成为过邻居的节点和其相关信息。
优先就近存储原则
有邻居节点后,当每个用户上传数据时,PPIO会把大部分资源副本优先放置在邻居服务方或者足够快的邻居服务方上,这样用户再获取资源的时候,就能获得就近传输了,获得非常快的传输体验。当租户节点非常多遍及全球各地的时候,每个地方的存储传输速度都能足够快。
普通的用户一般是很少变更区域的,但是也有特殊情况。我在设计PPIO的时候适应了两种特殊的情况。
1、关于跨越地域的用户
可能存在以下的情况,有用户长期来回在两个地方,这样两个地方的传输速度都需要比较快。PPIO对于这种情况要做专门的优化,由于用户在一个地方A,其邻居也是A地方的邻居,当用户去另外一个地方B的时候,其邻居换成地方B的节点。而再用户的历史邻居节点库里面,有两个地方的节点。
每在一个地方的时候,该地方邻居节点的历史权重就会被提高,另外一个地方的邻居节点的权重就会下降。如果用户长期来回于两地,这种情况会交替出现,导致其历史邻居节点权重差不多。这样用户在上传资源的时候,检索调度节点在选择副本存储租户节点的时候,两个地方的节点都会有。这样该用户不论在哪个地方都能获得较好的用户体验。
2、如果用户永久变更地域
另外,用户可能出现长期或永久变更地点的情况,PPIO给用户设计了一个重新调度操作,只要启动这个操作,就会根据最新的历史邻居节点库的权重重新调度。
不论之前副本书存储在什么租户节点上,都会重新选择租户节点存储新的副本,而新的副本里面,大部分会才采用优先就近存储原则存储数据。这样用户之前存储的数据可以和新存储的数据一样可以享受到高速传输的用户体验。
经过这些努力,我们能做到比中心化存储方案更快地传输速度。
一个问题:
下图是用户存储数据位置图,左边是AWS的S3中心化存储服务,右边是PPIO的去中化化存储网络,你认为哪种方案传输速度会更快?
 
文章作者:Wayne Wong
转载请注明出处
如果有关于区块链学习的交流,可以通过下面的方式联系我:
加我微信,注意备注: 区块链学习
wechat:omnigeeker
telegram: @omnigeeker
twitter: @omnigeeker
zhihu:@Omnigeeker

这个技术的出现,可能会颠覆阿里云、AWS!的更多相关文章

  1. 探索云网络技术前沿,Sigcomm 2019 阿里云参会分享

    Sigcomm 2019简介 一年一度的网络顶级学术峰会Sigcomm于8月20日至22日在北京举行.作为ACM Special Interest Group on Data Communicatio ...

  2. 技术杂记之:在阿里云centos7上部署JDK MYSQL TOMCAT

    今日小编闲来无事,乘着公司新项目即将上线之际,在阿里云上整了一台centos作为测试机.原本以为一个小时搞定,结果还是花了一点小小时间.不管怎么说,记录下来,给各位小白当成课后甜点吧. 价格 先上价格 ...

  3. 阿里云PolarDB及其共享存储PolarFS技术实现分析(下)

    上篇介绍了PolarDB数据库及其后端共享存储PolarFS系统的基本架构和组成模块,是最基础的部分.本篇重点分析PolarFS的数据IO流程,元数据更新流程,以及PolarDB数据库节点如何适配Po ...

  4. 2019亚太内容分发大会,阿里云获CDN领袖奖、技术突破奖

    近日,亚太CDN产业联盟主办的2019亚太内容分发大会在上海召开.本次大会以"5G分发"为主题,集结了CDN领域近千名行业领袖.专家参与.在会上,阿里云斩获“CDN领袖奖”.“技术 ...

  5. 阿里云MVP:开发者的超能力,用技术创造更好世界

    阿里云MVP:开发者的超能力,用技术创造更好世界 2019年3月,第8期阿里云MVP(最有价值专家)完成终审,截至目前,全球已有27个国家和地区.近500位云计算专家和优秀开发者成为阿里云MVP.阿里 ...

  6. [转载]点评阿里云、盛大云等国内IaaS产业

    免责声明:     本文转自网络文章,转载此文章仅为个人收藏,分享知识,如有侵权,请联系博主进行删除.     原文作者:刘黎明      原文地址:http://www.chinacloud.org ...

  7. 阿里云对象存储OSS与文件存储NAS的区别

    一.简介 应用场景:选择一款存储产品,面向文档数据的存取,不会涉及到数据处理. 产品选型主要从OSS和NAS中选择一款,满足文档存储的需求. 二.NAS优缺点 NAS 是一种采用直接与网络介质相连的特 ...

  8. 阿里云产品介绍(二):云服务器ECS的孪生兄弟们

    上一篇介绍的云服务器ECS,是阿里云最基础的产品,也是每一个云计算厂商最基础的产品,俗称爆款.除了标准的云服务器,阿里云也不停的在推出面向特殊业务场地的云服务器,可以说是ECS的孪生兄弟们. 这一篇就 ...

  9. 阿里云 OCS SDK for NodeJS介绍

    阿里云 OCS SDK for NodeJS介绍 阿里云技术团队:熊亮 阿里云 SDK for NodeJS 是为 NodeJS 开发者提供使用阿里云各项服务的统一入口,由阿里云UED团队负责开发维护 ...

随机推荐

  1. 利用cookie存放模糊查询的信息

    将前台传入后台的查询条件,存放到cookie中,并加入响应对象中,将该查询条件存放入浏览器端.(会话cookie,存放在浏览器的内存中,浏览器关闭,cookie消失.[不设置路径,和生命周期]) 注意 ...

  2. 芯灵思SinA33开发板怎样安装虚拟机

    芯灵思SinA33开发板怎样安装虚拟机 今天入手一块芯灵思的开发板,型号为SIN-A33,用的是全志的A33芯片,与其它开发板不同的是, 芯灵思开发板手册上用来搭建开发环境的linux系统是cento ...

  3. combineReducers 对数据进行拆分管以及使用immutable.js

    1 使用combineReaducers 整合reducers import { combineReducers } from 'redux-immutable'; import { reducer ...

  4. mongodb集群性能优化

    mongodb集群性能优化 在前面两篇文章,我们介绍了如何去搭建mongodb集群,这篇文章我们将介绍如何去优化mongodb的各项配置,以达到最优的效果. 警告 不做任何的优化,集群搭建完成之后,使 ...

  5. <------------------字符流--------------------->

    FileWriter 字符输出流: 方法: 写入:write 刷新:flush public static void main(String[] args) throws IOException { ...

  6. Laya学习

    IDE安装 https://www.jianshu.com/p/88fa76a5becc npm uninstall -g typescript npm install -g typescript@2 ...

  7. Fedora Redhat Centos 有什么区别和关系?

    Fedora Redhat Centos 有什么区别和关系? 经常看到有人讨论服务器的操作系统,比如 Readhat 和 Centos,还有 Ubuntu Server. 可能 Ubuntu Serv ...

  8. 关于 php json float 出现很多位的问题

    关于 php json float 出现很多位的问题 serialize_precision http://php.net/manual/en/ini.list.php https://wiki.ph ...

  9. webstorm版本2017.2开发stylus报错

    style 部分声明的时候,要有lang和type属性. 前提是,已经npm安装了stylus,stylus-loader. <style lang='stylus' type='text/st ...

  10. Python Scrapy环境搭建(一)

    本来是以学习的目的添加了几个QQ群,但是发现群内有着很多的小白都在咨询如何搭建环境的问题,所以我这里把自己搭建的方法分享下 1.首先我们需要查看下自己安装的python的版本; 最简单的版本就是在命令 ...