복제된 트랜잭션 및 동시성
기본 NPS 노드에서 복제된 트랜잭션은 직렬화 가능 격리 및 스냅샷 격리(완화된 직렬화 가능성)를 혼합하여 실행할 수 있습니다.
DBMS가 트랜잭션의 직렬화 가능한 실행을 강제하는 경우 직렬화 가능한 격리를 제공합니다(직렬화 가능한 격리를 선택하거나 기본값으로 설정한 트랜잭션의 경우). 직렬화 가능한 격리를 구현하면 일반적으로 더 약한 격리 수준보다 동시성이 낮고 처리량이 적습니다.
Netezza 기본적으로 직렬화 가능한 트랜잭션 격리만 지원합니다. 복제 트랜잭션만 스냅샷 격리를 지원합니다. Netezza 트랜잭션 격리에 대한 자세한 내용은 트랜잭션 동시성 및 격리를 참조하세요.
스냅샷 격리 상태에서 각 트랜잭션은 특정 트랜잭션이 시작될 때 커밋된 트랜잭션만 반영하는 데이터베이스의 일관된 '스냅샷'을 보게 됩니다. 또한 동시 트랜잭션에 의한 동일한 행의 업데이트 및 삭제는 허용되지 않습니다. (일부 DBMS는 트랜잭션 커밋 시점에 후자의 속성을 적용하지만, NPS는 동시 업데이트 또는 삭제 문이 실행될 때 적용합니다) Netezza® 직렬화 가능한 격리가 허용하는 것보다 더 큰 동시성을 필요로 하는 애플리케이션을 위해 스냅샷 격리를 지원하며 행 간 일관성 제약 조건의 적용을 절충할 수 있습니다. 스냅샷 격리는 IBM® Netezza Replication Services 2.0 이상에서 복제된 트랜잭션에 대해 지원됩니다.
프라이머리에서 복제된 트랜잭션의 커밋 순서는 복제 NPS 노드에서 트랜잭션이 적용되는 순서를 정의합니다. 복제된 각 트랜잭션에는 커밋 시점에 커밋 시퀀스 번호(CSN)가 할당되어 트랜잭션을 추적하는 데 사용되며 다양한 복제 보기 및 로그에 표시됩니다. 커밋 시퀀스 식별자(CSI)는 <소스-id>, <CSN> 쌍으로, 여기서 <소스-id>는 활성 트랜잭션이 커밋된 시점의 기본 노드를 식별합니다.