惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Tenable Blog
C
Cybersecurity and Infrastructure Security Agency CISA
P
Palo Alto Networks Blog
N
News | PayPal Newsroom
L
Lohrmann on Cybersecurity
S
Schneier on Security
C
CXSECURITY Database RSS Feed - CXSecurity.com
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
IT之家
IT之家
云风的 BLOG
云风的 BLOG
博客园_首页
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
C
Cyber Attacks, Cyber Crime and Cyber Security
量子位
人人都是产品经理
人人都是产品经理
S
Securelist
Last Week in AI
Last Week in AI
V
V2EX
Simon Willison's Weblog
Simon Willison's Weblog
AWS News Blog
AWS News Blog
I
Intezer
T
The Exploit Database - CXSecurity.com
雷峰网
雷峰网
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
美团技术团队
Project Zero
Project Zero
博客园 - 叶小钗
Cyberwarzone
Cyberwarzone
A
Arctic Wolf
月光博客
月光博客
大猫的无限游戏
大猫的无限游戏
阮一峰的网络日志
阮一峰的网络日志
博客园 - 【当耐特】
M
MIT News - Artificial intelligence
P
Privacy International News Feed
Blog — PlanetScale
Blog — PlanetScale
C
Cisco Blogs
G
GRAHAM CLULEY
V
Vulnerabilities – Threatpost
K
Kaspersky official blog
P
Proofpoint News Feed
NISL@THU
NISL@THU
Latest news
Latest news
Scott Helme
Scott Helme
The Hacker News
The Hacker News
Know Your Adversary
Know Your Adversary
F
Full Disclosure
The Cloudflare Blog
Spread Privacy
Spread Privacy
H
Hacker News: Front Page

克洛洛日记

一年回本计划 | 克洛洛日记 股票期权的Theta | 克洛洛日记 股票期权的Gamma | 克洛洛日记 股票期权的Delta | 克洛洛日记 KDJ指标 | 克洛洛日记 布林线 | 克洛洛日记 MACD指标 | 克洛洛日记 RSI指标 | 克洛洛日记 时间协议 | 克洛洛日记 聊聊Spring的stereotype注解 | 克洛洛日记 免费申请 JetBrains 全产品 License | 克洛洛日记 Aloha 一个Hexo主题 | 克洛洛日记 泰国之旅 [三] | 克洛洛日记 泰国之旅 [二] | 克洛洛日记 泰国之旅 [一] | 克洛洛日记 Nginx使用SSL证书配置https | 克洛洛日记 i18next | 克洛洛日记 错误排查:非ROOT用户使用密钥进行ssh登录提示输入密码 | 克洛洛日记 使用Github、Travis-CI和Coding.net自动部署博客[三] | 克洛洛日记 使用EditorConfig | 克洛洛日记 JavaScript执行window.print()打印内容为空白 | 克洛洛日记 使用Github、Travis-CI和Coding.net自动部署博客[二] | 克洛洛日记 寓食记 | 克洛洛日记 使用Github、Travis-CI和Coding.net自动部署博客[一] | 克洛洛日记 书单 | 克洛洛日记 WebJars使用示例 | 克洛洛日记 WebJars介绍 | 克洛洛日记 Maven打jar包内容出错 | 克洛洛日记 Wicket的HelloWorld | 克洛洛日记 Java运行时内存结构 | 克洛洛日记 前端优化法则 | 克洛洛日记
数据分布式模型 | 克洛洛日记
海拉鲁球果 <hyrul · 2016-03-26 · via 克洛洛日记

数据分布式模型

· 分布式 / NoSql / it

概述

数据的分布有两种途径:

  • 复制(replication):

    将同一份数据拷贝至多个节点;复制又分为:主从式(master-slave)和对等式(peer-to-peer)。

  • 分片(sharding):

    将不同数据存放在不同节点。

复制

将数据复制到多个服务器上,每份数据都能在多个节点中找到,复制方式又分为主从复制对等复制

主从复制

我们把数据复制到多个节点中,其中有个节点叫做主节点,其余节点叫做从节点。主节点存放权威数据,通常负责处理数据更新操作;从节点一般提供数据读取的功能。复制操作让从节点与主节点同步。

主从复制有这么些好处是:

  • 在需要频繁读取数据的情况下,主从复制有助于提升数据访问性能
  • 主从复制可以增强读取操作的故障恢复能力

但是,主从复制最大的缺陷就是数据的一致性问题。如果数据更新没有通知全部从节点,那么不同的客户端就可能从节点中读取到不同的值,这个问题之后再做补充。

对等复制

对等复制和主从复制的区别就是前者没有主节点这个概念。所有的节点地位相同,都可以接受写入请求,而且丢失其中一个副本,不影响整个数据库的访问。

它的优点是很从容处理出错的节点,因为所有的节点数据都一致,不必担心数据请求会丢失,而且只需增加节点,就可以轻易提升性能。

但是,对等复制的最大问题还是数据的一致性问题。有可能出现两个用户在同一时间试图更新同一条记录,导致写入冲突。主从复制也有数据一致性的问题,不过数据读取的不一致性至少持续时间相对比较短(待主节点通知到所有的从节点,数据就一致了),而写入操作导致的不一致数据却总是存在。

分片

将不同部分的数据分片存放在独立的节点上,每个节点负责自身数据的读取和写入操作,不同的服务器节点服务于不同的用户。为了获取理想效果,必须保证需要同时访问的那些数据存放在同一节点上,并且节点必须排布好这些数据块,使访问速度最优。

在存放同时访问的数据的选择上,可以把聚合作为分布数据的单元,因为聚合就是把需要同时访问的数据放在一起。

节点排布的问题上,首先考虑把数据放得离访问者近一些,然后是保持负责均衡(把聚合数据均匀地分布在各个节点中,让它们需要处理的负载量相等)。

分片可以同时提升读取与写入效率,提升性能。但是,它的故障恢复能力却不强,它只能保证访问此数据的用户才会受影响,其他用户则能正常访问。

结合

主从复制和分片的结合所达到的效果是整个系统有多个主节点,对每项数据来说,负责它的主节点只有一个;对等复制和分片的结合,就是把每片数据存放在多个节点上,这样一旦一个节点出错,可以保证其他节点重建数据。

总结

数据分布分为两种方式,分片复制,其中复制又分为主从对等。主从复制减少了更新数据时的冲突几率,但是主节点的写入操作是瓶颈,而对等复制却相反。