免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
我們對(duì)比了5款數(shù)據(jù)庫(kù),告訴你NewSQL的獨(dú)到之處
AI 前線導(dǎo)讀:NewSQL 是一種新方式關(guān)系數(shù)據(jù)庫(kù),意在整合 RDBMS 所提供的 ACID 事務(wù)特性,及 NoSQL 提供的橫向可擴(kuò)展性。本文通過(guò)對(duì) VoltDB、TiDB、Cosmos DB、Citus、Vitess 等 NewSQL 數(shù)據(jù)庫(kù)的介紹,給出了 NewSQL 的獨(dú)到考慮。

更多優(yōu)質(zhì)內(nèi)容請(qǐng)關(guān)注微信公眾號(hào)“AI 前線”(ID:ai-front)

對(duì)大多數(shù)開發(fā)人員而言,SQL 以及 MySQL、PostgreSQL 等關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(即 RDBMS)并不陌生。RDBMS 的基本架構(gòu)原則已歷經(jīng)了數(shù)十年的發(fā)展。而 MongoDB、Cassandra 等 NoSQL 解決方案,則是在本世紀(jì)初為滿足數(shù)據(jù)分布可擴(kuò)展的需求而提出的。

但是最近幾年我們看到,出現(xiàn)了一個(gè)稱為 NewSQL 的新方向。

NewSQL 是一種新方式關(guān)系數(shù)據(jù)庫(kù),意在整合 RDBMS 所提供的 ACID 事務(wù)特性(即原子性、一致性、隔離性和可持久性),以及 NoSQL 提供的橫向可擴(kuò)展性。聽上去 NewSQL 應(yīng)該汲取了這兩個(gè)方向各自的長(zhǎng)處,像是一種完美的解決方案。那它為什么時(shí)至今日方得以推出呢?

數(shù)據(jù)庫(kù)的推出,源自于上世紀(jì)六十年代分離代碼與數(shù)據(jù)的需求。數(shù)據(jù)庫(kù)的最初設(shè)計(jì)基于如下考慮:

  1. 數(shù)據(jù)庫(kù)的查詢用戶數(shù)量有限。

  2. 查詢類型不受限,即開發(fā)人員可以給出任何所需類型的查詢。

  3. 硬件的價(jià)格昂貴。

在當(dāng)時(shí),開發(fā)人員需要通過(guò)終端輸入交互式查詢。鑒于開發(fā)人員是唯一能訪問(wèn)數(shù)據(jù)庫(kù)的用戶,上面的考慮是有意義,且有價(jià)值的。正確性和一致性曾是戶最為看重的兩個(gè)度量,但是時(shí)至今日人們更看重的是性能和可用性。由此,縱向擴(kuò)展可用于解決不斷增加的數(shù)據(jù)需求,以及考慮在數(shù)據(jù)庫(kù)遷移或恢復(fù)時(shí)需移動(dòng)數(shù)據(jù)的情況下的可承受宕機(jī)時(shí)間。

下面快進(jìn)數(shù)十年進(jìn)入當(dāng)前的互聯(lián)網(wǎng)和云時(shí)代,數(shù)據(jù)庫(kù)的需求已大為不同。數(shù)據(jù)的規(guī)模是海量的,而商業(yè)硬件比起上世紀(jì)要更為便宜。

隨著數(shù)據(jù)規(guī)模的增長(zhǎng),以及基于互聯(lián)網(wǎng)的實(shí)時(shí)交互無(wú)處不在,用戶對(duì)數(shù)據(jù)庫(kù)的基本需求呈現(xiàn)出兩個(gè)主要的類別,即 OLAP(在線分析處理)和 OLTP(在線交易處理)。

OLAP 數(shù)據(jù)庫(kù)通常稱為數(shù)據(jù)倉(cāng)庫(kù)。它們用于存儲(chǔ)供商業(yè)智能業(yè)務(wù)統(tǒng)計(jì)和分析歷史記錄。OLAP 數(shù)據(jù)庫(kù)側(cè)重于只讀工作負(fù)載,其中包括用于批處理的即席查詢。OLAP 數(shù)據(jù)庫(kù)的查詢用戶數(shù)相對(duì)較少,通常情況下只有企業(yè)員工可以訪問(wèn)歷史記錄。

