Ir para o conteúdo principal

Estudo Sobre Tratamento de Concorrencia de Dados no DB

Data: 24/08/202216/09/21

Autores:

    1. Alan da Silva Souza (Assessor)
    2. Gabriel Santi Binda (Assessor)
    3. Raissa de Sousa Stolduski (Assessor)
    4. Taillon Miguel GonçGonçalves (Assessor)

1. Objetivo

O Objetivo do estudo apresentado, éé levantar causas e possípossíveis soluçõsoluções para a concorrêconcorrência de dados em um determinado banco de dados, utilizando algumas cnicas criadas para melhorar e corrigir esse problema.

2. IntroduçãIntrodução

A concorrêconcorrência de dados, éé um problema comum e bem conhecido entre os gestores de bancos de dados e tambétambém, pelos desenvolvedores, um problema que acaba se agravando quando se m muitos usuáusuários acessando um mesmo banco. Ela ocorre quando, em um banco de dados, usuáusuários distintos tentam acessar a mesma informaçãinformação e entãentão para corrigir o problema, éé feito um controle entre essas transaçõtransações.

dwadwaFigura 1: exemplificando a concorrêconcorrência em uma tabela.

Podemos ver na figura 1, que existem 3 usuáusuários tentando acessar a mesma tabela, e que se o houvesse um controle, os dados ali poderiam ficar com a integridade comprometida.

3. Desenvolvimento

3.1 Controle de concorrêconcorrência

Controle de concorrêconcorrência éé quando, em um banco de dados, usuáusuários distintos tentam acessar a mesma informaçãinformação e entãentão éé feito um controle entre essas transaçõtransações. E para a soluçãsolução deste problema existem diversas cnicas de controle de concorrêconcorrência que o utilizadas como forma de assegurar a propriedade de o interferêinterferência entre uma operaçãoperação e outra, ou o isolamento das transaçõtransações executadas ao mesmo tempo, grande parte dessas cnicas garante a serializaçãserialização, que éé a execuçãexecução das transaçõtransações de forma serial. Para isso, éé necessánecessário saber que transaçõtransações o todas as operaçõoperações executadas entre o iníinício e o fim da transaçãtransação

3.2 cnica de bloqueio

A cnica de bloqueio em duas fases para controle de concorrêconcorrência éé baseado no bloqueio de itens de dados, sendo que, chamamos de bloqueio uma variávariável que fica atrelada ao item de dados. Este bloqueio pode ser binábinário (possui dois valores: 1 e 0), logo, o item de dados estáestá bloqueado ou o estáestá bloqueado. Permitindo que o item de dado esteja acessíacessível para uma transaçãtransação apenas se a variávariável o estiver bloqueada (ou estiver com valor 0). o usadas duas operaçõoperações para o bloqueio binábinário, o elas: lock(1) e unlock(0), quando o item de dados estáestá sendo usado, o estado da variávariável éé lock(1), assim que a transaçãtransação encerra a utilizaçãutilização do item éé emitida a operaçãoperação unlock(0), entãentão, o item estáestá disponídisponível para outra transaçãtransação.

3.3 cnica baseada em Timestamp

Para cada transaçãtransação iniciada, éé associado um timestamp fixo exclusivo, ou seja, antes que uma transaçãtransação tenha iníinício, o sistema de banco de dados forneceráfornecerá um tulo de tempo (lembrando que este éé um identificador exclusivo criado pelo SGBD para identificar uma transaçãtransação). Supondo que temos duas transaçõtransações A e B, a transaçãtransação A se iniciou no tempo 1 e a transaçãtransação B teve iníinício no tempo 2, logo, a transaçãtransação A seráserá executada primeiro que a transaçãtransação B, pois seu tempo de iníinício éé mais antigo.

Nesta cnica existe a possibilidade de paralisaçãparalisação de transaçõtransações longas, caso uma rie repetitiva de transaçõtransações curtas causar o reiníreinício da transaçãtransação longa. Caso isso ocorra, éé necessánecessário que as transaçõtransações que estãestão em conflito sejam suspensas temporariamente para permitir que a transaçãtransação seja concluíconcluída.

4.Conclusã Conclusão

ApóApós analisar as cnicas de gerenciamento de concorrêconcorrência descritas acima, éé possípossível que possam ser adaptadas e implementadas de alguma uma forma em digo, e tambétambém, éé possípossível que surjam ideias e novas cnicas para que o problema possa ser resolvido, esse estudo teve o propópropósito de levantar possípossíveis soluçõsoluções para que possam ser implementadas em algum momento ao longo do desenvolvimento.

Referê

5. Referências

[1]  GUIRRA, Michelle. Protocolo com Base em Timestamp: controle de concorrêconcorrência em bancos de dados. 2013. DisponíDisponível em: https://www.devmedia.com.br/protocolo-com-base-em-timestamp-controle-de-concorrencia-em-bancos-de-dados/27810. Acesso em: 16 set. 2021.

[2] UFBA. TransaçõTransações e ConcorrêConcorrência. DisponíDisponível em: http://formas.ufba.br/dclaro/mata60/Aula%2012%20-%20Transacoes%20e%20Concorrencia.pdf. Acesso em: 16 set. 2021.

[3] SANTANCHÈSANTANCHÈ, AndréAndré; GOMES JUNIOR, Luiz Celso. Controle de ConcorrêConcorrência. 2013. DisponíDisponível em: https://www.ic.unicamp.br/~santanch/teaching/db/2016-1/slides/bd11-concorrencia-v04.pdf. Acesso em: 16 set. 2021.

[4] GUIRRA, Michelle. Controle de concorrêconcorrência entre transaçõtransações em bancos de dados. 2013. DisponíDisponível em: https://www.devmedia.com.br/controle-de-concorrencia-entre-transacoes-em-bancos-de-dados/27756. Acesso em: 16 set. 2021.

[5] MACÊMACÊDO, Diego. Controle de ConcorrêConcorrência em Banco de Dados. 2012. DisponíDisponível em: https://www.diegomacedo.com.br/controle-de-concorrencia-em-banco-de-dados/. Acesso em: 16 set. 2021.

Glossá

6. Glossário

lock - Se refere a açãação de bloquear itens de dados no banco

unlock - Se refere a açãação de desbloquear itens de dados no banco

Timestamp - ÉÉ uma marca de tempo em um item de dados do banco

ENVOLVIDOS
  • Alan da Silva Souza
  • Gabriel Santi Binda
  • Raissa de Sousa Stolduski
  • Taillon Miguel Gonçalves