Banco de dados hsqldb X mckoi X cloudscape X Firebird

12 respostas
Luca

Olá

Estamos usando o hsqldb 1.7.1b como base de dados embutida em uma pequena aplicação isolada ou quando muito em rede local que pode armazenar no máximo uns 80 mil registros. Se não estamos fazendo algo errado, ao iniciar a aplicação, o hsqldb roda um script de inicialização que carrega TODO o banco e além de demorar, consome muita memória. Esta aplicação deverá rodar em máquinas de porte limitado bem menores do que nosso ambiente de desenvolvimento.

Perguntas:

  1. O hsqldb é estranho assim mesmo?
  2. O Mckoi faz tudo que o hsqlsb faz e roda melhor?
  3. Alguém já usou o cloudscape (*)? Que pode falar sobre ele?
  4. O Firebird pode atender aos requisitos de rodar em máquinas mais fracas do que um Pentium III 600 com 64 Mb de RAM? Ele é bom para rodar em aplicações isoladas?
  5. Alguma outra sugestão?

(*) Apache derby

[]s
Luca

12 Respostas

Ironlynx

Luca,não sei q diabos fez levarem vcs a usar a implementação 1.7.1 do hsqldb. usem a 1.7.2 e sejam felizes.Se vcs derem uma olhada na lista do hsqldb,verão q essa versão é desaconselhada há tempos.Aqui em casa dava problemas até com arquivos .csv .
Vá em: http://hsqldb.sourceforge.net/ e seja feliz! :smiley:
Os demais não posso falar pois nunca usei nenhum deles,mas tô louco para testar o Cloudscape. :slight_smile:

smota

Além disso na documentação

Documentacao do HSQLDB:
Memory tables are the default type when the CREATE TABLE command is used. Their data is held entirely in memory but any change to their structure or contents is written to the .script file. …

ou seja, ao invés de CREATE TABLE use CREATE CACHED TABLE

Ele não é estranho nao, eh pratico e facil de usar (embora eu nunca tenha usado pra algo critico ou pesado - testes, testes)

F

Oi Luca,

Interessante esta pergunta, pois considiu justamente com um teste de carga que estou fazendo entre HSQLDB e Derby.

Comecei usando o HSQLDB, ultima versão. Bom na minha maquina ele foi muito bem, muito rápido. Só que o consumo dememória é grande, meus problemas comecaram a aparecer quando fui rodar na maquina real. Simplesmente eu nao consegui inserir mais que 40 mil linhas nele sem dar OutOffMemory.

Sobre o hsqldb ser estranho, tuas tabelas sao cached? Tu da Shutdown compact nele antes de desconectar.

Bom depois desses problemas decidi baixar o Derby para testes. E para minha suspresa ele deu de chinelo e pisou em cima do HSQLDB. Antes que alguem fale que sou exagerado, vou para os números.

Ambiente P266 com 64MB windows 98SE.
Para os dois, mesmas tabelas, mesma forma de leitura dos arquivos, etc. So mudou o banco mesmo onde fiz um factory mudando somente a conexao.

HSQLDB:

40 mil linhas em 8 minutos. (mais que isso eu recebia OutOffMemory)

DERBY:

113 mil linhas em 3 minutos.