OLTP 數(shù)據(jù)庫(kù)用于高度并發(fā)的事務(wù)數(shù)據(jù)處理場(chǎng)景,該場(chǎng)景的特點(diǎn)是實(shí)時(shí)用戶提交預(yù)定義的短時(shí)查詢。事務(wù)處理的一個(gè)簡(jiǎn)單例子,就是普通用戶在電子商務(wù)網(wǎng)站上搜索并購(gòu)買商品。相對(duì)于 OLAP 用戶,盡管 OLTP 用戶訪問(wèn)的數(shù)據(jù)集規(guī)模很小,但是用戶的數(shù)量要龐大很多,并且查詢中可以包括讀操作和寫操作。OLTP 數(shù)據(jù)庫(kù)主要考慮的是高可用性、并發(fā)性和性能。

在大多數(shù) Web 站點(diǎn)上,任一時(shí)刻都可能會(huì)有成百上千的用戶并發(fā)執(zhí)行有效的查詢??紤]到這樣的規(guī)模,系統(tǒng)必須具備高可用性,因?yàn)槊垮礄C(jī)一分鐘,都可能會(huì)導(dǎo)致企業(yè)損失數(shù)千甚至 上百萬(wàn)美元。

Web 站點(diǎn)上用戶提交的查詢是預(yù)定義的,因?yàn)橛脩魺o(wú)法訪問(wèn)數(shù)據(jù)庫(kù)終端并執(zhí)行任意查詢。查詢是存在于應(yīng)用邏輯中的,這使得我們可以針對(duì)高性能做優(yōu)化。

可擴(kuò)展性是這一新數(shù)據(jù)庫(kù)生態(tài)系統(tǒng)中的一個(gè)重要度量,而高可用性則對(duì)企業(yè)的盈利至關(guān)重要。NoSQL 數(shù)據(jù)庫(kù)給出了一種易于實(shí)現(xiàn)可擴(kuò)展性和更好性能的解決方案,解決了 CAP 理論中的 A(可用性)和 P(分區(qū)容錯(cuò)性)上的設(shè)計(jì)考慮。但這意味著,在很多 NoSQL 設(shè)計(jì)中實(shí)現(xiàn)為 最終一致性,擯棄了 RDBMS 提供的強(qiáng)一致性及事務(wù)的 ACID 屬性。

NoSQL 數(shù)據(jù)庫(kù)使用了不同于關(guān)系模型的模型,例如鍵值模型、文檔模型、寬列模型和圖模型等。采用這些模型的 NoSQL 數(shù)據(jù)庫(kù)并不提供規(guī)范化,本身在設(shè)計(jì)上是無(wú)模式的。大多數(shù) NoSQL 數(shù)據(jù)庫(kù)支持自動(dòng)分區(qū),無(wú)需開發(fā)人員干預(yù)即可輕松實(shí)現(xiàn)水平擴(kuò)展。

NoSQL 適用于可接受最終一致性的部分應(yīng)用,例如社交媒體。用戶并不關(guān)注看到的是否為不一致的數(shù)據(jù)庫(kù)視圖,并且考慮到數(shù)據(jù)的狀態(tài)更新、發(fā)推文等,強(qiáng)一致性也并非必要的。但是,NoSQL 數(shù)據(jù)庫(kù)不宜用于對(duì)一致性要求高的系統(tǒng),例如電子商務(wù)平臺(tái)。

