MagLev Ruby VM agora disponível, traz a persistência GemStone para o Ruby
MagLev é uma implementação da linguagem Ruby feita pela empresa GemStone sobre sua VM Smalltalk. GemStone/S, que é a VM Smalltalk da GemStone, está aí há décadas e é particularmente conhecida por sua capacidade, já bastante experimentada, de distribuição e persistência.
MagLev foi anunciado em 2008, e, desde então, a equipe tem estado bastante ocupada trabalhando no projeto. Depois de um período em uma versão alpha (privada), o gato saiu da saco: uma versão pública do MagLev está disponível, e inclui o código fonte do MagLev, que está hospedado no GitHub.
Para experimentar o MagLev, primeiro obtenha o código fonte com um rápido
git clone git://github.com/MagLev/maglev.git
seguido de um
./install.sh
no diretório do código fonte e siga as instruções que seguem.
Para iniciar o MagLev use o comando
rake maglev:start
para arrancar o sistema. Uma maneira rápida de rodar código Ruby é maglev-irb, que irá conectar com o backend do MagLev. Também estão disponíveis os comandos maglev-ruby e maglev-gem.
Com uma rápida olhada no diretório de exemplos encontra-se o hat_trick (truque da cartola) que o Avi Bryant mostrou na primeira demonstração do MagLev. Ele mostra os recursos de persistência, que permitem configurar um objeto em uma instância irb e então acessá-lo em outra instância.
Para reproduzir este exemplo, simplesmente inicie o MagLev e duas instâncias do maglev-irb. Para criar um objeto persistente, execute o trecho de código a seguir em uma instância do maglev-irb:
Maglev.persistent do Maglev::PERSISTENT_ROOT[:stuff] = ["hello world"] end Maglev.commit_transaction
Vá para a outra instância maglev-irb e execute:
Maglev::PERSISTENT_ROOT[:stuff]
isso irá retornar a string "hello world".
Obviamente, isto é uma demonstração bastante simples dos recursos de persistência; veja o link a seguir para maiores detalhes da API de persistência do MagLev.
Um exemplo ligeiramente mais envolvente é uma implementação PStore Ruby usando os recursos de persistência. Ela mostra como os recursos de persistência do GemStone torna fácil a manutenção de todo o grafo de objetos persistentes sem ter que lida com um ORM.
Enquanto Rails ainda não é suportado pelo MagLev, exemplos funcionais de Rack e Sinatra estão disponíveis.
Um Trac público para o MagLev está disponível para acompanhar o progresso. Para questões de compatibilidade, este gráfico mostra o números de RubySpecs testadas, enquanto que links para resultados detalhados estão disponíveis também.
Nenhum detalhe sobre questões de licensa do MagLev parecem estar disponíveis, mas a GemStone oferece versões grátis, por exemplo, da GemStone/S que acompanha o framework web Seaside, que é free até 4 GB de dados.
Enquanto, hoje em dia, existe muito burburinho em torno dos bancos de dados NoSQL, a GemStone/S é uma solução bastante experimentada que está no mercado há muito tempo. MagLev fortemente integra estes recursos com Ruby. Qual a sua opinião - irá experimentar o MagLev?
- Sections
- Operações e Infraestrutura
- Arquitetura e Design
- Desenvolvimento
- Topics
- Object Databases
- SmallTalk
- Linguagens Dinâmicas
- Java
- Armazenamento de Dados
- Acesso a Dados
- Ruby
- Design de Bancos de Dados
- Bancos de dados
- GemStone
- Runtimes
- VMWare
- Gerenciamento do Banco de Dados
- MagLev
- Desempenho e Escalabilidade
Conteúdo educacional
Complexidade organizacional no Século 21
Alexandre Magno 16 Mai, 2013


Olá visitante
Você precisa cadastrar-se no InfoQ Brasil ou Login para enviar comentários. Há muitas vantagens em se cadastrar.Obtenha o máximo da experiência do InfoQ Brasil.
Dê sua opinião