<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Últimas mensagens do tópico "Prevayler"]]></title>
		<link>http://www.guj.com.br/posts/list/2.java</link>
		<description><![CDATA[Últimas mensagens enviadas no tópico "Prevayler"]]></description>
		<generator>JForum - http://www.jforum.net</generator>
			<item>
				<title>Prevayler</title>
				<description><![CDATA[ Fala galera...<br /> <br /> to vendo em varios lugares esse tal de Prevayler...<br /> <br /> o q vem a ser isso?? ele tem o proposito de acabar com os banco de dados convencionais?? como ele funciona??<br /> <br /> alguem poderia dar uma luz?? ou quem sabe, fazer um pequeno tutorial aqui p/ galera....<br /> <br /> valew]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/2652/12892/prevayler
</guid>
				<link>http://www.guj.com.br/prepost/2652/12892/prevayler
</link>
				<pubDate><![CDATA[Tue, 29 Apr 2003 08:30:02]]> GMT</pubDate>
				<author><![CDATA[ rbarioni]]></author>
			</item>
			<item>
				<title></title>
				<description><![CDATA[ fale com o carlos Villella, o cv. Ele está envolvido no projeto. E no JustJava houve uma palestra (bem interessante) sobre o Prevayler. O site do projeto é esse: [url=www.prevayler.org/]www.prevayler.org/ [/url].]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/2652/12899/
</guid>
				<link>http://www.guj.com.br/prepost/2652/12899/
</link>
				<pubDate><![CDATA[Tue, 29 Apr 2003 09:17:29]]> GMT</pubDate>
				<author><![CDATA[ Rafael Afonso]]></author>
			</item>
			<item>
				<title></title>
				<description><![CDATA[ Opa, iai Baroni! Não sei se vc foi ao JustJava e assistiu às palestras ou falou com o pessoal do Prevayler no estande, mas, colocando de forma bem curta-e-grossa, o Prevayler, como banco de dados ou mecanismo de persistência, é uma farsa.<br /> <br /> Mas, por que o Prevayler é uma farsa? <img src="http://www.guj.com.br/images/smilies/385970365b8ed7503b4294502a458efa.gif" border="0"> <br /> <br /> <img src="http://www.guj.com.br/images/smilies/9293feeb0183c67ea1ea8c52f0dbaf8c.gif" border="0"> Não tem linguagem de queries<br /> <img src="http://www.guj.com.br/images/smilies/9293feeb0183c67ea1ea8c52f0dbaf8c.gif" border="0"> Não faz persistência de objetos<br /> <img src="http://www.guj.com.br/images/smilies/9293feeb0183c67ea1ea8c52f0dbaf8c.gif" border="0"> Não tem índices<br /> <img src="http://www.guj.com.br/images/smilies/9293feeb0183c67ea1ea8c52f0dbaf8c.gif" border="0"> Não tem mais um monte de coisa<br /> <br /> "Então, como um projeto desses pode se atrever a querer acabar com os bancos de dados?", voce pergunta. Uma questão bem válida, depois de descobrir que o Prevayler é uma farsa. Mas, então, como o Prevayler funciona? <img src="http://www.guj.com.br/images/smilies/136dd33cba83140c7ce38db096d05aed.gif" border="0"><br /> <br /> - Linguagem de Queries: qualquer linguagem plugavel numa app Java que suporte navegacao num grafo de objetos (XPath, OQL, SODA, Jython, e por aí vai) <img src="http://www.guj.com.br/images/smilies/8a80c6485cd926be453217d59a84a888.gif" border="0"><br /> <br /> - Persistência de Objetos: qualquer mecanismo de serialização compatível em API com a serialização do Java <img src="http://www.guj.com.br/images/smilies/8a80c6485cd926be453217d59a84a888.gif" border="0"><br /> <br /> - Índices: HashMap, TreeMap ou qualquer outra collection [b]é um índice[/b] <img src="http://www.guj.com.br/images/smilies/b2eb59423fbf5fa39342041237025880.gif" border="0"><br /> <br /> Mas, então, o que o Prevayler faz? Ele permite que as mudanças a seus objetos de negócio sejam persistidas transparentemente, e recuperadas ao reiniciar a aplicação, serializando as mudanças em sequência, e reaplicando estas em ordem, ao reiniciar. Opcionalmente, para evitar que o log de transações fique muito grande, você pode tirar 'snapshots' do sistema periodicamente (à noite, por exemplo).<br /> <br /> "Só? :o"<br /> <br /> Yeap. Só. Mas esse "só" Teve um tom meio curioso, não teve? Pois bem: "só" isso já é mais do que suficiente pra te permitir criar sistemas com persistência transparente, com liberdade total para brincar à vontade com as APIs de querying que você gostar mais (ficando livre do SQL, inicialmente, até que alguém implemente SQL para objetos Java, ou OQL, ou o que for). Você também fica livre de usar uma conexão de rede, muitas vezes lenta, com seu banco de dados, o que te dá uma performance absurda (alguns testes indicaram que queries num sistema usando Prevayler foram 9000 vezes mais rapido que o Oracle *EM RAM* :shock<img src="http://www.guj.com.br/images/smilies/3b63d1616c5dfcf29f8a7a031aaa7cad.gif" border="0">. <br /> <br /> O único "problema" do Prevayler é que ele só funciona legal quando todos os seus objetos cabem na RAM, mas, se vc parar pra pensar bem, na grande maioria das aplicações, eles cabem (já parou pra pensar quanta informação tem em 256mb? E que nem 5% dos sistemas usa tanta informação assim?). Se as suas aplicações fazem parte dessa minoria, então o Prevayler ainda não é pra você - vai ser necessário esperar algum tempinho até que a RAM se torne ainda mais barata, e vai ser pouco tempo, acredito.<br /> <br /> Aqui vão alguns links caso vc queira saber mais sobre o Prevayler:<br /> <br /> <img src="http://www.guj.com.br/images/smilies/d6741711aa045b812616853b5507fd2a.gif" border="0"> Homepage: <a class="snap_shots" href="http://www.prevayler.org" target="_blank" rel="nofollow">http://www.prevayler.org</a><br /> <img src="http://www.guj.com.br/images/smilies/d6741711aa045b812616853b5507fd2a.gif" border="0"> SourceForge: <a class="snap_shots" href="http://prevayler.sf.net" target="_blank" rel="nofollow">http://prevayler.sf.net</a><br /> <img src="http://www.guj.com.br/images/smilies/d6741711aa045b812616853b5507fd2a.gif" border="0"> Meu artigo na dW:  <a class="snap_shots" href="http://www-106.ibm.com/developerworks/web/library/wa-objprev/index.html" target="_blank" rel="nofollow">http://www-106.ibm.com/developerworks/web/library/wa-objprev/index.html</a>]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/2652/12900/
</guid>
				<link>http://www.guj.com.br/prepost/2652/12900/
</link>
				<pubDate><![CDATA[Tue, 29 Apr 2003 09:53:41]]> GMT</pubDate>
				<author><![CDATA[ cv]]></author>
			</item>
			<item>
				<title></title>
				<description><![CDATA[ uau....<br /> q explicacao cv.....hehe<br /> <br /> valew pela dica....vou tentar me aprofundar mais no assunto...parece ser uma boa ideia o Prevayler...<br /> <br /> ate mais..]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/2652/12912/
</guid>
				<link>http://www.guj.com.br/prepost/2652/12912/
</link>
				<pubDate><![CDATA[Tue, 29 Apr 2003 10:25:22]]> GMT</pubDate>
				<author><![CDATA[ rbarioni]]></author>
			</item>
			<item>
				<title></title>
				<description><![CDATA[ E qto a segurança reais dos dados?? é realmente confiável??<br /> <br /> Engraçado.. será mesmo que os bancos serão extintos?? Tipo.. ja tem gente usando XML como forma de evitar  BDs em alguns casos e tal.. E agora esse tal de Prevayler tbm... <br /> Eu gostaria que você me dissesse uma vantagem diferencial entre esse "Prevayler" e um BD como Oracle mesmo.. Apesar que ja li as mensagens acima.. Porém de qquer forma gostaria de algo + satisfatório... Desculpe me por qualquer inconveniencia...]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/2652/12927/
</guid>
				<link>http://www.guj.com.br/prepost/2652/12927/
</link>
				<pubDate><![CDATA[Tue, 29 Apr 2003 13:24:45]]> GMT</pubDate>
				<author><![CDATA[ Dayvson Clauber]]></author>
			</item>
			<item>
				<title></title>
				<description><![CDATA[ [quote="Dayvson Clauber"]E qto a segurança reais dos dados? é realmente confiável?[/quote]<br /> <br /> Claro! Por que vc nao faz alguns testes e ve com seus proprios olhos? <img src="http://www.guj.com.br/images/smilies/3b63d1616c5dfcf29f8a7a031aaa7cad.gif" border="0"><br /> <br /> [quote="Dayvson Clauber"]Engraçado.. será mesmo que os bancos serão extintos?? Tipo.. ja tem gente usando XML como forma de evitar  BDs em alguns casos e tal.. E agora esse tal de Prevayler tbm... [/quote]<br /> <br /> Os bancos de dados relacionais nunca serão extintos, pq pra muitas áreas eles são interessantes. O modelo relacional tem sido modificado e evoluido ao longo das ultimas decadas, e com certeza vai melhorar ainda mais. O que deve, mesmo, ser extinto é o uso indiscriminado de bancos de dados para soluções que poderiam ser melhor implementadas usando outras tecnologias (XML, Prevayler, etc). Eu de forma alguma sou "contra" bancos de dados, mas todos temos de concordar que fazer mapeamento Objeto-Relacional é um pé no saco, e trabalhar diretamente com SQL dentro do código beira o ridículo hoje em dia. Para os casos onde isto não é necessário, agora temos o Prevayler <img src="http://www.guj.com.br/images/smilies/283a16da79f3aa23fe1025c96295f04f.gif" border="0"><br /> <br /> [quote="Dayvson Clauber"]Eu gostaria que você me dissesse uma vantagem diferencial entre esse "Prevayler" e um BD como Oracle mesmo.. Apesar que ja li as mensagens acima.. Porém de qquer forma gostaria de algo + satisfatório... Desculpe me por qualquer inconveniencia...[/quote]<br /> <br /> O que seria algo mais satisfatório que um desempenho de queries em torno de 9000 vezes maior que um banco de dados Oracle 9i *CARREGADO EM RAM*? Persistência de objetos de negócio transparente, talvez? Ou o fato de nunca ninguém ter encontrado um bug no core do Prevayler? <img src="http://www.guj.com.br/images/smilies/3b63d1616c5dfcf29f8a7a031aaa7cad.gif" border="0"><br /> <br /> Todo caso, se você quiser se convencer de verdade, não vai adiantar nada eu ficar aqui escrevendo laudas e laudas. O Prevayler é free! Baixe, instale e rode os testes e demos! Garanto que, mesmo que você não venha a trabalhar com o Prevayler num curto espaço de tempo, ficará, no mínimo, impressionado com a elegância da idéia <img src="http://www.guj.com.br/images/smilies/3b63d1616c5dfcf29f8a7a031aaa7cad.gif" border="0">]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/2652/12931/
</guid>
				<link>http://www.guj.com.br/prepost/2652/12931/
</link>
				<pubDate><![CDATA[Tue, 29 Apr 2003 14:09:54]]> GMT</pubDate>
				<author><![CDATA[ cv]]></author>
			</item>
			<item>
				<title></title>
				<description><![CDATA[ O cv, tem mais alguma documentação a respeito do prevayler em algum outro lugar, eu baixei ele, mas não sei como instalar.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/2652/13037/
</guid>
				<link>http://www.guj.com.br/prepost/2652/13037/
</link>
				<pubDate><![CDATA[Wed, 30 Apr 2003 10:37:18]]> GMT</pubDate>
				<author><![CDATA[ luiz_ross]]></author>
			</item>
			<item>
				<title></title>
				<description><![CDATA[ [quote="luiz_ross"]O cv, tem mais alguma documentação a respeito do prevayler em algum outro lugar, eu baixei ele, mas não sei como instalar.[/quote]<br /> <br /> Qual versao do Prevayler vc baixou? Se foi a 1.x, então é só compilar com o ANT. Aliás, dê uma olhada nos targets do ANT, a maioria dos exemplos pode ser rodada de forma bem facil usando o buildfile.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/2652/13064/
</guid>
				<link>http://www.guj.com.br/prepost/2652/13064/
</link>
				<pubDate><![CDATA[Wed, 30 Apr 2003 14:12:27]]> GMT</pubDate>
				<author><![CDATA[ cv]]></author>
			</item>
			<item>
				<title></title>
				<description><![CDATA[ o prevayler é 1 grande sacada, mas sofre de algumas deficiencias graves:<br /> <br /> -Voce tem que escrever os comandos, isso é tedioso e sucetivel a bugs, o prevayler é tão seguro quanto o pior dos comandos usados com ele, ou seja, é muito mais sucetivel a erros de programação. Um RDBMS nao tem esse problema, uma query nao deixa o banco em estado inconsistente.<br /> <br /> -Com prevayler voce é muito mais refem do hardware que com bancos de dados normais. Uma vez que ele usa serialização do java que falha miseravelmente quando ocorre falhas em disco. Ou seja, pode puxar a tomada a vontade, mas quando 1 cluster com defeito e teu log é inutilizado por completo a partir dele, uim bom banco de dados consegue superar isso ate certo ponto.<br /> <br /> -Prevayler é ideal para aplicações single threaded, já que todas modificações são executadas em serie, nao importa se voce tem 1 ou 100 cpus.<br /> <br /> <br /> Por ultimo, apenas uma critica contra a metodologia dos benchmarks.<br /> Nele o autor compara 'apples to oranges' pq compara 2 ambientes diferentes. Pouco injusto rodar o banco em um processo separado.<br /> <br /> Oque eu gostaria de ver era algum benchmark contra 1 MySQL embedded usando HEAP tables.<br /> <br /> O Oracle possui uma JVM emdedded nao? Pq nao rodar os testes dali?]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/2652/13143/
</guid>
				<link>http://www.guj.com.br/prepost/2652/13143/
</link>
				<pubDate><![CDATA[Thu, 1 May 2003 01:05:10]]> GMT</pubDate>
				<author><![CDATA[ louds]]></author>
			</item>
			<item>
				<title></title>
				<description><![CDATA[ Acho que o CV pode explicar melhor essa, mas eu já vou te dar uma sugestão: se vc vai usar multithreads, vc tem que fazer sozinho a sua concorrência. De cara. Como se vc tivesse RAM infinita.<br /> <br /> Você só garante exclusão mútua no banco para o acesso aos dados. Se você guardar objetos java mapeados no banco (JDO ou sei lá), e quiser instanciá-los, o banco não pode fazer nada por você.<br /> <br /> Mais do que isso, como é aberto, é bem mais configurável. Vc pode ter diversos Mutexes, por exemplo, pra fazer exclusão mútua em grupos de objetos disjuntos.... vc pode rodar [b]transações em paralelo[/b], desde que elas não escrevam nos mesmos objetos.<br /> <br /> Vc pode, aliás, fazer seus Commands tão restritos quanto vc queira, manipular a justiça (justiça no sentido técnico), por exemplo, beneficiando as transações de leitura. E implementar "subclasses" de transações que, além do padrão de acesso (leitura/escrita), observam se a transação cria um objeto ou não e fazer outra política de justiça baseada nisso.<br /> <br /> Mais ainda, vc não precisa mais de rollback!!!! Vc pode garantir que uma transação vai ter sucesso, de várias formas:<br /> <br /> 1) fazendo uma cópia e testando (força bruta, eu diria).<br /> 2) garantindo que os recursos necessários estão lá. Lembre-se que suas classes de negócio são determinísticas...<br /> 3) adquirindo locks, vc pode garantir que os objetos que vc utiliza naquela transação não serão modificados durante a execução, e assim vc garante VALORES.<br /> <br /> Vc não precisa nem de triggers!! É como se todos os acessos ao seu banco fossem feitos através de stored procedures, sua liberdade é total.<br /> <br /> O caso do disco é mesmo grave. Mas se vc tem um sistema crítico, que não pode cair de jeito nenhum (esse é o alvo principal do prevayler), não custa muito ter 2 máquinas, uma "chefe" e uma réplica, rodando o seu sistema.<br /> <br /> Foi mal pelo tamanho, me empolguei...<br /> <br /> []s!!]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/2652/13174/
</guid>
				<link>http://www.guj.com.br/prepost/2652/13174/
</link>
				<pubDate><![CDATA[Thu, 1 May 2003 16:45:55]]> GMT</pubDate>
				<author><![CDATA[ dukejeffrie]]></author>
			</item>
			<item>
				<title></title>
				<description><![CDATA[ Ae galera...<br /> <br /> Quais são as maiores mudanças do Prevayler v1.x para o Prevayler 2????<br /> ...<br /> <br /> Tbém achei super-elegante o modelo de persistencia dele....<br /> Mas pq o projeto opta por manter os objetos em RAM???<br /> Velocidade de acesso???]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/2652/47441/
</guid>
				<link>http://www.guj.com.br/prepost/2652/47441/
</link>
				<pubDate><![CDATA[Thu, 29 Jan 2004 20:21:19]]> GMT</pubDate>
				<author><![CDATA[ Diogenes]]></author>
			</item>
			<item>
				<title></title>
				<description><![CDATA[ [quote="louds"]o prevayler é 1 grande sacada, mas sofre de algumas deficiencias graves:<br /> [/quote]<br /> <br /> Nada é perfeito !!!<br /> <br /> [quote="louds"]<br /> -Voce tem que escrever os comandos, isso é tedioso e sucetivel a bugs, o prevayler é tão seguro quanto o pior dos comandos usados com ele, ou seja, é muito mais sucetivel a erros de programação. Um RDBMS nao tem esse problema, uma query nao deixa o banco em estado inconsistente.<br /> [/quote]<br /> <br /> Vc está 100% certo, mas isso depende do ponto de vista e do gosto do freguês. Escrever SQL tb pode ser tedioso, e se vc não fizer isso direito vai detonar o seu banco. Uma query fazendo full table scan ou um update errado vai detonar o seu banco ou apagar os seus dados. O legal do Prevayler é que vc pode ter uma biblioteca de comandos pré-definidos e apenas reutilizá-los.<br /> <br /> <br /> [quote="louds"]<br /> -Com prevayler voce é muito mais refem do hardware que com bancos de dados normais. Uma vez que ele usa serialização do java que falha miseravelmente quando ocorre falhas em disco. Ou seja, pode puxar a tomada a vontade, mas quando 1 cluster com defeito e teu log é inutilizado por completo a partir dele, uim bom banco de dados consegue superar isso ate certo ponto.<br /> [/quote]<br /> <br /> Não sou expert no assunto, mas pra isso que serve back-up. No Oracle tb se vc tem um bad block no HD, vc começa a receber ORA Corrupted. A vantagem do Oracle é que a coisa é particionada, logo vc não perde tudo. No prevayler tb... Os comandos são particionados em vários arquivos diferentes. Perder tudo tb vai ser difícil.<br /> <br /> [quote="louds"]<br /> -Prevayler é ideal para aplicações single threaded, já que todas modificações são executadas em serie, nao importa se voce tem 1 ou 100 cpus.<br /> [/quote]<br /> <br /> Não entendi porque isso seria uma desvantagem. Outros programas rodando na máquina vão ficar felizes se houver outro processador.<br /> <br /> [quote="louds"]<br /> Por ultimo, apenas uma critica contra a metodologia dos benchmarks.<br /> Nele o autor compara 'apples to oranges' pq compara 2 ambientes diferentes. Pouco injusto rodar o banco em um processo separado.<br /> <br /> Oque eu gostaria de ver era algum benchmark contra 1 MySQL embedded usando HEAP tables.<br /> <br /> O Oracle possui uma JVM emdedded nao? Pq nao rodar os testes dali?<br /> [/quote]<br /> <br /> Esses benchmarks são interessantes mas ninguém vai tomar a decisão de usar o prevayler por causa deles. Os problemas do prevayler são outros que não tem nada a ver com velocidade.<br /> <br /> Quem quiser dar uma olhada numa implementação simples e eficiente de um sistema de persistencia (ou prevalencia) pode visitar a página:<br /> <br /> <a class="snap_shots" href="http://www.smartjava.com.br/artigo3.jsp" target="_blank" rel="nofollow">http://www.smartjava.com.br/artigo3.jsp</a><br /> <br /> Um abraço,<br /> <br /> Sergio Oliveira<br /> www.smartjava.com.br]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/2652/53001/
</guid>
				<link>http://www.guj.com.br/prepost/2652/53001/
</link>
				<pubDate><![CDATA[Wed, 10 Mar 2004 23:31:00]]> GMT</pubDate>
				<author><![CDATA[ saoj]]></author>
			</item>
	</channel>
</rss>
