ODB: Nova versão do banco de dados Objeto

35 respostas
Olivier

A versão 1.5.5 do banco de dados Objeto NeoDatis ODB foi liberada.

Esta versão traz grande melhora de desempenho : permite inserir 12000 objetos/segundo, atualizar 11000 objetos/segundo e recuperar mais de 110000 objetos/segundo.

ODB permite persistir e recuperar objetos Java de maneira totalmente transparente. ODB é Open Source LGPL.

Para obter mais informações,acesse http://odb.neodatis.org

Um mini-tutorial está disponível em http://odb.neodatis.org/1MTutorial.jsp

35 Respostas

Kknd

Baixei agora e já estou conseguindo usar! Muito fáci lde aprender, estou gostando muito!

O

Também estou testando e estou achando muito bom, só os DBAs acham ruim, pq eles vão ter que aprender mais heheheheheeh

Só fico na dúvida de como modelar um banco OO.

Kknd

Poxa, já consegui ter uma boa idéia de como funciona. Fiz uma pequena classe pra fazer a interação com o BD. Agora to tentando melhorar minha aplicação pra ficar menos procedural.

asclows

Bem que alguns dos ‘Gurus’ deste portal poderiam mostrar seus conhecimentos nesta hora!

Gurus = Aqueles que ‘sempre gostam se mostrar’ poderiam trazer algo de valor para nós já que banco de dados OO ainda é um assunto desconhecido (praticado) pela maioria.

E

pra quem gostou, tem um outro também bastante similar… o DB4O

http://www.db4o.com/

Andei fazendo uns testes com esse db4o e gostei bastante.

plentz

O que você tentou dizer aqui?

Olivier

Kknd ,

A ideia do ODB, ou de outro banco de dados Objeto Nativo, é que você se preocupa com suas classes de negócio. O Modelo do seu banco acaba sendo o seu modelo de classes: Fica totalmente transparente.

Olivier.

Sombriks

Hahaaa, sou fã de carteirinha de bancos de objetos e modelar um banco de objetos se resume a criar seus Value Objects, importanto um pouco do que o pessoal de brinquedos poderosos como Hiberante e etc. já fazem por aí.

italomaia

Rapaz, achei esse dbatis interessante. Do Jeitinho que um dbOO deve ser. E o db4o eu já testei e aprovei, entretanto, o dbatis é gpl e talz hã? Uma comparação dos dois pode ser interessante.

Daniel_Quirino_Olive

Será?

Sombriks

Será?

Ah, tá bom, tá bom, tem mais caroço nesse angú, :stuck_out_tongue:

mas me diz se vc sente tesão ao fazer um mapeamento hbm no hibernate, :twisted:

Daniel_Quirino_Olive

Será?

Ah, tá bom, tá bom, tem mais caroço nesse angú, :stuck_out_tongue:

mas me diz se vc sente tesão ao fazer um mapeamento hbm no hibernate, :twisted:

Não não. O que queria dizer é: será que projetar um banco OO é apenas criar Value-Objects-que-não-são-Value-Objects-de-verdade como se faz com Hibernate ou os Value-Objects-que-não-são-Value-Objects-de-verdade que usamos no Hibernate são apenas quebra-galhos para fazer um ORM funcionar? Aliás, “objetos de persistência” fazem mesmo sentido neste caso?

D

Pessoal, muito bom este banco, testei e gostei muito…

Mas alguém sabe como ele se comporta com um volume muito grande de dados? E qual o seu desempenho comparando com outros bancos mais usados?

jmarceno

danyelsanches:
Pessoal, muito bom este banco, testei e gostei muito…

Mas alguém sabe como ele se comporta com um volume muito grande de dados? E qual o seu desempenho comparando com outros bancos mais usados?

Quanto a este citado no tópico eu não sei dizer, mais quanto ao db4o ele tem vários comparativos no próprio site e parece ter um desempenho legal.

