写点什么

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

评论

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

一款网络安全软件推荐-企业小伙伴要看哦!

行云管家

网络安全 数据安全 堡垒机

HarmonyOS NEXT 实现滑动拼图验证码功能

威哥爱编程

HarmonyOS HarmonyOS框架 HarmonyOS NEXT HarmonyOS5.0

如何使用通义灵码辅助学习C++编程 - AI编程助手提升效率

阿里云云效

c++ 人工智能

麦杰科技即将亮相2025第七届工业医院发展论坛:工业数据底座赋能工业设备全生命周期管理

麦杰研究院

大语言模型→超能力者的边界探索与破局脑洞

代码制造者

#大语言模型

【2025实战】淘宝天猫商品数据接口逆向分析手记:新手也能看懂的技术拆解

代码忍者

API 接口

火山引擎发布企业级AI数据专家Data Agent

字节跳动数据平台

大数据 AI agent 数据飞轮 Data Agent

低代码平台:技术困局与破局路径

代码制造者

低代码

娱美德加速布局中国游戏市场:传奇IP新游发布、研发中心落地与专项基金启动三管齐下

新消费日报

Flink Forward Asia 2025 新加坡站议题征集开启|The future of AI is Real-Time

Apache Flink

大数据 flink AI 实时计算

企业管理中,一个好用的管理工具为何如此重要?

伤感汤姆布利柏

阿里云 AI 搜索开放平台:从算法到业务——AI 搜索驱动企业智能化升级

阿里云大数据AI技术

人工智能 大数据 阿里云 rag AI搜索

麦杰科技即将亮相2025第七届工业医院发展论坛:工业数据底座赋能工业设备全生命周期管理

麦杰科技

小程序热更新:助App实现“空中换引擎

xuyinyin

AI营销大模型数据工程的"三体"架构:质量、多模态、思维链协同进化论

东信营销科技

AI AI大模型 AI营销大模型 AI营销

《一文讲透》第6期:揭秘 KWDB 的多模核心技术

KaiwuDB

数据库 KWDB 开源

MySQL 开发的智能助手:通义灵码在 IntelliJ IDEA 中的应用

阿里巴巴云原生

MySQL 8.0

MySQL 开发的智能助手:通义灵码在 IntelliJ IDEA 中的应用

阿里云云效

MySQL 5.7 MySQL 8.0

奥雅的数字化新版图:用 NocoBase 探索精细化管理新可能

NocoBase

开源 低代码 数字化转型 客户案例 内部工具

鸿蒙HarmonyOS埋点SDK,ClkLog适配鸿蒙埋点分析

ClkLog

开源 埋点 sdk HarmonyOS 用户画像

20年携手共进,e签宝如何从重要参与者成长为行业标准制定者?

科技汇

深入研究:淘宝天猫店铺所有商品 API 接口详解

tbapi

淘宝API 淘宝店铺所有商品接口 淘宝商品采集

【HarmonyOS 5】鸿蒙的装饰器原理和自定义装饰器

GeorgeGcs

华为 鸿蒙 原理 HarmonyOS 自定义装饰器

【HarmonyOS 5】鸿蒙中@State的原理详解

GeorgeGcs

装饰器 声明式 @State ArkUI框架

如何使用通义灵码提高ECharts使用效率

阿里云云效

eCharts

新手注册ChatGPT详细流程

kookeey代理严选

AI 静态代理 代理IP ChatGPT chatgpt注册

如何使用通义灵码辅助学习C++编程 - AI编程助手提升效率

阿里巴巴云原生

如何使用通义灵码提高ECharts使用效率

阿里巴巴云原生

eCharts

长三角地区安防全产业链的盛会“2025浙江安博会”7月召开

AIOTE智博会

安防展会 杭州安博会 安博会、 安防博览会

NocoBase 本周更新汇总:优化执行记录写入逻辑

NocoBase

开源 低代码 零代码 无代码 版本更新

Dify 基于 TiDB 的数据架构重构实践

PingCAP

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