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:157321

评论

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

Permute v3.12.1中文版 Mac全能媒体格式转换器

Rose

ProFind v1.29激活版 mac文件搜索工具

Rose

手机APP与蓝牙通讯的开发框架

北京木奇移动技术有限公司

APP开发 软件外包公司 蓝牙开发

在MWC2025,读懂华为如何以行践言

脑极体

AI

《Operating System Concepts》阅读笔记:p188-p199

codists

操作系统

【每日学点HarmonyOS Next知识】web滚动、事件回调、selectable属性、监听H5内部router、Grid嵌套时高度设置

轻口味

HarmonyOS HarmonyOS NEXT

iNet Network Scanner v3.1.8 永久激活版 mac网络扫描工具

Rose

06 HarmonyOS Next性能优化之LazyForEach 列表渲染基础与实现详解 (一)

全栈若城

HarmonyOS NEXT

我如何增强 Loki 支持 PB 级日志查询

阿南

日志 可观测性 索引 Loki Observability

Apache SeaTunnel 人物专访 | 张东浩:从使用者到Committer的开源历程

Apache SeaTunnel

MWeb Pro v4.6.9 中文激活版 mac好用的博客生成编辑器

Rose

Oniric Glow Generator for Mac(Ps光晕效果生成器) 汉化版

Rose

物体弹簧弹性预设AE脚本Rubberize It! v1.09激活版

Rose

爬取跨境电商AI选品分析

Yan-英杰

Python TCP 爬虫

【每日学点HarmonyOS Next知识】Web Header更新、状态变量嵌套问题、自定义弹窗、stack圆角、Flex换行问题

轻口味

HarmonyOS HarmonyOS NEXT

数据同步写Oracle表耗时25分钟缩短到23秒——SeaTunnel性能优化

Apache SeaTunnel

【每日学点HarmonyOS Next知识】网络请求回调toast问题、Popup问题、禁止弹窗返回、navigation折叠屏不显示返回键、响应式布局

轻口味

HarmonyOS HarmonyOS NEXT

征程 6 工具链 BEVPoolV2 算子使用教程 1 - BEVPoolV2 算子详解

地平线开发者

自动驾驶 算法工具链 地平线征程6

【每日学点HarmonyOS Next知识】web加载pdf、Toggle禁用、Grid多次渲染问题、Web判断是否存在title、 List侧滑栏关闭

轻口味

HarmonyOS HarmonyOS NEXT

【每日学点HarmonyOS Next知识】全局调整字体、h5选择框无法取消选中、margin不生效、Length转换为具体值、Prop和link比较

轻口味

鸿蒙 HarmonyOS HarmonyOS NEXT

PS插件:卡通人物漫画风格一键生成插件Cartoon Maker - Clone - Photoshop Plugin 汉化版

Rose

智能费用审核平台:赋能千行百业,重塑财务审查新生态

中烟创新

Ulysses for Mac v37中文直装版 优秀的markdown写作软件

Rose

OmniGraffle Pro v7.24.2 中文激活版 mac思维导图/流程图

Rose

bodymovin(AE动画导出json工具) 汉化安装教程分享

Rose

热门敏捷工具盘点:国内团队常用的7款选择

易成研发中心

敏捷工具

【每日学点HarmonyOS Next知识】web播放音频、接口调用不成功、底部横幅路由问题、富文本问题、onLoadIntercept修改header

轻口味

HarmonyOS HarmonyOS NEXT

APP与智能手表的通讯

北京木奇移动技术有限公司

APP开发 软件外包公司 蓝牙开发

Downie 4 v4.9.7中文版 好用的苹果Mac视频下载工具

Rose

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