E já fiz alguns testes que me deixaram satisfeito, o problema é que ele tem um limite de 2GB para cada arquivo de dados :S .

Olivier

Pelos testes que eu fiz, o desempenho do ODB é equivalente ao do DB4O. No próprio site do ODB, citam alguns números interessantes :

ODB can store more than 12000 objects per second, update more than 11000 objects per seconds and select more than 110000 objects per second (On Intel Core 2 Duo with 2Gb of Memory).

Lembrando também que as licenças do DB4o e ODB são diferentes:

ODB é LGPL, DB4O é GPL (com licença comercial para uso comercial).

_fs

Não encontrei as métricas utilizadas para realizar o teste no site, alguém sabe?

chun

qual a REAL vantagem sobre o Hibernate ?

G

Bah, vou dar uma testada nesses brinquedos. O fato de sair dos xmls de mapeamento deve ser algo…

Como eles devem se comportar em casa de mundança de estrutura dos objetos ja persistidos?

fmeyer

voce pode usar annotations :slight_smile:

Olivier

Chun,

NeoDatis ODB ou Db4O não se comparam diretamente com Hibernate. Hibernate é uma camada de mapeamento entre Mundo OO e Mundo relacional. ODB e Db4O são banco de dados! não são camada de mapeamento. Hibernate ainda usa um banco de dados, os bancos OO ‘são o banco’.

Para responder ‘giulianocosta’, quando há mudança na estrutura de objetos já persistidos, ODB tem um mecanismo de refactorig automático que detecta as mudanças nos objetos e faz o refactoring no modelo do banco tb (quando possível).

Grinvon

Não posso baixar aqui do trampo, mas dei uma olhada no tutorial, parecel sim bem fácil e bastante útil para criação de arquivos de configuração (projetando um pequeno banco para configuração de uma aplicação) e também para sistemas pequenos possa cair como uma luva.

pcalcado

Se vocês querem realmente pensar num banco destes, dicas:

1 - Vejam a política de migration schema dele
2 - Vejam se existem ferramentas de gerenciamento

Se 1 e 2 forem ruins, ESQUEÇAM.

srolbh

pcalcado, voce esta dizendo entao que por essas razoes BDOO sao ruins???

Pq o db4o tem uma ferramenta básica de auxilio chamada ObjectManager.
o que nao da pra comparar com um Enterprise Manager naturalmente…

E migracao pra BDR?? Nao sei como…

Olivier

o NeoDatis ODB tem uma ferramenta ODBExplorer que permite:

  • Se conectar ao um banco local ou remoto

  • Consultar o meta modelo da bases (as classes)

  • Consultar os objetos (como hierarquia de objetos ou como tabela)

  • Criar query de maneira gráfica

  • Apagar objetos

  • Atualizar objetos

  • Criar novos objetos

  • Importar e Exportar de/para XML

R

Olá,

Pelo que estou vendo, esses bancos OO fazem o mesmo que o Prevayler, armazenar objetos em memória e persisti-los em arquivos serializaveis/xml. Está certo?

Obrigadão!

G

voce pode usar annotations :slight_smile:

Com cerveja fmeyer, o que quis dizer implicitamente é que sair desse arremedo que é OO mapeado para relacional é um grande salto. Quando pudermos fazer isso com toda segurança e tranquilidade sem sombra de dúvida será bem melhor do que ficar fazendo arremedo para amarrar relacional ao OO.

jmarceno

Olá,

Pelo que estou vendo, esses bancos OO fazem o mesmo que o Prevayler, armazenar objetos em memória e persisti-los em arquivos serializaveis/xml. Está certo?

Obrigadão!

Na verdade não…

Falo pelo db4o que conheço e já testei bastante, ele não usa XML, é um arquivo de dados em formato binário mesmo.
Na última versão dele implementarão isto com a ajuda de árvores B+, o que deve ter melhorado a performance (não tenho certeza pq não testei depois :P)

