作家
登录

后台架构设计—数据存储层

作者: 来源: 2017-11-24 10:40:37 阅读 我要评论


请求阶段:调和者通知介入者预备提交或撤消事务,所有介入者都须要表决赞成或者不合意。

数据存储重要性:

  • 数据是企业最重要的家当;
  • 数据靠得住性是企业的命根,必定要包管。

单机存储道理:

引擎类型:哈希存储引擎、B树存储引擎、LSM存储引擎

  1. 哈希存储引擎:基于哈希表构造 :数组+链表;支撑Create\Update\Delete\随机Read
  2. B树存储引擎:基于B Tree实现,支撑单笔记录的CURD,支撑次序查找。RDBMS应用较多。
  3. LSM树存储引擎:对数据的修改增量保存在内存,达到必定前提再批量更新稻磁逄;优势在于批量写入;劣势在于攫取需归并磁盘和内存;

避免内存数据损掉:修改操作写入到CommitLog日记。

数据模型:

  1. 文件:以目次树组织,如linux,mac,windows;
  2. 关系型:每个关系是一缸莨狁,多行构成,每行多列;
  3. 键值(Key-Value):Memcached, Tokey, Redis;
  4. 列存储型:Casadra, Hbase;
  5. 图形数据库:Neo4J, InfoGrid, Infinite Graph
  6. 文档型:MongoDB, CouchDB

事务与并发控制:

事务4个根本属性:ACID 原子性、一致性、隔离性、持久性

并发控制:

锁粒度:Process->DB->Table->Row

供给Read并发,Read不加锁:写时复制、MVCC

  数据恢复:经由过程操作日记

多机存储道理:

单机存储道理在多机存储仍然可用;多级存储基于单机存储;

数据分布:

分布在多个节点,节点间负载均衡;

分布方法:

静态:取模、uid%32;

动态:一致性hash,数据飘移问题(A节点更新前出现故障,更新迁徙到B节点后A节点又恢复);

复制:

分布式存储多个副本;包管高靠得住和高可用;Commit Log。

故障检测:

心跳机制、数据迁徙、故障恢复;

长处:简单、便宜,技巧难度低;

拜访转移:拜访路由到非宕机机械;存储数据完全一致;

FLP定理与设计:

在异步消息通信场景,即使只有一个过程掉败,没有任何办法能包管非掉败过程达到一致性。

CAP定理与设计:

CAP:一致性(Consistency)、可用性(Availabilty)、分区容忍性(Tolerance of network Partition)。

一致性和可用性须要折中衡量

分布式存储体系须要可以或许主动容错,也就是说分区容忍性须要包管。

2PC(Two Phase Commit)协定与设计:

用于分布式事务;

两类节点构成:

调和者(1个);

事务介入者若干好多个);

分两阶段:

提交阶段:

收到介入者所有决定计划后,调和者进行决定计划(提交或撤消);

通知介入者履行操作,所有介入者都赞成就提交,不然撤消;

Tech Neo技巧沙龙 | 11月25号,九州云/ZStack与您一路商量云时代收集界线治理实践

介入者收到调和者的通知后履行操作。

2PC协定是浊宣式:

事务介入者可能产生故障

      --设置超不时光;

存储引擎:存储体系的发念头,它决定存储体系的功能和机能;

协定者可能产生故障

应用:交易订单 等;

Paxos协定与设计:

感化:

主节点宕掉落,则选择新节点;

主节点常以操作日记的情势同步备节点。

履行步调:

【编辑推荐】

  1. 分布式存储体系VeSpace应用处景介绍
  2. 现代IM体系中消息推送和存储架构的实现
  3. 软件定义存储下,四种数捷报份保护筹划比较分析
  4. 为什么云办事器上存储的数据更安然
  5. 杉岩数据CTO:对象存储将成为企业存储新标准
【义务编辑:武晓燕 TEL:(010)68476606】

分两种角色:提议者(Prpposer)、接收者(Acceptor);

赞成:Proposer发送accept消息给Accepter请求接收某个提议者;

确认:超一半的Accepter接收,则提议值生效,Proposer发送acknowledge消息通知所有的Accepter提议生效。

与2PC比较::

2PC协定包管多个数据分片上操作的原子性;

FLP Impossiblity(FLP弗成能性):

Paxos协定包管一个数据分片多个副本之间的数据一致性;

Paxos协定用法:

实现全局的锁办事或者定名和设备办事;

---Apache Zookeeper

将用户数据复制到多个数据中间;

---Google Megastore

数据存储层冗余:

多个副本,实现拜访的高可用性。

若何实现:

数据复制:

基于日记;

Master-Slave:mysql\MongoDB

Replic Set:MongoDB

双写:

存储层多主对等构造;比较灵活,但数据模块层成本较高;

数捷报份:

冷备份:

按期将数据复制到某个存储介质,是传统的数据保护手段;

缺点:按期存在数据不一致;恢复数据时光长;

热备份:

online备份;供给更好的高可用性;

异步热备份:

大年夜主存储写入即返回给应用端,由存储体系异步写入其他副本;

同步热备份:

多份数据副本写入同步完成,无主大年夜之分;

为进步机能,应用法度榜样并发写入;

响应延迟是最慢的那台办事器;

数据存储层掉效转移机制:

掉效确认:是否宕机、心跳;

    --日记记录、备用调和者


  推荐阅读

  黑箱难题仍在阻碍深度学习的普及

Tech Neo技巧沙龙 | 11月25号,九州云/ZStack与您一路商量云时代收集界线治理实践 当前,深度进修扛起了人工智能的大年夜旗,让我们得以一窥智能机械在将来的能耐。但深度进修有个不小的问>>>详细阅读


本文标题:后台架构设计—数据存储层

地址:http://www.17bianji.com/lsqh/39209.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)