Lock2 [DBMS] DB Locking 1. DB Locking 이란?DB Locking은 데이터베이스 내 동시성과 데이터의 일관성을 보장하기 위해 사용되는 데이터 관리 메커니즘이다.보통 데이터베이스에 여러 사용자가 동시에 데이터에 접근하거나 수정할 때 충돌이 일어날 수 있다.이러한 충돌을 제어하기 위해 트랜잭션의 격리 수준과 비즈니스 로직에 따라 데이터에 접근을 막는 Locking이 필요하다.1-1. Lock의 설정 범위데이터베이스데이터베이스 범위의 Lock은 1개의 세션만이 데이터베이스 내 데이터에 접근 가능하게 하는 Lock의 범위이다.보통 데이터베이스 전체 범위로 Lock을 설정하면 동시성과 효율이 매우 떨어지기 때문에 사용하지 않는다.하지만 데이터베이스의 소프트웨어 버전을 변경하거나 중요한 데이터베이스의 업데이트를 진행할 때 설정한다.. 2024. 8. 6. [OS] 동기화 메커니즘(Synchronization Mechanisms)과 스핀락(Spinlock), 뮤텍스(Mutex), 세마포어(Semaphore) 0. 경쟁 상태와 임계 구역0-1. 경쟁 상태 (Race Condition)경쟁 상태는 여러 개의 프로세스가 병행하여 공유 자원을 읽고 쓸 때 발생하는 상황공유 자원 접근 순서에 따라 실행 결과가 매번 달라지는 문제 (non-deterministic)이러한 경쟁 상태를 해결하기 위해 동기화 매커니즘이 필요하다.0-2. 임계 구역 (Critical Section)둘 이상의 프로세스/스레드가 동시에 실행될 경우 생길 수 있는 경쟁 조건을 발생시킬 수 있는 코드 영역임계 구역 해결 조건Mutual Exclusion (상호 배제) : 이미 한 프로세스가 임계 구역에서 실행중이라면 다른 프로세스의 접근을 금지하는 것Progress (진행) : 임계 구역에 프로세스가 없을 때, 임계 구역에 접근하고자 하는 프로세스.. 2024. 6. 28. 이전 1 다음