Sobes.tech
Junior — Middle

Explique o princípio de funcionamento do bloqueio otimista nos sistemas de gestão de dados.

sobes.tech IA

Resposta da IA

O bloqueio otimista é uma abordagem para gerir o acesso concorrente aos dados, assumindo que os conflitos são raros e que os bloqueios não são estabelecidos antecipadamente. Em vez disso, ao atualizar os dados, verifica-se se eles mudaram desde a última leitura.

Princípio de funcionamento:

  1. O cliente lê os dados juntamente com uma versão ou soma de verificação.
  2. Realiza as alterações necessárias localmente.
  3. Ao tentar gravar, verifica se a versão atual dos dados corresponde à que foi lida.
  4. Se as versões coincidirem, a atualização é bem-sucedida.
  5. Se não coincidirem, significa que os dados foram modificados por outro processo, e a operação é revertida ou repetida.

Em Java, isso é frequentemente implementado através de um campo de versão na entidade e a anotação @Version ao usar JPA/Hibernate.

Exemplo:

@Entity
public class Product {
    @Id
    private Long id;

    private String name;

    @Version
    private int version; // campo para bloqueio otimista

    // getters e setters
}