麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數(shù)據(jù)庫 > Access > 正文

Atlas 分布式版重磅來襲

2024-09-07 19:04:29
字體:
供稿:網(wǎng)友

   Atlas 是由 Qihoo 360公司W(wǎng)eb平臺部基礎架構(gòu)團隊開發(fā)維護的一個基于MySQL協(xié)議的數(shù)據(jù)中間層項目。它在MySQL官方推出的MySQL-Proxy 0.8.2版本的基礎上,修改了大量bug,添加了很多功能特性。目前該項目在360公司內(nèi)部得到了廣泛應用,很多MySQL業(yè)務已經(jīng)接入了Atlas平臺,每天承載的讀寫請求數(shù)達幾十億條。同時,有超過50家公司在生產(chǎn)環(huán)境中部署了Atlas,超過800人已加入了我們的開發(fā)者交流群,并且這些數(shù)字還在不斷增加。

  主要功能:

  1.讀寫分離

  2.從庫負載均衡

  3.IP過濾

  4.自動分表

  5.DBA可平滑上下線DB

  6.自動摘除宕機的DB

  Atlas Sharding 簡介

  Atlas Sharding是Atlas最近重點開發(fā)的一個功能, 此功能增加了Mysql的橫向擴展性跟容量, 可以滿足大部分企業(yè)的需求. 目前已經(jīng)在github上以Sharding分支發(fā)布.

  Sharding 的基本思想就是把一個數(shù)據(jù)表中的數(shù)據(jù)切分成多個部分, 存放到區(qū)別的主機上去(切分的策略有多種), 從而緩解單臺機器的性能跟容量的問題. sharding是一種水平切分, 適用于單表數(shù)據(jù)龐大的情景. 目前atlas支持靜態(tài)的sharding方案, 暫時不支持數(shù)據(jù)的自動遷移.

  Atlas以表為單位sharding, 同一個數(shù)據(jù)庫內(nèi)可以同時共有sharding的表與不sharding的表, 不sharding的表數(shù)據(jù)存在未sharding的數(shù)據(jù)庫組中.

  目前Atlas sharding支持insert, delete, select, update語句, 支持不跨shard的事務.

  當然, 由于Mysql分布式的局限性, Atlas Sharding對于SQL的特性支持也是有限的, 但是應付日常的需求, 已經(jīng)足夠了.

  和Mysql replication的不同

  MySQL主從復制就是將一個MySQL實例(Master)中的數(shù)據(jù)實時復制到另一個MySQL實例(slave)中,這個復制是一個異步復制的過程。

  數(shù)據(jù)復制有以下一些特點:

  數(shù)據(jù)分布

  負載平衡(需要借助Atlas或者其他proxy中間件)

  備份

  高可用性(high availability)與容錯

  復制的局限性很明顯, 當數(shù)據(jù)庫寫入頻繁, 但讀取操作少的場景下, 復制就不適合了, 當寫入過于頻繁,很難由一臺主機支撐的時候,我們還是會面臨到擴展瓶頸。換句話說就是復制只能擴展讀性能, 但是對于寫性能的擴展是無能為力的.

  數(shù)據(jù)切分(sharding): 通過某種特定的條件,將我們存放在同一個數(shù)據(jù)庫中的數(shù)據(jù)分散存放到多個數(shù)據(jù)庫(主機)上面,以達到分散單臺設備負載的效果。這樣當寫入的時候, IO就被各個shard所分擔了. 同時, 在每一個Shard上也是可以有復制存在的, 借助Atlas還是能在Shard上做讀分離, 所以復制跟Sharding完全是互相補充, 不排斥的.

  Sharding 架構(gòu)

Atlas 分布式版重磅來襲

 

  Atlas是無狀態(tài)的, 對于后端的多個組, 可以配置任意多個Atlas實例, 這一點和MongoDB的mongos類似.

  Sharding數(shù)據(jù)庫組

  在Atlas中, 將一個組看做是數(shù)據(jù)存儲的單位, 一個組由一臺master, 零臺或者多臺slave組成(mysql主從同步需要由用戶自己配置). 每個組之間的數(shù)據(jù)獨立, 沒關于系, 表的數(shù)據(jù)的各個部分存儲在各個組中.

  組內(nèi)讀寫分離

  Atlas sharding也支持組內(nèi)的讀寫分離, 也就是說Atlas在命中了某個組之后, 還是會對這個組內(nèi)的master與slave執(zhí)行讀寫分離(讀發(fā)送到slave, 寫發(fā)送到master).

  Sharding 數(shù)據(jù)切分策略

  shard key

  每一個shard table都有一個shard key, 其可以是主鍵, 也可以是非主鍵, 但是這個列必須是一個整數(shù). Atlas會利用這個shard key來判斷應該把這條記錄存放到哪一個數(shù)據(jù)庫組中.

  現(xiàn)在Atlas Shardingh支持兩種類型的數(shù)據(jù)切分: Range方式與Hash方式.

  Range 方式