NewSQL 系統(tǒng)的提出,正是為了滿足整合 NoSQL 和 RDBMS 特性的需求。其中,NoSQL 提供了可擴(kuò)展性和高可用性,傳統(tǒng) RDBMS 提供了關(guān)系模型、ACID 事務(wù)支持和 SQL。用戶已不再考慮一招能解決所有問(wèn)題(one-size-fits-all)的方案,逐漸轉(zhuǎn)向針對(duì) OLTP 等不同工作負(fù)載給出特定數(shù)據(jù)庫(kù)。大多數(shù) NewSQL 數(shù)據(jù)庫(kù)做了全新的設(shè)計(jì),或是主要聚焦于 OLTP,或是采用了 OLTP/OLAP 的混合架構(gòu)載的全新設(shè)計(jì)。

傳統(tǒng)的 RDBMS 架構(gòu)從一開始設(shè)計(jì)時(shí)并未考慮分布式系統(tǒng),而是在分布式需求出現(xiàn)后,才考慮在最初的設(shè)計(jì)之添加支持分布式的設(shè)計(jì)。由于 RDBMS 實(shí)現(xiàn)了規(guī)范化模式,而非 NoSQL 那樣的聚合表單,因此 RDBMS 中必須引入一些復(fù)雜的概念,才能在支持可擴(kuò)展的同時(shí)保持一致性需求。由此,為支持 RDBMS 中的橫向擴(kuò)展,人們提出了手動(dòng)分片和主從架構(gòu)。

但是,RDBMS 為實(shí)現(xiàn)橫向擴(kuò)展而在性能上做出了很大讓步。這是因?yàn)檫B接運(yùn)算中需要在各個(gè)節(jié)點(diǎn)間移動(dòng)數(shù)據(jù)以實(shí)現(xiàn)聚合,運(yùn)算實(shí)現(xiàn)代價(jià)增大。另外,數(shù)據(jù)維護(hù)開銷變得更為耗時(shí)。為保持 RDBMS 的性能,一些企業(yè)推出了復(fù)雜的系統(tǒng)和產(chǎn)品。但是當(dāng)前,人們依然并不認(rèn)為傳統(tǒng) RDBMS 本身支持可擴(kuò)展。

NewSQL 數(shù)據(jù)庫(kù)為云時(shí)代而生,因此它從一開始就考慮了分布式架構(gòu)。

那么 NewSQL 解決方案提供了那些獨(dú)到特性?

一致性

相對(duì)于可用性而言,NewSQL 更重視一致性,即側(cè)重 CAP 中的 C 和 P。很多 NewSQL 數(shù)據(jù)庫(kù)為提供強(qiáng)一致性而犧牲了部分可用性。這些數(shù)據(jù)庫(kù)為達(dá)成分布式一致性,在全局系統(tǒng)或本地分區(qū)層面使用了 Paxos 或 Raft 共識(shí)協(xié)議。MemSQL 等一些解決方案還提供了一致性和可用性之間的權(quán)衡調(diào)優(yōu),支持不同用例的各種配置。

內(nèi)存數(shù)據(jù)庫(kù)

傳統(tǒng) RDBMS 依賴二級(jí)存儲(chǔ)(即磁盤)作為數(shù)據(jù)存儲(chǔ)的介質(zhì)。常用的二級(jí)存儲(chǔ)包括 SSD 或 HDD。鑒于 OLTP 工作負(fù)載可將歷史數(shù)據(jù)歸檔到數(shù)據(jù)倉(cāng)庫(kù)中,因此并不需要大量的數(shù)據(jù),只需要最新的數(shù)據(jù)。一些 NewSQL 解決方案使用內(nèi)存(RAM)作為存儲(chǔ)介質(zhì)。內(nèi)存訪問(wèn)要比磁盤訪問(wèn)快很多,具體而言,可比 SSD 快百倍,比 HDD 快萬(wàn)倍。

內(nèi)存解決方案提供了更好的性能提升,因?yàn)閮?nèi)存的使用消除或簡(jiǎn)化了 緩存管理 和重度并發(fā)系統(tǒng)。鑒于內(nèi)存中保持了全部數(shù)據(jù)(或是大部分?jǐn)?shù)據(jù)),因此完全沒(méi)有必要做緩存管理。對(duì)于并發(fā)而言,不同的實(shí)現(xiàn)有不同的解決方案,例如序列化等。

