初识NewSQL

2017/12/30 Database

NewSQL 被定义为新一代的数据库。

其主要特征应该是:

支持SQL;
具有可扩展性;
支持事务执行四要素/ACID Transaction;
高可用

现有数据库存在的问题

像MySQL、Oracle、PostgreSQL这样的关系数据库,它们的问题是很难扩展。尽管我们有分片技术,还有youtube/vitess和MySQL proxy等,但它们都不支持分布式事务以及cross-node join连接。

像HBase、MongoDB以及Redis这样的NoSQL数据库:它们可扩展,但不支持SQL,同时也舍弃了事务的一致性

可以看出,NewSQL的出现,就是想解决现有数据库存在的问题,尽可能的实现两种数据库的优点,以符合现在的一些场景功能需求。

NewSQL is a class of modern relational database management systems that seek to provide the same scalable performance of NoSQL systems for online transaction processing (OLTP) read-write workloads while still maintaining the ACID guarantees of a traditional database system。(wikipedia)

NewSQL是指这样一类新式的关系型数据库管理系统,它针对OLTP实现读-写工作负载,追求提供和NoSQL系统相同的扩展性能,且仍然保持传统数据库支持的ACID特性。

NewSQL的扩展性与NoSQL相当,并同时保留了ACID特性。

VoltDB基于H-Store,号称比当前数据库产品的吞吐量高45倍,同时又具有很高的扩展性。它的特性主要有以下几点:

高吞吐、低延迟:通过内存计算,存储过程和串行数据访问实现。
可扩展性:自动分区和复制,保证性能和可扩展性。
高可用性:同步的多主复制(在VoltDB中叫K-safety)。
持久化:数据库快照与命令日志(command log)的创新技术组合
CockroachDB

CockroachDB in Comparison

  MongoDB PostgreSQL CockroachDB
Automated Scaling Yes No Yes
Automated Failover Yes Optional Yes
Automated Repair Yes No Yes
Strongly Consistent Replication No No Yes
Consensus-Based Replication No No Yes
Distributed Transactions No No Yes
ACID Semantics Document-only Yes Yes
Eventually Consistent Reads Yes Yes No
SQL No Yes Yes
Open Source Yes Yes Yes
Commercial Version Optional No Optional

NewSQL 适合的场景有: 高频率请求、短事务的应用,像金融、零售、Web2.0等,以及流式数据应用,像推荐引擎、实时广告平台、点击流处理、欺诈交易检测等。

NewSQL是否能像所声称的强大,能完全取代传统关系数据库和NoSQL呢?我觉得现在还不能,但是,NewSQL凭借自身的优点,已经在很多领域和场景大放异彩,并且,也会有越来越多的公司和项目会使用NewSQL。

参考链接

http://blog.csdn.net/linuxheik/article/details/52578810

http://blog.csdn.net/dc_726/article/details/41909719

https://www.cockroachlabs.com/docs/stable/cockroachdb-in-comparison.html

Search

    Table of Contents