NewSQL

NewSQL

NewSQL 是對各種新的可擴展/高性能資料庫的簡稱,這類資料庫不僅具有NoSQL對海量數據的存儲管理能力,還保持了傳統資料庫支持ACIDSQL等特性。

NewSQL是指這樣一類新式的關係型資料庫管理系統,針對OLTP(讀-寫)工作負載,追求提供和NoSQL系統相同的擴展性能,且仍然保持ACID和SQL等特性(scalable and ACID and (relational and/or sql -access))。

基本介紹

  • 中文名:NewSQL
  • 外文名:NewSQL
  • 概述 :NewSQL 是對各種新的可擴展
  • 歷史:NewSQL一詞的提出
  • 發展趨勢NoSQL謝幕,NewSQL登場
歷史,NewSQL一詞的提出,發展趨勢,現有NewSQL系統廠商舉例,系統分類,新架構,SQL引擎,透明分片,

歷史

NewSQL一詞的提出

NewSQL一詞是由451 Group的分析師Matthew Aslett在研究論文中提出的。它代指對老牌資料庫廠商做出挑戰的一類新型資料庫系統。

發展趨勢

NoSQL謝幕,NewSQL登場
NoSQL將改變數據的定義範圍。它不再是原始的數據類型,如整數浮點。數據可能是整個檔案。NoSQL可能會嚇到DBA,因為他們擔心失去他們自己的領域。
NoSQL資料庫是非關係的、水平可擴展、分散式並且是開源的。MongoDB的創始人Dwight Merriman表示NoSQL可作為一個Web套用伺服器、內容管理器、結構化的事件日誌、移動應用程式的伺服器端和檔案存儲的後備存儲。
分散式資料庫公司VoltDB的首席技術官Michael Stonebraker表示NoSQL資料庫可提供良好的擴展性和靈活性,但他們也有自己的不足。由於不使用SQL,NoSQL資料庫系統不具備高度結構化查詢等特性。NoSQL其他的問題還包括不能提供ACID(原子性、一致性、隔離性和持久性)的操作。另外不同的NoSQL資料庫都有自己的查詢語言,這使得很難規範應用程式接口。Stonebraker表示資料庫系統的滯後通常可歸結於多項因素。諸如以恢復日誌為目的的資料庫系統維持的緩衝區池,以及管理鎖定和鎖定的數據欄位。在VoltDB的測試中發現以上這些行為消耗系統96%的資源。

現有NewSQL系統廠商舉例

包括(順序隨機)Clustrix、GenieDB、ScalArc、Schooner、VoltDB、RethinkDB、ScaleDB、Akiban、CodeFutures、ScaleBase、Translattice和NimbusDB,以及 Drizzle、帶有 NDB的 MySQL 集群和帶有HandlerSocket的MySQL。後者包括Tokutek和JustOne DB。相關的“NewSQL作為一種服務”類別包括亞馬遜關係資料庫服務,微軟SQLAzure,Xeround和FathomDB。

系統分類

NewSQL系統雖然在的內部結構變化很大,但是它們有兩個顯著的共同特點:(1)它們都支持關係數據模型,(2) 它們都使用SQL作為其主要的接口。已知的第一個NewSQL系統叫做H-Store,它是一個分散式並行記憶體資料庫系統。目前NewSQL系統大致分三類:

新架構

第一類型的NewSQL系統是全新的資料庫平台,它們均採取了不同的設計方法。它們大概分兩類:
(1) 這類資料庫工作在一個分散式集群的節點上,其中每個節點擁有一個數據子集。 SQL查詢被分成查詢片段傳送給自己所在的數據的節點上執行。這些資料庫可以通過添加額外的節點來線性擴展。現有的這類資料庫有: Google Spanner, VoltDB, Clustrix, NuoDB.
(2) 這些資料庫系統通常有一個單一的主節點的數據源。它們有一組節點用來做事務處理,這些節點接到特定的SQL查詢後,會把它所需的所有數據從主節點上取回來後執行SQL查詢,再返回結果。

SQL引擎

第二類是高度最佳化的SQL存儲引擎。這些系統提供了MySQL相同的編程接口,但擴展性比內置的引擎InnoDB更好。這類資料庫系統有:TokuDB, MemSQL

透明分片

這類系統提供了分片的中間件層,資料庫自動分割在多個節點運行。這類資料庫包擴:ScaleBase,dbShards, Scalearc。

相關詞條

熱門詞條

聯絡我們