分散式資料庫技術論壇回顧

沃趣科技發表於2019-07-11

2019年6月29日,杭州天氣炎熱,智匯中心11樓的分散式資料庫技術論壇也同樣熱火朝天。 


會議於2019年06月29號在杭州市濱江區智匯中心的11樓準時召開,與會的相關人員積極參與,一起聆聽了來自PlanetScale、阿里巴巴、Pivotal、沃趣科技的分散式資料庫相關議題並進行了熱烈的探討。 



會議開始後,主持人首先致辭歡迎了嘉賓和會場的朋友,會議同時也通過zoom提供了遠端訪問方式,給不方便現場參加的朋友提供了遠端互動的方式。之後主持人介紹了一下分散式資料庫論壇的目標和屬性。 


分散式資料庫論壇主要關注的是關係型資料庫和分散式技術。關係型資料庫通過SQL對應用來提供服務,並且提供了事務的ACID特性,在老一輩DBA的年代,曾經是時代的寵兒。


但是隨著網際網路的發展和業務的不斷成長,傳統的資料庫,也可以說是單機資料庫越來越滿足不了龐大的網際網路人群訪問的需要。大家不得不開始利用NoSQL,map reduce,hadoop等技術來充分利用多機的能力,但是這些技術都需要開發人員做大量的工作,要自己實現大量的程式碼,原先在資料庫管理系統上解決的問題都需要開發人員以相對簡單和重複低效的方式來解決。當然,最開始這些技術確實解決了單機上解決不了的問題,大家對新技術的興趣也非常高,時間長了以後,重複性、人肉的工作越來越多,大家都開始苦不堪言,開始尋找更好的解決方案。


現在騰訊雲提供雲函式、阿里雲提供雲API,讓開發和業務人員不用關心底層的具體工具和服務來實現自己的目標,也是在這方面的積極探索。天下大勢,分久必合,合久必分,現在該是合的時候了。


舉個例子,作業系統解決的對單個伺服器的透明,要解決程式排程、儲存訪問、網路連線的問題,而現在最火的k8s的技術,從某種程度上來說不就是在已有的單機作業系統上做了一層軟體,要解決的問題其實跟作業系統差不多,不過是在多個伺服器上,要解決多個伺服器上的儲存、在多個伺服器上的網路、在多個伺服器上的CPU排程等等一些問題。這些問題,將解決問題的範圍從單個伺服器到了多個伺服器。也就是說,就是讓應用程式可以面向的是一個“作業系統”,而不是面向每個伺服器上安裝的多個作業系統,讓應用程式和運維人員可以充分利用多個伺服器組合起來的能力。


在資料庫這一塊,現在比較流行的Google Spanner,TiDB這一類NewSQL分散式解決方案;Oracle RAC、Aurora、PolarDB這種對雲化環境特別有效的共享儲存式分散式解決方案;以及Vitess、MyCat等為代表的分散式中介軟體都在探索在資料庫這一塊的分散式是否能解決單機無法滿足客戶需要的問題。本論壇也主要是學習和探討這方面相關的知識。 



作為一箇中立和以技術分享、思想碰撞為目標的技術論壇,本次論壇需要特別感謝PlanetScale和Woqutech兩家公司,他們幫忙邀請我們的嘉賓,並提供了場地。


| 議題


Vitess:Stateful Storage on K8s


首先上場的嘉賓是Vitess原廠PlanetScale常駐日本的工程師Toliver Jue,他為大家帶來了題為“Vitess:Stateful Storage on K8s”的主題分享。 



Toliver算半個中國人,他的父親是香港人,不過他出生在美國,母語是英文,只能通過英語給與會者來分享。Toliver畢業於麻省理工學院,在Google服務了12年,之後加入了同樣從Google出來的Jiten創立的PlanetScale來負責Vitess相關模組的開發工作及亞太區的相關事務。 


Toliver的演講風趣而幽默,他主要給大家介紹了Vitess的由來以及使用案例,Vitess是Youtube為了解決不斷增長的業務需求來專門設計的資料庫中介軟體,目前來說已經在全球排名最前的應用上使用起來了,包括Cash app、Youtube、slack、Pinterest等,目前在國內的京東也被大規模使用,包括3000+ Databases, 18000+ Tablets。 


