写点什么

带有基于 Smalltalk 的 Ruby VM 的 NoSQL OODB:MagLev 1.0 发布了

  • 2011-11-18
  • 本文字数:1716 字

    阅读完需:约 6 分钟

MagLev 1.0 发布了,它是一个构建在 64 位 Smalltalk VM GemStone/S 之上的 Ruby VM。但 MagLev 并不只是一个 Ruby VM,它包含了一个成熟的 NoSQL 数据存储,从它的网站上可以看到:

MagLev VM 充分利用 GemStone/S JIT 获得本地代码的性能、分布式共享缓存、完全支持 ACID 事务处理,以及企业级 NoSQL 数据管理能力,提供健壮和持久的编程平台。它可以透明地管理比内存大得多的数据和代码(兆兆字节级别)。

InfoQ 就 MagLev 1.0 采访了 VMWare 的Monty Williams(GemStone 已被 VMWare 收购)。

InfoQ:MagLev 在目前的 NoSQL 家族处于什么位置?

  • 我并不把 MagLev 看作一个整合了 NoSQL 数据库的 Ruby VM,而是把它看作一个使用 Ruby 作为数据操作语言的 NoSQL 数据库。
  • 我认为人们还没意识到的一点是 MagLev 提供了一个“单一对象空间”。没有东西会发送到一个独立的数据库,也没有东西从一个独立的数据库获取。你的全部代码都是“在数据库里”执行的。你甚至不用跟踪已被修改的对象并把它们保存到磁盘里,MagLev 会自动处理这些事情。
  • 你可以保存任何 Ruby 对象,即使是 proc、lambda、线程或者 continuation。这里有个例子示范了停止、复制、保存线程,然后在另一个不同的 VM 里重新启动它。 http://blog.bithug.org/2011/09/maglev-debug
  • MagLev 的持久化类似影像持久化(Image Persistence),即对象持久化到磁盘的格式和它们在共享缓存里面的一样。你不必对它们进行封送或者把它们转换成 JSON 或其它格式。
  • MagLev 的事务处理是 ACID,这意味着多个 VM 可以与相同的数据仓库和共享状态、对象以及代码交互,并且保持引用完整性。
  • 当你启动一个新的 MagLev VM 时,由另一个 VM 加载的代码可能还在缓存里,因此加载 / 使用它们可能很快。

InfoQ:VMWare 的云服务是否支持 MagLev?

现在还没有。早在八月份我们就开发了一个原型,也希望提供这种支持,但这取决于实际的需求。

InfoQ:前支持哪个版本的 Ruby 语言,1.8.7?有没有 1.9 的计划?

目前只支持到 1.8.7,因为这是最稳定的平台。1.9 的变化太快了,无法在 1.0 里采用它。不过,是否采用 1.9 还是取决于实际的需求。

InfoQ:是否支持 FFI 或者本地扩展?

FFI 和本地扩展的支持都是内置的,不必运行 MRI 需要的所有东西。MagLev 有一个内存压缩 GC,它要求本地代码“循规蹈矩”。相关限制以及如何处理可以在这里找到: https://github.com/MagLev/maglev/blob/master/lib/ruby/1.8/include/Maglev_c_extensions.md .

InfoQ:MagLev 在线程 / 并发方面如何?

MagLev 使用 Green Thread。不过,MagLev 有一个共享的、支持事务的对象空间,因而内置了一个可伸缩的跨越多个 MagLev VM 的并行模型。因为“所有”关联的 MagLev VM 看到的是相同的对象,所以 MagLev 可以有上千个真正的并行线程运行在相同的对象之上。

InfoQ:MagLev 使用了 MIT 许可协议,GemStone/S VM 的许可协议又是什么呢?

需要澄清的是,我们为 MagLev 写的 Ruby 和 Smalltalk 代码使用了 MIT 许可协议。我们使用的 Ruby 库和其它开源组件的许可协议不尽相同。详情参见 https://github.com/MagLev/maglev/tree/master/Licenses (特别是 README 这个文件)

