slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Bases de Dados OO O caso do Object Store Gabriel David PowerPoint Presentation
Download Presentation
Bases de Dados OO O caso do Object Store Gabriel David

Loading in 2 Seconds...

play fullscreen
1 / 13

Bases de Dados OO O caso do Object Store Gabriel David - PowerPoint PPT Presentation


  • 61 Views
  • Uploaded on

Bases de Dados OO O caso do Object Store Gabriel David Faculdade de Engenharia da Universidade do Porto gtd@fe.up.pt. Persistência. Persistência em LPOO 1. Ficheiros do sistema operativo: texto estruturado ou registos sem apontadores Þ só permite armazenar alguns tipos de objectos

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Bases de Dados OO O caso do Object Store Gabriel David' - dawn


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1
Bases de Dados OO

O caso do Object Store

Gabriel David

Faculdade de Engenharia da Universidade do Porto

gtd@fe.up.pt

persist ncia
Persistência
  • Persistência em LPOO

1. Ficheiros do sistema operativo: texto estruturado ou registos sem apontadores

Þ só permite armazenar alguns tipos de objectos

2. Imagem da sessão: guardar toda a sessão, o estado dos objectos, as variáveis e o ambiente

Þ potencialmente ineficiente; difícil partilhar objectos concorrentemente.

O objectivo é tornar a persistência ortogonal ao tipo de objectos.

  • objectos persistentes, transacções, falhas e recuperação
  • níveis de persistência

dados locais a procedimentos

dados que persistem durante uma transacção completa

dados da sessão (várias transacções) como user-name e variáveis de ambiente

dados que persistem para além da sessão: são os objectos que se guardam na BD e os únicos que são recuperáveis

persist ncia e bdoo
Persistência e BDOO
  • Extensões persistentes

- criar uma tabela SQL cria o tipo e a extensão

- uma classe especifica o tipo e o comportamento; é útil, nas classes com muitas instâncias, considerar que a classe é o contentor de todas as suas instâncias e que há iteradores para navegar eficientemente nos objectos

- métodos de lidar com extensões persistentes

1. ao criar uma instância de uma classe persistente guarda-se esta na extensão

2. objectos individuais podem ser declarados persistentes no momento da criação, por exemplo no próprio construtor new

3. usar uma operação explícita de escrita na BD persistente

  • Persistência por atingibilidade (PS-Algol)

- raiz do espaço de objectos: database é um objecto tuplo persistente

- se pT é um objecto tuplo persistente, então cada atributo de pT é um objecto persistente

- se pS é um objecto conjunto persistente então cada elemento de pS é persistente

- em vez de uma só raiz podem existir várias raízes com nome a funcionar de pontos de entrada para o subespaço persistente respectivo

  • Instâncias persistentes [Object Store]

- independente de a classe ser ou não persistente

- vários pontos de entrada

implementa o da identidade
Implementação da identidade
  • espaço transitório versus persistente
    • aumentar espaço endereçável — esquema de memória virtual com endereços de 32 bits e mecanismo de detectar referências para objectos não locais com transferência transparente [LOOM Smalltalk, Object Store]
  • endereço versus indirecção
    • endereço pode ser

- endereço de memória virtual

- endereço de memória secundária

- nome estruturado num ambiente distribuído

    • indirecção por

- tabela em memória [Smalltalk inicial]

- índice para objectos em memória secundária

Problema: tornar persistentes as referências [permitem construir espaços de objectos estruturados em grafos com partilha referencial]

endere o ou indirec o
Endereço ou indirecção
  • Indirecção

' um passo extra relativamente a ter o endereço

' deixa mover o objecto (garbage collection)

  • Endereço

' usar directamente o endereço de memória virtual como apontador

1. representação dupla em memória e em disco, com conversão à medida que é necessária

2. armazém persistente organizado como uma memória virtual

' identificadores de registo: nº da página no disco + nº da linha; indirecção local; usado em sistemas relacionais

' identificadores estruturados: indicação do caminho até ao objecto, através de uma convenção de nomes; usado em sistemas distribuídos

' delegados (surrogates): identificadores únicos globais, gerados pelo sistema, independentes do nome, estado, tipo e endereço do objecto; requer indirecção na determinação do endereço

bases de dados oo
Bases de dados OO
  • Sumário
    • Conceitos gerais
    • Exemplo do ObjectStore)
      • Arquitectura
      • Criação de objectos
      • Gestão da concorrência
      • Colecções
      • Perguntas
      • Índices
      • Associações