Youtube加入Google以後,Vitess對Borg進行了深度適配,所以對k8s天生是適配的,目前在京東也是在k8s體系上執行。之後Toliver介紹了業務效能從小到大擴充套件,Vitess怎麼通過讀寫分離、垂直分片、水平分片來支援,以滿足需求的各種場景化案例。 


Greenplum資料平臺新趨勢



Pivotal的資深產品經理吳疆介紹了他負責的其中一個產品Greenplum資料平臺。Greenplum 大資料平臺基於MPP(大規模並行處理)架構,內建並行儲存、並行通訊、平行計算和優化技術,廣泛的應用在金融、證券、電信各行各業。在最新的Gartner排名中,Greenplum在經典資料分析領域排名第三位。Greenplum自2015年開源以來,2017年釋出了全新的5.0版本,2019年中將釋出6.0版本。本次分享結合Greenplum的歷史,從五個方面介紹了Greenplum的發展趨勢:


1) Greenplum和Postgresql的程式碼合併(Merge)。從Greenplum開源以來,Greenplum一直致力於上游Postgresql的程式碼合併(merge),在已經發布的greenplum 5.0是基於postgresql 8.3,即將釋出的Greenplum 6.0則橫跨postgresql 的6個大版本,基於postgresql 9.4,在Greenplum 7.0則計劃將程式碼merge到greenplum 9.6。隨著程式碼合併的加速,越來越多的postgresql新特性被合併到了Greenplum中


2) 大規模並行處理(massive parallel processing,MPP)架構增強。Greenplum是基於大規模並行處理(massive parallel processing,MPP)架構的資料平臺,在即將釋出的6.0中,新增了若干MPP架構增強的特性,例如複製表(replicated table),線上擴容,磁碟配額管理等


3) 新的管理工具。介紹了Greenplum的管理運維工具Greenplum Command Center (GPCC)和Greenplum backup/restore工具的新特性


4) 資料分析工具的發展。介紹了GPText,MADlib,PostGIS等用作文字分析,機器學習,地理資訊資料分析的新工具


5) 新的執行時環境。介紹了高效能一體機Greenplum Building Box(GBB)和容器環境下的Greenplum--Greenplum for Kubernetes。 


全球唯一深度相容Oracle雲原生資料庫!POLARDB v2.0重磅來襲



絳雲作為阿里巴巴PolarDB for pg的資深工程師,給大家介紹了PolarDB體系架構,詳細介紹了對於傳統資料庫中不能彈性擴容,TB級例項備份慢,資料庫主從延遲高問題等痛點問題在PolarDB中如何解決的。主要強調了最新的PolarDB 2.0對於Oracle相容性的支援,並對多模計算等業務場景進行了詳細的講解。 


雲原生RDS在K8S中的實現



麻鵬飛作為沃趣科技QFusion的產品經理,介紹了QFusion怎麼基於k8s來實現全球前三大關係型資料庫Oracle、MySQL、SQL server的自動部署,彈性擴容和高可用和一致性保證。


QFusion通過CSI標準介面支援多種儲存型別,利用Operator構建資料庫應用業務,從整體上介紹了怎麼基於k8s構建資料庫RDS服務的基本注意點。 


| 圓桌會議及技術討論


議題分享完成後,四位嘉賓一起跟現場的聽眾進行了圓桌會議,一起討論分散式資料庫的各種技術問題。 



Spanner和Vitess的取捨


首先主持人先問了Toliver一個“尖銳”的問題。


Q: 在Google內部既有Spanner又有Vitess,這兩個從分散式資料庫來說是兩個不同的方向,是競爭對手,他們之間的區別是什麼,分別有哪些優缺點,Google內部是怎麼定義這兩款產品的。


Toliver: 首先指出主持人的一個問題,Google內部並不只有這兩款分散式資料庫型別的產品,而是有20多種。Google Spanner和CockroachDB、國內的TiDB一樣,是基於BigTable來實現的,就像TiDB是基於TiKV實現的,而Vitess是基於成熟穩定的目前最流行的開源資料庫MySQL來實現的。Google Spanner專注於資料一致性,QPS要求沒有那麼高,Youtube之前也考慮過使用Spanner,但是受限於其效能的問題,沒有遷移過去。 
Vitess的成本比Google Spanner要低的多,又是基於MySQL來實現的,可以充分利用20多年MySQL成熟的各種資料庫特性,效能也能線性擴充套件,能滿足併發要求高、彈性擴充套件的各種場景。對於絕大部分的公司來說,要實現Google的這種超大規模的叢集,代價和成本太高,收益和成本不成正比。所以對絕大部分公司來說vitess是更加現實和可落地的。


