何为云数据库之云数据库产品的特点
三月 12, 2013 by Eugene · Leave a Comment
何为云数据库
【导读】
当下国内环境,“云”等同于“骗”,但鉴于文章篇幅的限制,只探讨何为云数据库、云数据库产品的特点和重要性。
l 何为云数据库
云数据库是一种基于云的数据存储,提供数据的变更、查询、计算服务,对应用程序而言只需要提交一个数据库连接字符串即可访问的服务,且云数据库的用户不能直接控制运行原始数据库的主机。 Read more
原创文章,转载请注明: 文章地址何为云数据库之云数据库产品的特点
master_pos_wait函数与MySQL数据库主从复制切换
十月 9, 2012 by 丁奇 · 2 Comments
背景
主从切换是高可用MySQL架构的必要步骤(即使用不发生,也要有备无患)。一般设置为双M(M1、M2),假设当前状态为写M1,而M2只读,切换的大致流程如下:
1、 停止应用写M1,将M1设置为只读
2、 检查M2的slave status直到赶上M1
3、 将M1设置为可写
其中在第2步细化为
a) 在M1上show master status;得到binlog位置P,因为已经设为只读,不会变化 Read more
原创文章,转载请注明: 文章地址master_pos_wait函数与MySQL数据库主从复制切换
全球级的分布式数据库 Google Spanner原理
九月 20, 2012 by Eugene · 5 Comments
Google Spanner简介
Spanner 是Google的全球级的分布式数据库 (Globally-Distributed Database) 。Spanner的扩展性达到了令人咋舌的全球级,可以扩展到数百万的机器,数已百计的数据中心,上万亿的行。更给力的是,除了夸张的扩展性之外,他还能同时通过同步复制和多版本来满足外部一致性,可用性也是很好的。冲破CAP的枷锁,在三者之间完美平衡。

Spanner是个可扩展,多版本,全球分布式还支持同步复制的数据库。他是Google的第一个可以全球扩展并且支持外部一致的事务。Spanner能做到这些,离不开一个用GPS和原子钟实现的时间API。这个API能将数据中心之间的时间同步精确到10ms以内。因此有几个给力的功能:无锁读事务,原子schema修改,读历史数据无block。 Read more
原创文章,转载请注明: 文章地址全球级的分布式数据库 Google Spanner原理
Transfer在MySQL数据库双主同步架构中的应用
有同学讨论到Transfer能否支持双主结构,答案是支持的,这里简要描述下。
背景
Transfer既可以当作主从库之外的工具来用,也可以本身充当slave的角色。本文分别描述在这两种使用场景下的部署结构和切换动作。
Slave模式
a) 结构
这个就是最简单的双主啦,Transfer呢?代码直接写到这两个Master里面啦,所以他们就是Transfer. Read more
原创文章,转载请注明: 文章地址Transfer在MySQL数据库双主同步架构中的应用
MySQL多线程同步MySQL-Transfer介绍
七月 8, 2012 by 丁奇 · 2 Comments
一、关于Transfer
MySQL-Transefer(下称Transfer)是一个基于MySQL+patch后得到的主从同步工具。
其主要目的是为了解决原生版本的主从同步里,从库是单线程apply主库的binlog,导致的延迟。
最近完成测试的版本将multi-master (by P.Linux)合并到Transfer中并针对支付宝的应用需求做了定制性能改进。
这里做一个已经完成的完整功能介绍。 Read more
原创文章,转载请注明: 文章地址MySQL多线程同步MySQL-Transfer介绍
弃用NoSQL数据库 CouchDB再见了
【导读】
2012年5月10日,Sauce Labs公司的首席架构师Steven Hazel,写了一篇关于弃用NoSQL数据库CouchDB产品,介绍他们将Couch数据库的数据迁移到MySQL数据库平台中。
在Sauce Lab(酱油实验室)里,我们刚刚庆祝完成一个重大项目—将最后的CouchDB数据库转变为MySQL数据库,以提高服务正常运行时间和可靠性。 由于大部分无故停机的是由于CouchDB数据库宕机引起的,因此完成这种迁移是我们一个重要的里程碑。
CouchDB数据库开始时,是一个非常宝贵的经验,在1.2版本时它的可靠性还是可以的。 但我们的服务对可靠性要求非常高,于是最终决定:这种转变是前进中最有效的方式。
一旦决使用MySQL(具体而言,是Percona的基于InnoDB存储引擎的XtraDB存储引擎,),我们就重构了数据库抽象层,并迁移了所有各种类型的数据库。 在过去几个月,迁移完成后,我们的服务正常运行时间大大提高了。
这篇文章介绍了我们使用CouchDB数据库的经验,以及在哪里遇到了麻烦。我也谈了这方面的经验,如何影响了我们对NoSQL数据库的整体观点,以及在熟悉了NoSQL数据库后,如何积极权衡对MySQL数据库的安装配置。
原创文章,转载请注明: 文章地址弃用NoSQL数据库 CouchDB再见了
系统设计黄金法则 简单之美
四月 25, 2012 by admin · 2 Comments
系统设计黄金法则 简单之美
作者:包云岗 (baoyungang@gmail.com)
最近多次看到系统设计与实现的文章与讨论,再加上以前读过的其他资料以及自己的一些实践教训,让我觉得应该把这些资料汇总整理一下。如果要从讨论不同系统的众多资料中总结一条黄金法则的话,那只有一个词——“简单”;如果用一个英语单词来表达的话,那就是——KISS (Keep It Simple, Stupid!)。
1. 麻省理工方法与新泽西方法(MIT Approach vs. New Jersey Approach) 【1】【2】
原创文章,转载请注明: 文章地址系统设计黄金法则 简单之美
MySQL Cluster 与 MongoDB 复制群集分片设计及原理
四月 5, 2012 by 元云 · 5 Comments
分布式数据库计算涉及到分布式事务、数据分布、数据收敛计算等等要求
分布式数据库能实现高安全、高性能、高可用等特征,当然也带来了高成本(固定成本及运营成本),我们通过MongoDB及MySQL Cluster从实现上来分析其中的设计思路,用以抽象我们在设计数据库时,可以引用的部分设计方法,应用于我们的生产系统
首先说说关系及非关系数据库的特征
MySQL的Innodb及Cluster拥有完整的ACID属性
A 原子性 整个事务将作为一个整体,要么完成,要么回滚
C 一致性 事务开始之前和事务结束以后,数据库的完整性限制没有被破坏 Read more
原创文章,转载请注明: 文章地址MySQL Cluster 与 MongoDB 复制群集分片设计及原理
Twitter开源的通用性数据切分中间件Gizzard
Gizzard是Twitter在11年4月份新推出的一个通用数据切分中间件,在Twitter的架构中占用重要的作用。
从图中看到Gizzard主要用于在MYSQL之上,作用是实现数据切分。但目前据说 Gizzard最主要的作用在用于在memcache和redis上。众所周知,memcache和redis本身缺少(或者实现较弱)主从同步机制。在 这里Gizzard的作用就不仅仅是数据切分,还有备份多写、异常队列等多项功能。
Read more
原创文章,转载请注明: 文章地址Twitter开源的通用性数据切分中间件Gizzard
又拍网技术架构中的分库设计
十一月 30, 2011 by Eugene · 4 Comments
又拍网是一个照片分享社区,从2005年6月至今积累了260万用户,1.1亿张照片,目前的日访问量为200多万。5年的发展历程里经历过许多起伏,也积累了一些经验,在这篇文章里,我要介绍一些我们在技术上的积累。
Read more
原创文章,转载请注明: 文章地址又拍网技术架构中的分库设计

