写点什么

SQL 借助于 NewSQL 开始回归

  • 2013-12-14
  • 本文字数:1411 字

    阅读完需:约 5 分钟

新一轮的数据库开发风潮展现出了向 SQL 回归的趋势,只不过这种趋势并非是在更大、更好的硬件上(甚至不是在分片的架构上)运行传统的关系型存储,而是通过 NewSQL 解决方案来实现。

在市场被 NoSQL(一开始叫做“No more SQL”,后来改为“Not only SQL”)逐步蚕食后,近一段时间以来传统的 SQL 开始回归。其中广为传颂的一个解决方案就是分片,不过对于某些情况来说这还远远不够。因此,人们推出了新的方式,有些方式结合了 SQL 与 NoSQL 这两种技术,还有些方式是通过改进关系型存储的性能与可伸缩性来实现,人们将这些方式称作 NewSQL。Google(NoSQL 最初的支持者之一)构建了 F1,这是一个分布式的关系型数据库,将 BigTable 的高可用性与可伸缩性与 SQL 的“一致性和可用性”结合起来。Google 在白皮书 F1: A Distributed SQL Database That Scales (PDF)中是这样介绍 F1 的:

这是由 Google 构建的一个容错、分布式的 OLTP 与 OLAP 数据库,作为新的存储系统用在 Google 的 AdWords 系统上。设计它的目标旨在替换掉分片的 MySQL 实现,因为后者已经无法满足日益增长的可伸缩性与可靠性的需求了。

MemSQL 就是众多的 NewSQL 解决方案中的一个,这是个完全的内存解决方案,用于对结构化与半结构化(JSON)数据进行实时分析。它并没有使用列式存储,而是使用了“无锁的 skip 列表与无锁的 hash tables”以实现更快的数据访问,并且对非分片架构使用了并行处理,不会出现单点失败的情况。

另一个 NewSQL 解决方案是 ClustrixDB ,这是个点对点的非分片的分布式数据库,用于事务处理与实时分析。根据 Clustrix CEO Robin Purohit 所述,他们的数据库在 Twoo.com 每天能够处理 4.4B 个事务,21 个节点(每个节点的配置是 8 核,48GB 内存)的平均延迟为 5 到 10 毫秒,其构建方式是这样的:

从头开始构建的点对点分布式 SQL 数据库,没有单独的协调者(因此就不会出现单个的失败点)。ClustrixDB 使用了分布式事务,事务使用了 Paxos 的一致性协议。ClustrixDB 针对写使用了 2 阶段锁,还使用了分布式的多版本并发控制,用于确保读与写不会互相干扰。这可以保证分布式环境下单个节点数据库严格的 ACID 属性。 ClustrixDB 并没有使用分片架构,这种方式也是唯一一种可以实现线性伸缩的架构。ClustrixDB 将原来只有数据仓库中才拥有的用于实时分析的 Massively Parallel Processing (MPP)带到了主流数据库上。

我们也向 Twoo.com 的 CEO Toon Coppens 提出了这样一个问题:为何最初的 MySQL 分片解决方案无法满足他们的要求,转而去选择一个 NewSQL 呢:

我们花了一些时间了解 Netlog.com 的架构,他们拥有成百个 MySQL 分片,重新平衡与管理这些分片的代价是非常高昂的,更不必说即时修改查询或是在所有分片上创建新查询时的不灵活性了,这种方式并不可取。我们希望一个查询就能将数据查出来。 虽然 NoSQL 提供了不错的可伸缩性,但我们并不想将自己绑定在底层的数据表示上。我们希望在修改产品与特性需求时拥有完全的灵活性,同时又不必修改每天都在变化的网站的数据层(clustrix 提供了快速的变化,同时又能在高负载下运行良好,当然了,它还有其他很多优秀的特性)。

虽然 NoSQL 因其性能、可伸缩性与可用性而广受赞誉,但其开发与数据重构的工作量要大于 SQL 存储。因此,有些人开始转向了 NewSQL,它将 NoSQL 的优势与 SQL 的能力结合了起来。最为重要的是使用能够满足需要的解决方案。

查看英文原文: SQL Makes a Comeback through NewSQL

2013-12-14 03:306853
用户头像

发布了 88 篇内容, 共 263.1 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

软件测试 | 什么是CSS

测吧(北京)科技有限公司

测试

Relocating the Docker root directory

平凡人生

Docker

前端开发培训机构学习方法

小谷哥

大数据学习培训机构该怎么选择

小谷哥

腾讯连续四次上榜福布斯2023全球区块链50强

科技热闻

解读 Java 云原生实践中的内存问题

阿里巴巴云原生

Java 阿里云 云原生

RocketMQ 集成生态再升级:轻松构建云上数据管道

阿里巴巴云原生

阿里云 RocketMQ 云原生

软件测试 | 黑盒测试的方法

测吧(北京)科技有限公司

测试

软件测试 | 什么是HTML?

测吧(北京)科技有限公司

测试

SpringBoot动态配置文件及项目打包部署

微枫Micromaple

maven Profile springboot 部署 项目上线

ChatGPT真的可以取代基础工作岗位吗?

老张

人工智能 产业发展 ChatGPT

ZooKeeper 避坑实践: Zxid溢出导致选主

阿里巴巴云原生

zookeeper 阿里云 云原生

软件测试 | 常用测试策略与测试手段

测吧(北京)科技有限公司

测试

软件测试 | 软件缺陷分为哪几种

测吧(北京)科技有限公司

测试

软件测试 | JavaScript如何使用

测吧(北京)科技有限公司

测试

万亿级对象存储的元数据系统架构设计和实践

Baidu AICLOUD

对象存储 百度沧海

云原生微服务应用平台 EDAS 2022 年度报告

阿里巴巴云原生

阿里云 微服务 云原生

现货合约量化交易系统开发机器人策略

薇電13242772558

量化

Nacos 配置管理最佳实践

阿里巴巴云原生

阿里云 开源 云原生 nacos

设计原则 — O 开放封闭原则

Lemoon Can

设计原则 开放封闭原则

第四届OpenI/O启智开发者大会即将在深圳启动

OpenI启智社区

人工智能 开源 开发者大会 OpenI启智社区

API Explorer 进阶之路 | 一篇文章快速入门!

华为云PaaS服务小智

ONES 支持多项信创适配,打造自主可控的国产化平台

万事ONES

软件测试 | 测试环境搭建

测吧(北京)科技有限公司

测试

软件测试 | Bug的定位方法

测吧(北京)科技有限公司

测试

基于图的下一代入侵检测系统

NebulaGraph

图数据库 安全检测 入侵检测

渲染速度慢,使用云渲染会快多少?

Renderbus瑞云渲染农场

云渲染 渲染慢怎么办?

软件测试 | 白盒测试方法

测吧(北京)科技有限公司

测试

文件同步是什么?解析6个最佳的文件同步应用软件

镭速

软件测试 | web端常见bug解析

测吧(北京)科技有限公司

测试

java培训学习后就业前景如何

小谷哥

SQL借助于NewSQL开始回归_DevOps & 平台工程_Abel Avram_InfoQ精选文章