【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

MagLev:Gemstone 基于 Smalltalk 虚拟机构建 Ruby 运行时

  • 2008-06-02
  • 本文字数:2748 字

    阅读完需:约 9 分钟

OODB 厂商 Gemstone 正致力于开发一个名为“MagLev”的Ruby 虚拟机。InfoQ 对 MagLev的产品经理 Bob Walker 进行了访问来获得项目背后的细节, Avi Bryant 也参与到了项目中来。首先,我们和Bob Walker进行了交流。

InfoQ: 在虚拟机级别,Gemstone/S 和 MagLev 有什么联系?

毫无疑问,MagLev 和 Gemstone/S 共享了大量的代码和功能,但是它们是独立的产品,包括在虚拟机级别。MagLev 虚拟机使用的大量字节码和算法都是 Ruby 独有的。然而,它当然还是保留了可以运行 Smalltalk 代码的能力。

InfoQ: 有多少人参与这个项目?目前有时间方面的计划吗?

目前有 8 个至少是兼职的人在开发 MagLev。我现在的确还说不出时间点来,但是在 RailsConf 上我会说一些在时间方面的计划。

InfoQ: MagLev 由什么语言编写?是一种“倒退”吗?

我们的目标和 Rubinius 项目类似:支持由 Ruby 实现的标准库中的全部方法,除了一些性能敏感的部分。虚拟机是由 C 编写的。

InfoQ: 是为虚拟机生成字节码还是为其他的什么方式?

是的,我们为虚拟机生成字节码,可以为多种架构产生不同的原生代码。

InfoQ: 你用什么来解析 Ruby?(是纯 Ruby 的 ruby_parser 还是别的什么自制的解析器?)

我们有能力借鉴众多解析器来自行开发用于编译的和一个解析器的内部实现。我们尚未决定在最终发布时采用哪个解析器。

InfoQ: 除了 Ruby 标准,你们有从 Rubinius 项目中借鉴什么吗?

我正在通过 Rubinius 的 bm 脚本和测试来手机不同 Ruby 实现的性能指标。我还借鉴了 MSpec 的实现,包括脚本和测试,来帮助我们确保 MagLev 在 API 级别可以和 Ruby 标准兼容。这也就是说,我也在查看其他的 Ruby 实现。
我们真心希望最终可以和 Rubinius 尽可能多的共享标准库代码。

InfoQ: 你对于 1.0 版本在性能方面的预期是什么?

相对于单纯的性能来说我们更关注与可伸缩性。当然我们相信和其他的实现相比 MagLev 在性能方面还是有竞争力的,我们还相信我们的可伸缩持久化架构将成为最大的卖点。

InfoQ: 说一说 MagLev 的线程?是原生 1:1 线程、m:n 模型还是普通用户空间线程?

每一个独立的虚拟机是一个普通用户空间线程。然而,多虚拟机之间可以写协同并发访问同一对象,所以实际上最终的效果和 m:n 模型类似。

InfoQ: 考虑到你将会参加 RailsConf,可以说说 Rails 兼容性的目标吗?或者其他的什么(比如 merb)?

这真是个有趣的问题,我们也投入了大量的精力在上面。我们当然希望 MagLev 可以兼容 Rails。但 是这个不容易做到,因为我们已经有所了解在实现过程中有太多太多潜在的(和实际存在的)陷阱。在支持 Rails 以前我们必须先完全支持 Ruby。我们也关 注其他的替代品,我们希望可以支持所有用 Ruby 编写的东西。至于先做什么后做什么,一个很主要的参考就是我们从 Ruby 社区收集到的热点和反馈。

InfoQ: 你计划让 ActiveRecord 在 OODB 下工作,还是用户定制或者使用 MagLev 特定的 API?

