Prévia do material em texto
Controle de Concorrência MySQL Alcion Edigar Weizmann Luis Eduardo Mendes Merino Rafael José de Miranda Sobrinho Ramon Nicolas Beiler Conformidade ACID ● A : Atomicidade - Tudo ou nada; ● C: Consistência - Restrição de integridade; ● I: Isolamento - Acesso simultâneo garantido; ● D: Durabilidade - Persistência de dados; Transações implícitas ● Transações implícitas ocorrem quando alguns comandos são enviados ao SGBD e o próprio SGBD realiza um COMMIT. ● Estes são comandos que execução uma transação implícita: ● ALTER TABLE, BEGIN,START TRANSITION,CREATE INDEX, DROP INDEX,DROP TABLE,LOCK TABLES, UNLOCK TABLES, LOAD DATA INFILE ,RENAME TABLE. Transações explícitas ● Transações explícitas ocorrem quando determinamos o início e o fim. ● O início dessa transição é definido pelo comando BEGIN. ● Enquanto que o fim dela pode ser feito através de um COMMIT e um ROLLBACK. ● COMMIT é um comando utilizado para finalizar a transação quando não ocorrem erros. ● ROLLBACK é um comando utilizado para apagar uma transição quando ocorrem erros. Níveis de Isolamento ● Read Uncommitted; ● Read Committed; ● Repeatable read; ● Serializable; Padrão mercado vs padrão MySQL. Bloqueio e DeadLock ● Transação necessita manter o bloqueio do item ● Necessidade de Bloqueio e Desbloqueio ● DeadLock ● Fila de espera Bloqueio em Linha ● Minimizar o custo do bloqueio ● Bloquear em uma granularidade menor ● Restringe o acesso a qualquer parte da tabela Bloqueio de Página ● Substituir os níveis de bloqueio ● Acesso excessivo ● Falta do Bloqueio ● Desabilitar bloqueios de linha ● DeadLock DeadLock ● Não são perigosos ● Tabelas com ordens pré-estabelecidas ● Finalizando com RollBack ● Identificar um DeadLock Recuperação de Transações ● MyISAM ○ Executar um script que execute “myisamchk” antes de reiniciar ● InnoDB ○ Recuperação automática de falhas Dúvidas Obrigado.