50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

MySQL/HandlerSocket 和 VoltDB:NoSQL 的竞争者

  • 2010-11-12
  • 本文字数:1453 字

    阅读完需:约 5 分钟

一般认为 NoSQL 数据库在性能方面要优于传统的SQL 数据库。但是有两个SQL 的解决方案宣布:对于大型系统的高可扩展性需求,SQL 仍然是可行的解决方案!这两个SQL 解决方案分别是MySQL 加NoSQL 层插件和支持SQL 的VoltDB 数据库。

MySQL + HandlerSocket

Yoshinori Matsunobu 是 Sun/Oracle 的前雇员,从事 MySQL 的研发工作,目前是 DeNA 的首席数据库和基础设施架构师,他以插件的方式为 MySQL/InnoDB 提供解决方案,可以在一台 2.53GHZ、8 核 CPU、32G 内存的 Nehalem 服务器上把每秒的查询数量(qps)提升到 750,000 以上。在同样的硬件环境下,无插件的 MySQL 只能提供 100,000 左右的 qps,如果使用 memecached 的话,可以增加到大约 400,000。经过对 RDBMS 的分析,Matsunobu 意识到大部分时间都花在 SQL 的开销上,比如调用 MYSQLparse()、MYSQLlex()、make_join_statistics() 和 JOIN::optimize() 等。他写到:

很显然性能降低的原因主要在 SQL 层,而不是“InnoDB(存储)”层。MySQL 必须做很多事情…但 memcached/NoSQL 是不需要做这些额外工作的。

SQL 层的功能包括解析 SQL 语句、打开 / 锁定 / 解锁 / 关闭表、解决并发问题等。Matsunobu 的解决方案就是增加额外的 NoSQL 层:

我们认为最好的方式就是在 MySQL 内部实现一个 NoSQL 的网络服务器。也就是说,编写一个网络服务器作为 MySQL 的插件(守护插件),用来监听特定端口,接收 NoSQL 的协议和 API,然后通过 MySQL 内部存储引擎 API 直接访问 InnoDB。这种方式很像 NDBAPI,不同的是它可以与 InnoDB 交互。

他的团队开发了 HandlerSocket 插件,有了这个插件,MySQL 更像一个 NoSQL 数据库,通过监听一个独立的端口,接收从 SQL 层来的简单查询请求,例如主键查询,索引扫描和插入 / 更新 / 删除。这一变化把数据库性能提升到了 750K qps 以上。常用端口可以接收处理复杂查询,其核心仍然是 SQL 数据库。DeNA 采用 SQL/NoSQL 混合的方式取得了成功,据 Matsunobu 所言,在相同的时间内,这种解决方案把多个 memcached 和 MySQL 主从服务器的方案远远甩在了后面。

VoltDB

另一个很有希望的 SQL 解决方案是 VoltDB ,这是一个内存中的开源 OLTP SQL 数据库,能够保证事务的完整性(ACID)。VoltDB 是由原 Ingres 和 Postgres 的架构师 Mike Stonebraker 设计的。该数据库主要特征如下:

  • 为了获得最大化吞吐量,数据保存在内存中(而不是在硬盘),这样可以有效消除缓冲区管理。
  • VoltDB 通过 SQL 引擎把数据分发给集群服务器的每个 CPU 进行处理。
  • 每个单线程分区自主执行,消除锁定和闩锁的需求。
  • VoltDB 可以通过简单的在集群中增加附加节点的方式实现性能的线性增加。

正如其开发者宣称的那样,该数据库的性能使其成为 NoSQL 解决方案的有力竞争者:

  • VoltDB 在单节点上可以每秒处理 53000 个事务请求(TPS),其他 DBMS 在相同的硬件环境下只能处理 1155 个。VoltDB 的扩展是近似线性的──在 12 个节点的 VoltDB 集群上进行同样测试,可以处理 560,000 TPS。
  • 基准案例:某个客户的在线游戏在 12 个节点的 VoltDB 集群上处理了 130 万 TPS。
  • VoltDB 还针对 NoSQL 的键 - 值存储方式作了基准测试,VoltDB 在处理各种键 - 值存储负载的情况下获得了相同或更好的性能。

除了它的性能,VoltDB 的主要优势是可以与 SQL 用户进行交流,这些 SQL 用户是很好的资源。

近期还会推出 VoltDB 的企业版本,包括基于浏览器的数据库管理系统,提供、管理和监控数据库集群。除了免费的社区版本,针对企业版的支持也开始了。

查看英文原文: MySQL/HandlerSocket and VoltDB: Contenders to NoSQL

2010-11-12 01:157356

评论

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

一个cpp协程库的前世今生(十四)信号量与条件变量

SkyFire

c++ cocpp

模块五

撿破爛ぃ

「架构实战营」

架构实战营-模块四作业

木几丶

「架构实战营」

深入解读aws graviton3

三少

云计算架构师

每个人都要会的复盘知识

石云升

复盘 迭代管理 1月月更

实现DCI架构

元闰子

DDD DCI架构

模块四作业

cqyanbo

架构实战营第 4 期 -- 模块六作业

烈火干柴烛灭田边残月

架构实战营

【Spring专场】「AOP容器」不看源码就带你认识核心流程以及运作原理

码界西柚

spring spring 源码 1月月更 Spring原理

2021的科技卦象·坤·5G沃土上万物生长

脑极体

技术走向管理第一站 技术经理

张老蔫

28天写作

模块四-考试试卷存储方案

Only

架构师实战营 「架构实战营」

架构实战营模块四作业

zhongwy

「架构实战营」

SAP R/3系统的R和3分别代表什么含义,负载均衡的实现原理

汪子熙

负载均衡 abap 1月月更

《亚马逊编年史》阅读散记

boshi

读书笔记

从零打造Instagram

俞凡

架构 Instagram 大厂实践

从2021分布式数据库开发者大会里,我们找出了这8个关键词

OceanBase 数据库

OceanBase 开源 OceanBase 社区版

一图回顾 2021分布式数据库开发者大会精彩看点

OceanBase 数据库

数据库 OceanBase 社区版 开发者大会

探索CPU的调度原理

元闰子

操作系统 CPU调度

在一年一度高交会,看城市发展的“AI三部曲”

脑极体

数据产品经理实战-团队搭建

第519区

团队建设 数据产品经理 数据产品 1月月更

996统计

你?

设计模式【10】-- 顺便看看享元模式

秦怀杂货店

Java 设计模式 享元模式

这是一个操作系统,但既不是Windows也不是Linux

LAXCUS分布式操作系统

云计算 分布式操作系统 计算机集群 分布式应用 行列混合存储

云原生学习总结

好吃不贵

探索OS的内存管理原理

元闰子

操作系统 内存管理

09 Prometheus之可靠性及可扩展性

穿过生命散发芬芳

Prometheus 1月月更

架构训练营模块四作业

沈益飞

架构训练营 架构师训练营 4 期

什么是 Github 的元数据以及如何备份 github 上的数据

汪子熙

GitHub 1月月更

可用性和易用性双重飞跃 | OceanBase社区版3.1.2正式发布

OceanBase 数据库

数据库 OceanBase 社区版 开发者大会

教程直播第6期 | OceanBase 如何进行 Benchmark 测试及调优

OceanBase 数据库

数据库 直播 OceanBase 社区版

MySQL/HandlerSocket和VoltDB:NoSQL的竞争者_数据库_Abel Avram_InfoQ精选文章