KR101733118B1 - 메타데이터 연산 충돌 회피 방법 및 이를 수행하는 메타 데이터 관리 시스템 - Google Patents

메타데이터 연산 충돌 회피 방법 및 이를 수행하는 메타 데이터 관리 시스템 Download PDF

Info

Publication number
KR101733118B1
KR101733118B1 KR1020110084634A KR20110084634A KR101733118B1 KR 101733118 B1 KR101733118 B1 KR 101733118B1 KR 1020110084634 A KR1020110084634 A KR 1020110084634A KR 20110084634 A KR20110084634 A KR 20110084634A KR 101733118 B1 KR101733118 B1 KR 101733118B1
Authority
KR
South Korea
Prior art keywords
metadata
directory
file
storage device
requested
Prior art date
Application number
KR1020110084634A
Other languages
English (en)
Other versions
KR20130022009A (ko
Inventor
차명훈
최완
김영균
김홍연
진기성
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020110084634A priority Critical patent/KR101733118B1/ko
Publication of KR20130022009A publication Critical patent/KR20130022009A/ko
Application granted granted Critical
Publication of KR101733118B1 publication Critical patent/KR101733118B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/263Network storage, e.g. SAN or NAS

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

메타데이터 연산 충돌 회피 방법 및 이를 수행하는 메타 데이터 관리 시스템이 개시된다. 메타데이터 연산 충돌 회피 방법은 디렉토리 메타데이터 저장 장치가 미리 저장된 디렉토리 메타데이터 정보를 참조하여 요청된 메타데이터 연산의 실행 가능 여부를 판단하는 단계와, 디렉토리 메타데이터 저장 장치가 상기 요청된 메타데이터 연산이 실행 가능한 경우 요청된 메타데이터 연산에 상응하는 메타데이터 연산 의도를 특정 파일 메타데이터 저장 장치에 제공하는 단계와, 특정 파일 메타데이터 저장 장치가 미리 저장된 파일 메타데이터 정보 또는 미리 저장된 메타데이터 연산 의도 정보를 참조하여 메타데이터 연산 의도에 포함된 요청된 메타데이터 연산의 실행 가능 여부를 판단하는 단계와, 특정 파일 메타데이터 저장 장치가 요청된 메타데이터 연산이 실행 가능한 경우 메타데이터 연산 의도를 기록하고, 메타데이터 연산 의도 기록 완료 정보를 디렉토리 메타데이터 저장 장치에 제공하는 단계 및 디렉토리 메타데이터 저장 장치가 특정 파일 메타데이터 저장 장치로부터 제공된 메타데이터 연산 의도 기록 완료 정보에 상응하여 요청된 메타데이터 연산을 실행하는 단계를 포함한다. 따라서, 파일 시스템의 일관성을 손상시킬 수 있는 메타데이터 연산을 방지할 수 있다.

Description

메타데이터 연산 충돌 회피 방법 및 이를 수행하는 메타 데이터 관리 시스템{METHOD FOR AVOIDING CONFLICT AMONG METADATA OPERATION AND METADATA MANAGEMENT SYSTEM FOR PERFORMING THE SAME}
본 발명은 파일 저장 시스템에 관한 것으로, 더욱 상세하게는 메타데이터를 분산시켜 관리하는 시스템에 적용할 수 있는 메타데이터 연산 충돌 회피 방법 및 이를 수행하는 메타 데이터 관리 시스템에 관한 것이다.
컴퓨터 등의 정보처리 장치에서는 파일의 메타데이터와 해당 데이터를 분리하여 관리함으로써 데이터 입출력 성능을 향상시킬 수 있다. 예를 들어, 복수의 컴퓨터가 네트워크를 통해 서로 연결된 환경에서 하나의 특정 컴퓨터에는 메타데이터를 보관하고, 다른 컴퓨터들에는 데이터를 저장하는 형태로 파일 저장 시스템을 운용하는 경우, 데이터의 입출력 성능을 향상시킬 수 있다.
그러나, 상기한 바와 같이 메타데이터와 데이터를 분리하여 관리하는 경우 저장해야 하는 파일의 수가 급증하면, 메타데이터 서버에 병목현상이 발생할 수 있고, 이와 같은 문제를 해결하기 위한 방법의 하나로 메타데이터 관리용 컴퓨터를 단일 장치가 아닌 복수의 장치로 구성하여 메타데이터를 관리하는 방법이 사용될 수 있다.
복수의 컴퓨터를 이용하여 메타데이터를 관리하는 저장 시스템에서, 메타데이터 관리용 컴퓨터 중 하나에는 디렉토리 관련 메타데이터를 보관하고, 나머지의 메타데이터 관리용 컴퓨터들에는 파일 관련 메타데이터를 보관하도록 구성할 수 있다.
예컨대, 디렉토리 관련 메타 데이터를 보관하는 장치를 디렉토리 메타데이터 서버라 하고, 파일 관련 메타데이터를 보관하는 적어도 하나의 장치를 파일 메타데이터 서버(또는 파일 메타데이터 서버들)라 하면, '/A/B/C/file1'의 경로를 가지는 파일 'file1'을 보관하기 위하여 디렉토리 메타데이터 서버에는 '/A/B/C/' 라는 디렉토리에 대한 메타데이터 정보를 보관하고, 파일 메타데이터 서버에는 'file1'에 대한 메타데이터 정보를 보관할 수 있다.
상기한 바와 같은 시스템에서, 특정 디렉토리 아래에 소정 파일을 생성하고자 하는 메타데이터 연산과, 상기 생성하고자 하는 소정 파일과 동일한 이름을 가지는 서브 디렉토리를 생성하고자 하는 메타데이터 연산이 동시에 제공된 경우, 적절한 제어 과정 없이 상기 두 메타데이터 연산을 모두 허용하게 되면, 동일한 이름을 가지는 디렉토리와 파일이 특정 부모 디렉토리 아래에 동시에 생성되기 때문에 파일 시스템의 일관성이 손상된다.
또한, 특정 디렉토리에 파일을 생성하고자 하는 메타데이터 연산과 상기 특정 디렉토리를 삭제하고자 하는 메타데이터 연산이 동시에 제공되는 경우 또는 특정 디렉토리에 소정 이름을 가지는 파일을 생성하고자 하는 메타데이터 연산과 상기 특정 디렉토리에 존재하는 서브 디렉토리의 이름을 상기 파일 이름과 동일한 이름으로 변경하고자 하는 메타데이터 연산이 동시에 제공되는 경우에도 파일 시스템의 일관성이 손상된다.
미국 등록특허 제7657581호(발명의 명칭: Metadata management for fixed content distributed data storage)는 고정된 길이를 가지는 데이터의 분산 저장에 필요한 메타데이터 관리 방법을 개시하고 있다. 구체적으로, 상기 미국 등록특허 제7657581호는 이름과 같은 메타데이터 속성이 해시 함수의 입력으로 제공되었을 때, 해시 함수가 출력한 값에 기초하여 실제 메타데이터를 구분하여 저장하는 기술을 개시하고 있다. 그러나, 상기 미국등록특허 제7657581호는 변경되지 않은 데이터를 보관(archiving)하기 위한 시스템에 적합한 관리 방법을 개시하고 있을 뿐, 디렉토리와 파일 각각에 대한 메타데이터를 구분하여 저장하는 시스템에서 메타데이터의 일관성을 손상시키지 않도록 하는 관리 방법은 개시하지 않고 있다.
또한, 미국 등록특허 제6138124호(발명의 명칭 : Field level replication method)는 하나의 문서가 복수개로 복제되어 저장되는 분산 컴퓨팅 환경에서 소정 문서를 개정하고자 할 때, 개정하고자 하는 모든 문서의 복제 문서들에게도 개정할 내용을 동일하게 복제하기 위한 방법을 개시하고 있다. 구체적으로, 미국 등록특허 제6138124호는 문서를 구분 가능한 필드들로 구성하고, 복수의 문서 각각에 대해서는 각 문서를 대표하는 문서 일련 번호를 유지하고, 문서 내의 각 필드에 대해서는 필드 일련 번호를 유지하여, 문서의 특정 부분이 수정되면 그 수정된 부분에 해당되는 필드들에 대해서만 모든 복제본들에 대해 동일하게 갱신을 수행하고 그에 따라 문서 일련 번호와 필드 일련 번호를 조정하는 기술을 개시하고 있다. 그러나, 미국 등록특허 제6138124호는 정형화된 필드를 가진 문서에 대한 복제본 갱신 방법만을 개시하고 있을 뿐, 디렉토리와 파일 각각에 대한 메타데이터를 구분하여 저장하는 시스템에서 메타데이터의 일관성을 손상시키지 않도록 하는 관리 방법은 개시하지 않고 있다.
본 발명의 목적은 메타데이터를 분산시켜 관리하는 시스템에서 파일 시스템의 일관성을 보장할 수 있는 메타데이터 연산 충돌 회피 방법을 제공하는 것이다.
또한, 본 발명의 다른 목적은 상기 메타데이터 연산 충돌 회피 방법을 수행하는 메타 데이터 관리 시스템을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상술한 본 발명의 목적을 달성하기 위한 본 발명의 일 측면에 따른 메타데이터 연산 충돌 회피 방법은, 디렉토리 메타데이터 저장 장치가 미리 저장된 디렉토리 메타데이터 정보를 참조하여 요청된 메타데이터 연산의 실행 가능 여부를 판단하는 단계와, 상기 디렉토리 메타데이터 저장 장치가 상기 요청된 메타데이터 연산이 실행 가능한 경우, 상기 요청된 메타데이터 연산에 상응하는 메타데이터 연산 의도를 특정 파일 메타데이터 저장 장치에 제공하는 단계와, 상기 특정 파일 메타데이터 저장 장치가 미리 저장된 파일 메타데이터 정보 또는 미리 저장된 메타데이터 연산 의도 정보를 참조하여 상기 메타데이터 연산 의도에 포함된 상기 요청된 메타데이터 연산의 실행 가능 여부를 판단하는 단계와, 상기 특정 파일 메타데이터 저장 장치가 상기 요청된 메타데이터 연산이 실행 가능한 경우, 상기 메타데이터 연산 의도를 기록하고, 메타데이터 연산 의도 기록 완료 정보를 상기 디렉토리 메타데이터 저장 장치에 제공하는 단계 및 상기 디렉토리 메타데이터 저장 장치가 상기 특정 파일 메타데이터 저장 장치로부터 제공된 상기 메타데이터 연산 의도 기록 완료 정보에 상응하여 상기 요청된 메타데이터 연산을 실행하는 단계를 포함한다.
여기서, 상기 디렉토리 메타데이터 저장 장치가 미리 저장된 디렉토리 메타데이터 정보를 참조하여 요청된 메타데이터 연산의 실행 가능 여부를 판단하는 단계는, 상기 디렉토리 메타데이터 저장 장치가 디렉토리 메타데이터 연산을 요청받는 단계 및 상기 디렉토리 메타데이터 저장 장치가 상기 미리 저장된 디렉토리 메타데이터 정보를 참조하여 상기 요청된 디렉토리 메타데이터 연산에 상응하는 부모 디렉토리 존재 여부 또는 디렉토리 이름의 중복 여부를 판단하고, 판단 결과에 기초하여 상기 요청된 메타데이터 연산의 실행 가능 여부를 판단하는 단계를 포함할 수 있다.
여기서, 상기 메타데이터 연산 의도를 특정 파일 메타데이터 저장 장치에 제공하는 단계는, 상기 디렉토리 메타데이터 저장 장치가 상기 미리 저장된 디렉토리 메타데이터 정보를 참조하여 상기 요청된 메타데이터 연산에 상응하는 파일의 메타데이터가 저장된 상기 특정 파일 메타데이터 저장 장치의 정보를 획득하는 단계 및 상기 디렉토리 메타데이터 저장 장치가 상기 획득한 특정 파일 메타데이터 저장 장치의 정보에 기초하여 상기 특정 파일 메타데이터 저장 장치에 상기 메타데이터 연산 의도를 제공하는 단계를 포함할 수 있다.
여기서, 상기 메타데이터 연산 의도에 포함된 상기 요청된 메타데이터 연산의 실행 가능 여부를 판단하는 단계는, 상기 특정 파일 메타데이터 저장 장치가 상기 미리 저장된 파일 메타데이터 정보를 참조하여 상기 메타데이터 연산 의도에 포함된 디렉토리 이름 또는 파일 이름의 중복 여부를 판단하거나 또는 상기 미리 저장된 메타데이터 연산 의도를 참조하여 상기 제공된 메타데이터 연산 의도의 중복 여부를 판단하여 상기 요청된 메타데이터 연산의 실행 가능 여부를 판단할 수 있다.
여기서, 상기 메타데이터 연산 의도는 메타데이터 연산이 수행될 디렉토리의 부모 디렉토리의 식별정보, 메타데이터 연산이 생성 또는 변경하고자 의도하는 디렉토리의 경로명 및 메타데이터 연산의 유형 정보를 포함할 수 있다.
여기서, 상기 디렉토리 메타데이터 저장 장치가 미리 저장된 디렉토리 메타데이터 정보를 참조하여 요청된 메타데이터 연산의 실행 가능 여부를 판단하는 단계는, 상기 디렉토리 메타데이터 저장 장치가 파일 메타데이터 연산을 요청받는 단계 및 상기 디렉토리 메타데이터 저장 장치가 상기 미리 저장된 디렉토리 메타데이터 정보를 참조하여 상기 요청된 파일 메타데이터 연산에 상응하는 부모 디렉토리 존재 여부 또는 상기 요청된 파일 메타데이터 연산에 포함된 파일 이름과 동일한 이름을 가지는 디렉토리 이름의 존재 여부를 판단한 결과에 기초하여 상기 요청된 메타데이터 연산의 실행 가능 여부를 판단하는 단계를 포함할 수 있다.
여기서, 상기 메타데이터 연산 충돌 회피 방법은, 상기 디렉토리 메타데이터 저장 장치가 미리 저장된 디렉토리 메타데이터 정보를 참조하여 요청된 메타데이터 연산의 실행 가능 여부를 판단하는 단계 이후에, 상기 요청된 메타데이터 연산이 실행 가능한 경우, 상기 디렉토리 메타데이터 저장 장치가 상기 미리 저장된 디렉토리 메타데이터 정보를 참조하여 상기 요청된 메타데이터 연산에 상응하는 파일의 메타데이터가 저장된 해당 파일 메타데이터 저장 장치의 정보를 획득하는 단계 및 상기 디렉토리 메타데이터 저장 장치가 상기 획득한 해당 파일 메타데이터 저장 장치의 정보에 기초하여 상기 해당 파일 메타데이터 저장 장치에 상기 요청된 메타데이터 연산 정보를 제공하는 단계를 더 포함할 수 있다.
여기서, 상기 메타데이터 연산 충돌 회피 방법은, 상기 해당 파일 메타데이터 저장 장치가 상기 요청된 메타데이터 연산 정보를 제공받고, 상기 해당 파일 메타데이터 저장 장치에 미리 저장된 메타데이터 연산 의도 내에 상기 요청된 메타데이터 연산 정보에 포함된 파일의 이름과 동일한 이름이 존재하는가를 판단하는 단계 및 상기 해당 파일 메타데이터 저장 장치에 미리 저장된 메타데이터 연산 의도 내에 상기 요청된 메타데이터 연산 정보에 파일의 이름과 동일한 이름이 존재하지 않는 경우, 상기 해당 파일 메타데이터 저장 장치가 상기 요청된 메타데이터 연산을 실행하는 단계를 더 포함할 수 있다.
또한, 본 발명의 다른 목적을 달성하기 위한 본 발명의 일 측면에 따른 메타데이터 관리 시스템은, 디렉토리의 메타데이터를 저장하는 디렉토리 메타데이터 저장 장치 및 파일의 메타데이터 및 메타데이터 연산 의도 정보를 각각 저장하는 적어도 하나의 파일 메타데이터 저장 장치를 포함하되, 상기 디렉토리 메타데이터 저장 장치는 상기 요청된 메타데이터 연산의 실행 가능한 경우 상기 요청된 메타데이터 연산에 상응하는 제1 메타데이터 연산 의도를 상기 적어도 하나의 파일 메타데이터 저장 장치 중 특정 파일 메타데이터 저장 장치에 제공한 후, 상기 특정 파일 메타데이터 저장 장치로부터 제공된 제1 메타데이터 연산 의도 기록 완료 정보에 상응하여 상기 요청된 메타데이터 연산을 실행하며, 상기 특정 파일 메타데이터 저장 장치는 상기 제1 메타데이터 연산 의도를 제공받고, 상기 제1 메타데이터 연산 의도에 포함된 상기 요청된 메타데이터 연산이 실행 가능하면 상기 제1 메타데이터 연산 의도를 기록한 후, 상기 제1 메타데이터 연산 의도 기록 완료 정보를 상기 디렉토리 메타데이터 저장 장치에 제공한다.
여기서, 상기 디렉토리 메타데이터 저장 장치는 상기 요청된 메타데이터 연산이 디렉토리 메타데이터 연산인 경우, 상기 저장된 디렉토리 메타데이터 정보를 참조하여 상기 요청된 디렉토리 메타데이터 연산에 상응하는 부모 디렉토리 존재 여부 또는 디렉토리 이름의 중복 여부를 판단하고, 판단한 결과에 기초하여 상기 요청된 메타데이터 연산의 실행 가능 여부를 판단할 수 있다.
여기서, 상기 디렉토리 메타데이터 저장 장치는 상기 요청된 메타데이터 연산이 실행 가능한 경우, 상기 저장된 디렉토리 메타데이터 정보를 참조하여 상기 요청된 메타데이터 연산에 상응하는 파일의 메타데이터가 저장된 상기 특정 파일 메타데이터 저장 장치의 정보를 획득한 후, 상기 특정 파일 메타데이터 저장 장치에 상기 제1 메타데이터 연산 의도를 제공할 수 있다.
여기서, 상기 특정 파일 메타데이터 저장 장치는 상기 저장된 파일 메타데이터 정보를 참조하여 상기 제공된 메타데이터 연산 의도에 포함된 디렉토리 이름 또는 파일 이름의 중복 여부를 판단한 결과 또는 상기 저장된 메타데이터 연산 의도를 참조하여 상기 제1 메타데이터 연산 의도의 중복 여부를 판단한 결과에 기초하여 상기 요청된 메타데이터 연산의 실행 가능 여부를 판단할 수 있다.
여기서, 상기 디렉토리 메타데이터 저장 장치는 상기 요청된 메타데이터 연산이 파일 메타데이터 연산인 경우, 상기 저장된 디렉토리 메타데이터 정보를 참조하여 상기 요청된 파일 메타데이터 연산에 상응하는 부모 디렉토리 존재 여부 또는 상기 요청된 파일 메타데이터 연산에 포함된 파일 이름과 동일한 이름을 가지는 디렉토리 이름의 존재 여부를 판단하고, 판단한 결과에 기초하여 상기 파일 메타데이터 연산의 실행 가능 여부를 판단할 수 있다.
상기 디렉토리 메타데이터 저장 장치는 상기 파일 메타데이터 연산이 실행 가능한 경우 상기 저장된 디렉토리 메타데이터 정보를 참조하여 상기 적어도 하나의 파일 메타데이터 저장 장치로부터 상기 파일 메타데이터 연산에 상응하는 파일의 메타데이터가 저장된 해당 파일 메타데이터 저장 장치의 정보를 획득한 후, 상기 획득한 해당 파일 메타데이터 저장 장치의 정보에 기초하여 상기 해당 파일 메타데이터 저장 장치에 상기 파일 메타데이터 연산 정보를 제공할 수 있다.
여기서, 상기 해당 파일 메타데이터 저장 장치는 상기 파일 메타데이터 연산 정보를 제공받고, 상기 저장된 메타데이터 연산 의도 내에 상기 파일 메타데이터 연산 정보에 포함된 파일의 이름과 동일한 이름이 존재하지 않는 경우 상기 파일 메타데이터 연산을 실행할 수 있다.
상술한 바와 같은 메타데이터 연산 충돌 회피 방법 및 이를 수행하는 메타데이터 관리 시스템에 따르면, 디렉토리 메타데이터와 파일 메타데이터를 분산시켜 관리하는 메타데이터 관리 시스템에서 소정의 메타데이터 연산이 요청되면, 요청된 메타데이터 연산 의도와 관련된 파일 메타데이터 서버의 메타데이터 연산 의도 저장부에 메타데이터 연산 의도를 기록하고, 다른 메타데이터 연산은 기록된 메타데이터 연산 의도를 참조하여 메타데이터 연산 충돌이 발생하지 않는 경우에 메타데이터 연산을 실행되도록 한다.
따라서, 동일한 주소 공간에 동일한 이름을 가지는 파일 및 디렉토리를 동시에 생성하고자 하는 메타데이터 연산들이 동시에 진행되더라도 파일 시스템의 일관성 손상을 방지할 수 있다.
또한, 특정 디렉토리에 파일을 생성하고자 하는 메타데이터 연산과, 상기 특정 디렉토리를 삭제하고자 하는 메타데이터 연산들이 동시에 진행되는 경우에도 두 연산들 중 어느 하나의 연산이 실행되지 않도록 함으로써 파일 시스템의 일관성 손상을 방지할 수 있다.
또한, 특정 디렉토리에 생성하고자 하는 파일의 이름과, 상기 특정 디렉토리에 현존하는 서브 디렉토리의 변경하고자 하는 이름일 동일한 경우에 발생할 수 있는 파일 시스템의 일관성 손상을 방지할 수 있다.
도 1은 본 발명의 일 실시예에 따른 메타데이터 연산 충돌 회피 방법이 적용되는 메타데이터 관리 시스템의 구성을 나타내는 개념도이다.
도 2는 도 1에 도시한 바와 같은 메타데이터 관리 시스템에서 파일 시스템의 일관성이 손상되는 경우를 설명하기 위한 개념도이다.
도 3은 본 발명의 일 실시예에 따른 메타데이터 관리 시스템의 구성을 나타내는 블록도이다.
도 4는 도 3에 도시한 메타데이터 연산 의도 저장부에 저장되는 정보를 설명하기 위한 개념도이다.
도 5는 본 발명의 일 실시예에 따른 메타데이터 연산 충돌 회피 방법을 나타내는 순서도이다.
도 6은 본 발명의 일 실시예에 따른 메타데이터 연산 충돌 회피 방법을 나타내는 순서도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다.
그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 일 실시예에 따른 메타데이터 연산 충돌 회피 방법이 적용되는 메타데이터 관리 시스템의 구성을 나타내는 개념도이다. 또한, 도 2는 도 1에 도시한 바와 같은 메타데이터 관리 시스템에서 파일 시스템의 일관성이 손상되는 경우를 설명하기 위한 개념도이다.
먼저, 도 1을 참조하면, 메타데이터 저장 시스템은 디렉토리 메타데이터 서버(100) 및 적어도 하나의 파일 메타데이터 서버(200-1, 200-2, 200-3)로 구성될 수 있다.
디렉토리 메타데이터 서버(100)에는 디렉토리에 대한 메타데이터가 저장되며, 파일에 대한 메타데이터는 복수의 파일 메타데이터 서버들 M1, M2 및 M3(200-1, 200-2, 200-3)에 분산되어 저장된다.
디렉토리 메타데이터 서버(100)에 저장되는 디렉토리의 메타데이터에는 부모 디렉토리의 아이디(Parent's ID)(101), 디렉토리 이름(Directory name)(103), 디렉토리 아이디(ID)(105) 및 디렉토리에 속한 파일의 메타데이터가 저장된 파일 메타데이터 서버(File metadata server)(107) 정보를 포함할 수 있다.
또한, 파일에 대한 메타데이터는 파일이 소속된 부모 디렉토리의 아이디(Parent's ID)(201), 파일 이름(File name)(203) 및 파일 아이디(ID)(205) 정보를 포함할 수 있다.
파일 메타데이터에는 상기한 정보들 이외에도 다양한 정보(예를 들면, 파일 생성 시간, 파일 크기, 파일이 저장된 위치 정보 등)가 더 포함될 수 있다.
이하, 도 1을 참조하여 특정 파일에 대한 메타데이터의 획득 과정을 설명한다.
먼저, 메타데이터를 획득하기 위한 입력이 '/A/B/f2'와 같은 파일 경로 형태로 주어지는 경우, 먼저 디렉토리 메타데이터 서버(100)에서 디렉토리 이름이 '/A/B'인 레코드를 조회하여 디렉토리 메타데이터 서버(100)의 디렉토리 메타데이터 저장부(110)로부터 '/A/B'의 디렉토리 아이디는 '3'이고, '/A/B' 디렉토리에 속한 파일의 파일 메타데이터가 저장된 파일 메타데이터 서버가 'M3'임을 확인한다.
이후, 상기한 바와 같이 획득한 정보에 기초하여 파일 메타데이터 서버 M3(200-3)에 접속하여 파일 메타데이터 저장부(210-3)에서 부모 디렉토리의 아이디가 '3'이고 파일명이 'f2'인 레코드를 조회하여 찾고자 하는 파일의 아이디 정보 '3-2'을 획득한다.
도 1에 도시한 바와 같이 디렉토리에 대한 메타데이터 정보와 파일에 대한 메타데이터에 대한 정보를 분리하여 저장하는 경우, 단일 메타데이터 서버에 디렉토리와 파일에 대한 메타데이터 정보를 모두 저장하는 것에 비해, 메타데이터 저장 공간의 확장성과 처리 성능을 향상시킬 수 있기 때문에 대량의 파일들을 저장하는 응용의 메타데이터 관리를 효율적으로 수행할 수 있다.
그러나, 디렉토리 메타데이터 저장부(110)와 파일 메타데이터 저장부(200-1, 200-2, 200-3)가 분리되어 있기 때문에, 파일 시스템의 일관성을 손상시킬 수 있는 형태의 메타데이터 연산들이 동시에 요청되는 경우, 이를 적절하게 제어하지 않으면 파일 시스템의 일관성이 손상될 수 있다.
도 2는 도 1에 도시한 메타데이터 저장 시스템에서 '/A/B' 디렉토리 아래에 서브 디렉토리 'K'를 만들고자 하는 메타데이터 연산과, '/A/B' 디렉토리 아래에 파일 'K'를 만들고자 하는 메타데이터 연산이 동시에 요구되었을 때 발생가능한 파일 시스템의 일관성 손상 예를 나타낸다.
도 1에 도시한 바와 같은 디렉토리 및 파일의 메타데이터 정보가 저장된 환경에서 '/A/B' 디렉토리 아래에 서브 디렉토리 'K'를 만들고자 하는 연산은, 우선 디렉토리 메타데이터 서버(100)에서 '/A/B' 디렉토리의 존재여부를 조회하고, 조회 결과 '/A/B'가 존재하는 경우 다음 단계로, /A/B/K 디렉토리가 이미 존재하는지를 조회한다. 조회결과 '/A/B/K' 디렉토리가 디렉토리 메타데이터 저장부(110)에 존재하지 않음을 확인하고, 현재 메타데이터 연산은 '/A/B'디렉토리에 속한 파일이 저장된 파일 메타데이터 서버 정보 'M3'를 획득한 후, 만들고자 하는 '/A/B/K' 디렉토리와 충돌되는 파일(즉, 파일 이름이 'K'인 파일)이 '/A/B' 디렉토리 아래에 보관되어 있는지 확인하기 위해 파일 메타데이터 서버 M3(200-3)에서 파일 메타데이터 저장부(210-3)를 조회하여 'K'라는 파일명이 존재하지 않음을 확인한다. 그리고, 디렉토리 메타데이터 저장부(110)에 신규 디렉토리 '/A/B/K'에 대한 메타데이터를 생성하려고 준비한다.
한편, 도 1에 도시한 바와 같은 디렉토리 및 파일의 메타데이터 정보가 저장된 환경에서 상기한 디렉토리 생성 연산이 요청됨과 동시에 '/A/B' 디렉토리 아래에 파일 'K'를 만들고자 하는 연산이 요청된 경우, 우선 디렉토리 메타데이터 서버(100)에 '/A/B' 디렉토리의 존재 여부를 조회하고, 조회결과 '/A/B'가 존재하는 경우 '/A/B' 디렉토리 아래에 보관될 파일은 파일 메타데이터 서버 M3(200-3)에 저장되어야 한다는 정보를 획득한다. 그리고, 메타데이터 연산은 생성하고자 하는 파일 이름 'K'와 동일한 서브 디렉토리 'K'가 '/A/B' 아래에 존재하는지 확인하기 위하여 '/A/B/K'를 디렉토리 이름으로 가지는 디렉토리가 존재하는지 디렉토리 메타데이터 서버(100)의 디렉토리 메타데이터 저장부(110)에서 조회한다. 현 시점에서는 파일명 'K'와 충돌되는 디렉토리 '/A/B/K'가 디렉토리 메타데이터 저장부(110)에 존재하지 않으므로, 메타데이터 연산은 파일 메타데이터 서버 M3(210-3)에서 파일 'K'의 메타데이터를 생성하려고 준비한다.
상기한 바와 같은 과정을 통해 결과적으로 도 2에 도시한 바와 같이 '/A/B/K' 디렉토리에 대한 메타데이터 정보(111)가 디렉토리 메타데이터 서버(100)의 디렉토리 메타데이터 저장부(110)에 삽입됨과 동시에, '/A/B/K' 파일에 대한 메타데이터 정보(211)가 파일 메타데이터 서버 M3(200-3)의 파일 메타데이터 저장부(210-3)에 저장된다. 따라서, 동일한 이름을 가지는 디렉토리와 파일이 특정 디렉토리 아래에 동시 존재하게 되는 모순이 발생할 수 있게 된다.
도 2에 도시한 바와 같이 디렉토리 메타데이터와 파일 메타데이터가 별도로 구분되어 저장되는 메타데이터 저장 시스템에서는 파일 시스템의 일관성을 저해할 수 있는 동시 요청된 메타데이터 연산들이 존재할 수 있고, 이와 같은 환경에 본 발명의 실시예에 따른 메타데이터 연산 충돌 회피 방법이 적용될 수 있다.
또한, 도 2에 도시한 바와 같이 특정 부모 디렉토리 아래에 동일한 이름을 가지는 서브 디렉토리와 파일을 동시 생성하고자 하는 경우 이외에도, 특정 디렉토리 아래에 파일을 생성하고자 하는 메타데이터 연산과 상기 특정 디렉토리를 삭제하고자 하는 메타데이터 연산들이 동시에 진행되는 경우, 또는 특정 디렉토리 아래에 생성하고자 하는 파일의 이름과 상기 특정 디렉토리에 존재하는 서브 디렉토리의 변경하고자 하는 이름이 동일한 경우 등과 같이 파일 시스템의 일관성을 손상시킬 수 있는 다양한 메타데이터 연산의 경우에 본 발명의 실시예에 따른 메타데이터 연산 충돌 회피 방법이 적용될 수 있다.
도 3은 본 발명의 일 실시예에 따른 메타데이터 관리 시스템의 구성을 나타내는 블록도이고, 도 4는 도 3에 도시한 메타데이터 연산 의도 저장부에 저장되는 정보를 설명하기 위한 개념도이다.
도 3 및 도 4를 참조하면, 메타데이터 관리 시스템은 디렉토리 메타데이터 서버(400) 및 적어도 하나의 파일 메타데이터 서버(500)를 포함할 수 있다.
디렉토리 메타데이터 서버(400)는 디렉토리에 대한 메타데이터를 저장하는 디렉토리 메타데이터 저장부(410)를 포함하고, 디렉토리 메타데이터 저장부(410)에는 도 1에 도시한 바와 같이 부모 디렉토리의 아이디(Parent's ID), 디렉토리 이름(Directory name), 디렉토리 아이디(ID) 및 디렉토리에 속한 파일의 메타데이터가 저장된 파일 메타데이터 서버(File metadata server) 정보가 저장될 수 있다.
디렉토리 메타데이터 서버(400)는 클라이언트 장치(300)로부터 제공된 메타데이터 연산 요청에 상응하는 부모 디렉토리의 존재 여부를 디렉토리 메타데이터 저장부(410)를 조회하여 판단한다. 그리고, 상기 부모 디렉토리가 존재하는 경우 디렉토리 메타데이터 저장부(410)에 저장된 디렉토리 메타데이터 정보에 기초하여 클라이언트 장치로부터 요청된 메타데이터 연산이 실행 가능한가를 판단한다. 여기서, 디렉토리 메타데이터 서버(400)는 생성 또는 이름을 변경하고자 하는 디렉토리의 이름과 동일한 이름을 가진 디렉토리가 이미 존재하거나, 생성 또는 이름을 변경하고자 하는 파일의 이름과 동일한 이름을 가지는 디렉토리가 이미 존재하는 경우 클라이언트 장치(300)로부터 요청된 메타데이터 연산이 실행 가능하지 않은 것으로 판단할 수 있다.
디렉토리 메타데이터 서버(400)는 클라이언트 장치(300)로부터 요청된 메타데이터 연산이 실행가능한 경우, 부모 디렉토리에 속한 파일을 관리하는 파일 메타데이터 서버의 위치 정보를 디렉토리 메타데이터 저장부(410)로부터 획득한 후, 획득한 파일 메타데이터 서버의 위치 정보에 기초하여 해당 파일 메타데이터 서버(500)에 상기 클라이언트 장치(300)로부터 요청된 메타데이터 연산에 상응하는 메타데이터 연산 의도 정보(예를 들면, 디렉토리 생성, 디렉토리 이름 변경 또는 디렉토리 삭제 등)를 전송한다. 여기서, 디렉토리 메타데이터 서버(400)는 클라이언트 장치로부터 요청된 메타데이터 연산의 종류에 따라 메타데이터 연산 요청(예를 들면, 파일 생성, 파일 삭제 또는 파일 이름 변경 등)을 해당 파일 메타데이터 서버(500)에 전송할 수도 있다.
이후, 디렉토리 메타데이터 서버(400)는 파일 메타데이터 서버(500)로부터 메타데이터 연산 의도 정보가 저장되었음을 지시하는 메시지를 수신하고, 클라이언트 장치(300)로부터 요청된 메타데이터 연산(예를 들면, 디렉토리 생성, 디렉토리 이름 변경, 디렉토리 삭제 등)을 수행한 후, 그 결과를 클라이언트 장치(300)에 전송한다.
또는, 디렉토리 메타데이터 서버(400)는 클라이언트 장치(300)로부터 요청된 메타데이터 연산에 상응하는 부모 디렉토리가 존재하지 않는 경우 또는 메타데이터 연산의 실행이 가능하지 않은 경우에는 디렉토리 생성 연산이 실패하였다는 메시지를 클라이언트 장치(300)에게 전송한다.
적어도 하나의 파일 메타데이터 서버(500)는 각각 파일 메타데이터 저장부(510) 및 메타데이터 연산 의도 저장부(530)를 포함할 수 있다. 파일 메타데이터 저장부(510)에는 도 4에 도시한 바와 같이 파일이 소속된 부모 디렉토리의 아이디(Parent's ID)(511), 파일 이름(File name)(513) 및 파일 아이디(ID)(515) 정보를 포함할 수 있다. 또한, 도 4에 도시한 바와 같이 메타데이터 연산 의도 저장부(530)에는 메타데이터 연산이 수행될 디렉토리의 부모 디렉토리의 아이디(Parent's ID)(531), 메타데이터 연산이 생성 또는 변경하고자 의도하는 디렉토리의 경로명(Name)(533) 및 메타데이터 연산의 유형(TYPE)(535) 정보를 포함할 수 있다.
구체적으로, 파일 메타데이터 서버(500)는 디렉토리 메타데이터 서버(400)로부터 메타데이터 연산 의도 정보가 제공되면, 파일 메타데이터 저장부(510)를 참조하여 제공된 메타데이터 연산 의도에 포함된 메타데이터 연산이 실행가능한가를 판단하고, 실행 가능한 경우 상기 메타데이터 연산 의도를 메타데이터 연산 의도 저장부에 저장한다. 여기서, 파일 메타데이터 서버(500)는 디렉토리 메타데이터 서버(400)로부터 제공된 메타데이터 연산 의도에 포함된 연산 대상 디렉토리 이름과 동일한 이름을 가지는 파일이 해당 부모 디렉토리 내에 존재하는가를 판단하고, 존재하는 경우 메타데이터 연산이 실행 가능하지 않는 것으로 판단한다.
또는, 파일 메타데이터 서버(500)는 디렉토리 메타데이터 서버(400)로부터 메타 데이터 연산 요청이 제공되는 경우에는, 메타데이터 연산 의도 저장부(530)을 참조하여 제공된 메타데이터 연산 요청이 실행가능한가를 판단하고, 실행 가능한 경우 상기 요청된 메타데이터 연산을 실행한 후, 그 결과를 클라이언트 장치(300)에 전송한다.
예를 들어, 파일 메타데이터 서버(500)는 디렉토리 메타데이터 서버(400)로부터 파일 생성, 파일 이름 변경 등의 메타데이터 연산 요청이 제공된 경우, 메타데이터 연산 의도 저장부(530)을 참조하여 생성할 파일 이름 또는 변경할 파일 이름과 동일한 이름을 가지는 메타데이터 연산 의도가 존재하는가를 판단하고, 생성 또는 변경할 파일 이름과 동일한 이름을 가지는 메타데이터 연산 의도가 존재하는 경우 메타데이터 연산이 실패하였음을 지시하는 메시지는 클라이언트 장치(300)에 전송한다. 또는, 생성 또는 변경할 파일 이름과 동일한 이름을 가지는 메타데이터 연산 의도가 존재하지 않는 경우, 파일 메타데이터 서버(500)는 요청된 메타데이터 연산을 실행한다.
도 5는 본 발명의 일 실시예에 따른 메타데이터 연산 충돌 회피 방법을 나타내는 순서도로서, 디렉토리 메타데이터 서버(400) 및 파일 데이터 서버(500)로 구성된 메타 데이터 관리 시스템에서 클라이언트 장치(300)로부터 요청된 특정 디렉토리를 생성하는 경우의 메타데이터 연산 충돌 회피 방법을 나타낸다.
도 5를 참조하면, 먼저 클라이언트 장치(300)는 디렉토리 메타데이터 서버(400)에게 생성하고자 하는 디렉토리의 부모 디렉토리가 존재하는지에 대한 조회 요청을 전송한다(단계 S10).
디렉토리 메타데이터 서버(400)는 상기 생성하고자 하는 디렉토리의 부모 디렉토리가 존재하는지를 확인하고(단계 S11), 상기 생성하고자 하는 디렉토리의 부모 디렉토리가 존재하지 않는 경우에는 디렉토리 생성 연산이 실패하였다는 메시지를 클라이언트 장치(300)에게 전송하고 연산은 종결된다(단계 S12).
또는, 디렉토리 메타데이터 서버(400)는 단계 S11에서 확인 결과 상기 생성하고자 하는 디렉토리의 부모 디렉토리가 존재하는 경우에는, 생성하고자 하는 디렉토리와 동일한 이름을 가지는 디렉토리가 이미 존재하는지를 확인한다(단계 S13).
여기서, 디렉토리 메타데이터 서버(400)는 생성하고자 하는 디렉토리와 동일한 이름을 가진 디렉토리가 존재하는 경우, 디렉토리 생성 연산이 실패하였다는 메시지를 클라이언트 장치(300)에 전송하고 연산은 종결된다(단계 S14).
또는, 단계 S13에서 생성하고자 하는 디렉토리와 동일한 이름을 가진 디렉토리가 존재하지 않는 것으로 판단되는 경우, 디렉토리 메타데이터 서버(400)는 상기 부모 디렉토리에 속한 파일들이 저장되어 있는 파일 메타데이터 서버의 위치를 획득한다(단계 S15). 여기서, 상기 파일 메타데이터 서버의 위치는 생성하고자 하는 디렉토리의 부모 디렉토리를 조회하는 과정에서 획득할 수 있다.
이후, 디렉토리 메타데이터 서버(400)는 획득한 파일 메타데이터 서버(500)의 위치 정보를 이용하여 해당 파일 메타데이터 서버(500)에게 디렉토리 생성 의도를 전송한다(단계 S16).
파일 메타데이터 서버(500)는 디렉토리 메타데이터 서버(400)로부터 디렉토리 생성 의도를 제공받고 이에 상응하여 파일 메타데이터 저장부에서 생성하고자 하는 디렉토리와 동일한 이름을 가진 파일이 존재하고 있는지 확인하고(단계 S17), 동일한 이름을 가진 파일이 이미 존재하는 경우 클라이언트 장치(300)에 디렉토리 생성 연산이 실패하였음을 지시하는 메시지를 전송한다(단계 S18). 여기서, 파일 메타데이터 서버(500)는 이전에 저장된 메타데이터 연산 의도가 존재하는 경우에는 상기 제공된 디렉토리 생성 의도를 이전에 저장된 메타데이터 연산 의도와 비교하여 디렉토리 생성 연산이 실행 가능한가를 판단할 수 있다.
또는, 파일 메타데이터 서버(500)는 파일 메타데이터 저장부 또는 메타데이터 연산 의도 저장부에 생성하고자 하는 디렉토리와 동일한 이름을 가진 파일이 존재하지 않는 경우에는, 메타데이터 연산 의도 저장부에 디렉토리 생성 의도를 기록한 후(단계 S19), 디렉토리 메타데이터 서버(400)에게 메타데이터 연산 의도 저장부에 디렉토리 생성 의도를 기록했음을 지시하는 메시지를 전달한다(단계 S20).
디렉토리 메타데이터 서버(400)는 파일 메타데이터 서버(500)로부터 디렉토리 생성 의도가 기록되었음을 지시하는 메시지를 수신한 후, 생성하고자 하는 디렉토리에 대한 정보를 디렉토리 메타데이터 저장부에 기록하고(단계 S21), 파일 메타데이터 서버(500)에게 메타데이터 연산 의도 저장부에 기록해 놓았던 디렉토리 생성 의도를 제거하라는 요청을 전송한다(단계 S22).
파일 메타데이터 서버(500)는 디렉토리 메타데이터 서버로부터 제공된 디렉토리 생성 의도 제거 요청에 상응하여 메타데이터 연산 의도 저장부에 기록된 디렉토리 생성 의도를 삭제한 후(단계 S23), 디렉토리 생성 의도가 삭제되었음을 지시하는 메시지를 디렉토리 메타데이터 서버(400)에 제공한다(단계 S24).
파일 메타데이터 서버(500)로부터 디렉토리 생성 의도가 삭제되었음을 지시하는 메시지를 수신한 디렉토리 메타데이터 서버(400)는 클라이언트 장치(300)에 디렉토리 생성이 성공하였음을 지시하는 메시지를 전송한다(단계 S25).
도 5에 도시한 바와 같이 본 발명의 일 실시예에 따른 메타데이터 연산 충돌 회피 방법에서는 디렉토리 생성 연산을 수행할 때 메타데이터 연산 의도 저장부에 디렉토리 생성 의도를 기록함으로써 파일 시스템의 일관성을 손상할 수 있는 다른 메타데이터 연산들이 동시에 존재하는 경우에도 파일 시스템의 일관성 손상을 방지할 수 있다.
도 6은 본 발명의 일 실시예에 따른 메타데이터 연산 충돌 회피 방법을 나타내는 순서도로서, 클라이언트 장치(300)로부터 요청된 특정 파일을 생성하는 경우의 메타데이터 연산 충돌 회피 방법을 나타낸다.
도 6을 참조하면, 먼저 클라이언트 장치(300)는 디렉토리 메타데이터 서버(400)에게 생성하고자 하는 파일의 부모 디렉토리가 존재하는지에 대한 조회 요청을 전송한다(단계 S30).
디렉토리 메타데이터 서버(400)는 클라이언트 장치(300)로부터 제공된 상기 조회 요청에 상응하여 생성하고자 하는 파일의 부모 디렉토리가 존재하는지를 확인하고(단계 S31), 상기 생성하고자 하는 파일의 부보 디렉토리가 존재하지 않는 경우에는 파일 생성연산이 실패되었음을 지시하는 메시지를 클라이언트 장치(300)에 전송하고 연산은 종결된다(단계 S32).
또는, 디렉토리 메타데이터 서버(400)는 단계 S31에서 확인한 결과, 생성하고자 하는 파일의 부모 디렉토리가 존재하는 경우에는 생성하고자 하는 파일과 이름이 동일한 디렉토리가 이미 존재하는지를 확인한다(단계 S33). 여기서, 생성하고자 하는 파일과 이름이 동일한 디렉토리가 이미 존재하는 것으로 판단되는 경우, 디렉토리 메타데이터 서버(400)는 파일 생성 연산이 실패하였음을 지시하는 메시지를 클라이언트 장치(300)에 전송하고 연산은 종료된다(단계 S34).
단계 S34에서 생성하고자 하는 파일과 동일한 이름을 가진 디렉토리가 존재하지 않는 것으로 판단되는 경우, 디렉토리 메타데이터 서버(400)는 생성하고자 하는 파일의 부모 디렉토리에 속한 파일들이 저장되어 있는 파일 메타데이터 서버의 위치 정보를 획득한다(단계 S35). 여기서, 상기 파일 메타데이터 서버의 위치는 생성하고자 하는 파일의 부모 디렉토리를 조회하는 과정에서 획득할 수 있다.
이후, 디렉토리 메타데이터 서버는 획득한 파일 메타데이터 서버의 위치 정보를 이용하여 해당 파일 메타데이터 서버(500)에게 파일 생성 요청을 전송한다(단계 S36).
파일 메타데이터 서버(500)는 디렉토리 메타데이터 서버(400)로부터 파일 생성 요청을 전달받고 이에 상응하여 메타데이터 연산 의도 저장부에서 생성하고자 하는 파일과 동일한 이름을 가지는 의도(intention)가 존재하는지를 판단하고(단계 S37), 동일한 이름을 가진 의도가 이미 존재하는 경우 클라이언트 장치(300)에 파일 생성 연산이 실패하였음을 지시하는 메시지를 전송한다(단계 S38).
또는, 파일 메타데이터 서버(500)는 메타데이터 연산 의도 저장부에 생성하고자 하는 파일과 동일한 이름을 가진 의도가 존재하지 않는 경우에는, 생성하고자 하는 파일에 대한 정보를 파일 메타데이터 저장부에 기록하고(단계 S39), 파일 생성이 성공하였음을 지시하는 메시지를 클라이언트 장치(300)에 전송한다(단계 S40).
도 6에 도시한 바와 같이 본 발명의 일 실시예에 따른 메타데이터 연산 충돌 회피 방법에서는 파일 생성 연산을 수행할 때 동일한 이름을 가지는 메타데이터 연산 의도가 존재하는가를 메타데이터 연산 의도 저장부를 조회하여 확인한 후 동일한 이름을 가지는 메타데이터 연산 의도가 존재하지 않는 경우에 파일을 생성함으로써 파일 시스템의 일관성을 손상할 수 있는 다른 메타데이터 연산들이 동시에 존재하는 경우에도 파일 시스템의 일관성 손상을 방지할 수 있다.
도 5 및 도 6에 도시한 본 발명의 일 실시예에 따른 메타데이터 연산 충돌 회피 방법에서는 디렉토리 생성 및 파일 생성 연산을 수행하는 과정을 예를 들어 도시하였으나, 본 발명의 실시예에 따른 메타데이터 연산 충돌 회피 방법이 도 5 및 도 6에 도시한 내용에 한정되는 것은 아니며 파일 시스템의 일관성을 손상시킬 수 있는 다양한 메타데이터 연산들에 대해서도 적용될 수 있다. 예를 들어, 디렉토리 삭제 또는 디렉토리 이름의 변경등과 같은 메타데이터 연산은 도 5에 도시한 방법을 적용할 수 있고, 파일 이름 변경 등의 메타데이터 연산은 도 6에 도시한 방법을 적용할 수 있다.
이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
300 : 클라이언트 장치
400 : 디렉토리 메타데이터 서버
410 : 디렉토리 메타데이터 저장부
500 : 파일 메타데이터 서버
510 : 파일 메타데이터 저장부
530 : 메타데이터 연산 의도 저장부

Claims (15)

  1. 디렉토리 메타데이터 저장 장치가 미리 저장된 디렉토리 메타데이터 정보를 참조하여 요청된 메타데이터 연산의 실행 가능 여부를 판단하는 단계;
    상기 디렉토리 메타데이터 저장 장치가 상기 요청된 메타데이터 연산이 실행 가능한 경우, 상기 요청된 메타데이터 연산에 상응하는 메타데이터 연산 의도를 특정 파일 메타데이터 저장 장치에 제공하는 단계;
    상기 특정 파일 메타데이터 저장 장치가 미리 저장된 파일 메타데이터 정보 또는디렉토리 메타데이터 저장 장치가 미리 저장된 디렉토리 메타데이터 정보를 참조하여 요청된 메타데이터 연산의 실행 가능 여부를 판단하는 단계;
    상기 디렉토리 메타데이터 저장 장치가 상기 요청된 메타데이터 연산이 실행 가능한 경우, 상기 요청된 메타데이터 연산에 상응하는 메타데이터 연산 의도를 특정 파일 메타데이터 저장 장치에 제공하는 단계;
    상기 특정 파일 메타데이터 저장 장치가 미리 저장된 파일 메타데이터 정보 또는 미리 저장된 메타데이터 연산 의도 정보를 참조하여 상기 메타데이터 연산 의도에 포함된 상기 요청된 메타데이터 연산의 실행 가능 여부를 판단하는 단계;
    상기 특정 파일 메타데이터 저장 장치가 상기 요청된 메타데이터 연산이 실행 가능한 경우, 상기 메타데이터 연산 의도를 기록하고, 메타데이터 연산 의도 기록 완료 정보를 상기 디렉토리 메타데이터 저장 장치에 제공하는 단계; 및
    상기 디렉토리 메타데이터 저장 장치가 상기 특정 파일 메타데이터 저장 장치로부터 제공된 상기 메타데이터 연산 의도 기록 완료 정보에 상응하여 상기 요청된 메타데이터 연산을 실행하는 단계를 포함하며,
    상기 메타데이터 연산 의도는,
    메타데이터 연산이 수행될 디렉토리의 부모 디렉토리의 식별정보, 메타데이터 연산이 생성 또는 변경하고자 의도하는 디렉토리의 경로명 및 메타데이터 연산의 유형정보를 포함하는 메타데이터 연산 충돌 회피 방법.
  2. 제1항에 있어서, 상기 디렉토리 메타데이터 저장 장치가 미리 저장된 디렉토리 메타데이터 정보를 참조하여 요청된 메타데이터 연산의 실행 가능 여부를 판단하는 단계는,
    상기 디렉토리 메타데이터 저장 장치가 디렉토리 메타데이터 연산을 요청받는 단계; 및
    상기 디렉토리 메타데이터 저장 장치가 상기 미리 저장된 디렉토리 메타데이터 정보를 참조하여 상기 요청된 디렉토리 메타데이터 연산에 상응하는 부모 디렉토리 존재 여부 또는 디렉토리 이름의 중복 여부를 판단하고, 판단 결과에 기초하여 상기 요청된 메타데이터 연산의 실행 가능 여부를 판단하는 단계를 포함하는 메타데이터 연산 충돌 회피 방법.
  3. 제1항에 있어서, 상기 메타데이터 연산 의도를 특정 파일 메타데이터 저장 장치에 제공하는 단계는,
    상기 디렉토리 메타데이터 저장 장치가 상기 미리 저장된 디렉토리 메타데이터 정보를 참조하여 상기 요청된 메타데이터 연산에 상응하는 파일의 메타데이터가 저장된 상기 특정 파일 메타데이터 저장 장치의 정보를 획득하는 단계; 및
    상기 디렉토리 메타데이터 저장 장치가 상기 획득한 특정 파일 메타데이터 저장 장치의 정보에 기초하여 상기 특정 파일 메타데이터 저장 장치에 상기 메타데이터 연산 의도를 제공하는 단계를 포함하는 것을 특징으로 하는 메타데이터 연산 충돌 회피 방법.
  4. 제1항에 있어서, 상기 메타데이터 연산 의도에 포함된 상기 요청된 메타데이터 연산의 실행 가능 여부를 판단하는 단계는,
    상기 특정 파일 메타데이터 저장 장치가 상기 미리 저장된 파일 메타데이터 정보를 참조하여 상기 메타데이터 연산 의도에 포함된 디렉토리 이름 또는 파일 이름의 중복 여부를 판단하거나 또는 상기 미리 저장된 메타데이터 연산 의도를 참조하여 상기 제공된 메타데이터 연산 의도의 중복 여부를 판단하여 상기 요청된 메타데이터 연산의 실행 가능 여부를 판단하는 것을 특징으로 하는 메타데이터 연산 충돌 회피 방법.
  5. 삭제
  6. 제1항에 있어서, 상기 디렉토리 메타데이터 저장 장치가 미리 저장된 디렉토리 메타데이터 정보를 참조하여 요청된 메타데이터 연산의 실행 가능 여부를 판단하는 단계는,
    상기 디렉토리 메타데이터 저장 장치가 파일 메타데이터 연산을 요청받는 단계; 및
    상기 디렉토리 메타데이터 저장 장치가 상기 미리 저장된 디렉토리 메타데이터 정보를 참조하여 상기 요청된 파일 메타데이터 연산에 상응하는 부모 디렉토리 존재 여부 또는 상기 요청된 파일 메타데이터 연산에 포함된 파일 이름과 동일한 이름을 가지는 디렉토리 이름의 존재 여부를 판단한 결과에 기초하여 상기 요청된 메타데이터 연산의 실행 가능 여부를 판단하는 단계를 포함하는 메타데이터 연산 충돌 회피 방법.
  7. 제6항에 있어서, 상기 메타데이터 연산 충돌 회피 방법은,
    상기 디렉토리 메타데이터 저장 장치가 미리 저장된 디렉토리 메타데이터 정보를 참조하여 요청된 메타데이터 연산의 실행 가능 여부를 판단하는 단계 이후에,
    상기 요청된 메타데이터 연산이 실행 가능한 경우, 상기 디렉토리 메타데이터 저장 장치가 상기 미리 저장된 디렉토리 메타데이터 정보를 참조하여 상기 요청된 메타데이터 연산에 상응하는 파일의 메타데이터가 저장된 해당 파일 메타데이터 저장 장치의 정보를 획득하는 단계; 및
    상기 디렉토리 메타데이터 저장 장치가 상기 획득한 해당 파일 메타데이터 저장 장치의 정보에 기초하여 상기 해당 파일 메타데이터 저장 장치에 상기 요청된 메타데이터 연산 정보를 제공하는 단계를 더 포함하는 것을 특징으로 하는 메타데이터 연산 충돌 회피 방법.
  8. 제7항에 있어서, 상기 메타데이터 연산 충돌 회피 방법은,
    상기 해당 파일 메타데이터 저장 장치가 상기 요청된 메타데이터 연산 정보를 제공받고, 상기 해당 파일 메타데이터 저장 장치에 미리 저장된 메타데이터 연산 의도 내에 상기 요청된 메타데이터 연산 정보에 포함된 파일의 이름과 동일한 이름이 존재하는가를 판단하는 단계; 및
    상기 해당 파일 메타데이터 저장 장치에 미리 저장된 메타데이터 연산 의도 내에 상기 요청된 메타데이터 연산 정보에 파일의 이름과 동일한 이름이 존재하지 않는 경우, 상기 해당 파일 메타데이터 저장 장치가 상기 요청된 메타데이터 연산을 실행하는 단계를 더 포함하는 것을 특징으로 하는 메타데이터 연산 충돌 회피 방법.
  9. 디렉토리의 메타데이터를 저장하는 디렉토리 메타데이터 저장 장치; 및
    파일의 메타데이터 및 메타데이터 연산 의도 정보를 각각 저장하는 적어도 하나의 파일 메타데이터 저장 장치를 포함하되,
    상기 디렉토리 메타데이터 저장 장치는 요청된 메타데이터 연산의 실행 가능한 경우 상기 요청된 메타데이터 연산에 상응하는 제1 메타데이터 연산 의도를 상기 적어도 하나의 파일 메타데이터 저장 장치 중 특정 파일 메타데이터 저장 장치에 제공한 후, 상기 특정 파일 메타데이터 저장 장치로부터 제공된 제1 메타데이터 연산 의도 기록 완료 정보에 상응하여 상기 요청된 메타데이터 연산을 실행하며,
    상기 특정 파일 메타데이터 저장 장치는 상기 제1 메타데이터 연산 의도를 제공받고, 상기 제1 메타데이터 연산 의도에 포함된 상기 요청된 메타데이터 연산이 실행 가능하면 상기 제1 메타데이터 연산 의도를 기록한 후, 상기 제1 메타데이터 연산 의도 기록 완료 정보를 상기 디렉토리 메타데이터 저장 장치에 제공하며,
    상기 메타데이터 연산 의도 정보는,
    메타데이터 연산이 수행될 디렉토리의 부모 디렉토리의 식별정보, 메타데이터 연산이 생성 또는 변경하고자 의도하는 디렉토리의 경로명 및 메타데이터 연산의 유형정보를 포함하는 것을 특징으로 하는 메타데이터 관리 시스템.
  10. 제9항에 있어서, 상기 디렉토리 메타데이터 저장 장치는
    상기 요청된 메타데이터 연산이 디렉토리 메타데이터 연산인 경우, 상기 저장된 디렉토리 메타데이터 정보를 참조하여 상기 요청된 디렉토리 메타데이터 연산에 상응하는 부모 디렉토리 존재 여부 또는 디렉토리 이름의 중복 여부를 판단하고, 판단한 결과에 기초하여 상기 요청된 메타데이터 연산의 실행 가능 여부를 판단하는 것을 특징으로 하는 메타데이터 관리 시스템.
  11. 제10항에 있어서, 상기 디렉토리 메타데이터 저장 장치는
    상기 요청된 메타데이터 연산이 실행 가능한 경우, 상기 저장된 디렉토리 메타데이터 정보를 참조하여 상기 요청된 메타데이터 연산에 상응하는 파일의 메타데이터가 저장된 상기 특정 파일 메타데이터 저장 장치의 정보를 획득한 후, 상기 특정 파일 메타데이터 저장 장치에 상기 제1 메타데이터 연산 의도를 제공하는 것을 특징으로 하는 메타데이터 관리 시스템.
  12. 제9항에 있어서, 상기 특정 파일 메타데이터 저장 장치는
    상기 저장된 파일 메타데이터 정보를 참조하여 상기 제공된 메타데이터 연산 의도에 포함된 디렉토리 이름 또는 파일 이름의 중복 여부를 판단한 결과 또는 상기 저장된 메타데이터 연산 의도를 참조하여 상기 제1 메타데이터 연산 의도의 중복 여부를 판단한 결과에 기초하여 상기 요청된 메타데이터 연산의 실행 가능 여부를 판단하는 것을 특징으로 하는 메타데이터 관리 시스템.
  13. 제9항에 있어서, 상기 디렉토리 메타데이터 저장 장치는
    상기 요청된 메타데이터 연산이 파일 메타데이터 연산인 경우, 상기 저장된 디렉토리 메타데이터 정보를 참조하여 상기 요청된 파일 메타데이터 연산에 상응하는 부모 디렉토리 존재 여부 또는 상기 요청된 파일 메타데이터 연산에 포함된 파일 이름과 동일한 이름을 가지는 디렉토리 이름의 존재 여부를 판단하고, 판단한 결과에 기초하여 상기 파일 메타데이터 연산의 실행 가능 여부를 판단하는 것을 특징으로 하는 메타데이터 관리 시스템.
  14. 제13항에 있어서, 상기 디렉토리 메타데이터 저장 장치는
    상기 파일 메타데이터 연산이 실행 가능한 경우 상기 저장된 디렉토리 메타데이터 정보를 참조하여 상기 적어도 하나의 파일 메타데이터 저장 장치로부터 상기 파일 메타데이터 연산에 상응하는 파일의 메타데이터가 저장된 해당 파일 메타데이터 저장 장치의 정보를 획득한 후, 상기 획득한 해당 파일 메타데이터 저장 장치의 정보에 기초하여 상기 해당 파일 메타데이터 저장 장치에 상기 파일 메타데이터 연산 정보를 제공하는 것을 특징으로 하는 메타데이터 관리 시스템.
  15. 제14항에 있어서, 상기 해당 파일 메타데이터 저장 장치는
    상기 파일 메타데이터 연산 정보를 제공받고, 상기 저장된 메타데이터 연산 의도 내에 상기 파일 메타데이터 연산 정보에 포함된 파일의 이름과 동일한 이름이 존재하지 않는 경우 상기 파일 메타데이터 연산을 실행하는 것을 특징으로 하는 메타데이터 관리 시스템.
KR1020110084634A 2011-08-24 2011-08-24 메타데이터 연산 충돌 회피 방법 및 이를 수행하는 메타 데이터 관리 시스템 KR101733118B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110084634A KR101733118B1 (ko) 2011-08-24 2011-08-24 메타데이터 연산 충돌 회피 방법 및 이를 수행하는 메타 데이터 관리 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110084634A KR101733118B1 (ko) 2011-08-24 2011-08-24 메타데이터 연산 충돌 회피 방법 및 이를 수행하는 메타 데이터 관리 시스템

Publications (2)

Publication Number Publication Date
KR20130022009A KR20130022009A (ko) 2013-03-06
KR101733118B1 true KR101733118B1 (ko) 2017-05-08

Family

ID=48174772

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110084634A KR101733118B1 (ko) 2011-08-24 2011-08-24 메타데이터 연산 충돌 회피 방법 및 이를 수행하는 메타 데이터 관리 시스템

Country Status (1)

Country Link
KR (1) KR101733118B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102622183B1 (ko) * 2018-06-08 2024-01-08 삼성에스디에스 주식회사 스토리지 관리 장치 및 방법

Also Published As

Publication number Publication date
KR20130022009A (ko) 2013-03-06

Similar Documents

Publication Publication Date Title
AU2018395856B2 (en) Allocation and reassignment of unique identifiers for synchronization of content items
US10019460B2 (en) Hosted file sync with direct access to hosted files
US11144510B2 (en) System and method for synchronizing file systems with large namespaces
US10831720B2 (en) Cloud storage distributed file system
JP5895099B2 (ja) 移行先ファイルサーバ及びファイルシステム移行方法
US20190370362A1 (en) Multi-protocol cloud storage for big data and analytics
US10817498B2 (en) Distributed transactions in cloud storage with hierarchical namespace
US20140019413A1 (en) Method of, and apparatus for, file system replication
CN106484820B (zh) 一种重命名方法、访问方法及装置
US10585759B2 (en) Network folder resynchronization
JP6196389B2 (ja) 分散型ディザスタリカバリファイル同期サーバシステム
JP2021529379A (ja) 検索サーバの集中型ストレージ
KR101733118B1 (ko) 메타데이터 연산 충돌 회피 방법 및 이를 수행하는 메타 데이터 관리 시스템
TWI571754B (zh) 用來進行檔案同步控制之方法與裝置
US20170124212A1 (en) Location-independent links to content at online content management systems
US11016933B2 (en) Handling weakening of hash functions by using epochs

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal