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. CF459C Pashmak and Buses 打印全排列

    这题假设将终于的结果竖着看,每一列构成的数能够看成是k进制的数.一共同拥有d列,随意两列都不同样,所以这就是一个d位k进制数全排列的问题,一共同拥有k ^ d个排列.假设k ^ d < n,则打 ...

  2. Notepad工具使用小技巧

    工欲善其事必先利其器 Notepad++是个很不错的文本编辑工具,掌握它的使用技巧可以提高我们工作的效率.见如下: 比较常用的罗列如下:(如果有更好的建议可以留言哈) 1: 添加书签 CTRL+F2 ...

  3. 【题解】[CF718C Sasha and Array]

    [题解]CF718C Sasha and Array 对于我这种喜欢写结构体封装起来的选手这道题真是太对胃了\(hhh\) 一句话题解:直接开一颗线段树的矩阵然后暴力维护还要卡卡常数 我们来把\(2 ...

  4. 在JDK 6和JDK 7的substring()方法的区别?

    原文链接:https://www.programcreek.com/2013/09/the-substring-method-in-jdk-6-and-jdk-7/ 在JDK 6和JDK 7中subs ...

  5. 单元測试中 Right-BICEP 和 CORRECT

    My Blog:http://www.outflush.com/ 在单元測试中,有6个总结出的值得測试的方面,这6个方面统称为 Right-BICEP.通过这6个方面的指导.能够较全然的測试出代码中的 ...

  6. php 身份证号码获取星座和生肖

    发布:thatboy   来源:Net     [大 中 小] 本文介绍下,php用身份证号码获取星座和生肖的方法,一个简单的php实例,从身份证号码中取得星座与生肖信息,有兴趣的朋友参考研究下吧.本 ...

  7. /etc/init.d/nginx

    #! /bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DESC="nginx daemon ...

  8. 电话聊天狂人 【STL】

    7-2 电话聊天狂人(25 分) 给定大量手机用户通话记录,找出其中通话次数最多的聊天狂人. 输入格式: 输入首先给出正整数N(≤10​5​​),为通话记录条数.随后N行,每行给出一条通话记录.简单起 ...

  9. Cortex-M3 Bit-Banding

    Cortex-M3 Bit-Banding 1. 概述 CM3的存储器系统支持所谓的"位带"(bit-band)操作. 通过它,实现了对单一bit的原子操作.位带操作仅适用于一些特 ...

  10. P1856 [USACO5.5]矩形周长Picture

    P1856 [USACO5.5]矩形周长Picture $len$            $sum$              $num$             $flag\_l$ $flage\_ ...