那么如何解決持久性問(wèn)題?RAM 本身是非持久介質(zhì)。一旦掉電,需要持久化的數(shù)據(jù)就會(huì)丟失。內(nèi)存數(shù)據(jù)庫(kù)采用了多種方式解決該問(wèn)題。常用方法包括組合使用基于磁盤的非頻繁備份、保存狀態(tài)的日志以實(shí)現(xiàn)可恢復(fù)性,以及對(duì)關(guān)鍵數(shù)據(jù)使用非易失 RAM 介質(zhì)。

下面給出內(nèi)存數(shù)據(jù)庫(kù)的兩個(gè)重要例子,VoltDB 和 MemSQL。

VoltDB

VoltDB 是一種符合 ACID 特性的內(nèi)存關(guān)系數(shù)據(jù)庫(kù)。VoltDB 的架構(gòu)基于 Michael Stonebraker 等提出的 H-Store,一種設(shè)計(jì)用于 OLTP 工作負(fù)載的內(nèi)存數(shù)據(jù)庫(kù)。

VoltDB 關(guān)注快速數(shù)據(jù),目的是服務(wù)于那些必須對(duì)大流量數(shù)據(jù)做快速處理的特定應(yīng)用,例如貿(mào)易應(yīng)用、在線游戲、物聯(lián)網(wǎng)傳感器等 應(yīng)用場(chǎng)景。為實(shí)現(xiàn)高性能,VoltDB 基于 OLTP 原則做了全新的設(shè)計(jì)。

VoltDB 明確以支持存儲(chǔ)過(guò)程為指導(dǎo)思想,讓存儲(chǔ)過(guò)程更接近于數(shù)據(jù),因此 VoltDB 支持執(zhí)行序列化事務(wù)。為實(shí)現(xiàn)序列化事務(wù)處理,一個(gè)事務(wù)會(huì)被切分為一些原子事務(wù),然后做序列化,并在隊(duì)列中依次執(zhí)行。序列化事務(wù)模式消除了管理并發(fā)的開銷,進(jìn)而提高了性能。VoltDB 還支持即席查詢,性能優(yōu)化可受益于存儲(chǔ)過(guò)程。這非常適合 OLTP 工作負(fù)載,因?yàn)榻K端用戶并不能執(zhí)行即席查詢。

ACID 原則中的持久性,對(duì)內(nèi)存數(shù)據(jù)庫(kù)是一個(gè)重要問(wèn)題。VoltDB 采用多種技術(shù)實(shí)現(xiàn)持久性,包括 快照、命令日志、K-safety 機(jī)制和數(shù)據(jù)庫(kù)復(fù)制等。這些方法確保 VoltDB 實(shí)現(xiàn)數(shù)據(jù)冗余,進(jìn)而支持?jǐn)?shù)據(jù)持久化。

如需進(jìn)一步了解 VoltDB 及其架構(gòu),可查看我們前期對(duì) John Hugg 和 Ryan Betts 訪談的播客。

HTAP 特性

前文曾提及,很多 NewSQL 數(shù)據(jù)庫(kù)是完全重新設(shè)計(jì)的。正因?yàn)橹匦略O(shè)計(jì),一些項(xiàng)目希望實(shí)現(xiàn)統(tǒng)一支持事務(wù)處理和工作負(fù)載分析的數(shù)據(jù)庫(kù)。HTAP(混合事務(wù) / 分析處理,Hybrid Transactional/Analytical Processing)一詞 由 Gartner 提出。支持 HTAP 功能的數(shù)據(jù)庫(kù)提供對(duì)高級(jí)實(shí)時(shí)分析,進(jìn)而支持實(shí)時(shí)業(yè)務(wù)決策和智能事務(wù)處理。VoltDB 也提供 HTAP 能力,它更側(cè)重于事務(wù)負(fù)載。其他主流 HTAP 數(shù)據(jù)庫(kù)還包括 TiDB 和 Google 的 Spanner。

