Sistemas de Informação Distribuídos/Aspectos Organizacionais/OLTP - Online Transaction Processing

OLTP - Online Transaction Processing

editar

Sistemas Transacionais

Transações

editar

A execução de comandos SQL como transações é importante para assegurar a confiabilidade das operações e a consistência dos dados dos bancos. Mecanismos de OLTP (On-line Transaction Processing) asseguram aos bancos de dados individuais diversos requisitos relacionados a manutenção da consistência dos dados armazenados. Um sistema de banco de dados distribuídos necessita de mecanismos que garantam para o sistema distribuídos os mesmos requisitos de segurança assegurado pelos bancos de dados individuais.

Essa tarefa se torna mais crítica quando os dados estão, de fato, distribuídos em vários bancos. O componente chave desse processo é o global transaction monitor.


Propriedades das Transações

editar

As transações garantem propriedades fundamentais para manutenção da consistência dos dados denominadas ACID:

  • Atomicidade: O conjunto de operações agrupados numa transação é executado integralmente ou não é executado. O mundo externo não vê as fases intermediárias.
  • Consistência: Em caso de falha, os bancos de dados são colocados em seu estado original.
  • Isolamento: Os efeitos de uma transação devem ser transparentes para as demais transações, enquanto ela estiver sendo executada.
  • Durabilidade: Após o commit, o feito sobre os objetos alterados deverão ser permanentes (persistidos).

Implementação das Transações

editar

A técnica mais comumente utilizada para implementar transações é a utilização de arquivos de logs conhecidos como Writeahead. Nessa técnica cada operação a ser efetuada no banco é primeiro escrita num arquivo de log e depois efetuada

Monitores de Transação

editar

Os monitores de transação desacoplam a conexão dos usuários com o banco de dados

Módulo de Requisições de Transações Globais (GTR)

editar

Recebe as solicitações de transações distribuídas feitas pelos usuários e as deposita numa fila para processamento.

Módulo de Análise da Semântica Global

editar

Valida as requisições depositadas na fila para verificar erros de semântica e todos os objetos que são referenciados na transação para ver se eles existem no catálogo. se a verificação for positiva, a requisição prossegue para o próximo módulo. se houver um erro na requisição a requisição é retirada da fila e o usuário é notificado (através do GTR).

Módulo de Decomposição de Consultas Globais (QDM)

editar

Quebra uma consulta em subconsultas, de maneira que elas possam ser enviadas individualmente para os sites remotos onde os fragmentos das tabelas estão localizados.

Módulo de Localização de Objetos

editar

Substitui os nomes de campos e tabelas globais que aparecem nas subconsultas pelos nomes utilizados localmente pelos bancos locais. Adiciona informações de endereçamentos que serão utiilzadas pelo dispatcher.

Módulo de Otimização de Consultas

editar

Elimina as possíveis redundâncias introduzidas pela decomposição das consultas.

Módulo de Escalonamento de Transações

editar

Gerencia a execução de várias transações concorrentes, bloqueia os objetos envolvidos nas transações (lock) e implementa as operações de controle de transação global através de técnicas como two-phase commit (recovery).

Módulo de Encaminhamento de Transações (DISPATCHER)

editar

Módulo de comunicação que envia os fragmentos de consulta (subconsultas) para os sites distribuídos. Coleta as respostas vindas dos sites distribuídos e as deposita em filas, gerenciadas pelo módulo de escalonamento.

Monitores de Transação Comerciais

editar
  • Tuxedo

Produzido pela Unix Systems Lab (USL), adquirido pela Novell em 1993. Realiza tranparência de localização, balanceamento de carga, processamento de prioridades, etc.

  • Top End

Produzido pela NCR Corporation, com base no modelo Distributed Transaction Processing da X/Open.

  • Encina

Produzido pela empresa americana Transarc Corporation, . Baseado no X/Open e no DCE da OSF .