prevalência de dados

37
Weyler N M Lopes Prevalência de Dados Um alternativa para o armazenamento

Upload: tashya-stevenson

Post on 04-Jan-2016

15 views

Category:

Documents


0 download

DESCRIPTION

Prevalência de Dados. Um alternativa para o armazenamento. Weyler N M Lopes. O que é prevalência?. Mecanismo de armazenamento onde os dados (objetos do negócio) são persistidos em memória principal. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Prevalência de Dados

Weyler N M Lopes

Prevalência de Dados

Um alternativa para o armazenamento

Page 2: Prevalência de Dados

28/03/2007 Weyler N M Lopes 2

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.

Page 3: Prevalência de Dados

28/03/2007 Weyler N M Lopes 3

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 1musica(1,”Outra vez”, 215)

Processo 2musica(1,”Outra vez”, 215)

RepositórioArmazena

Recupera

Page 4: Prevalência de Dados

BD em memória (MMDB – Main Memory Database)

Page 5: Prevalência de Dados

28/03/2007 Weyler N M Lopes 5

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.

Page 6: Prevalência de Dados

28/03/2007 Weyler N M Lopes 6

Breve evolução dos meios de armazenamento

Fita Magnética Disco Memória semicondutora

Page 7: Prevalência de Dados

28/03/2007 Weyler N M Lopes 7

Diferenças entre propriedades da memória e do disco

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.

Possui estrutura mais complexa. Muitos componentes mecânicos.

Preço mais acessível.

Maior capacidade.

Page 8: Prevalência de Dados

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?

O que diferencia um BD em memória de um BD em disco com uma cache muito grande?

Page 9: Prevalência de Dados

28/03/2007 Weyler N M Lopes 9

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.

Page 10: Prevalência de Dados

28/03/2007 Weyler N M Lopes 10

Alguns pontos importantes paraBD 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.

Page 11: Prevalência de Dados

28/03/2007 Weyler N M Lopes 11

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.

Page 12: Prevalência de Dados

28/03/2007 Weyler N M Lopes 12

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.

Page 13: Prevalência de Dados

28/03/2007 Weyler N M Lopes 13

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.

Page 14: Prevalência de Dados

28/03/2007 Weyler N M Lopes 14

Soluções para BD em memória principal

Page 15: Prevalência de Dados

28/03/2007 Weyler N M Lopes 15

Componentes do Oracle TimesTen

Fonte: htttp://www.oracle.com/technology/products/timesten/index.html

Page 16: Prevalência de Dados

28/03/2007 Weyler N M Lopes 16

Oracle TimesTen comparado com SGBDR Convencional

Fonte: htttp://www.oracle.com/technology/products/timesten/index.html

Page 17: Prevalência de Dados

Prevalência

Page 18: Prevalência de Dados

28/03/2007 Weyler N M Lopes 18

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.

Page 19: Prevalência de Dados

28/03/2007 Weyler N M Lopes 19

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.

Page 20: Prevalência de Dados

28/03/2007 Weyler N M Lopes 20

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.

Page 21: Prevalência de Dados

28/03/2007 Weyler N M Lopes 21

Algumas soluções para prevalência

Page 22: Prevalência de Dados

28/03/2007 Weyler N M Lopes 22

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.

Page 23: Prevalência de Dados

28/03/2007 Weyler N M Lopes 23

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.

Page 24: Prevalência de Dados

28/03/2007 Weyler N M Lopes 24

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.

Page 25: Prevalência de Dados

28/03/2007 Weyler N M Lopes 25

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

Page 26: Prevalência de Dados

28/03/2007 Weyler N M Lopes 26

Desserialização de Objetos

Processo inverso da serialização.

Fonte: http://www.javacaps.com/java_serial.html

Page 27: Prevalência de Dados

28/03/2007 Weyler N M Lopes 27

Snapshot

É a cópia em disco dos objetos seriados.

Fonte: http://www.javacaps.com/java_serial.html

Page 28: Prevalência de Dados

28/03/2007 Weyler N M Lopes 28

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

Page 29: Prevalência de Dados

28/03/2007 Weyler N M Lopes 29

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

Page 30: Prevalência de Dados

28/03/2007 Weyler N M Lopes 30

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

Page 31: Prevalência de Dados

Uma pequena aplicação com Prevayler

Page 32: Prevalência de Dados

28/03/2007 Weyler N M Lopes 32

O que foi utilizado

Page 33: Prevalência de Dados

28/03/2007 Weyler N M Lopes 33

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:

Page 34: Prevalência de Dados

28/03/2007 Weyler N M Lopes 34

Estrutura de pacotes da aplicação

Pacotes e diretórios criados pelo plug-in preclipse:

Page 35: Prevalência de Dados

28/03/2007 Weyler N M Lopes 35

Funcionalidades do plug-inPrincipais funcionalidades do plug-in preclipse

Page 36: Prevalência de Dados

28/03/2007 Weyler N M Lopes 36

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.

Page 37: Prevalência de Dados

28/03/2007 Weyler N M Lopes 37

Contatos

http://del.icio.us/weyler/prevalencia/

[email protected]