Concurrency Control

Heejin·2023년 5월 29일
0

Database Glossary

목록 보기
8/8

Concurrency Control은 데이터베이스 시스템에서 동시에 여러 사용자 또는 프로세스가 동작할 때 데이터의 일관성과 정확성을 보장하기 위해 사용되는 기술이다. 데이터베이스 시스템에서 동시에 여러 작업이 수행될 때 데이터의 무결성을 유지하기 위해 동시성 문제를 해결하는 것을 의미한다.

동시성 문제는 동시에 여러 작업이 수행될 때 발생할 수 있는 문제로, 예를 들어 동시에 여러 트랜잭션이 동일한 데이터를 수정하려고 할 때 발생할 수 있다. 이러한 상황에서는 트랜잭션들이 서로의 작업에 영향을 미치지 않고 동시에 실행되도록 조절해야 한다.

Concurrency Control은 데이터베이스 시스템에서 동시성 문제를 해결하기 위해 다양한 기법을 사용한다. 가장 일반적인 기법으로는 Locking과 Timestamp Ordering이 있다.

  • Locking: Locking은 트랜잭션이 데이터를 접근하는 동안 해당 데이터에 대한 잠금을 설정하여 다른 트랜잭션이 접근하지 못하도록 하는 방식이다. 트랜잭션이 데이터를 수정하는 동안에는 해당 데이터에 대한 잠금을 획득하고, 다른 트랜잭션이 해당 데이터를 읽거나 수정하려고 할 때는 잠금을 요청하게 된다. 이를 통해 데이터의 일관성과 무결성을 보장할 수 있다.

  • Timestamp Ordering: Timestamp Ordering은 각 트랜잭션에게 고유한 타임스탬프를 할당하여 트랜잭션의 실행 순서를 결정하는 방식이다. 각 트랜잭션이 데이터를 읽거나 수정할 때 타임스탬프를 비교하여 실행 순서를 결정하게 되며, 이를 통해 충돌이 발생하지 않도록 조절한다.

이외에도 여러 다른 Concurrency Control 기법들이 존재하며, 데이터베이스 시스템의 요구사항과 성능 등을 고려하여 적절한 기법을 선택하여 사용한다. Concurrency Control은 동시성 문제를 해결하여 데이터베이스의 일관성과 정확성을 유지하고, 트랜잭션들이 안전하게 동시에 실행될 수 있도록 도와준다.

0개의 댓글