阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

带有基于 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

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2011-11-18 06:451321

评论

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

打破 Serverless 落地边界,阿里云 SAE 发布 5 大新特性

阿里巴巴云原生

阿里云 Serverless 云原生 Serverless Kubernetes

微信业务+学生毕设架构设计

慧慧Alina酱

借助人工智能、区块链 传统农业告别“靠天吃饭”

CECBC

精细运营|营销获客自动化‘攻心’

海比研究院

CRM

产学互为表里,携手方见大道:华为云AI院长峰会的价值思考

脑极体

打破数据壁垒,北鲲云超算混合云模式激活人工智能数据价值

北鲲云

区块链专利正从量向质转变 智慧金融、医疗健康和能源三领域质量最高

CECBC

029云原生之开发工具介绍

穿过生命散发芬芳

云原生 10月月更

模块2

Asha

这才是责任链模式的优雅使用方式

Tom弹架构

Java 架构 设计模式

使用 Spring Boot 和 @WebMvcTest 测试 MVC Web Controller

码语者

Java Spring Boot test

模块一作业

hpl

架构实战营 - 第三期 - 模块一作业

lucian

架构实战营

如何在新消费时代提升开店数量和营业额

石云升

学习笔记 10月月更

无人驾驶与环卫革命

脑极体

网络安全之渗透实战学习

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 安全漏洞

自定义ViewGroup的触摸反馈

Changing Lin

10月月更

Jekyll 运行的时候提示错误 cannot load such file -- webrick (LoadError)

HoneyMoose

RubyInstaller 在 Windows 环境下的安装

HoneyMoose

微信业务架构图

罗赟

「架构实战营」

微信朋友圈高性能复杂度分析

deng

架构实战营

浪潮云说丨构建全域业务联动枢纽,挖掘数据要素创新价值

浪潮云

云计算

资讯|WebRTC M94 更新

网易云信

大前端 chrom

通过题目来讲一讲指令系统相关知识 1 | 计算机组成与系统结构专题

Regan Yue

计算机组成原理 10月月更

你正在选择实时互动云服务?以下是关于安全合规的七个建议

声网

人工智能 数据安全

官方线索 | 1024新华三服务器性能调优挑战赛

穿过生命散发芬芳

1024我在现场

学生管理系统架构和微信业务架构

Geek_nlp小咖

微信 架构 微信业务架构 学生管理系统架构

架构训练营-第一周作业

焦龙

架构实战营

空调可视化运营中心,赋能精细化运营管理

ThingJS数字孪生引擎

工信部等三部委:推进区块链等新一代信息技术在养老场景集成应用

CECBC

模块2总结

Asha

架构实战营

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