1 |
1
분산파일 시스템에서 읽기 동작을 수행하는 방법에 있어서, 상기 방법은,클라이언트로부터 읽기 대상 파일에 대한 문맥 생성 요청이 수신되면, 서버가 상기 파일에 대한 문맥 식별자 및 파일 디스크립터(file descriptor: fd)를 포함하는 문맥 구조체를 생성하고, 상기 문맥 식별자를 상기 클라이언트에 전송하는 단계; 및 상기 파일에 대한 복수의 읽기 요청 - 상기 읽기 요청 각각은 상기 파일에 대응하는 문맥 식별자, 최신 문맥 요청 일련 번호, 요청된 읽기 위치를 나타내는 오프셋 및 읽기 크기 정보를 포함함-이 수신되면, 서버가 상기 읽기 요청 각각에 포함된 문맥 요청 일련 번호를 참조하여 상기 복수의 읽기 요청을 순차적으로 처리하는 단계를 포함하되,상기 복수의 읽기 요청을 순차적으로 처리하는 단계는, 상기 읽기 요청에 포함된 문맥 처리 요청 일련 번호와 상기 서버의 문맥 구조체에 포함된 최신 문맥 처리 번호를 비교함으로써 상기 읽기 요청이 순서 바뀐(reordered) 요청인지 여부를 판단하는 단계; 및순서 바뀐 요청인 것으로 판단되면, 상기 읽기 요청보다 앞선 요청에 대한 처리가 완료될 때까지 상기 읽기 요청을 대기시킨 후에 처리하는 단계를 포함하는 분산파일 시스템에서의 읽기 동작 수행 방법
|
2 |
2
제1항에 있어서, 상기 서버에 의해 생성된 문맥 구조체는 상기 문맥에 대한 요청 처리의 동시성 제어를 위한 문맥 잠금 항목을 더 포함하는 분산파일 시스템에서의 읽기 동작 수행 방법
|
3 |
3
제1항에 있어서, 상기 서버에 의해 생성된 문맥 구조체는 상기 문맥에 대해 최근 처리된 요청 번호를 나타내는 최신 문맥 처리 번호를 더 포함하고, 상기 최신 문맥 처리 번호는 초기에 0으로 설정된 후에 상기 문맥에 연관된 파일에 대한 요청이 처리될 때마다 1씩 증가하는 분산파일 시스템에서의 읽기 동작 수행 방법
|
4 |
4
제1항에 있어서, 상기 서버로부터 수신된 문맥 식별자를 포함하는 문맥 구조체가 상기 클라이언트에도 생성 및 유지되며, 상기 클라이언트의 문맥 구조체는 상기 문맥 식별자에 부가하여 상기 문맥에 대한 요청이 동시성 제어를 위한 문맥 잠금 및 최신 문맥 요청 일련 번호를 더 포함하고, 상기 최신 문맥 요청 일련 번호는 초기에 0으로 설정된 후에 상기 문맥에 연관된 파일에 대한 요청이 생성될 때마다 1씩 증가하는 분산파일 시스템에서의 읽기 동작 수행 방법
|
5 |
5
삭제
|
6 |
6
제1항에 있어서, 상기 클라이언트로부터 상기 생성된 문맥에 대한 삭제 요청이 수신되면, 상기 삭제 요청에 포함된 문맥 처리 요청 일련번호와 상기 서버의 문맥 구조체에 포함된 최신 문맥 처리 번호를 비교함으로써 상기 삭제 요청이 순서 바뀐(reordered) 요청인지 여부를 판단하는 단계; 순서 바뀐 요청인 것으로 판단되면 상기 삭제 요청보다 앞선 요청에 대한 처리가 완료될 때까지 대기하는 단계; 및상기 앞선 요청에 대한 처리가 완료된 후에 상기 삭제 요청된 문맥 구조체를 삭제하는 단계를 더 포함하는 분산파일 시스템에서의 읽기 동작 수행 방법
|
7 |
7
분산파일 시스템에서 읽기 동작을 수행하는 방법에 있어서, 상기 방법은,클라이언트로부터 읽기 대상 파일에 대하여 오프셋 및 미리 읽기 크기 정보를 포함하는 문맥 생성 요청이 수신되면, 서버가 상기 파일에 대한 문맥 식별자 및 fd를 포함하는 문맥 구조체를 생성하고, 상기 문맥 식별자를 상기 클라이언트에 전송하는 단계; 및 상기 문맥 생성 요청에 포함된 오프셋 및 미리 읽기 크기 정보에 근거하여 상기 파일에 대한 미리 읽기(readahead)를 수행하고 미리 읽은 데이터를 상기 클라이언트에 전송하는 단계를 포함하되,상기 미리 읽기는 미리 읽기 요청에 포함된 문맥 처리 요청 일련번호와 상기 서버의 문맥 구조체에 포함된 최신 문맥 처리 번호를 비교함으로써 상기 미리 읽기 요청이 순서 바뀐(reordered) 요청인지 여부를 판단하는 단계; 및순서 바뀐 요청인 것으로 판단되면 상기 미리 읽기 요청보다 앞선 요청에 대한 처리가 완료될 때가지 대기시킨 후에 처리하는 단계를 포함하는 분산파일 시스템에서의 읽기 동작 수행 방법
|
8 |
8
제7항에 있어서, 상기 서버에서 생성되는 문맥 구조체는, 상기 문맥 식별자 및 상기 fd에 부가하여, 상기 문맥에 대한 요청 처리의 동시성 제어를 위한 문맥 잠금, 상기 서버의 최대 미리 읽기 크기, 문맥 버전 번호, 상기 문맥에 대해 최근 처리된 요청 번호를 나타내는 최신 문맥 처리 번호, 미리 읽기 크기 및 메모리 버퍼 주소중 적어도 하나를 더 포함하고, 상기 최신 문맥 처리 번호는 초기에 0으로 설정된 후에 상기 문맥에 연관된 파일에 대한 요청이 처리될 때마다 1씩 증가하는 분산파일 시스템에서의 읽기 동작 수행 방법
|
9 |
9
제8항에 있어서, 상기 서버로부터 수신된 문맥 식별자를 포함하는 문맥 구조체가 상기 클라이언트에도 생성 및 유지되며, 상기 클라이언트의 문맥 구조체는 상기 문맥 식별자에 부가하여, 문맥 잠금, 상기 서버의 최대 미리 읽기 크기, 문맥 버전 번호, 최신 문맥 요청 일련 번호, 미리 읽기 시작 위치, 미리 읽기 요청 크기 및 비동기 미리 읽기 요청 크기 정보중 적어도 하나를 더 포함하고, 상기 최신 문맥 요청 일련번호는 초기에 0으로 설정된 후에 상기 문맥에 연관된 파일에 대한 요청이 생성될 때마다 1씩 증가하는 분산파일 시스템에서의 읽기 동작 수행 방법
|
10 |
10
제7항에 있어서, 상기 클라이언트에 전송된 상기 미리 읽은 데이터는 상기 클라이언트의 미리 읽기 버퍼에 저장되며, 상기 클라이언트의 미리 읽기 버퍼 크기는 상기 서버의 최대 미리 읽기 크기의 2배인 분산파일 시스템에서의 읽기 동작 수행 방법
|
11 |
11
제10항에 있어서, 상기 미리 읽기 버퍼는 순환 버퍼인 분산파일 시스템에서의 읽기 동작 수행 방법
|
12 |
12
제7항에 있어서, 상기 클라이언트에서 수행되는 응용 프로그램으로부터 상기 파일에 대한 연속 읽기가 요청되는 경우에,상기 응용 프로그램에 의해 아직 판독되지 않은 미리 읽기 버퍼의 잔여 데이터 크기가 기설정된 비동기 미리 읽기 요청 크기보다 작아지면 상기 클라이언트가 상기 서버에 비동기 미리 읽기 요청 크기 정보를 포함하는 미리 읽기 요청을 전송하는 단계; 상기 미리 읽기 요청을 수신한 서버가 상기 비동기 미리 읽기 요청 크기만큼 상기 파일에 대한 비동기 미리 읽기 동작을 수행하는 단계; 및상기 미리 읽은 데이터를 상기 클라이언트에 전송하는 단계를 더 포함하는 분산파일 시스템에서의 읽기 동작 수행 방법
|
13 |
13
제12항에 있어서, 상기 비동기 미리 읽기 요청 크기는 상기 서버의 최대 미리 읽기 크기까지 증가될 수 있는 분산파일 시스템에서의 읽기 동작 수행 방법
|
14 |
14
삭제
|
15 |
15
제7항에 있어서, 상기 클라이언트에서 수행되는 응용 프로그램으로부터 상기 파일에 대한 랜덤 읽기가 요청되는 경우에,상기 클라이언트가 상기 파일에 연관된 문맥 구조체내 문맥 버전 번호를 증가시키고 상기 증가된 버전 번호, 문맥 식별자, 오프셋 및 미리 읽기 크기 정보를 포함하는 문맥 변경 요청을 상기 서버에 전송하는 단계; 및상기 문맥 변경 요청을 수신한 서버가 상기 변경 요청된 문맥 구조체의 문맥 버전 번호를 상기 변경 요청에 포함된 버전 번호로 변경하고, 상기 변경 요청에 포함된 오프셋 및 미리 읽기 크기 정보를 이용하여 상기 파일에 대한 미리 읽기 동작을 수행하고 미리 읽은 데이터를 상기 클라이언트에게 전송하는 단계를 더 포함하는 분산파일 시스템에서의 읽기 동작 수행 방법
|
16 |
16
제7항에 있어서, 상기 클라이언트로부터 상기 생성된 문맥에 대한 삭제 요청이 수신되면, 상기 삭제 요청에 포함된 문맥 처리 요청 일련번호와 상기 서버의 문맥 구조체에 포함된 최신 문맥 처리 번호를 비교함으로써 상기 삭제 요청이 순서 바뀐(reordered) 요청인지 여부를 판단하는 단계; 순서 바뀐 요청인 것으로 판단되면 상기 삭제 요청보다 앞선 요청에 대한 처리가 완료될 때까지 대기하는 단계; 및상기 앞선 요청에 대한 처리가 완료된 후에 상기 삭제 요청된 문맥 구조체를 삭제하는 단계를 더 포함하는 분산파일 시스템에서의 읽기 동작 수행 방법
|
17 |
17
분산파일 시스템에서 읽기 동작을 수행하는 방법에 있어서, 상기 방법은,응용 프로그램으로부터 파일에 대한 읽기 요청 -상기 읽기 요청은 오프셋 및 읽기 크기 정보를 포함함-이 수신되면, 클라이언트는 상기 파일에 대한 문맥 구조체가 존재하는지 판단하는 단계;상기 파일에 대한 문맥 구조체가 존재하는 경우에 상기 읽기 요청에 포함된 오프셋과 상기 문맥 구조체에 포함된 읽기 시작 위치를 비교하여 상기 읽기 요청이 연속 읽기 요청인지 랜덤 읽기 요청인지 판단하는 단계;상기 읽기 요청이 연속 읽기 요청인 것으로 판단되면, 서버에 상기 파일에 대한 비동기 미리 읽기를 요청하는 단계; 및상기 읽기 요청이 랜덤 읽기 요청인 것으로 판단되면, 상기 서버에 상기 문맥에 대한 변경을 요청하는 단계를 포함하는 분산파일 시스템에서 읽기 동작을 수행하는 방법
|
18 |
18
제17항에 있어서, 상기 파일에 대한 문맥 구조체가 존재하는지 않는 경우에, 상기 서버에 상기 파일에 대한 문맥 생성을 요청하는 단계를 더 포함하는 분산파일 시스템에서 읽기 동작을 수행하는 방법
|
19 |
19
제17항에 있어서, 상기 문맥에 대한 변경을 요청하는 단계는,요청큐에 상기 문맥에 대해 대기중인 비동기 미리 읽기 요청이 존재하는지 판단하는 단계; 및상기 요청큐에 대기중인 비동기 미리 읽기 요청이 존재하는 경우에, 상기 요청이 처리되어 상기 요청큐가 비워질 때까지 대기한 후에 상기 서버에 상기 문맥에 대한 변경 요청을 전송하는 단계를 포함하는 분산파일 시스템에서 읽기 동작을 수행하는 방법
|
20 |
20
제17항에 있어서, 상기 응용 프로그램으로부터 상기 파일에 대한 쓰기 요청이 수신되면, 상기 파일의 쓰기 요청 영역이 미리 읽기 윈도우에 포함되는지 판단하는 단계; 상기 미리 읽기 윈도우에 포함되는 경우 미리 읽기 버퍼를 무효화는 단계; 및 상기 문맥에 대한 삭제를 상기 서버에 요청하는 단계를 더 포함하는 분산파일 시스템에서 읽기 동작을 수행하는 방법
|