TiDB

TiDB 是一款來(lái)自中國(guó)的開源解決方案,它給出了一種兼容 MySQL 的 HTAP 數(shù)據(jù)庫(kù),支持強(qiáng)一致性,并且分布式可擴(kuò)展。TiDB 實(shí)現(xiàn)為分層架構(gòu),其中 TiDB 服務(wù)器作為無(wú)狀態(tài)計(jì)算層出于頂層。底層存儲(chǔ)層實(shí)現(xiàn)為支持事務(wù)的鍵值數(shù)據(jù)庫(kù),稱為 TiKV。TiKV 的設(shè)計(jì)受到了 Google Spanner 的啟發(fā)。

TiDB 層實(shí)現(xiàn)監(jiān)聽 SQL 查詢、解析查詢并創(chuàng)建執(zhí)行計(jì)劃。查詢進(jìn)而將按需切分為各個(gè)子查詢,并發(fā)送給相應(yīng)的 TiKV 存儲(chǔ)。鑒于 TiDB 層是無(wú)狀態(tài)的,因此該層易于實(shí)現(xiàn)擴(kuò)展。

TiKV 層實(shí)現(xiàn)了底層存儲(chǔ)層,它是一種使用 RocksDB 作為物理存儲(chǔ)的鍵值數(shù)據(jù)庫(kù)。TikV 按區(qū)域組織數(shù)據(jù),各個(gè)區(qū)域?qū)⒈淮鎯?chǔ)和復(fù)制。為基于復(fù)制模式實(shí)現(xiàn)持久性和高可用性,TiKV 使用 Raft 共識(shí)算法提供強(qiáng)一致性。TiKV 的分布本質(zhì)提供了對(duì)分布式查詢的支持。

這一計(jì)算層與存儲(chǔ)層的分離解耦架構(gòu),使得 TiDB 可同時(shí)提供對(duì) OLTP 和 OLAP 強(qiáng)大支持。鑒于 TiDB 同時(shí)支持處理 OLTP 和基本 OLAP 負(fù)載,TiSpark 作為一種在 TiKV 上直接運(yùn)行 Spark SQL 的 OLAP 解決方案,可輕易實(shí)現(xiàn)基于 TiDB/TiKV 架構(gòu)的運(yùn)行。TiDB 本身就具有代價(jià)優(yōu)化器和分布式執(zhí)行器,可處理 80% 的即席 OLAP 查詢。

TiSpark 針對(duì)復(fù)雜 OLAP 查詢做了一些優(yōu)化。和 TiDB 層類似,TiSpark 也是一種無(wú)狀態(tài)計(jì)算層,并與 TiKV 層交互。TiSpark 在設(shè)計(jì)上就是通過(guò)與 Spark SQL 的交互去處理復(fù)雜 OLAP 查詢。因此,同時(shí)部署 TiDB 和 TiSpark 可消除 ETL 的代價(jià),給出一種同時(shí)支持分析和事務(wù)需求的統(tǒng)一解決方案。

要了解 TiDB 及其架構(gòu)的更多信息,可查看 我們近期對(duì) Kevin Xu 關(guān)于 TiDB 的訪談。要進(jìn)一步了解支持 TiKV/TiDB 的數(shù)據(jù)物理存儲(chǔ) RockDB,可查看 我們對(duì) Dhruba Borthakur 和 Igor Canadi 關(guān)于 RocksDB 的訪談。要深入了解 TiKV,可查看 我們對(duì)中國(guó)開源項(xiàng)目的報(bào)道。

Cosmos DB

微軟的 Azure Cosmos DB 提供了多種可調(diào)優(yōu)特性,是一種高度靈活的解決方案,可通過(guò)調(diào)整適合多類用例。我們認(rèn)為 Cosmos DB 也是 NewSQL 數(shù)據(jù)庫(kù)。

