Sistemas de Informação Distribuídos/Aspectos Organizacionais/OLTP - Online Transaction Processing
OLTP - Online Transaction Processing
[editar | editar código-fonte]Sistemas Transacionais
Transações
[editar | editar código-fonte]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 | editar código-fonte]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 | editar código-fonte]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 | editar código-fonte]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 | editar código-fonte]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 | editar código-fonte]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 | editar código-fonte]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 | editar código-fonte]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 | editar código-fonte]Elimina as possíveis redundâncias introduzidas pela decomposição das consultas.
Módulo de Escalonamento de Transações
[editar | editar código-fonte]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 | editar código-fonte]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 | editar código-fonte]- 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 .