You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
장점: 트랜잭션들이 순차적으로 실행되기 때문에 데이터 일관성을 항상 보장하며, 이상한 결과 발생 가능성이 전혀 없다.
단점: 한 번에 하나의 트랜잭션만 실행되므로 동시성이 부족하여 성능이 매우 낮다. I/O 작업 중 CPU가 유휴 상태로 남아있어 자원 활용 효율이 떨어지며, 이는 현실적으로 사용하기 어려운 방식이다.
논-시리얼 스케줄:
장점: 트랜잭션의 오퍼레이션들이 겹쳐서 실행(interleaving)될 수 있어 동시성이 향상되고 성능이 개선된다. I/O 작업 동안에도 CPU가 다른 트랜잭션을 처리하여 같은 시간 동안 더 많은 트랜잭션을 처리할 수 있다.
단점: 트랜잭션들이 겹쳐 실행될 때, **이상한 결과(예: 로스트 업데이트)**가 발생할 가능성이 존재한다.
현대 데이터베이스 시스템에서 논-시리얼 스케줄이 가질 수 있는 위험성에도 불구하고 이를 사용하려는 이유는 성능 향상 때문이다. 많은 사용자의 요청이 동시에 몰려오는 상황에서, 시리얼 스케줄로는 필요한 처리량을 감당할 수 없기 때문에 동시성(Concurrency)을 극대화하여 더 빠른 트랜잭션 처리가 필수적이다.
이러한 위험을 제어하는 방법은 논-시리얼 스케줄이 컨플릭트 시리얼라이저블하도록 보장하는 것이다. 실제 RDBMS에서는 트랜잭션이 실행될 때마다 해당 스케줄이 컨플릭트 시리얼라이저블한지 실시간으로 확인하는 방식은 사용되지 않는다. 이는 동시에 실행될 수 있는 트랜잭션 수가 너무 많기 때문에 그 많은 트랜잭션들의 실행될 때 그 스케줄이 컨플릭트 시리얼라이저블한지 확인하는 것이 매우 큰 비용을 발생시키기 때문이다. 대신, 처음부터 컨플릭트 시리얼라이저블한 스케줄만 실행될 수 있도록 보장하는 동시성 제어 프로토콜(Concurrency Control Protocol)을 적용하는 방식으로 구현된다. 즉, 실행 후에 확인하는 것이 아니라, 실행되기 전에 이미 시리얼라이저빌리티가 보장되도록 하는 메커니즘을 사용한다.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
시리얼 스케줄과 논-시리얼 스케줄의 장단점은 다음과 같다:
시리얼 스케줄:
논-시리얼 스케줄:
현대 데이터베이스 시스템에서 논-시리얼 스케줄이 가질 수 있는 위험성에도 불구하고 이를 사용하려는 이유는 성능 향상 때문이다. 많은 사용자의 요청이 동시에 몰려오는 상황에서, 시리얼 스케줄로는 필요한 처리량을 감당할 수 없기 때문에 동시성(Concurrency)을 극대화하여 더 빠른 트랜잭션 처리가 필수적이다.
이러한 위험을 제어하는 방법은 논-시리얼 스케줄이 컨플릭트 시리얼라이저블하도록 보장하는 것이다. 실제 RDBMS에서는 트랜잭션이 실행될 때마다 해당 스케줄이 컨플릭트 시리얼라이저블한지 실시간으로 확인하는 방식은 사용되지 않는다. 이는 동시에 실행될 수 있는 트랜잭션 수가 너무 많기 때문에 그 많은 트랜잭션들의 실행될 때 그 스케줄이 컨플릭트 시리얼라이저블한지 확인하는 것이 매우 큰 비용을 발생시키기 때문이다. 대신, 처음부터 컨플릭트 시리얼라이저블한 스케줄만 실행될 수 있도록 보장하는 동시성 제어 프로토콜(Concurrency Control Protocol)을 적용하는 방식으로 구현된다. 즉, 실행 후에 확인하는 것이 아니라, 실행되기 전에 이미 시리얼라이저빌리티가 보장되도록 하는 메커니즘을 사용한다.
Beta Was this translation helpful? Give feedback.
All reactions