Cosmos DB 是一種分布于全球的 多模型數(shù)據(jù)庫(kù) 服務(wù)。作為多模型服務(wù),它的底層存儲(chǔ)模型支持鍵值、列存儲(chǔ)、文檔和圖數(shù)據(jù)庫(kù),并支持通過(guò) SQL 和 NoSQL API 提供數(shù)據(jù)。

就全球分布而言,Cosmos DB 在位于全球的多個(gè)數(shù)據(jù)中心保存數(shù)據(jù)備份,確保了可靠性和高可用性。開發(fā)人員可以創(chuàng)建備份,并通過(guò)幾個(gè)基本的 API 調(diào)用實(shí)現(xiàn)數(shù)據(jù)的橫向擴(kuò)展。

Cosmos DB 在設(shè)計(jì)上考慮了降低數(shù)據(jù)庫(kù)管理的代價(jià)。它無(wú)需開發(fā)人員操心索引或模式管理,自動(dòng)維護(hù)索引以確保性能。

Cosmos DB 提供 多個(gè)一致性層級(jí),支持開發(fā)人員在確定所需的適用 SLA 上做出權(quán)衡。除了兩種極端的強(qiáng)一致性情況和最終一致性之外,Cosmos DB 還一并提供了另外五個(gè)良好定義的一致性層級(jí)。每個(gè)一致性層級(jí)提供單獨(dú)的 SLA,確保達(dá)到特定的可用和性能層級(jí)。

作為微軟這樣的技術(shù)和云巨頭所提供的產(chǎn)品,Cosmos DB 易于開發(fā)人員使用,對(duì)性能、可用性和一致性提供了全面的保證。

增強(qiáng) RDBMS

NewSQL 也可以通過(guò)增強(qiáng)現(xiàn)有的 RDBMS 實(shí)現(xiàn)擴(kuò)展的功能,無(wú)需完全重新設(shè)計(jì)數(shù)據(jù)庫(kù)。這樣的解決方案實(shí)現(xiàn)在經(jīng)實(shí)戰(zhàn)驗(yàn)證的 SQL 數(shù)據(jù)庫(kù)之上,增強(qiáng)了現(xiàn)有數(shù)據(jù)庫(kù)的功能。該理念對(duì)于那些現(xiàn)有系統(tǒng)運(yùn)行良好而不愿意遷移到新數(shù)據(jù)庫(kù)解決方案的大型企業(yè)是非常有用的。

Citus

一個(gè)很好的例子,就是構(gòu)建于 PostgreSQL 上的 Citus。

Citus 由近期被 微軟并購(gòu) 的 Citus Data 開發(fā)維護(hù)。它是一款開源 PostgreSQL 擴(kuò)展,通過(guò)透明分布式表和查詢支持橫向擴(kuò)展,進(jìn)而支持分布式 PostgreSQL。

在 Citus 集群中,數(shù)據(jù)庫(kù)表是分布式的。數(shù)據(jù)庫(kù)表被水平分區(qū)到不同的工作節(jié)點(diǎn)上,在用戶看來(lái)與常規(guī)數(shù)據(jù)庫(kù)表并無(wú)二致。Citus 使用一種維護(hù)了數(shù)據(jù)庫(kù)表元數(shù)據(jù)的協(xié)調(diào)器掌握 PostgreSQL 節(jié)點(diǎn)的工作情況,處理查詢,并將查詢并行化到適當(dāng)?shù)谋矸謪^(qū)。

Citus 為 PostgreSQL 添加了查詢路由、分布式表、分布式事務(wù)和存儲(chǔ)過(guò)程等特性,管理了大量的底層細(xì)節(jié),進(jìn)而實(shí)現(xiàn)了水平可擴(kuò)展、高性能的 PostgreSQL。

要了解 Cirus 的更多細(xì)節(jié),可查看 我們就 PostgreSQL 擴(kuò)展對(duì) Ozgun Erdogan 的訪談,以及 就 Postgres 分片對(duì) Marco Slot 的訪談。

Vitess

