Prevalência de Dados
Weyler N M Lopes
Um alternativa para o
armazenamento
O que é prevalência?




Mecanismo de armazenamento onde os dados
(objetos do negócio) são persistidos em memória
principal.
A prevalência, consiste sobre tudo de mecanismo de
serialização de objetos em memória, de forma
transparente para o usuário.
Muitos afirmam que a prevalência é um banco de
dados. Não é bem assim.
Banco de Dados em memória principal (MMDB – Main
Memory Database) e prevalência são conceitos
associados, mas diferentes.
28/03/2007
Weyler N M Lopes
2
O que é persistência?


Capacidade de um objeto “sobreviver” (manter seu
estado) ao ciclo de vida do processo que está
contextualizado.
Objetos que não têm esta capacidade “morrem” com o
fim do processo. Estes objetos são chamados de
transientes.
Processo 1
musica(1,”Outra vez”, 215)
Armazena
Repositório
Processo 2
musica(1,”Outra vez”, 215)
Recupera
28/03/2007
Weyler N M Lopes
3
BD em memória
(MMDB – Main Memory Database)
O que são MMDB?





Banco de dados onde os dados estão
sempre na memória principal.
Backup realizado em disco.
Conceito não tão recente.
Compatíveis com algumas aplicações.
Proposta de prover as principais
funcionalidades providas por um BD em
disco, o que inclui todas as propriedades
ACID.
28/03/2007
Weyler N M Lopes
5
Breve evolução dos
meios de armazenamento
Fita Magnética
28/03/2007
Disco
Weyler N M Lopes
Memória semicondutora
6
Diferenças entre propriedades
da memória e do disco
Possui estrutura mais complexa.
Muitos componentes mecânicos.
Preço mais acessível.
Maior capacidade.
Acesso proporcionalmente mais rápido
que a capacidade de armazenamento
dos discos.
Memórias são normalmente voláteis,
enquanto discos não são.
28/03/2007
Weyler N M Lopes
7
Questões sobre
BD em memória

É sensato pensar que um banco de dados
completo pode estar na memória principal?

O que diferencia um BD em memória de um
BD em disco com uma cache muito grande?
28/03/2007
Weyler N M Lopes
8
Questões sobre
BD em memória

É sensato pensar que um banco de dados completo
pode estar na memória principal?
Sim, para algumas aplicações

O que diferencia um BD em memória de um BD em
disco com uma memória cache muito grande?
Embora todos os dados de um BD em disco possa
caber na cache, as estruturas e os algoritmos são
definidos para o acesso em disco.
28/03/2007
Weyler N M Lopes
9
Alguns pontos importantes para
BD em memória







Controle de concorrência.
Efetivação de transações.
Métodos de acesso.
Representação de dados.
Processamento de consultas.
Recuperação.
Performance.
28/03/2007
Weyler N M Lopes
10
Controle de concorrência


Como a memória principal é bem mais rápida
que o disco, transações são completadas em
um menor tempo.
A contenção de um lock não passa a ser algo
tão importante como ocorre para os discos.
28/03/2007
Weyler N M Lopes
11
Efetivação de transações


Como proteção contra falhas de mídia, é
necessário que se tenha cópia de backup e
que seja mantido um log de transações.
Um sistema de log estável é um dos desafios
para os BD em memória. Algumas aplicações
têm mostrado eficiência nesse sentido.
28/03/2007
Weyler N M Lopes
12
Métodos de Acesso e
representação de dados


Os custos de processamento em diferentes
estruturas são não são os mesmos para os
BD em disco e em memória.
Um BD em memória leva vantagem no
manuseio de ponteiros nas principais
representações de dados.
28/03/2007
Weyler N M Lopes
13
Soluções para BD em
memória principal
28/03/2007
Weyler N M Lopes
14
Componentes do
Oracle TimesTen
Fonte: htttp://www.oracle.com/technology/products/timesten/index.html
28/03/2007
Weyler N M Lopes
15
Oracle TimesTen comparado
com SGBDR Convencional
Fonte: htttp://www.oracle.com/technology/products/timesten/index.html
28/03/2007
Weyler N M Lopes
16
Prevalência
O que é prevalência?



Mecanismo de armazenamento onde os dados
(objetos do negócio) são persistidos em memória
principal.
A prevalência, consiste sobre tudo de mecanismo
de serialização de objetos em memória, de forma
transparente para o usuário.
Conceito intimamente associado ao Prevayler,
mecanismo de persistência desenvolvido por
Klaus Wuestefeld.
28/03/2007
Weyler N M Lopes
18
Vantagens da prevalência?







