Espero não estar apresentando uma dúvida muito tola, pois ainda não desenvolvi nada com o Prevayler, além de rodar alguns demos do mesmo no Eclipse.
Minha dúvida é com relação à quantidade de memória RAM disponível em um computador comum, que em geral seriam 4 GB(Quatro pentes de um Giga). Então, gostaria de saber qual seria a solução caso a quantidade de dados em uma apicação ultrapassasse esta quantidade de 4 GB.
Grato,
Gustavo Tavares Seixas
Desenvolvedor Java
Dúvida Prevayler
8 Respostas
mudar para outra solução de persistencia.
acho que é a unica solução nestes casos.
PS.: quero ir trabalhar com vc, um PC comum com 4G? :shock: :shock: :shock: :shock:
O limite maximo da RAM vai depender da sua arquitetura (maquinas 64-bit nao tem esse limite), mas mesmo assim, considere particionar o sistema em sistemas menores (e usar varias maquinas), ou usar outra coisa, se vc esta pensando em passar dos 4gb tao facil. 
Esta solução é a que primeiramente me interessa, pois creio que seja mais barata que um computador de 64 bits( se eu não estiver enganado )e é uma solução que eu não saberia nem por onde começar. Como eu poderia fazer este particionamento de computadores desta forma? existe algum site, software, dica ou tutorial para que eu podesse começar a me aventurar nesta linha?
Agradeço qualquer ajuda.
Gustavo
Voce pode escolher uma estrategia para a comunicacao entre as particoes, de forma que o sistema seja todo composto de pedacos remotos, mas que pareca um so para o cliente. A forma de comunicacao, mesmo, voce escolhe na hora de implementar (voce pode usar RMI, WebServices, ou qualquer outro jeito de fazer comunicacao entre JVMs que der na telha, o Prevayler nao interfere nisso).
Alias, caso vc nao conheca bem a especificacao de serializacao, aproveite pra dar uma repassada, vai se provar bem util na hora de achar alguns bugs 
Voce pode escolher uma estrategia para a comunicacao entre as particoes, de forma que o sistema seja todo composto de pedacos remotos, mas que pareca um so para o cliente. A forma de comunicacao, mesmo, voce escolhe na hora de implementar (voce pode usar RMI, WebServices, ou qualquer outro jeito de fazer comunicacao entre JVMs que der na telha, o Prevayler nao interfere nisso).Alias, caso vc nao conheca bem a especificacao de serializacao, aproveite pra dar uma repassada, vai se provar bem util na hora de achar alguns bugs ;)
Ah, agora entendi o que você quiz dizer. Me parece ser uma solução bastante interessante, realmente! Não tinha pensado ainda desta forma. ( O que estava pensando anteriormente talvez esteja até fora do alcance do Java: Ouvi falar de um cara( um geniozinho ) aqui no brasil, que criou um supercomputador interligando em rede vários computadores comuns. Parece que a equipe do Google fez algo parecido com isto também. Imaginei que vc estivesse se referindo a isso. Algum dia, quem sabe, eu chego lá
).
Bem, voltando a sua idéia, supondo o uso de RMI ( o qual possuo algum conhecimento, mas não muito aprofundado ), uma dúvida me apareceu quando montei a seguinte situação: Dois computadores ligados em rede com uma JVM em cada possuem um sistema, com apenas o Prevayler como persistência de dados, particionado entre estes dois computadores se comunicando através de RMI. Este novo sistema foi criado a partir de um já existente que funcionava com um banco de dados relacional com todas as tabelas relacionadas entre si. Pergunto: Seria possível, neste novo sistema baseado no Prevayler, manter a integridade relacional dos objetos, mesmo que uma classe de objetos de uma máquina esteja relacionada com outra classe na outra máquina?
Adianto que a mim, que nunca arquitetei um sistema com RMI, me parece possível, mas uma outra opinião é sempre bem vinda.
Grato,
Gustavo
Manter a integridade referencial eh a parte mais dificil da coisa, e eh aqui que tah a hora de botar a cabeca pra funcionar, analisar bem o seu modelo de dados, e tentar achar o lugar certo pra particionar a coisa, pra evitar ao maaaaaaximo essa situacao que vc menciona. Mas, como as vezes nao tem outro jeito, eh bom saber que vc vai ter que manter a integridade referencial “na unha” 
Caro CV, espero não estar abusando de sua ajuda e já sou bastante agradecido pela sua camaradagem. No entanto ainda ficou uma dúvida: Sabendo que o difícil é administrar a integridade com o Prevayler, a minha pergunta é se o uso do RMI iria dificultar acentuadamente esta administração ou apenas seria uma ‘implementaçãozinha’ a mais.
No fim das contas, RMI vai ateh ajudar bastante, perto das alternativas (webservices, passar objeto serializado “na unha” e por ai vai)… 
Ah, alias… administrar a integridade com o Prevayler nao eh dificil, mas nao eh algo automatico, voce tem que fazer na unha, e prestar atencao pra ver se nao esta vazando memoria, ou gravando mais do que precisava nos journals/snapshots, e esses sao problemas que nao vao estragar a sua aplicacao, mas que sao dificeis de achar (mas, geralmente, faceis de consertar)