Dedicated Server, Shared Server

2024. 4. 28. 17:33DBMS/ORACLE Admin

반응형

  Shared Server와 Dedicated Server는 DB에서 클라이언트와의 연결을 관리하는 두 가지 주요 방법이다.

 
   Dedicated Server (전용서버) 모델에서는 각 클라이언트 세션에 대해 개별적인 프로세스가 할당되어 클라이언트와 데이터베이스 간의 1:1 관계를 의미한다. 각 클라이언트는 자체 서버 프로세스를 가지며, 클라이언트 세션이 데이터베이스 서버에 연결되면 해당 클라이언트 세션에 대한 전용 프로세스가 생성된다. 이 모델은 일반적으로 소수의 동시 사용자 또는 중간 규모의 시스템에 적합하며 각 클라이언트에게 더 많은 자원이 할당되므로 대규모 시스템에서는 확장성이 제한될 수 있다.

  Shared Server (공유 서버) 모델에서는 여러 클라이언트 세션을 하나의 공유 프로세스 집합으로 관리하여 클라이언트가 데이터베이스에 연결되면 공유 서버 프로세스 풀에서 프로세스를 가져와 해당 클라이언트 세션에 할당한다.
더 적은 시스템 리소스를 사용하고 많은 클라이언트를 지원할 수 있지만 각 클라이언트에게 할당되는 자원이 적기 때문에 대규모 쿼리 또는 트랜잭션 처리에서 느려질 수 있다.

 

 

 

공유 서버 아키텍처의 동작 과정

1. 클라이언트(user)가 데이터베이스에 접속하면, 네트워크를 통해 dispatcher 프로세스와 연결된다. 

2. dispatcher는 클라이언트로부터 받은 요청을 SGA(System Global Area)의 Request Queue 에 등록한다. 


3. 여러 개의 shared server 프로세스들이 Request Queue에서 요청을 확인하고 요청을 처리할 shared server는 해당 요청을 가져와서 처리한다. dispatcher가 여러 개일 경우 Request Queue에 요청이 분산되어 등록될 수 있다.

4. shared server 프로세스는 요청을 처리한 후, 결과를 Response Queue에 등록한다. 이 Queue는 dispatcher가 클라이언트에게 결과를 전달하는 데 사용된다. 

5. dispatcher는 Response Queue에서 처리된 결과를 가져와서 클라이언트(user)에게 전송하고 클라이언트는 자신의 요청에 대한 처리 결과를 받을 수 있다.

- 공유 서버 아키텍처에서는 dispatcher가 여러 개 있을 수 있으며, 각 dispatcher는 자신의 Response Queue를 가지고 있고 dispatcher가 여러 클라이언트와 동시에 상호작용할 수 있도록 한다.
- Request Queue는 일반적으로 하나의 공통 Queue로 구성되어 있어, 여러 shared server 프로세스가 이 Queue에서 요청을 처리한다.
- 이 아키텍처는 많은 클라이언트가 동시에 접속하는 시스템에서 자원을 효율적으로 관리하고 성능을 최적화하는 데 유리하다.

 
반응형