Enorme ganho em performance.
Redução de custo para uma solução.
Desenvolvimento totalmente OO.
Maior legibilidade de código.
Diminuição do tempo de desenvolvimento.
Transparência de armazenamento.
Com a redução de preço de memória, torna-se
viável.
28/03/2007
Weyler N M Lopes
19
Por que a prevalência ainda
não largamente utilizada?







Forte hegemonia dos bancos relacionais.
Grande ceticismo da comunidade.
Não é um padrão de fato.
Custo de memória semicondutora ainda é alto.
Criticidade das aplicações que usam BD
relacionais.
Forte acoplamento das aplicações com o BD.
Ainda há muita coisa para se discutir.
28/03/2007
Weyler N M Lopes
20
Algumas soluções para
prevalência
28/03/2007
Weyler N M Lopes
21
O Prevayler


Implementação do conceito de Prevalência em
linguagem Java.
Primeira versão foi disponibilizada em
novembro de 2001.

Em intervalos regulares os objetos são seriados
para o disco;

Desenvolvido pelo brasileiro Klaus Wuestefeld.
Não há um padrão predefinido de prevalência
a ser seguido. Cada linguagem implementa o
seu mecanismo.

28/03/2007
Weyler N M Lopes
22
Conceitos Chave

PrevalenceEngine - classe interna de prevalência,
que é responsável por todo o processo de execução, registro e
recuperação das alterações realizadas no PrevalentSystem.

PrevalentSystem - Uma classe definida pelo usuário
que deve referenciar todos os objetos de negócios da aplicação,
ou seja, os objetos que serão persistidos.


Snapshot - É o processo no qual o PrevalenceEngine
serializa todo o PrevalentSystem.
Operation - Toda alteração a ser realizada nos objetos
mantidos por um PrevalentSystem deve ser feita através de
objetos de classes que implementam a interface Transaction.
28/03/2007
Weyler N M Lopes
23
Como funciona



Quando a aplicação é iniciada, todos os objetos
serializados em disco vão para a memória.
Todos os objetos em memória são serializados para o
disco em intervalos regulares e no momento de fechar
a aplicação.
O arquivo de log é atualizada a cada transação
efetivada.
28/03/2007
Weyler N M Lopes
24
Serialização de Objetos
Processo de escrever o estado de um
objeto para uma seqüência de bytes.
Fonte: http://www.javacaps.com/java_serial.html
28/03/2007
Weyler N M Lopes
25
Desserialização de Objetos
Processo inverso da serialização.
Fonte: http://www.javacaps.com/java_serial.html
28/03/2007
Weyler N M Lopes
26
Snapshot
É a cópia em disco dos objetos seriados.
Fonte: http://www.javacaps.com/java_serial.html
28/03/2007
Weyler N M Lopes
27
Transações serializadas
Operações realizadas nos objetos em memória e que são
armazenadas em arquivos log assim que a operação for
executada.
Fonte: http://www.javacaps.com/java_serial.html
28/03/2007
Weyler N M Lopes
28
Transações serializadas
E se algo de errado ocorrer durante a execução da aplicação?
Fonte: http://cogitando.blogs.sapo.pt/arquivo/bg_doubt.jpg
28/03/2007
Weyler N M Lopes
29
Transações serializadas
No momento em que a aplicação é reiniciada usando o
Prevayler, os objetos voltam para a memória em seu estado
original:
Fonte: http://www.javacaps.com/java_serial.html
28/03/2007
Weyler N M Lopes
30
Uma pequena aplicação
com Prevayler
O que foi utilizado
28/03/2007
Weyler N M Lopes
32
Aplicação de um
cadastro de alunos
As classes do negócio de uma agenda de amigos, sem utilizar
algum mecanismo de persistência, seriam:
28/03/2007
Weyler N M Lopes
33
Estrutura de pacotes da
aplicação
Pacotes e diretórios criados pelo plug-in preclipse:
28/03/2007
Weyler N M Lopes
34
Funcionalidades do plug-in
Principais funcionalidades do plug-in preclipse
28/03/2007
Weyler N M Lopes
35
Frases de Klaus Wuestefeld
sobre o Prevayler
O Prevayler é a cura para um câncer que as
pessoas nem sabem que têm.
Somos como os bebês nascidos dentro da
Matrix: brutalmente atrofiados pelo uso de
banco de dados.
...quero aproveitar o máximo da OO que Java
me oferece, sem ficar restrito a registros burros
em tabelas.
Não considero a prevalência uma
"invenção" minha, mas apenas uma
visão de um futuro inevitável.
28/03/2007
Weyler N M Lopes
36
Contatos
[email protected]
http://del.icio.us/weyler/prevalencia/
28/03/2007
Weyler N M Lopes
37
Download

O que é prevalência?