Os outros bancos citados eu não conheço.

]['s

Luca

Olá

Caraca! Três respostas excelentes!

Iron, bela observação. Já baixei a nova versão 1.7.2_07 e vou testa-la com as dicas do Mota e do Fábio.

Mota, parece que comemos mosca :oops: . Vamos ver como fica com suas sugestões.

Fábio, grande dica do Derby. Mas ele é apenas um snapshot do subversion. Por exemplo, a de hoje se chama incubating-derby-snapshot-56458.tar.gz. Segundo a lista [email removido], tópico Thoughts on a release, ainda faltam algumas coisas para um release estável. Vou testar por aqui e vamos trocar nossa experiência com ele.

[]s
Luca

danieldestro

Eu tive problemas com a versão 1.7.1. Só não estou conseguindo ver aqui no Forum do GUJ que não tá buscando menagens antigas.

F

Luca:
Olá

Caraca! Três respostas excelentes!

Iron, bela observação. Já baixei a nova versão 1.7.2_07 e vou testa-la com as dicas do Mota e do Fábio.

Mota, parece que comemos mosca :oops: . Vamos ver como fica com suas sugestões.

Fábio, grande dica do Derby. Mas ele é apenas um snapshot do subversion. Por exemplo, a de hoje se chama incubating-derby-snapshot-56458.tar.gz. Segundo a lista [email removido], tópico Thoughts on a release, ainda faltam algumas coisas para um release estável. Vou testar por aqui e vamos trocar nossa experiência com ele.

[]s
Luca

Luca,

Na realidade eu to usando o jar da versão 10 do cloudscape, entao acredito que seja mais que estável.

Outro detalhe que lembrei agora. Se tu precisar fazer um delete com grande quantidade de dados no hsqldb ele vai usar muita memoria também. Eu ja tava até olhando os fontes dele pra alterar isso, mas como nao vou usar mais ele parei hehe.

]['s

Luca

Olá

Fábio, o cloudscape não é free. Veja o que diz a licença:
[List]INFORMAÇÕES SOBRE LICENCIAMENTO

Os Programas abaixo indicados estão licenciados sob/ao abrigo dos seguintes termos e condições além daqueles constantes do Acordo Internacional de Licenciamento do Programa.

Nome do Programa: IBM Cloudscape Version 10.0
Número do Programa: 5724-J28
Autorização para Utilização em Computador Pessoal/Portátil: 1

EXPLICAÇÃO DOS TERMOS:

Autorização para Usuários/Utilizadores em Computador Pessoal/Portátil:
“1” significa que o Programa pode ser armazenado na máquina principal ou em outra máquina, desde que o Programa não esteja em uso ativo/activo em ambas as máquinas ao mesmo tempo.
. . . .
A seguir estão os Componentes Excluídos:
Apache Derby [/List]

Uma outra consideração sobre o Derby: o hibernate não vem pronto para usa-lo. É preciso pegar o que está em Additional dialect for IBM Cloudscape/Apache Derby que vale para o hibernate 2.1.6

[]s
Luca

Luca

Olá

Fábio, parece que o derby que vem com o cloudscape é free para aplicações embutidas. Veja o que está escrito no artigo da IBM Cloudscape Version 10: A technical overview

[color=darkblue]
. . . .
Prelude
Cloudscape is the original zero admin, embeddable, all java, relational database that entered the marketplace in 1996. In August 2004 IBM contributed Derby, a copy of its Cloudscape 10.0 relational database product, to the Apache Software Foundation (ASF) to help accelerate innovation around data-driven Java applications. IBM will continue its IBM Cloudscape commercial offering, which will now be based on the core Derby engine.

Not surprisingly, the existence of two names side-by-side, Cloudscape and Derby, might cause some confusion. With that in mind, this section hopes to clarify what is in the Derby engine and what is in the IBM Cloudscape product. We mention features you probably won’t recognize yet; but, rest assured, we describe them later in this technical article.

This technical article uses “Derby” when referring to any feature that is part of the open source database engine, including:

* The core RDBMS engine.
* The embedded JDBC Driver.
* The Network Server.
* Javadoc documentation.

. . . .

IBM Cloudscape Features
The Derby software includes so many capabilities, what more could you possibly want?

The IBM Cloudscape commercial product ships Derby and additionally includes:

* Technical Support
* IBM DB2 UDB Universal JDBC Driver for use with the Derby Network Server
* The IBM Cloudscape manuals and error messages translated into nine languages
* Features to jump start developers who are new to Java and/or Derby, including:
      o Product installers for Windows and Linux that install the Java Runtime Environment (JRE) and generate Windows batch files and UNIX scripts for setting the environment.
      o Sample databases.
      o Sample Java programs that show how to work with embedded mode and Network Server mode.[/color]

Mas também parece que para usar em um servidor deixa de ser free. Será que estou entendendo corretamente? A licença da IBM é um porre para entender.

[]s
Luca

F

Luca:
Olá

Fábio, parece que o derby que vem com o cloudscape é free para aplicações embutidas. Veja o que está escrito no artigo da IBM Cloudscape Version 10: A technical overview

[color=darkblue]
. . . .
Prelude
Cloudscape is the original zero admin, embeddable, all java, relational database that entered the marketplace in 1996. In August 2004 IBM contributed Derby, a copy of its Cloudscape 10.0 relational database product, to the Apache Software Foundation (ASF) to help accelerate innovation around data-driven Java applications. IBM will continue its IBM Cloudscape commercial offering, which will now be based on the core Derby engine.

Not surprisingly, the existence of two names side-by-side, Cloudscape and Derby, might cause some confusion. With that in mind, this section hopes to clarify what is in the Derby engine and what is in the IBM Cloudscape product. We mention features you probably won’t recognize yet; but, rest assured, we describe them later in this technical article.

This technical article uses “Derby” when referring to any feature that is part of the open source database engine, including:

* The core RDBMS engine.
* The embedded JDBC Driver.
* The Network Server.
* Javadoc documentation.

. . . .

IBM Cloudscape Features
The Derby software includes so many capabilities, what more could you possibly want?

The IBM Cloudscape commercial product ships Derby and additionally includes:

* Technical Support
* IBM DB2 UDB Universal JDBC Driver for use with the Derby Network Server
* The IBM Cloudscape manuals and error messages translated into nine languages
* Features to jump start developers who are new to Java and/or Derby, including:
      o Product installers for Windows and Linux that install the Java Runtime Environment (JRE) and generate Windows batch files and UNIX scripts for setting the environment.
      o Sample databases.
      o Sample Java programs that show how to work with embedded mode and Network Server mode.[/color]

Mas também parece que para usar em um servidor deixa de ser free. Será que estou entendendo corretamente? A licença da IBM é um porre para entender.

[]s
Luca

Eu ja havia procurado a respeito Luca, e foi a mesma impressao que eu tive. Bom eu estou usando ele embutido entao nao acredito ter problemas.

Tu precisa usar como server?

]['s

Luca

Olá

Fábio, preciso usar embutido em máquinas fracas. Em uma outra versão preciso usar como server mas neste caso posso exigir máquinas melhores e partir para um MySQL ou similar.

O atual estágio aqui ainda é de insistir com o hsqldb 1.7.2_07 que por experimentação conseguimos fazer rodar com o hibernate. A documentação e os exemplos são fraquinhos.

[]s
Luca

F

Luca:
Olá

Fábio, preciso usar embutido em máquinas fracas. Em uma outra versão preciso usar como server mas neste caso posso exigir máquinas melhores e partir para um MySQL ou similar.

É o mesmo caso que eu só que quando não for embutido usa Oracle.:stuck_out_tongue:

Eu tambem estava assim, fiz testes por uma semana nele. Fucei no código, alterei o que deu nos parametros, mas acabei desistindo. Realmente sobre a documentacao ainda é fraquinha.
O que notei no hsqldb é que para cargas de dados (como o meu caso) ele nao é uma boa saida, ele nao trabalha com paginacao de dados no banco, fica praticamente tudo na memoria isso complicou demais o uso dele aqui. Convenhamos se eu tivesse memoria sobrando iria usar prevayler :stuck_out_tongue:

]['s

Jair_Rillo_Junior

só para completar o tópico, vou falar um pouco sobre o Firebird.
Trabalhamos a um bom tempo com Firebird e ele roda sim em máquinas abaixo de Pentium III 600, inclusive na empresa, possui uma máquina para testes de softwares em Delphi, que é um Celeron 400 Mhz com 64de Ram e roda Firebird localmente para testes.
O que eu não posso falar a respeito é sobre sua versão Embedded, nunca instalei e testei, mas possuo amigos que testaram em suas empresas e aprovaram.

Criado 10 de novembro de 2004
Ultima resposta 10 de nov. de 2004
Respostas 12
Participantes 6