introdu o ao objectstore
Introdução ao ObjectStore
  • Base de dados é uma localização na memória para objectos persistentes
    • BD contém segmentos; segmentos são feitos de páginas
    • página é a unidade de transferência mínima (8K); não limita o tamanho dos objectos
    • os segmentos crescem automáticamente e não podem ser fixados num local
  • Tipos de BD
    • ficheiro do sistema operativo, definido pelo seu caminho (velocidade intermédia)
    • sistema de ficheiros crú (rawfs) gerido pelo ObjectStore

- montado directamente numa partição (mais rápido)

- montado em ficheiros do sistema operativo (mais lento)

  • ObjectStore é um SGBDOO que permite
    • criar e modificar objectos C++ (ou Smalltalk) em vez de tabelas, linhas e colunas
    • aceder aos dados com o mesmo formato em que existem na aplicação
    • descrever, memorizar e pesquisar dados complexos
    • memorizar persistentemente dados independentemente do tipo
processos
Processos
  • Servidor — processo que gere o acesso às bases de dados
    • memoriza e disponibiliza páginas de dados persistentes
    • arbitra acessos concorrentes
    • recuperação de falhas
    • arranque automático na inicialização da máquina
  • Aplicação cliente — programa do utilizador que pode aceder a várias BD
    • num só sistema de ficheiros ø um servidor
    • sistemas de ficheiros diferentes ø vários servidores
    • liga-se a biblioteca ObjectStore cliente para

- mapear objectos da BD persistente em endereços de memória virtual

- reservar e libertar memória persistente

- manter cache das páginas recentes e lidar com as faltas pedindo-as ao servidor

  • Gestor de cache — processo que corre na máquina da aplicação
    • um só por máquina
    • coordena o acesso concorrente das várias aplicações aos dados persistentes que se encontram na cache a partir das mensagens de retorno do servidor
processos1
Processos

Aplicação

Gestor da cache

Servidor

Servidor

Disco

Disco

Gestor da cache

Gestor da cache

Aplicação

Aplicação

Aplicação

gest o de mem ria
Gestão de memória

Uma cache por cliente

Cache

cache

Cache

Espaço de endereços;

dados estão na memória virtual

memória transitória

Heap

memória transitória

Stack

memória persistente

Um espaço de endereços

por cliente

memória

física

Todos os clientes usam o mesmo

espaço de swap

Swap

mapeamento de mem ria
Mapeamento de memória
  • Transferência entre a BD e a memória do programa automática e transparente
  • ObjectStore detecta qualquer referência a memória persistente e transfere a página respectiva pela rede para a cache e mapeia para memória virtual — acesso tão rápido como a dados transitórios
  • Dados em C++; apontadores para memória virtual (32 ou 64 bits)
  • Nos segmentos da BD existem pseudo-endereços — relocalização
  • Mapa de relocalização permanente — determina a localização de um objecto no disco
  • Mapa de relocalização transitório — determina localização de objecto cliente na cache
  • Relocalização na leitura e na escrita
  • Vantagens:
    • persistência especificada à instância; independente do tipo, incluindo pré-definidos (reusar código normal)

• apontadores processados à velocidade do hardware da memória (virtual) e não através de apontadores soft

  • Requere-se informação sobre o esquema de cada BD e de cada aplicação em ficheiros fonte e nas próprias BD
constru o de aplica es
Construção de aplicações
  • Começar por recorrer ao utilitário gerador de esquemas (ossg)

- entrada: ficheiros fonte de esquema + esquemas de biblioteca

- saída: BD do esquema da aplicação e respectivo ficheiro fonte

- o que fica pode ser só o que foi declarado nos ficheiros, ou considerar os declarados apenas como pontos de entrada e incluir também o que estiver no fecho transitivo de acesso a partir daqueles

  • O ficheiro fonte tem que ser compilado e ligado com a aplicação

- poder ser usado um qualquer compilador de C ou C++, de preferência com templates

- sugere-se cxx no jerry, o compilador da Digital

  • Liga-se habitualmente pelo menos a biblioteca base do ObjectStore

#include <ostore/ostore.hh>

e começa-se por chamar a função membro estática

objectstore::initialize()

excepto nos casos em que é necessário chamar

objectstore::set_application_schema_pathname()

objectstore::set_cache_size()

objectstore::set_client_name()

ambiente
Ambiente
  • acrescentar no ficheiro de inicialização de uma sessão no riff

OS_ROOTDIR=/usr/local/ODI/OS5.0

export OS_ROOTDIR

PATH=$PATH:$OS_ROOTDIR/bin

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$OS_ROOTDIR/lib

export LD_LIBRARY_PATH

  • a saída do servidor fica registada em /tmp/ostore/oss_out e pode ser útil para depuração