Caché: Banco de Dados Pós-Relacional

Alguém aki no GUJ ja trabalhou com este banco de dados Caché?
Alguém poderia esclarer como ele funciona?
Como e a sua performace?
Tem exemplos de como usar ele com Java?

Achei no google: http://www.linhadecodigo.com.br/artigo/66/usando-cache-objects-e-java.aspx

jakefrog vlw! eu tinha visto esse artigo ai já.
Eu instalei ele aki na minha máquina e tals, eu gostaria de
saber como ele se porta em produção, questão como performace,
estabilidade e tals.

Aconselho você estudar bem o Caché antes de colocá-lo em produção, pois ele pode afetar consideravelmente a forma como sua aplicação vai ser escrita com relação a consistência dos dados e até mesmo perfomance. Alguns pontos:

  • Ele utiliza, por padrão, nível de isolamento READ UNCOMMITED;

  • Você pode setar READ COMMITED, mas funções agregadas continuarão se comportando como READ UNCOMMITED;

  • Muitos problemas de LOCK em situação de concorrência (agravado se setado READ COMMITED na conexão). Ele “trava” o registro mesmo durante o select (não há o comando select … for update) (existe um cláusula %NOLOCK, mas, por razões óbvias, deve ser utilizado com muita cautela);

  • Não importa o que te digam, o Caché é um banco hierárquico, no fim tudo acaba em globais. O que ele cria são “visões” relacionais e OO para esses dados hierárquicos.

  • Enfim… o Caché tem muitas, mas muitas particularidades que devem ser bem conhecidas antes de se desenvolver uma aplicação robusta sobre ele.

Quanto a perfomance, aconselho vc a usar este software http://sourceforge.net/projects/benchmarksql/ e comparar com outros SGBDs em condições de hardware/plataforma equivalentes.

Tenho experiênciência de aproximadamente 7 anos na administração de bases de dados Caché.

ranophoenix cara obrigado pelo seu esclarecimento!! xD
Bom o que acontece é o seguinte na empresa onde eu trabalho a gente tem um cliente onde gera um fluxo
de informação tem uma tabela que chega ater 11 milhões de registros.
E ouvi falar muito bem da performace desse banco de dados Caché dai eu de saber opinião de quem trabalha
ou ja trabalhou com ele para ter um noção de como as coisas funciona com ele.

Perfomance é sempre uma variável que temos que ter muito cuidado na hora de mensurar. Em cenários OLTP uma tabela de 11 milhões de registros pode ser o menor de seus problemas.

Algumas perguntas importantes:

Quantos usuários simultâneos minha aplicação vai suportar?
Quantas transações por segundo/minuto minha base deve ser capaz de processar?
Qual o crescimento estimado de minha base? O banco suporta particionamento de tabela (o Caché “implementa” esse recurso através de um técnica que ele chama de mapeamento de subscrito, mas não tem ferramentas para abstrair a exportação/importação dos dados particionados para outros ambientes - desenvolvimento, homologação -, por exemplo).
E por aí vai…

A fama do Caché ter alta perfomance vem da época de aplicações cliente-servidor/terminal/mainframe (antigo Mumps) e acesso direto via global (acesso hierárquico), ou seja, caso o critério de busca coincidisse com a chave da árvore o resultado era quase que imediato, caso contrário, o desempenho era extramento ruim, tendo que criar artifícios como globais de ponteiro (estruturas hierárquicas que funcionavam como índices para as globais de dados) para otimizar o acesso.

Caso vc acesse somente a visão relacional ou OO esse ganho não existe e vc deve tomar cuidado redobrado com a consistência dos seus dados (READ UNCOMMITED).

É isso aí, espero ter ajudado.

Abração.