InfoQ:MagLev 是否分为有所限制的免费版本和商业版本,还是全部免费?

永远都会有一个免费的版本。唯一的限制是 2GB 的共享缓存,详情参见 https://github.com/MagLev/maglev/blob/master/etc/maglev.demo.key-Linux-x86_64 .
这不会限制你可以存储的数据量,只限制了共享内存的缓存。

InfoQ:简而言之,如果我使用 MagLev,我需要付费吗?不用付费,看情况,还是需要付费?

仅当你需要支持或者更大的缓存时才要付费。

InfoQ: MagLev 与你的 Smalltalk 和 Seaside 解决方案有什么关系?

它们都使用了相同的 JIT、字节代码循环、缓存和 GemStone/S 提供的持久化。底层的 VM 可以运行 Ruby 和 Smalltalk 代码,因此你可以在 MagLev VM 上运行 Seaside。

通过 rvm 安装 MagLev 非常简单:

复制代码
rvm install maglev
rvm use maglev

更多信息可以参见《Get Started with MagLev》,包括文档和相关链接。示例部分包含了示例代码,示范MagLev 对Sinatra 或者Rails 3.1 的支持。

查看英文原文: NoSQL OODB with Smalltalk-based Ruby VM: MagLev 1.0 Released

2011-11-18 06:451415

评论

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

微博评论架构设计

Yina🌝很浪🌊

技术人在职场如何摆正心态

baiyutang

职场 10月月更

架构:微内核架构(Microkernel Architecture)

程序员架构进阶

架构 微内核 插件化 10月月更

【LeetCode】外观数列Java题解

Albert

算法 LeetCode 10月月更

构建全屏 Web 应用程序

devpoint

JavaScript html5 大前端 10月月更

架构实战训练营模块 5 作业

Sonichen

作业五:微博评论高性能高可用架构设计

紫云

架构实战营

阿里开源的这个库,让 Excel 导出不再复杂(填充模板的使用指南)

看山

Java EasyExcel 10月月更

架构设计系列五 如何设计业务高性能高可用计算架构

nydia

架构实战营第五次作业

Geek_d18264

架构实战营

微博系统中的微博评论架构分析

眼镜盒子

「架构实战营」

阿里开源的这个库,让 Excel 导出不再复杂(既要能写,还要写的好看)

看山

Java EasyExcel 10月月更

”微博评论“的高性能高可用计算架构

Sky

「架构实战营」

为什么常用二倍图,流式布局中一倍图是否靠得住

你好bk

css3 大前端 html/css 页面布局

架构训练营 模块五

Leach Sun

Prometheus 基础查询(三)范围向量和 PromQL 的缺陷

耳东@Erdong

Prometheus 10月月更

微博评论背后的高性能高可用计算架构

Nico

【Promise 源码学习】目录 - Promise 知识点梳理

Brave

源码 Promise 10月月更

看动画学算法之:平衡二叉搜索树AVL Tree

程序那些事

数据结构 算法 二叉树 程序那些事

微博评论高性能高可用架构设计

Geek_db27b5

创建线程池学习笔记

风翱

线程池 10月月更

微博评论高性能高可用计算架构

毛先生

linux之grep使用技巧

入门小站

Linux

在线EXCEL文件数据转换解析工具

入门小站

工具

(model5)微博评论高性能高可用计算架构

消失的子弹

架构 微服务

学习心得 - 架构训练营 - 第五课

Fm

这几种Java异常处理方法,你会吗?

华为云开发者联盟

Java 数组 异常 程序

模块5作业

4anonymous

声网教育aPaaS 产品灵动课堂:「低代码」开发,15分钟极速上线

声网

人工智能 大数据 云服务

架构实战营模块五作业 - 设计微博系统中”微博评论“的高性能高可用计算架构

李焕之

模块五-微博评论的高性能高可用计算架构

娜酱

「架构实战营」

带有基于Smalltalk的Ruby VM的NoSQL OODB:MagLev 1.0发布了_Ruby_Werner Schuster_InfoQ精选文章