分散式資料庫發展和 未來的趨勢


主持人接著問了Pivotal的資深產品經理吳疆一個“超大”的問題。


Q: 請您談一下當前分散式資料庫的發展情況,不同的方向和未來的趨勢。


吳疆 首先從技術人員關心的高可用、效能、資料量介紹了一下分散式資料庫需要解決的問題。另外作為資深的產品經理,他提到,要做ToB的生意,讓客戶認可你的產品的價值,能夠從口袋裡掏錢,你需要做的遠遠不止讓資料庫能及時切換、效能達到業務的要求以及利用多伺服器來支援龐大的資料量,你還需要關注企業級特性,比如怎麼備份,怎麼管理,給客戶培訓讓客戶能方便使用,有高大上的架構要做,有髒活累活你也得做。 
從分散式資料庫趨勢來說,  第一: 從分散式資料庫在網際網路使用來看,NoSQL等開始加入SQL介面。例如基於hadoop上層開發了hive等。其實原因很簡單,SQL深入人心,表達能力強,一個不是DBA出身,甚至不是計算機出生的人都可以利用SQL來完成他的工作。  第二: 老的資料庫是基於老的硬體來做的。不管是Oracle、Teradata還是其他的資料庫。現在新Flash硬體、雲的環境都對資料庫提供了新的挑戰,分散式資料庫必須要適配新的硬體,跟雲環境配合。 
總結下來兩個趨勢: 1)SQL迴歸,使用者希望通過SQL這個統一的介面來運算元據庫,2)適用新的環境。分散式資料庫需要根據新的硬體,雲環境來開發和支援。


沃趣科技的技術總監魏興華 引用百度前產品經理和首席產品架構師俞軍的公式:“使用者價值 = (新體驗-舊體驗) - 替換成本”作為分散式資料庫當前發展情況和趨勢議題的補充。 
首先,他以沃趣科技的QData的價值為例,說明在替換老的IOE時遇到的困難和阻礙,使用者替換為新的架構需要考慮新的產品的價值是否足夠大,遷移成本是否足夠低以決定是否要替換為QData。 
而在他看來分散式資料庫目前還在寒武紀,處在萬物生長的時刻,各種新技術層出不窮,但是這些技術目前成熟度還不夠,還處在不斷進化的過程中。新產品的價值比舊產品價值好才可能會產生替換,現在來看其實新的分散式資料庫是否真正可用和它的價值有多大還有待驗證。 
而從寒武紀後期的經驗來說,要再往前走一步,需要大量的優勝劣汰,在這個過程中鍛煉出真金,湧現出真正對客戶有價值的產品才是未來。他對這個未來充滿信心,也期待能早日擁抱這樣的產品。


CAP和BASE理論對PolarDB實現的影響


Q: 對分散式資料庫而言,繞不過去的一個話題就是CAP理論。魚與熊掌不可兼得,PolarDB在具體實現方面是怎麼解決的?


