Publicado por Rafael Rosa em 22 de Novembro de 2009

Lançado o Alpha do MagLev - Uma nova e escalável implementação do Ruby

maglev.pngMagLev é uma "nova" implementação do Ruby criada pela Gemstone Systems com o objetivo de oferecer uma camada de persistência de objetos integrada e um cache compartilhado distribuído - uma implementação realmente escalável do Ruby. Porém, o Maglev tinha uma cara de vaporware, após sua divulgação no começo de 2008 e estava disponível apenas para um pequeno grupo de testadores até agora. Hoje tudo isso mudou, com o lançamento do primeiro alpha público!

Em 2008, o gerente do projeto, Bob Walker, deu uma uma entrevista para o InfoQ sobre ele quando disse que 8 pessoas estavam trabalhando no projeto, ou seja, era um projeto importante. Avi Bryant, um dos desenvolvedores, fez uma breve apresentação na RailsConf 2008 onde explicou o que é o MagLev e também fez algumas demonstrações ao vivo.

Por que você deveria se importar?

Resumidamente o MagLev é legal por várias razões, sendo as duas principais 1) MagLev roda na virtual machine do SmallTalk, o que, dizem, deve trazer ganhos de performance signifcativos à uma linguagem como o Ruby, e 2) o ambiente do MagLev permite, se você quiser, a execução de processos Ruby em múltiplas virtual machines permitindo que compartilhem os mesmos objetos simultaneamente, fazendo com que seja simples de fazê-lo escalar. O vídeo do Avi é excelente se quiser ter uma idéia de como isso funciona:

Apresentação do MagLev na RailsConf 2008 por Monty Williams on Vimeo.

O desenvolvedor Monty Williams deixou bem claro que ainda é uma versão alpha, não beta, então não espere ser capaz de rodar Rails ou qualquer gem que necessite de extensões em C. Isto posto, ele consegue rodar Sinatra, Rack, e RubyGems, e estão fazendo um esforço considerável fazê-lo passar no RubySpec, ou seja, eles não estão fazendo um implementação incompleta.

Se quiser saber mais, siga a equipe do MagLev no Twitter em @MagLev e dê uma olhada na lista de discussão oficial ("maglev-discussion").

Instalação (ou seja, um console do irb que funciona)

Tenha em mente que o MagLev só irá funcionar em versões 64 bit do OS X, Linux, e Solaris, então, se você ainda está no clube dos 32 bit, pode parar por aqui (por enquanto).

Se baixar o script de instalação do MagLev (um pequeno arquivo ZIP), você pode rodar o script installMaglev.sh e instalar a última versão da seguinte maneira:

./installMaglev.sh 22578

O artigo anunciando o lançamento não deixa claro que você deve informar o número da versão. Porém, mencionaram o número 22578, e ele parece funcionar corretamente.

Uma vez instalado, ele dá algumas informações sobre as variáveis de ambiente que você precisará adicionar ao seu arquivo .bashrc ou .bash_profile. Siga as instruções, abra um novo terminal e você poderá abrir uma nova sessão do irb da seguinte maneira:

$ maglev start
startnetldi[Info]: Starting GemStone network server "gs64ldi".
startnetldi[Error]:  could not start server
startstone[Info]: Starting Stone repository monitor "maglev".
startstone[Info]: GemStone server 'maglev' has been started.

$ maglev-irb
irb(main):001:0> 20 + 20
=> 40
irb(main):002:0> exit
error , SystemExit Error,  nil,
          during /Users/peter/Downloads/MagLev-installer/MagLev-22578.MacOSX/bin/maglev-irb
SystemExit Error,  nil

Alternativa: Instalação via GitHub

O MagLev também está disponível no GitHub. Para instalá-lo a partir do GitHub:

git clone git://github.com/MagLev/maglev.git
cd maglev
./install.sh

.. depois siga as instruções para adicionar o path ao seu .bashrc ou .bash_profile e executar o Rake em um novo console (mas no diretório do maglev).

Se você conseguir fazer alguma coisa interessante com ele, não deixe de enviar um comentário ;-)

Apenas Um Comentário para “Lançado o Alpha do MagLev - Uma nova e escalável implementação do Ruby”

  1. #1
    Tweets that mention Lançado o Alpha do MagLev - Uma nova e escalável implementação do Ruby -- Topsy.com Disse:

    [...] This post was mentioned on Twitter by Ruby Inside Brasil, Rafael Amorim. Rafael Amorim said: RT: @rubyinside_br: Lançado o Alpha do MagLev - Uma nova e escalável implementação do Ruby http://bit.ly/8h9k1D [...]

Deixe um Comentário