http://www.tuicool.com/articles/miuq63E

http://www.guokr.com/blog/475765/

http://songwie.com/articlelist/44

https://www.youtube.com/watch?v=5yDO-tmIoXY

single database => master / slave  => sharding

( at stage of master/slave, you might need to add a hot-standby master for failover, e.g. DRDB-based, http://highscalability.com/blog/2011/6/27/tripadvisor-architecture-40m-visitors-200m-dynamic-page-view.html, https://en.wikipedia.org/wiki/Distributed_Replicated_Block_Device)

after sharding, how to do "query routing"
a) application layer
b) library-as-sharding (e.g. so-called JDBC-sharding, do it at JDBC layer)
c) proxy-as-sharding

Qihoo 360 Atlas (quite primitive)

based on mysql-proxy, exposes MySQL client protocol;

add /* master */ to SQL in order to force send to master;

manual creation of partition table;

Alibaba B2B Cobar

proxy-based, query parsing / rewrite / routing, result gathering;

expose MySQL client protocol;

failover for data node; (need dual-direction replication between data nodes)

Taobao TDDL - Also as Aliyun DRDS

library-as-sharding, access external config service to determine paritioning rule;

works on JDBC layer;

DRDS : transparent and automatic scaling - just add machine

http://www.oschina.net/news/64312/aliyun-drds

https://yq.aliyun.com/articles/38883

DRDS features :
a) Join : if it's driven by a small table, broadcast the small table to each partition, and do local join - instead of join at the end
b) read/write segregation : policy-driven, DRDS determines which datanode is master and how to route read/write; policy can be updated on the fly; SQL hint to force certain node (e.g. master)
c) redundancy data copy;
d) distributed transaction (read-commit level)

MyCAT

Cobar-based, proxy-based;

client : MySQL CLI, JDBC etc.

Server: MySQL client protocol handler => SQL Parser / Router => SQL Executor => MySQL Instances...

Server / DataNode : Heartbeat check etc.

Google(Youtube): Vitess (vai-tess)

vttablet : a server sits in front of a MySQL database; connection pool to backend MySQL, row cache, rewrite/optimize SQL;

vtgate : light proxy which routes traffic from application to vttablet; health check of vttablet;

topology : metadata store (e.g. Zookeeper)

no transaction support (yet) : https://groups.google.com/forum/#!topic/vitess/e5N_YiODl14

ScaleBase

https://en.wikipedia.org/wiki/ScaleBase

2-phase commit and roll-back;

cross-node join and aggregations

MySQL Horizontal Scaling的更多相关文章

  1. Scalable MySQL Cluster with Master-Slave Replication, ProxySQL Load Balancing and Orchestrator

    MySQL is one of the most popular open-source relational databases, used by lots of projects around t ...

  2. 数据库分片(Database Sharding)详解

    本文由云+社区发表 作者:腾讯云数据库 Introduction 导言 任何看到显著增长的应用程序或网站,最终都需要进行扩展,以适应流量的增加.以确保数据安全性和完整性的方式进行扩展,对于数据驱动的应 ...

  3. CNCF CloudNative Landscape

    cncf landscape CNCF Cloud Native Interactive Landscape 1. App Definition and Development 1. Database ...

  4. [译]Kubernetes 分布式应用部署和人脸识别 app 实例

    原文地址:KUBERNETES DISTRIBUTED APPLICATION DEPLOYMENT WITH SAMPLE FACE RECOGNITION APP 原文作者:skarlso 译文出 ...

  5. Kubernetes工作流之Pods一

    This page provides an overview of Pod, the smallest deployable object in the Kubernetes object model ...

  6. LIST OF NOSQL DATABASES [currently 150]

    http://nosql-database.org Core NoSQL Systems: [Mostly originated out of a Web 2.0 need] Wide Column ...

  7. David Malan teaching CS75 lecture 9, Scalability

    https://youtu.be/-W9F__D3oY4 Storage PATA, SATA, SAS (15,000 rpm), SSD, RAID0 : striping, double thr ...

  8. CNCF LandScape Summary

    CNCF Cloud Native Interactive Landscape 1. App Definition and Development 1. Database Vitess:itess i ...

  9. Redhad的开源Paas平台:OpenShift

    参考redHat的官方文章翻译而来:https://openshift.redhat.com/community/wiki/architecture-overview OpenShift Origin ...

随机推荐

  1. Linux系统初始化流程

    POST-->BIOS(Boot Sequence)-->MBR(bootloader)-->Kernel(initrd)-->/sbin/init(/etc/inittab) ...

  2. 我的Java开发学习之旅------>Java经典排序算法之归并排序

    一.归并排序 归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用.将已有序的子序列合并,得到完全有序的序列:即先使每个子序列 ...

  3. 24、Cocos2dx 3.0游戏开发找小三之网格动作:高炫酷的3D动作

    重开发人员的劳动成果,转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/37596763 网格动作类似于动作特效,能够实现翻转. ...

  4. ME01 创建货源清单

    [转自 http://blog.sina.com.cn/s/blog_6466e5f70100ix3p.html ] SAP中采购货源清单创建的方法有以下几种: 1.ME01 手动逐个创建. 2.ME ...

  5. absolute布局的替代实现

    京东商城首页标价定位 小横条首页导航的下拉 1.京东商城首页标价定位 .p-img{ height: 130px;} .p-price{ margin:-28px 0 0 74px;} .price{ ...

  6. YxdJSON - Delphi 高性能 JSON 库(支持RTTI和序列化操作)

    源:YxdJSON - Delphi 高性能 JSON 库(支持RTTI和序列化操作) Delphi 高性能 JSON 库(支持RTTI和序列化操作) 支持平台: Windows, Android, ...

  7. python优缺点小结

    优点:  1.语言简洁优美 例如去除了大括号,写法简单,写法更接近于英语,其他语言几十上百行的代码,十来行就能解决,而且还好看 2.跨平台,window.linux.mac通用 3.排行高,社区完善 ...

  8. 《CSS权威指南(第三版)》---第二章 选择器

    本章的主要内容是,怎么获取文档中的元素给予渲染: 1.元素选择器: 2.ID选择器: 3.CLSSS选择器: 4.通配选择器:*; 5.属性选择器:selector[] 6.部分属性选择器: sele ...

  9. Spring Boot2.0之 监控管理

    Spring boot监控中心: 针对微服务的服务状态,服务器的内存变化(内存.线程.日志管理等)检测服务配置连接地址是否有用(有些懒加载的情况下,用的时候发现卧槽不能用)模拟访问,懒加载.统计有多少 ...

  10. c语言学习的第12天

    #include <stdio.h> int main(void) { int *p; int i=5; char ch='A'; p=&i; *p=99; printf(&quo ...