Atlas 分布式版重磅來襲

 

  如上圖中, shard Key范圍在0-1000的數(shù)據(jù)存放在DbGroup0中, 范圍在1000-2000的數(shù)據(jù)存放在DbGroup1中, 2000-MaxInt 的數(shù)據(jù)存放在DbGroup2 中. 這些范圍的大小不需要相同.比如id為shard key的話, sql: "select * from test where id = 1500;", Atlas會將此語句發(fā)往DbGroup1. 暫時Atlas的range是靜態(tài)的, 不支持動態(tài)的增加范圍.

  優(yōu)點:

  對于range的sql查詢?nèi)?where id > 100 or id < 1000), range方式的sharding可以精確的命中后端的數(shù)據(jù)組, 不需要將sql發(fā)到各個mysql去請求數(shù)據(jù), 節(jié)約了網(wǎng)絡傳輸?shù)南?

  缺點

  如果shard key是遞增的, 那么可能會在一段時間內(nèi)的所有sql都命中到同一個數(shù)據(jù)組, 沒有體現(xiàn)出sharding的優(yōu)勢, range不適用于這種場景.

  適用場景

  range適用于對范圍查詢有大量需求, 并且shard key相對離散插入的情景

  hash 方式

Atlas 分布式版重磅來襲

 

  目前Atlas使用取模的方式實現(xiàn)Hash, 也就是說Hash(id) = id % dbgroup_count, 如id = 10, id % 3 = 1, 所以會命中到DbGroup1中.

  優(yōu)缺點

  hash跟range方式是恰好相反的, hash 可以應對數(shù)據(jù)遞增的情景, 即使是在遞增的情況下, sharding的數(shù)據(jù)也是均勻分布在各個數(shù)據(jù)組內(nèi)的, 但是其缺點就是對于范圍的查詢通常都需要查詢所有的dbgroup, 網(wǎng)絡的消耗比較大.

  適用場景

  hash 適用于shard key順序增長, 并對范圍查詢的需求比較小的情景

  有關支持的語句

  Atlas sharding只對sql語句提供有限的支持, 目前支持基本的Select, insert/replace, delete, update語句, 支持全部的Where語法, 但是對于以下語句, 如果語句命中了多臺dbgroup, Atlas均未做支持(如果語句只命中了一個dbgroup, 如select count(*) from test where id < 1000, 其中dbgroup0范圍是0 - 1000, 那么這些特性都是支持的)

  Limit Offset(支持Limit)

  Order by

  Group by

  Join

  ON

  Count, Max, Min等函數(shù)

  這些語句Atlas會返回"ERROR 1105 (HY000): Proxy Warning - Sharing Hit Multi Dbgroup Not Support SQL"錯誤. 請不要在Sharding的表上使用這些特性, 如果對這種特性有需求請不要讓此表sharding.

  注意:

  子查詢在Sharding中可能會返回不正確的結(jié)果, 也請不要使用子查詢. 請把語句拆分成多句執(zhí)行

  對于寫操作, 如果寫操作命中了多個數(shù)據(jù)庫組, 由于部分成功(某個組執(zhí)行失敗)需要回滾的問題, 暫時不支持寫操作命中多個數(shù)據(jù)組的語句.請拆分成多個sql語句執(zhí)行.

  Atlas可能會在接下來的版本中對其中的一些特性中做出支持.

  有關事務支持

共2頁上一頁12下一頁
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 在线成人一区二区 | 欧美成人二区 | 精品69人人人人 | 国产一区二区三区在线免费 | 黄色网址在线视频 | 国产视频在线观看一区二区三区 | 国产一区影院 | 激情久久一区二区 | 在线播放污| 在线观看视频亚洲 | 少妇一级淫片免费放正片 | 91精品国啪老师啪 | 草莓福利社区在线 | 毛片在线视频观看 | 99精品视频在线观看免费 | 成人在线视频网 | 久久av喷吹av高潮av懂色 | 羞羞视频免费入口网站 | 久久看视频 | 黄视频网站免费 | 免费放黄网站在线播放 | 国产免费观看一区二区三区 | 中文字幕一区二区三区久久 | 精品亚洲福利一区二区 | 日韩理论电影网 | 日本一区二区久久 | 欧美黑大粗硬毛片视频 | 欧美视屏一区二区 | 在线2区| hd性videos意大利复古 | 亚洲第一男人天堂 | 在线观看va | 中文字幕电影免费播放 | 黄色av电影在线播放 | 亚州综合图片 | 国产在线精品91 | 国产成人高潮免费观看精品 | 久久99精品国产自在现线 | xxxxhdvideosex| 毛片118极品美女写真 | 91九色论坛 |