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.
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.
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.
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 !!!
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.