让 ActiveRecord 在 MagLev DB 下工作是一个十分令人期待的目标,尽管部分 ActiveRecord 的 API 假定对象状态存储在基于 SQL 的 RDB 中。这可能会导致耦合。在任何事件 中,任何在 ActiveRecord 之下的 API 可能对于不希望使用 ActiveRecord 的用户都是可用的。对于我来说,现在过多的谈论这个话题为时 尚早,我希望社区可以让我们知道哪种方法是最有益的。

InfoQ: 你计划 MagLev 是作为标准 Ruby 的一个简易替换,还是它将使用某种类似 Smalltalk 风格基于映像的部署方式?

对于 MagLev 来说绝对是作为简易替换的。但是对于那些更喜欢基于映像部署方法的人,MagLev 同时也是支持的,但并不强迫使用。

InfoQ: Ruby 代码进程可以被持久化成一个映像吗?

简言之,是的。例如,GLASS 系列产品目前可以让你将出错的进程保存到仓库中,然后迟些时候将它们放入一个本地的虚拟机中进行调试。没理由 Ruby 不支持。

InfoQ: 你将会和 GLASS 系列产品采用相似的授权模型吗?

我们查看了许多不同的模型。我可以说(但不保证)在 MagLev 上我们会做类似的事情。

InfoQ: 目前有用于 MagLev 的工具吗?你是否在寻求 Ruby IDE 的支持以作为前端(例如用于调试 GUI 等等)?

当然我们有一个 IRB 的 shell,和一个类似 ruby 的命令用于在 MagLev 上运行 Ruby 代码。我希望看到 IDE 插件,但是我也不敢猜想何时 GUI 工具将会实现。
需 要提到的是,MagLev 团队计划要参与并支持 Ruby 社区,我们希望社区成员可以看到一些令人感兴趣的理由来贡献 MagLev。我们在 GemStone 的核心竞争力是动态语言、可伸缩虚拟机和原生语言对象持久化——其他人中有很多在工具和 UI 方面十分擅长,我们欢迎他们对 MagLev 做出贡献。

InfoQ: 在 MagLev 上的 Ruby 代码有机会能和 Smalltalk 代码或者对象进行交互吗?

MagLev 虚拟机不但支持 Ruby,而且完美的支持 Smalltalk。我得说能够做到这样非常棒,但是在我们在这个方向上深入以前,我们要看看这是否是一个需求强烈的功能且对社区有用。

Gemstone开源技术上已经深耕一段时间了——例如为在Gemstone/S上运行 Seaside web 框架提供了解决方案。这个叫做 GLASS——GemStone、Linux、Apache、Seaside 和 Smalltalk 。GLASS 是免费的,带有一个数据库,容量为4 GB,同时也有其他的授权方式

Seaside 由Avi Bryant所创建,作为重用 Smalltalk 虚拟机用于 Ruby 这个想法的推广者之一(参见他在这个话题的文章《Turtles all the way down》)。在一个视频采访中(很快将由InfoQ 发布),Avi Bryant 将会给出更多关于他致力于 Seaside DabbleDB 的信息,以及他在 GemStone 的工作和MagLev。对于这个项目 Avi 说道:

我已游说 Smalltalk 提供商多年来使他们的技术被 Ruby 社区所熟知,现在令人激动的是它终于实 现了。我们还有不到三个月就可以完成 MagLev 的开发,但我已经被结果深深的鼓舞,而且我们将会在 RailsConf 上展示一些很棒的演示实例。恐怕在 那之前我还不能说的太深入,来看我们的讲座吧,这样会了解到更多的。

在一篇最近的 blog 帖子中, Avi 给出了一个关于像 Gemstone 之类的 OODB 的优势介绍, 在其中比较了他们的那些基于 Rails 构建的接解决方案,使用了 memcachedb 和其他相似的技术:

关于 Gemstone,凑巧架构完全相同:有一个单独的存储引擎(名叫“stone”),一个在每个服 务器上的内存缓存(叫做“共享页面缓存”),还有一些 Smalltalk 虚拟机的工作进程(“gems”)。gems 用来处理请求并执行代码,它们将对象 贮存在页面缓存中以加速,并放入 stone 中以持久化。区别在于,在 Gemstone 中,它们的自底向上被设计的尽可能的迅捷和无缝。

