Um alternativa para o armazenamento

Slides:



Advertisements
Apresentações semelhantes
Checkpoint SGBD com alta demanda de transações Checkpoint
Advertisements

Introdução Gdes. bancos de dados: Concorrência: Transação:
Sistemas Cliente/Servidor Introdução
Engenharia de Software
Sistemas operacionais
Prevayler Todos os objetos são armazenados em memória.
Projeto conceitual Mostra ao cliente exatamente o que o sistema fará
SISTEMAS DE INFORMAÇÃO
Maurício Edgar Stivanello
Motor de Armazenamento
Sumário 1 SQL Embutida 2 Processamento de Consultas
Banco de Dados Oracle AESO.
Fundamentals of Database Processing
Conceitos Básicos Dado: fato do mundo real que está registrado e possui um significado implícito no contexto de um domínio de aplicação Exemplos: endereço,
Prof. Alexander Roberto Valdameri
Prof. Alexander Roberto Valdameri
Fundamentos de Banco de Dados Prof. Alexander Roberto Valdameri
Engenharia de Requisitos Requisito – sistema Caso de uso - usuário
RECUPERAÇÃO APÓS FALHA
O Portal do Estudante de Computação
Rodrigo Cristiano Silva
Gerenciamento de Transações - Introdução
Banco de Dados Aplicado ao Desenvolvimento de Software
Orientação a Aspectos: π-PSF Killer Team Amirton Chagas, Elton Renan, José Dihego, Natanael Silva, Thiago Alexandre.
Sistemas Distribuídos
Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
SISTEMAS DE GERENCIAMENTO DE BANCO DE DADOS Hélder Lima e Silva - hmls
Concorrência e Java RMI
Gerência de Configuração - GC
Controle de concorrência
Programação Orientada à Objetos
BD Distribuído Conceitos Iniciais.
SISTEMAS OPERACIONAIS I Memória Virtual e Paginação
Sistemas Operacionais
Implementação MVC Pedro Antonino.
Engenharia de Software
Processos.
Campus de Caraguatatuba Aula 2: Introdução a Tecnologia de BD
RUP - Cap. 4 – Processo Centrado na Arquitetura
Bancos de Dados Estrutura e Funcionamento de um SGBD
Diagrama de Componentes
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Capítulo 10: Interface de Sistemas de Arquivos.
1 15/4/ :36 FMU – 1. Semestre – Tecnologia – Analise e Desenvolvimento de Sistemas Professor: Eduardo Silvestri Aluno:Clóvis de Oliveira- RA
Fase de Concepção Levantamento de Requisitos, Organização de Requisitos, Planejamento dos Ciclos Iterativos.
Professor Esp. Diego André Sant’Ana Disciplina: Sistemas Operacionais II Sistemas de Arquivos- Tipo de arquivos – Cap
Trabalho de Persistência para o EPOS. Problema Proposto Implementar no Epos objetos persistentes, ou seja, fazer com que o sistema, ao ser reiniciado,
LINQ e Entity Framework
Prevayler 2.0 UFRGS – Instituto de Informática Programação com Objetos Distribuídos Prof° Claúdio Fernando Resin Geyer Eduardo Bauer Londero Novembro 2004.
Expansão dos Casos de Uso
Transações Banco de Dados II Aline S Costa 1. TRANSAÇÕES Conjunto de operações que formam uma única unidade lógica de trabalho; Conjunto de instruções.
Engenharia de Controle e Automação Computação Para Engenharia Semana /02/2013 Professor Leomir J. Borba- –
Bancos de Dados Fundamentos Prof. Marcos R. Cardoso.
Sistemas de Arquivos Sistemas Operacionais Profa. Priscila Facciolli
Projeto e Implementação de Sistemas de Arquivos
Leo Silva Leonardo Murta Luiz Viana Persistência em Java.
UCSal – Bacharelado em Informática
APSI II Análise e Projeto de Sistemas de Banco de Dados II.
Sistemas de Arquivos. Alocação em memória – Problemas Quantidade Limitada de Informações Perda de informações quando o processo é terminado Vários processos.
MEMÓRIAS.
Banco de Dados Distribuídos Sílvia Cristina de Matos Soares
Copyright © 2011 Ramez Elmasri and Shamkant Navathe slide 1 Tópicos  Introdução  Um exemplo  Características da abordagem de banco de dados  Vantagens.
Banco de Dados Parte 1 Profa. Ana Karina Barbosa Fevereiro/2008.
Padrões de Projeto Aula 10 – Padrão Façade.
CIn-UFPE1 Projeto de Gerenciamento de Dados. CIn-UFPE2 Objetivos n Definir o que significa gerenciamento de dados do sistema; n Entender abordagens diferentes.
Estruturas de Sistemas Operacionais. Componentes Comuns do Sistema Administração de Processos Administração da Memória Principal Administração do Armazenamento.
Bruna Cavallero Martins Universidade Católica de Pelotas.
Persistência de dados e padrão DAO
Persistência de dados e padrão DAO Padrões de Projeto Orientado a Objetos Profa. Danielle Martin/Mauricio Universidade de Mogi das Cruzes.
Prof.: Jean Carlo Mendes
Modelagem de Banco de Dados: Conceitos
Transcrição da apresentação:

Um alternativa para o armazenamento 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

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) Processo 2 Repositório Armazena Recupera 28/03/2007 Weyler N M Lopes

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

Breve evolução dos meios de armazenamento Fita Magnética Disco Memória semicondutora 28/03/2007 Weyler N M Lopes

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

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

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

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

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

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

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

Soluções para BD em memória principal 28/03/2007 Weyler N M Lopes

Componentes do Oracle TimesTen Fonte: htttp://www.oracle.com/technology/products/timesten/index.html 28/03/2007 Weyler N M Lopes

Oracle TimesTen comparado com SGBDR Convencional Fonte: htttp://www.oracle.com/technology/products/timesten/index.html 28/03/2007 Weyler N M Lopes

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

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

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

Algumas soluções para prevalência 28/03/2007 Weyler N M Lopes

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

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

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

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

Desserialização de Objetos Processo inverso da serialização. Fonte: http://www.javacaps.com/java_serial.html 28/03/2007 Weyler N M Lopes

Snapshot É a cópia em disco dos objetos seriados. Fonte: http://www.javacaps.com/java_serial.html 28/03/2007 Weyler N M Lopes

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

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

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

Uma pequena aplicação com Prevayler

O que foi utilizado 28/03/2007 Weyler N M Lopes

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

Estrutura de pacotes da aplicação Pacotes e diretórios criados pelo plug-in preclipse: 28/03/2007 Weyler N M Lopes

Funcionalidades do plug-in Principais funcionalidades do plug-in preclipse 28/03/2007 Weyler N M Lopes

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

Contatos weylerl@hotmail.com http://del.icio.us/weyler/prevalencia/ 28/03/2007 Weyler N M Lopes