摘要: MySQL 复制问题的最后一篇,关于双向同步复制架构设计的一些设计要点与制约。 问题和制约 数据库的双主双写并双向同步场景,主要考虑数据完整性、一致性和避免冲突。对于同一个库,同一张表,同一个记录中的同一字段的两地变更,会引发数据一致性判断冲突,尽可能通过业务场景设计规避。双主双写并同... 阅读全文
posted @ 2015-11-25 09:38 mindwind 阅读(9582) 评论(1) 推荐(2) 编辑
摘要: 前文 "《MySQL 数据库事务与复制》" 分析了 MySQL 复制过程中如何保证 binlog 和事务数据之间的一致性,本文进一步分析引入从库后需要保证主从的数据一致性需要考虑哪些方面。 原生复制架构 MySQL 的原生复制架构原理如上图所示。从库的 I/O Thread 线程负责... 阅读全文
posted @ 2015-11-18 10:14 mindwind 阅读(3134) 评论(1) 推荐(1) 编辑
摘要: 又到双十一了,这已经是我到京东后第五个双十一了,如今双十一已经发展成了一个全民的购物狂欢节。 2011 年,是我在京东经历的第一个双十一。那时京东刚刚拓展了图书品类,就搞了一个三小时内下单图书满两百减一百的活动。也正是这个活动刺激了广大爱学习、爱读书的同学疯狂下单,最后订单系统瘫痪了。正是... 阅读全文
posted @ 2015-11-11 03:29 mindwind 阅读(7164) 评论(29) 推荐(12) 编辑
摘要: 好久没有写技术文章了,因为一直在思考 「后端分布式」这个系列到底怎么写才合适。 最近基本想清楚了,「后端分布式」包括「分布式存储」和 「分布式计算」两大类。 结合实际工作中碰到的问题,以寻找答案的方式来剖解技术,很多时候我们都不是在创造新技术,而是在应用技术。 为了更有效率与效果的用好技术,... 阅读全文
posted @ 2015-11-03 22:06 mindwind 阅读(3216) 评论(4) 推荐(5) 编辑
摘要: 有一种看法认为程序员是年轻人的职业。 而今天,三十岁的程序员很多都走到了十字路口 程序员这个行业的知识更新速度很快,一般 3 到 5 年就需要更新换代。 随着年龄增长,程序员学习和吸收新知识的速度会降低,也不再像刚毕业年轻时那样能保持更多的专注。 这时老一代的程序员会感到有一种迷茫和危机感。... 阅读全文
posted @ 2015-11-02 11:32 mindwind 阅读(3778) 评论(6) 推荐(4) 编辑
摘要: 为什么我的博客叫 "[瞬息之间]" 这是一个跟时间有关的话题。 从大学毕业后参加工作,大概到第 5 年时我明显感觉走到了一个瓶颈。那时我是一名程序员,为金融和电信行业的软件系统写着程序。有时早上 10 点上班,晚上 11 点下班,有时下午 7 点去上班,早上 8 点下班(另一个守夜人的故事)。就这... 阅读全文
posted @ 2015-10-15 20:29 mindwind 阅读(2499) 评论(0) 推荐(7) 编辑
摘要: 后端分布式系列」前面关于 HDFS 的一些文章介绍了它的整体架构和一些关键部件的设计实现要点。 我们知道 HDFS 最早是根据 GFS(Google File System)的论文概念模型来设计实现的。 然后呢,我就去把 GFS 的原始论文找出来仔细看了遍,GFS 的整体架构图如下: HD... 阅读全文
posted @ 2015-10-13 20:36 mindwind 阅读(4342) 评论(0) 推荐(4) 编辑
摘要: 在前面的文章 《HDFS DataNode 设计实现解析》中我们对文件操作进行了描述,但并未展开讲述其中涉及的异常错误处理与恢复机制。本文将深入探讨 HDFS 文件操作涉及的错误处理与恢复过程。读异常与恢复读文件可能发生的异常有两种:读取过程中 DataNode 挂了读取到的文件数据损坏HDFS 的... 阅读全文
posted @ 2015-09-02 10:26 mindwind 阅读(10053) 评论(0) 推荐(3) 编辑
摘要: 前面对 HDFS NameNode 和 DataNode 的架构设计实现要点做了介绍,本文对 HDFS 最后一个主要构成组件 Client 做进一步解析。流式读取HDFS Client 为客户端应用提供一种流式读取模型,就像访问本机文件系统一样来访问 HDFS。将复杂的分布式文件系统读取细节隐藏,简... 阅读全文
posted @ 2015-09-01 15:55 mindwind 阅读(1791) 评论(0) 推荐(0) 编辑
摘要: 前文分析了 NameNode,本文进一步解析 DataNode 的设计和实现要点。文件存储DataNode 正如其名是负责存储文件数据的节点。HDFS 中文件的存储方式是将文件按块(block)切分,默认一个 block 64MB(该大小可配置)。若文件大小超过一个 block 的容量可能会被切分为... 阅读全文
posted @ 2015-08-26 10:29 mindwind 阅读(2084) 评论(0) 推荐(0) 编辑
摘要: 接前文 分布式存储-HDFS 架构解析,我们总体分析了 HDFS 架构的主要构成组件包括:NameNode、DataNode 和 Client。本文首先进一步解析 HDFS NameNode 的设计和实现要点。元数据持久化NameNode 将所有元信息以特定的数据结构组织存放在内存中,对于 name... 阅读全文
posted @ 2015-08-25 10:27 mindwind 阅读(1078) 评论(0) 推荐(0) 编辑
摘要: 本文以 Hadoop 提供的分布式文件系统(HDFS)为例来进一步展开解析分布式存储服务架构设计的要点。架构目标任何一种软件框架或服务都是为了解决特定问题而产生的。还记得我们在 《分布式存储 - 概述》一文中描述的几个关注方面么?分布式文件系统属于分布式存储中的一种面向文件的数据模型,它需要解决单机... 阅读全文
posted @ 2015-08-21 21:24 mindwind 阅读(1224) 评论(0) 推荐(0) 编辑
摘要: 分布式存储是相对于单机存储而言,之所以要分布自然是因为互联网时代信息数据大爆炸,单机已经难以满足大型应用的数据存储需求。存储系统的关注点关于存储系统,一般我们关注下面几个方面:数据分布与负载均衡数据存储的可靠性与一致性数据访问性能系统容错能力系统扩展能力在单机存储系统中有一种独立磁盘冗余阵列(RAI... 阅读全文
posted @ 2015-08-20 17:54 mindwind 阅读(5468) 评论(0) 推荐(2) 编辑