HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

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:306841
用户头像

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

关注

评论

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

Docker可视化管理工具Portainer

xcbeyond

Docker Portainer 8月日更

一周拿下百度Offer!211本+985硕+计算机专业~

Java 编程 面试 IT 计算机

三十多岁跳槽无路,晋升无门,濒临绝望之际受贵人指点,成功上岸阿里(Java 岗)

Java 编程 程序员 架构 计算机

Linux之crontab命令

入门小站

Linux

架构训练营毕业总结

冬天的树

流处理基本概念(二)

Databri_AI

大数据 flink 窗口函数

看完必让你直呼好家伙!阿里巴巴 6 月新作:“Java架构手册”

Java 编程 程序员 IT 计算机

期末设计

Geek_9cf7b5

【LeetCode】用两个栈实现队列Java题解

Albert

算法 LeetCode 8月日更

【架构实战营】毕业总结

swordman

架构实战营

Java进程cpu100%问题排查

陈皮的JavaLib

Java Linux 面试 8月日更

SLO(服务等级目标)与SLA(服务等级协议)

一个大红包

8月日更

白手起家之搜索利器Elastic search

卢卡多多

ES 8月日更

13年培训出身!八年后成功坐上了阿里P7架构师的位置

Java 编程 程序员 架构 计算机

趁着课余时间学点Python(六)终止循环,阻断循环

ベ布小禅

8月日更

2021年最新最全:30W字!千道Java 后端面试大全(值得收藏)

Java 编程 程序员 架构 面试

年薪50W阿里P7架构师就会点这?并发丨JVM丨多线程丨Netty丨MySQL!

编程 架构 面试 IT 计算机

数字化加速碳基文明向硅基文明的演进

小鲸数据

数字化 数字孪生 碳基文明 硅基文明

前端之数据结构(四)

Augus

数据结构 8月日更

架构设计能力提升

arctec

模块10作业

杨彬

#架构实战营

架构师实战营模块四作业

袁小芬

业务架构图的定位:表达业务层级和关系

arctec

我找遍了全网,总结出足足60W字“阿里大厂面试手册”

Java 程序员 IT 计算机 知识分享

Tensorflow随笔(二)

毛显新

人工智能 深度学习 tensorflow keras

总结

杨彬

#架构实战营

每个人都可以说不

escray

学习 极客时间 朱赟的技术管理课 8月日更

云原生之可观测性【日志篇】 Logstash组件初探

路上的小崔哥

云原生 Logstash 日志 可观测性

喜获蚂蚁金服、拼多多、字节跳动offer!纠结之后入职拼多多。

Java 编程 程序员 面试 计算机

我能行我能行!字节三面 + 微信四面 +PayPal 四面, 大厂面经分享

Java 编程 程序员 架构 IT

毕业设计电商秒杀系统

梦寐凯旋

#架构实战营

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