注意:这篇 blog 帖子更为深入,并且给出了一个解决方案和其他方法概览。

GemStone 将会在 5 月份的 RailsConf 2008 上更为详细的介绍 MagLev。

查看英文原文: MagLev: Gemstone builds Ruby runtime based on Smalltalk VM

2008-06-02 20:30847
用户头像

发布了 80 篇内容, 共 19.2 次阅读, 收获喜欢 5 次。

关注

评论

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

【冲破信息孤岛】华为云大数据BI,助力金融行业进行数字化转型

秃头也爱科技

推动企业稳定发现,华为云大数据助力能源企业纾困

秃头也爱科技

解决“双十一”电商行业数据存储难题,华为云OBS值得期待

清欢科技

云渲染和自己的电脑渲染哪个好?

Renderbus瑞云渲染农场

云渲染

存储数据如何更省钱?华为云告诉你!

清欢科技

海量、安全、高可靠的华为云对象存储服务OBS,助力企业数据存储降本提效

清欢科技

大数据一站式服务,华为云大数据BI驱动企业业务线增长

秃头也爱科技

助力企业降本增效:华为云ECS,助力企业数字化转型需求

IT科技苏辞

Android程序签名打包

二哈侠

Android Studio 打包签名 签名的含义

支持故障自动秒级检测,华为云VPN更省心!

IT科技苏辞

中国电信发布《天翼云安全白皮书》 打造高质量云网安全保障体系

Geek_2d6073

华为云OBS对象存储:企业“上云”的好帮手

清欢科技

跨浏览器测试策略

FunTester

华为云ECS弹性服务器,加快企业数字化转型的进程!

IT科技苏辞

阿根廷夺冠梅西加冕,球场外视频平台角逐世界杯

易观分析

视频 足球 卡塔尔世界杯

打碎软件应用,在产业互联场景中串联—钉钉7.0关注企业间高效协同

B Impact

共创、共享、共赢云生态,华为云ECS助力企业轻松上云

IT科技苏辞

华为云对象储存OBS,为企业提供优秀且安全的数据储存环境

清欢科技

RayLink测评 | 完全免费,功能超越同类付费远程控制软件!!

RayLink远程工具

远程控制软件 远程办公软件 远控软件

BI-数据可视化 | 年度干货合集

搞大屏的小北

数据可视化工具 BI 分析工具 BI分析 市场分析

HTTP的四种认证方式

穿过生命散发芬芳

HTTP 12月月更

华为云对象存储OBS,助力企业降本增效

清欢科技

实力是最好的武器!华为云ECS助力企业更好发展

IT科技苏辞

提升企业决策能力,华为云用大数据BI助力企业腾飞

秃头也爱科技

2022-12-30:某天小美进入了一个迷宫探险,根据地图所示,这个迷宫里有无数个房间 序号分别为1、2、3、...入口房间的序号为1 任意序号为正整数x的房间,都与序号 2*x 和 2*x + 1

福大大架构师每日一题

算法 rust 福大大

华为云对象存储,助力企业驶入“数据快车道”

清欢科技

FL STUDIO2023最新版本号21新变化

茶色酒

FL STUDIO20.9 FL Studio FL Studio 21

还在为数据存储而烦恼?不妨进来看看华为云对象存储服务OBS

清欢科技

数字经济时代,为什么华为云ECS能获得更多用户的青睐?

IT科技苏辞

软硬协同造就极致性能 天翼云紫金DPU打造为云而生的全新一代云计算体系结构

Geek_2d6073

不止于大,华为云对象存储服务OBS的全能一面

清欢科技

MagLev:Gemstone基于Smalltalk虚拟机构建Ruby运行时_Ruby_Werner Schuster_InfoQ精选文章