MySQL Horizontal Scaling

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

时间: 2024-10-25 20:36:12

MySQL Horizontal Scaling的相关文章

MongoDB分片存储的集群架构实现

MongoDB分片存储的集群架构实现 如果需要存储大量数据,或者系统的读写吞吐量很大的时候,单个server就很难满足需求了.这个时候我们可以使用MongoDB的分片机制来解决这些问题. 分片的基本概念 分片(sharding)是一种水平扩展(horizontal scaling)的方式,把一个大的数据集分散到多个片服务器上,所有的片服务器将组成一个逻辑上的数据库来存储这个大的数据集.分片对用户(应用层)是透明的,用户不会知道数据很被存放到哪个片服务器上. 这种方式有两个好处: 分片之后,每个片

David Malan teaching CS75 lecture 9, Scalability

https://youtu.be/-W9F__D3oY4 Storage PATA, SATA, SAS (15,000 rpm), SSD, RAID0 : striping, double throughput / size, no redundancy; RAID1 : mirror; RAID2 : bit-level striping with parity, not used today; RAID3 : bit-level striping with dedicated parit

LIST OF NOSQL DATABASES [currently 150]

http://nosql-database.org Core NoSQL Systems: [Mostly originated out of a Web 2.0 need] Wide Column Store / Column Families Hadoop / HBase API: Java / any writer, Protocol: any write call, Query Method: MapReduce Java / any exec, Replication: HDFS Re

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

原文地址:KUBERNETES DISTRIBUTED APPLICATION DEPLOYMENT WITH SAMPLE FACE RECOGNITION APP 原文作者:skarlso 译文出自:掘金翻译计划 好的,伙计,让我们静下心来.下面将会是一个漫长但充满希望和有趣的旅程. 我将使用 Kubernetes 部署分布式应用程序.我试图创建一个类似于真实世界 app 的应用程序.显然,由于时间和精力有限,我不得不忽略一些细节部分. 我的重点将放在 Kubernetes 和应用部署上.

CNCF LandScape Summary

CNCF Cloud Native Interactive Landscape 1. App Definition and Development 1. Database Vitess:itess is a database clustering system for horizontal scaling of MySQL. Apache CarbonData:Apache CarbonData is an indexed columnar data format for fast analyt

RichEdit 各个版本介绍

RichEdit是开发中经常使用到的控件,其版本自1.0起,历经好几年,好几次的更新,在此引用一篇介绍RichEdit版本的博文(http://blogs.msdn.com/b/murrays/archive/2006/10/14/richedit-versions.aspx),留个爪印记录下,以备查看. Version Ships ('ed) with dll name 1.0 Windows 95/98/ME/NT riched32.dll 1.0 Exchange 4.0 for Wind

Java Performance Optimization Tools and Techniques for Turbocharged Apps--reference

Java Performance Optimization by: Pierre-Hugues Charbonneau reference:http://refcardz.dzone.com/refcardz/java-performance-optimization Java is among the most widely used programming languages in the software development world today. Java applications

redis缓存数据库

缓存数据库介绍 redis操作 缓存数据库介绍 NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,泛指非关系型的数据库,随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展.NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题. NoSQL数据库的

HDFS Federation

This guide provides an overview of the HDFS Federation feature and how to configure and manage the federated cluster.这篇文档包好了hdfs federation特点的概述和如何配置并且管理federation集群.Background(背景) HDFS has two main layers:HDFS有两种主要功能:•    Namespaceo    Consists of d