01-intro: What’s Really New with NewSQL?

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 的发展,一方面,企业所需存储的数据规模不断增加;另一方面,在线业务必须 24 小时不间断的对外提供服务。

  企业的解决方案有了如下(a)(b)的阶段性发展:

(a)通过简单的更换更好的物理机器的方式,对 DBMS 的性能进行扩展。
缺点
(1)随着数据量的增加,这种方法很容易又会再次达到瓶颈
(2)将数据从一台旧的服务器迁移到新的服务器中,经常需要停机,在这段时间中,应用将无法对外提供服务;

(b)为了解决(a)中提到的问题,企业采用中间件(middleware)的方式,将一个单节点(single-node)的DBMS中的数据进行分片,存储到多台由廉价的物理机构成的集群中。从应用角度看,中间件对上在逻辑层面表现为一个单节点DBMS。当应用发起查询请求时,中间件将该请求 redirect and/or rewrite 到集群中的一个或多个节点上,并将这些节点的查询结果进行汇总后,返回给应用。
缺点
  对于类似于读取或更新单条记录的简单查询请求,通过中间件性能尚可,但是,当我们需要更新一个事务中的多条记录,或一个 join 语句连接的多个表中的多条记录时,早期的中间件便无能为力。

(c)一些企业选择放弃中间件,开发自己的分布式数据库。除了(b)所述原因外,还有三点主要原因,(1)传统的 DBMS 以可用性和性能为代价,必须满足一致性和正确性,然而这个特性对于24小时在线提供服务并需要支持大规模的并发行为的应用并不必要;(2)使用如MySQL等拥有 full featured DBMS 并没有必要;(3)关系模型并不是描述应用数据的最佳模型,并且对于简单的 look-up 查询操作而言,SQL 显得杀鸡焉用牛刀。

  上述的这些问题催生了 NoSQL ,NoSQL 系统的主要特点是:放弃了强事务保证和关系模型(这两点被认为影响了Web-based application 所需的 DBMS 的扩展性和高可用性的),而采用最终一致性和可选择的数据模型(如,key/value,graphs,documents)。
   使用NoSQL的优点在于,开发人员可以关注在应用开发上,而不用再担心如何扩展 DBMS。缺点在于,对于诸如金融、订单相关的系统,无法放弃强事务模型和强一致性的保证,开发人员需要花费大量的精力编写代码处理数据一致性和事务的问题。

   此类需求催生了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

本文根据系统的实现方式,认为 NewSQL 系统可以被分为三类:

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

你可能感兴趣的:(01-intro: What’s Really New with NewSQL?)