絳雲: CAP定理(CAP theorem),又被稱作布魯爾定理(Brewer's theorem),它指出對於一個分散式計算系統來說,不可能同時滿足以下三點:

  1.一致性(Consistency) (等同於所有節點訪問同一份最新的資料副本)

  2.可用性(Availability)(每次請求都能獲取響應,不會出錯)

  3.分割槽容錯性(Partition tolerance)(以實際效果而言,分割槽相當於對通訊的時限要求。系統如果不能在時限內達成資料一       致性,就意味著發生了分割槽的情況,必須就當前操作在C和A之間做出選擇。)

由於分散式資料庫的結構特性,根據分散式系統的CAP定理,實現ACID事務需要付出很大的成本來維護可用性,所以為了保障可用性而總結出一套弱化的事務特性:

  1.基本可用(Basically Available):系統能夠基本執行、一直提供服務。

  2.軟狀態(Soft-state):系統不要求一直保持強一致狀態。

  3.最終一致性(Eventual consistency):系統需要在某一時刻後達到一致性要求。

簡稱BASE,與ACID相對應(acid為“酸”的英文名稱,base為“鹼”的英文名稱)。 
除了上述這些大家耳熟能詳的分散式理論以外,在實現過程和使用者使用過程,PolarDB還考慮到了因果一致性,寫後讀一致性,會話一致性,單調讀一致性,單調寫一致性等的場景。舉個例子,如果使用者對一致性要求比較高,讀到資料就必須從寫節點上取,當然效能肯定就無法保證了。而其實PolarDB是支援ms級延遲的可讀節點讀的,雖然無法保證那麼強的一致性,但是讀效能的擴充套件能大大提升。類似的PolarDB還有很多這種設計,來進行設計和實現上的平衡。


分散式資料庫中介軟體的全域性一致性問題


主持人問完問題以後,就是自由交流時間了,想不到首先發難的反而是場上的嘉賓。


絳雲首先向Toliver提出了一個通常分散式資料庫中介軟體的致命問題:vitess是否能保證全域性一致性。也就是說,在分散式場景下,多個伺服器來進行同一個事務的操作,是否會出現不一致,另外,對應的死鎖是否能避免。


Toliver解釋,雖然vitess在3.0是支援2PC的分散式事務的,但是對arbitrary deadlock問題目前來說沒有太好的解決方案。


PolarDB相比Oracle的效能


現場的氣氛開始濃烈起來。結果懟人者終被懟,第一個聽眾也對絳雲提出了一個關鍵的問題。


Q: PolarDB號稱要替換Oracle,有沒有對比過效能列?


絳雲: 首先糾正聽眾的一個誤區,直接的效能對比是不科學的,PolarDB和Oracle沒法採用同樣的伺服器、軟硬體,PolarDB採用了自研的Polar Storage儲存,並且採用了三副本,SQL和資料量都不太可能一樣。目前PolarDB已經支援每秒百萬級的查詢,已經滿足絕大部分業務場景。


Vitess和MyCat怎麼競爭


Q: Vitess相對國內現在已經流行起來的MyCat、DRDS、Sharding Sphere來說是一個新來的競爭者,後續準備怎麼應對?


Toliver: 首先說明Vitess是完全開源的,目前開源的版本跟企業版以及Google內部使用的版本是一致的,大家可以放心使用。第二,目前來說,開源的時代來說各個產品都有其側重點,各個產品都會相互借鑑,如果說某一個產品全面優於另外一個產品,另外一個產品自然就會被淘汰掉。


Greenplum對OLTP的支援程度


Q: Greenplum是專門對OLAP來設計的,但是其實現實的環境中,使用者既有OLAP又有OLTP型別的需求,在新的版本中Greenplum對OLTP的支援有沒有提升,大概是多少。


吳疆: 在6.0的版本中,對OLTP的支援提升了非常多,目前實測結果是100倍,並且之前的表鎖目前被拆分成了行鎖,效能會有非常大的提升。


Oceanbase和PolarDB的優劣


最後的一個問題也很“勁爆”,聽眾直接提問絳雲。


Q: 在阿里裡面Oceanbase和PolarDB的定位和優劣勢,效能到底誰比較強。


絳雲: 首先,這兩種分散式資料庫的架構不同,Oceanbase是share noting的,而PolarDB是share everything的,兩者的定位會有所區別;效能方面,因為兩個都是公司的產品,只能說效能都不相伯仲。


| 問卷調查及抽獎



論壇的最後有兩位現場的幸運聽眾抽到了PlanetScale從美國帶過來的UBL Speaker,提問的和現場的朋友也拿到了Vitess的T恤,並參與了問卷調查。 


從問卷調查的結果來說,阿里、騰訊等的分散式資料庫的呼聲最高,而丁奇、彭立勳、何登成、樑飛龍等大神的分享也最讓人期待。 


讓我們繼續期待下一場分散式資料庫技術論壇的盛宴!


-----------------------------------------


關注下面技術公眾號,回覆“技術論壇”

戳連結領取嘉賓分享PPT


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28218939/viewspace-2650221/,如需轉載,請註明出處,否則將追究法律責任。

相關文章