O que eles permitem é que você exporte tudos os dados para XML o que facilita na hora de uma migração, em bancos pequenos é claro…rs

abcs

Olivier

ODB e DB4o têm muitas diferenças com Prevayler. Seguem algumas:

  • Prevayler traz toda sua estrutura para memória. ODB e DB4O só trazem o que vc pediu.
  • ODB e Db4O têm linguagens de query.
  • Prevayler usa serialização de objetos o que traz problemas se seu modelo de classes muda…
  • e várias outras…
bzanchet

Por favor, não leve ao pé da letra :D. Chamemos de “Hibernate”, aqui, o uso conjunto do próprio Hibernate com o seu SGBD relacional favorito.

Agora podemos fazer uma comparação, não é? Deixo aqui algumas sugestões de aspectos a serem debatidos: curva de aprendizado, facilidade de configuração/uso, facilidade de manutenção e de migração.

Olivier

bzanchet.

ok, foi mal. Neste caso tem como comparar sim.

Apesar de ser subjetivo, com relação á curva de aprendizado e a facilidade de uso, o ODB é muito simples de se usar e rápido de aprender, basta dar uma olhada nos mini-tutorias (http://odb.neodatis.org/1MTutorial.jsp?section=doc e http://odb.neodatis.org/5MTutorial.jsp?section=doc).

Migração : Migração para outras versões do ODB,para outros Banco OO ou para outros bancos relacionais ? ODB tem mecanismo de importação e exportação para XML.

Com relação a manutenção, vou deixar em aberto.

Guilherme_Silveira

Tenho algumas duvidas:

  1. Qual foi o objeto que foi persistido 12000 instancias por segundo.

  2. O banco OO está rodando remotamente em outra máquina e se comunicando via tcp com o cliente java? Ou está rodando embedded e por isso não existe o principal delay de casos simples que é o envio de dados pela rede

  3. As mais de 100 mil buscas por segundo envolvem o mesmo objeto que está em cache na memória (isto é, 99999 mil hits de cache) ou envolvem 100 mil buscas remotas de dados enviados via tcp?

Acho que a pergunta que fica é a qual foi a métrica utilizada no teste mesmo. Foi remoto? Foi local? Com cache local? Sem?

  1. Se eu desejo fazer uma busca de todos os jogadores que tem data dentro de tal período fechado, que estrutura de dados ele utiliza para fazer essa busca? Tem como indexar por esse campo? Afinal, não quero uma busca linear e lenta.
G

A real é que eu acho que esses benchmarks são meio marketeiros mesmo… Pq os caras nao postaram métricas…

glaucioguerra

Não conheço o ODB, mas o db4o é projetado para aplicações embeddable, mobile, desktop…

Segue um trecho do site:

“db4o is designed to provide a full-featured, embeddable database engine for equipment, mobile, desktop, and server platforms in
object-oriented environments. Where relational databases fall short
in providing zero-administration, small footprint, high performance, smooth synchronisation, and easy refactorability, db4o is the answer.”

Os benchmarks foram feitos pelo PolePosition http://www.polepos.org/

Segue o endereço:

http://polepos.sourceforge.net/results/html/melbourne_write.html

O site disponibiliza as classes para fazer os testes.

Um abraço!

Glaucio Guerra

glaucioguerra

Segue o link para download do PolePosition:

http://downloads.sourceforge.net/polepos/poleposition-0.20.zip?modtime=[telefone removido]&big_mirror=0
Um abraço!

Glaucio Guerra

Olivier

Detalhes sobre os benchmarks citados podem ser encontrados em http://odb.neodatis.org/performance.jsp.

os benchmarks do PolePosition foram implementados. Daqui a pouco os resultados do ODB serão integrados no PolePosition.

Criado 15 de novembro de 2006
Ultima resposta 21 de nov. de 2006
Respostas 35
Participantes 22