Banco de Dados rodando 100% em Memória RAM

9 respostas
Z

Existe alguma forma de instanciar em Java um banco de dados inteiramente em memória (RAM) ???

Eu tenho um projeto que prevê a utilização de dois bancos de dados:

– o primeiro deles será normal pare escrita e gravação dos dados do sistema;
– o segundo servirá apenas para leitura (read only) e dele depende a performance do projeto.

Como ele será apenas read only, gostaria de instanciá-lo completamente em memória. Alguém sabe qual banco de dados permite fazer isto ?

Sei que a utilização de cache já ajudaria, mas preciso MESMO de um banco de dados em memória.

Também já pensei em utilizar um XMLM (xml monstro) e instanciar ele em memória mas como os processos são complexos se existir um banco de dados com instruções SQL iria me ajudar em muito durante a modelagem e o suporte do projeto como um todo.

Grato pela ajuda de todos !

9 Respostas

M

Já pensou em utilizar Prevayler?

Z

Eu preferia um banco de dados SQL Ansi, mas o Prevayler não pode ser descartado.

Será que eu consigo instanciar uma base do Prevayler em memória ???

Lembrando que este item do meu projeto é crítico, assim economizar o acesso a disco jogando tudo em memória é um requisito que estou assumindo.

M

Oi, eu não tenho um grande conhecimento de prevayler, mas acho que resolveria seu problema, tirando as queries SQL.

T

Que tipo de coisa você precisa?

a) Precisa de um cache que seja acessível por várias aplicações (C/Java/PHP etc.) e que possa ser distribuído por várias máquinas.

Nesse caso, você pode tentar o memcached ( http://danga.com/memcached/ ). Esse é de graça.

b) Precisa de um banco de dados em memória, bem rápido.
Você pode usar algo como o

Oracle TimesTen - http://www.oracle.com/database/timesten.html

É claro que existem outros, favor procurar.

Não recomendaria usar o HSQLDB (mesmo na versão dele que trabalha 100% em memória), se suas tabelas forem um pouco grandes (> 100MB) Talvez você possa usar outra coisa.

Z

Thingol, na verdade eu não queria um cache, queria um banco em memória mesmo. Vc acha que consigo rodar bem o HSQLDB inteiramente em memória caso tivesse tabelas pequenas (este é o meu caso).

A solução da Oracle parece legal, mas queria mesmo um produto gratuíto.

Z

Oi Mauro, vi que o Pravayler roda muito mais rápido que bancos normais… espero que qualquer solução de banco rodando em RAM acompanha esse desempenho :smiley: !!!

Prevayler:
9.000 vezes mais rápidas do que no Oracle com JDBC e
3.000 vezes mais rápidas do que no MySQL com JDBC.

O problema do Prevayler é que ele não rola sob SQL… vi uma idéia que usa o projeto joSQL pra tentar contornar isto (http://www.javafree.org/content/view.jf?idContent=57) mas não sei quanto esta solução iria reduzir a performance do Prevayler.

R

cara da uma olhada no HSQL, so que nao sei se ele tem driver para PHP.

I

Se suas tabelas não são grandes, não há nem o que pensar, o HSQLDB será uma ótima solução para vc.

A

O Apache Derby suporta isso.

Criado 24 de abril de 2008
Ultima resposta 25 de abr. de 2008
Respostas 9
Participantes 6