1 |
1
데이터 복제 처리를 위해 필요한 정보를 준비하는 단계;높은 순위 복제 큐의 복제 요청을 복제 처리 리스트에 넣고 복제 요청을 수행하는 단계;낮은 순위 복제 큐의 복제 요청을 복제 처리 리스트에 넣고 복제 요청을 수행하는 단계;복제 요청에 대한 응답을 받으면, 해당 복제 요청 정보를 상기 복제 처리 리스트 및 상기 높은 순위 복제 큐 또는 낮은 순위 복제 큐에서 제거하는 단계; 및복제가 완료된 메타데이터를 갱신하는 단계를 포함하는 것을 특징으로 하는 스케줄러기반 데이터 서버간 데이터 복제 방법
|
2 |
2
제 1 항에 있어서, 상기 데이터 복제 처리를 위해 필요한 정보를 준비하는 단계는,목표 복제 개수 및 복제 대역폭을 획득하는 단계;복제 가용 세마포아 값을 설정하는 단계;디스크에 저장된 복제 요청 버전 정보의 값을 하나 증가 시켜 복제 요청 버전 값으로 사용하는 단계; 및 갱신된 복제 요청 버전 값을 디스크에 저장하는 단계를 포함하는 것을 특징으로 하는 스케줄러기반 데이터 서버간 데이터 복제 방법
|
3 |
3
제 1 항에 있어서, 상기 높은 순위 복제 큐의 복제 요청을 복제 처리 리스트에 넣고 복제 요청을 수행하는 단계는,목표 큐 복제 개수를 2로 설정하는 단계;상기 높은 순위 복제 큐에서 첫 번째 파일 메타데이터를 제거하여 상기 복제 처리 리스트에 넣는 단계; 및상기 복제 처리 리스트에 있는 파일의 아이노드 복제 요청을 하는 단계를 포함하는 것을 특징으로 하는 스케줄러기반 데이터 서버간 데이터 복제 방법
|
4 |
4
제 1 항에 있어서, 상기 낮은 순위 복제 큐의 복제 요청을 복제 처리 리스트에 넣고 복제 요청을 수행하는 단계는,목표 큐 복제 개수를 복제처리기의 목표 복제 개수로 설정하는 단계;상기 낮은 순위 복제 큐에서 첫 번째 파일 메타데이터를 제거하여 상기 복제 처리 리스트에 넣는 단계; 및상기 복제 처리 리스트에 있는 파일의 아이노드 복제 요청을 하는 단계를 포함하는 것을 특징으로 하는 스케줄러기반 데이터 서버간 데이터 복제 방법
|
5 |
5
제 3 항 또는 제 4 항에 있어서,상기 파일의 아이노드 복제 요청이 있으면,인스펙터(Inspector) 포인터를 상기 복제 처리 리스트의 첫 번째 파일 아이노드의 첫 번째 데이터 블록으로 설정하는 단계;상기 복제 처리 리스트가 비어있지 있고 복제 큐의 복제 요청 개수가 (FAILED가 아닌 데이터 서버 개수)/2 이상이면, 상기 인스펙터 포인터를 현재 복제 포인터로 설정하는 단계;상기 현재 복제 포인터의 데이터 블록이 복제가 필요한 경우 해당 데이터 블록에 대한 복제 요청을 수행하는 단계;상기 현재 복제 포인터를 임시 복제 포인터에 넣는 단계;상기 현재 복제 포인터의 데이터 블록이 해당 파일 메타데이터의 마지막 블록이 아니면, 상기 현재 복제 포인터를 다음 데이터 블록으로 설정하는 단계; 및상기 임시 복제 포인터와 상기 인스펙터 포인터 값이 같고, 복제 요청 결과가 성공인 경우 상기 인스펙터 포인터를 상기 현재 복제 포인터로 설정하는 단계를 포함하는 것을 특징으로 하는 스케줄러기반 데이터 서버간 데이터 복제 방법
|
6 |
6
제 5 항에 있어서,상기 현재 복제 포인터의 데이터 블록이 해당 파일 메타데이터의 마지막 블록이면, 상기 복제 처리 리스트의 다음 파일 아이노드 메타데이터를 가져오는 단계; 및상기 현재 복제 포인터를 상기 다음 파일 아이노드 메타데이터의 첫 번째 데이터 블록으로 설정하는 단계를 더 포함하는 것을 특징으로 하는 스케줄러기반 데이터 서버간 데이터 복제 방법
|
7 |
7
제 5 항에 있어서,상기 데이터 블록에 대한 복제 요청이 있으면, 복제 요청된 원본 데이터 서버의 복제 사용 유무를 판단하는 단계;복제 사용 가능한 경우, 복제 가용 세마포아를 하나 얻는 단계;현재 복제 포인터의 데이터 블록을 가져와서 데이터 서버를 선택하여 데이터 블록을 할당하는 단계;파일 메타데이터의 데이터 블록의 복제 개수를 증가시키는 단계;파일 메타데이터의 데이터 블록의 복제 정보를 위한 메모리를 할당하고, 복제 정보 메모리에 할당된 데이터 블록의 데이터 서버 식별자와 데이터 블록 식별자와 버전 값을 0으로 설정하는 단계;새로 할당된 데이터 블록의 해당 데이터 서버가 복제 사용 가능하면, 복제 가용 세마포아를 추가로 하나 획득하고 복제 요청 큐에 삽입하며, 해당 데이터 서버에 복제 요청을 보내고 복제 요청 결과값을 요청 성공으로 설정하는 단계; 및새로 할당된 데이터 블록의 해당 데이터 서버가 복제 사용 가능하지 않으면, 상기 복제 가용 세마포아를 하나 해제하고 복제 요청 결과값을 요청 실패로 설정하는 단계를 더 포함하는 것을 특징으로 하는 스케줄러기반 데이터 서버간 데이터 복제 방법
|
8 |
8
제 7 항에 있어서, 상기 복제 사용 유무를 판단하는 단계는,데이터 서버 관리 테이블에서 해당 데이터 서버의 상태 정보가 GOOD인지 검사하는 단계;상기 데이터 서버의 상태 정보가 GOOD이고 데이터 복제 상태 관리 테이블의 데이터 서버의 복제 상태 정보가 IDLE이면, 상기 복제 상태 정보를 BUSY로 설정하고 결과 값을 사용 가능으로 설정하는 단계;상기 데이터 서버의 상태 정보가 GOOD이고 상기 복제 상태 정보가 BUSY이면, 결과 값을 사용 불가능으로 설정하는 단계;상기 데이터 서버의 상태 정보가 GOOD이고 상기 복제 상태 정보가 FAILED이면, 복제 가용 세마포아를 하나 해제하고 상기 복제 상태 정보를 BUSY로 설정하고 결과 값을 사용 가능으로 설정하는 단계; 및상기 데이터 서버의 상태 정보가 GOOD이 아니고 상기 복제 상태 정보가 Idle 또는 BUSY이면, 상기 복제 상태 정보를 FAILED로 설정하고 복제 가용 세마포아를 하나 얻고 결과 값을 사용 불가능으로 설정하는 단계를 포함하는 것을 특징으로 하는 스케줄러기반 데이터 서버간 데이터 복제 방법
|
9 |
9
제 7 항에 있어서, 상기 복제 요청 큐에 삽입은,복제 요청 정보를 위한 메모리를 할당하는 단계;복제 요청 발급 잠금을 획득하는 단계;복제 요청 발급 카운터 값을 할당된 복제 요청 정보의 요청 식별자에 넣는 단계; 상기 복제 요청 발급 카운터 값을 하나 증가시키는 단계;상기 복제 요청 발급 잠금을 해제하는 단계;상기 할당된 복제 요청 정보의 복제 요청 시간을 현재 시간으로 설정하는 단계;설정이 완료된 복제 요청 정보를 상기 복제 요청 큐에 넣는 단계;복제 요청 큐 잠금을 해제하는 단계; 및복제 요청 식별자를 결과 값으로 설정하는 단계를 포함하는 것을 특징으로 하는 스케줄러기반 데이터 서버간 데이터 복제 방법
|
10 |
10
제 1 항에 있어서, 상기 복제 요청에 대한 응답의 처리는,응답 메시지의 복제 요청 버전이 복제처리기의 요청 버전과 같은 경우, 상기 응답 메시지의 복제 요청 식별자를 이용하여 복제 요청 큐에서 삭제하는 단계;상기 복제 요청 큐에 해당 복제 요청이 존재하고 상기 응답 메시지의 결과 상태가 INGROGRESS인 경우, 해당 복제 요청 정보를 복제 요청 큐에 재 삽입하고 데이터 서버로 복제 요청을 다시 보내는 단계;상기 복제 요청 큐에 해당 복제 요청이 존재하고 상기 응답 메시지의 결과 상태가 INGROGRESS가 아닌 경우, 복제 가용 세마포아를 두 개 해제하고 복제 처리 리스트를 갱신하는 단계; 및상기 응답 메시지의 복제 요청 버전이 복제처리기의 요청 버전과 다르거나 상기 복제 요청 큐에 해당 복제 요청이 존재하지 않는 경우, 데이터 서버로 복제 취소 요청을 보내는 단계를 포함하는 것을 특징으로 하는 스케줄러기반 데이터 서버간 데이터 복제 방법
|
11 |
11
제 10 항에 있어서, 상기 복제 요청 큐에서 삭제하는 단계는,복제 요청 큐 잠금을 획득하는 단계;상기 복제 요청 큐에서 복제 요청 식별자에 해당하는 엔트리가 존재하는 경우, 해당 엔트리를 상기 복제 요청 큐에서 제거하고 그 값을 결과값에 넣는 단계;상기 복제 요청 큐에서 해당 엔트리가 존재하지 않는 경우, 결과값을 NULL로 설정하는 단계; 및획득한 복제 요청 큐 잠금을 해제하는 단계를 포함하는 것을 특징으로 하는 스케줄러기반 데이터 서버간 데이터 복제 방법
|
12 |
12
제 10 항에 있어서, 상기 복제 처리 리스트를 갱신하는 단계는,상기 복제 처리 리스트의 해당 파일 아이노드 메타데이터에서 데이터 서버 식별자와 데이터 블록 식별자에 해당하는 데이터 블록을 가져오는 단계;상기 데이터 블록의 복제 정보를 가져오는 단계;복제 대상의 버전 번호와 복제 개수를 갱신하는 단계;상기 파일 아이노드의 전체 복제 완료 유무를 판단하는 단계;전체 복제가 완료된 경우, 상기 파일 아이노드 메타데이터를 복제 처리 리스트 값으로 갱신하고 상기 복제 처리 리스트에서 제거하는 단계; 및전체 복제가 완료되지 않은 경우, 현재 블록 포인터를 다음 데이터 블록으로 설정하는 단계를 포함하는 것을 특징으로 하는 스케줄러기반 데이터 서버간 데이터 복제 방법
|
13 |
13
제 1 항에 있어서, 상기 복제 요청의 처리는,임의의 크기의 읽기 버퍼를 할당하는 단계;데이터 블록 식별자의 파일 디스크립터를 얻고 읽기 위치를 데이터 블록의 처음으로 설정하는 단계;상기 파일 디스크립터로부터 읽기 버퍼만큼 데이터를 읽어서 읽기 버퍼에 넣는 단계;상기 복제 요청의 복제 대역폭이 UNLIMITED인 경우, 슬립(sleep) 시간을 0으로 설정하고 대상 데이터 서버에게 읽기 버퍼만큼 복제 요청을 보내는 단계;상기 복제 요청의 복제 대역폭이 정해진 경우, 슬립 시간을 ((복제 대역폭/서버 최대 대역폭) - ((읽기 버퍼 크기/서버 최대 대역폭 * N))/N (N = (복제 대역폭/읽기 버퍼 크기))으로 설정하고, 복제 결과 상태를 INPROGRESS로 설정한 후 복제 요청 결과를 복제처리기로 보내는 단계;읽기 위치가 데이터 블록의 끝이 아닌 경우 상기 읽기 위치를 상기 읽기 버퍼만큼 다음으로 이동하는 단계; 및데이터 블록의 끝까지 수행한 경우, 복제 요청 결과의 결과 상태를 성공으로 설정하고, 복제 요청 결과를 복제처리기에게 보낸 후 읽기 버퍼를 해제하는 단계를 포함하는 것을 특징으로 하는 스케줄러기반 데이터 서버간 데이터 복제 방법
|
14 |
14
제 1 항에 있어서, 복제 요청 타임아웃 처리 단계를 더 포함하는 것을 특징으로 하는 스케줄러기반 데이터 서버간 데이터 복제 방법
|
15 |
15
제 14 항에 있어서, 상기 복제 요청 타임아웃 처리 단계는,복제 요청 큐 잠금을 획득하는 단계;현재 포인터를 복제 요청 큐의 첫번째 엔트리로 설정하고 상기 현재 포인터에서 복제 요청 값을 가져오는 단계;상기 복제 요청의 요청 시간 값이 (현재 시간 - 타임아웃 기간) 보다 크지 않으면, 상기 현재 포인터를 다음 복제 요청으로 설정한 후 상기 복제 요청 큐에서 삭제하는 단계; 상기 복제 요청 큐의 점검이 모두 완료된 경우, 획득한 복제 요청 큐 잠금을 해제하는 단계를 포함하는 것을 특징으로 하는 스케줄러기반 데이터 서버간 데이터 복제 방법
|