相對(duì)于 Citus 是基于 PostgreSQL 構(gòu)建的,Vitess 在設(shè)計(jì)上考慮對(duì) MySQL 做出改進(jìn),滿足 MySQL 適用于云時(shí)代的需求。

Vitess 最初是由 Youtube 在 2011 年為適應(yīng)自身擴(kuò)展需求而構(gòu)建的。隨著用戶和數(shù)據(jù)的增長(zhǎng),Youtube 必須要進(jìn)行水平擴(kuò)展和分片,由此創(chuàng)建了 Vitess 解決透明擴(kuò)展的問(wèn)題?,F(xiàn)在 Vitess 已經(jīng)開源,由 CNCF 管理。Vitess 被認(rèn)可為是一種云原生技術(shù),提供了 多處 MySQL 改進(jìn)。

首要改進(jìn)就是引入了多種分片模式。用戶可以創(chuàng)建自己的分片模式,Vitess 負(fù)責(zé)依模式組織分片和數(shù)據(jù)。Vitess 也支持自動(dòng)分片,無(wú)需手工運(yùn)行代碼,并支持只讀宕機(jī)時(shí)間最小化的實(shí)時(shí)重分片。

分片是通過(guò) V 索引(Vindex)和鍵空間(keyspace)技術(shù)實(shí)現(xiàn)的。其中,主 V 索引(Primary Vindex)類似于數(shù)據(jù)庫(kù)索引模式中的主鍵索引。用戶可以指定需要建立主 V 索引的屬性,以及基于 V 索引的數(shù)據(jù)分片數(shù)量。在對(duì)數(shù)據(jù)庫(kù)分片后,基于鍵空間的查詢可被導(dǎo)向到相應(yīng)的分片。

Vitess 的架構(gòu) 使用 vtgate 提供負(fù)載均衡和查詢路由。vtgate 是一種無(wú)狀態(tài)層,可輕易地上下擴(kuò)展。vtgate 將查詢路由至為分片提供代理的 vtable,并返回聚合結(jié)果給 vtgates。

當(dāng)部署到 Kubernetes 等集群編排工具上時(shí),Vitess 依然提供上述優(yōu)點(diǎn)。由于 vtgates 是一種無(wú)狀態(tài)代理,因此適合于部署到容器集群上。這時(shí) Vitess 使用 lockserver 或 etcd 作為元數(shù)據(jù)存儲(chǔ),處理模式定義等管理工作。

Vitess 用 Go 語(yǔ)言實(shí)現(xiàn)。利用 Go 對(duì)并發(fā)的良好支持,它支持對(duì)數(shù)千連接的處理。

結(jié)束語(yǔ)

NewSQL 生態(tài)系統(tǒng)正在持續(xù)增長(zhǎng)和演進(jìn)。我們無(wú)法給出一個(gè)能描述全部 NewSQL 數(shù)據(jù)庫(kù)的通用定義,或是提出一些通用的特征。但是在 NewSQL 概念下提出的多種數(shù)據(jù)庫(kù)設(shè)計(jì),為開發(fā)人員提供了針對(duì)不同用例的多種選項(xiàng)。人們不再寄希望于給出適用于所有用例的單一架構(gòu),NewSQL 推動(dòng)了創(chuàng)新和專業(yè)數(shù)據(jù)庫(kù)設(shè)計(jì)的發(fā)展。

作者簡(jiǎn)介
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
分庫(kù)分表 vs NewSQL數(shù)據(jù)庫(kù)
NoSQL先驅(qū)RethinkDB倒掉后,借此來(lái)看開源新型數(shù)據(jù)庫(kù)NewSQL的未來(lái)
高并發(fā)、高性能 Web 架構(gòu)
數(shù)據(jù)庫(kù)激蕩 40 年,深入解析 PostgreSQL、NewSQL 演進(jìn)歷程
十六款值得關(guān)注的NoSQL與NewSQL數(shù)據(jù)庫(kù)
搞數(shù)據(jù)庫(kù)的還沒(méi)大量應(yīng)用JSON,那您就快要OUT啦!
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服