1. A BRIEF HISTORY OF DBMSs?
and THE RISE OF NEWSQL
(1)the older DBMSs from the 1980-1990s
(2)the NoSQL DBMSs from the 2000s
? 隨著 Internet 的發(fā)展别惦,一方面狈茉,企業(yè)所需存儲的數(shù)據(jù)規(guī)模不斷增加;另一方面掸掸,在線業(yè)務必須 24 小時不間斷的對外提供服務氯庆。
? 企業(yè)的解決方案有了如下(a)(b)的階段性發(fā)展:
(a)通過簡單的更換更好的物理機器的方式,對 DBMS 的性能進行擴展扰付。
缺點:
(1)隨著數(shù)據(jù)量的增加堤撵,這種方法很容易又會再次達到瓶頸
(2)將數(shù)據(jù)從一臺舊的服務器遷移到新的服務器中,經(jīng)常需要停機羽莺,在這段時間中实昨,應用將無法對外提供服務;
(b)為了解決(a)中提到的問題盐固,企業(yè)采用中間件(middleware)的方式荒给,將一個單節(jié)點(single-node)的DBMS中的數(shù)據(jù)進行分片,存儲到多臺由廉價的物理機構成的集群中刁卜。從應用角度看锐墙,中間件對上在邏輯層面表現(xiàn)為一個單節(jié)點DBMS。當應用發(fā)起查詢請求時长酗,中間件將該請求 redirect and/or rewrite 到集群中的一個或多個節(jié)點上,并將這些節(jié)點的查詢結果進行匯總后桐绒,返回給應用夺脾。
缺點:
? 對于類似于讀取或更新單條記錄的簡單查詢請求,通過中間件性能尚可茉继,但是咧叭,當我們需要更新一個事務中的多條記錄,或一個 join 語句連接的多個表中的多條記錄時烁竭,早期的中間件便無能為力菲茬。
(c)一些企業(yè)選擇放棄中間件,開發(fā)自己的分布式數(shù)據(jù)庫。除了(b)所述原因外婉弹,還有三點主要原因睬魂,(1)傳統(tǒng)的 DBMS 以可用性和性能為代價,必須滿足一致性和正確性镀赌,然而這個特性對于24小時在線提供服務并需要支持大規(guī)模的并發(fā)行為的應用并不必要氯哮;(2)使用如MySQL等擁有 full featured DBMS 并沒有必要;(3)關系模型并不是描述應用數(shù)據(jù)的最佳模型商佛,并且對于簡單的 look-up 查詢操作而言喉钢,SQL 顯得殺雞焉用牛刀。
? 上述的這些問題催生了 NoSQL 良姆,NoSQL 系統(tǒng)的主要特點是:放棄了強事務保證和關系模型(這兩點被認為影響了Web-based application 所需的 DBMS 的擴展性和高可用性的)肠虽,而采用最終一致性和可選擇的數(shù)據(jù)模型(如,key/value玛追,graphs税课,documents)。
? ?使用NoSQL的優(yōu)點在于豹缀,開發(fā)人員可以關注在應用開發(fā)上伯复,而不用再擔心如何擴展 DBMS。缺點在于邢笙,對于諸如金融啸如、訂單相關的系統(tǒng),無法放棄強事務模型和強一致性的保證氮惯,開發(fā)人員需要花費大量的精力編寫代碼處理數(shù)據(jù)一致性和事務的問題叮雳。
? ?此類需求催生了NewSQL。
(2)the NewSQL DBMSs from the 2010s
文中給出的關于NewSQL的定義:
Our definition of NewSQL is that they are a class of modern relational DBMSs that seek to provide the same scalable?performance of NoSQL for OLTP read-write workloads while still maintaining ACID guarantees for transactions. In other words, these systems want to achieve the same scalability of NoSQL DBMSs from the 2000s, but still keep the relational model (with SQL) and transaction support of the legacy DBMSs from the 1970–80s. This enables applications to execute a large number of concurrent transactions to ingest new information and modify the state of the database using SQL (instead of a proprietary API).
? 文中指出妇汗,the OLAP(on-line analytical procession) data warehouses from the 2000s 不應當被歸類為NewSQL帘不。OLAP DBMSs are focused on executing complex read-only queries that take a long time to process large data sets. 而 NewSQL 的特性在于:(1)executing read-write transactions (2)touch a small subset?of data using index lookups (3) repetitive (executing the same queries with different inputs).
2. CATEGORIZATION
本文根據(jù)系統(tǒng)的實現(xiàn)方式,認為 NewSQL 系統(tǒng)可以被分為三類:
New Architectures/ Transparent Sharding Middleware/ Database-as-a-Service
3. THE STATE OF THE ART (what is novel in these NewSQL systems)
Main Memory Storage
Partitioning / Sharding
Concurrency Control
Secondary Indexes
Replication
Crash Recovery