KR102031588B1 - 파일 저장 시의 색인 구현 방법 및 시스템 - Google Patents

파일 저장 시의 색인 구현 방법 및 시스템

Info

Publication number
KR102031588B1
KR102031588B1 KR1020177036547A KR20177036547A KR102031588B1 KR 102031588 B1 KR102031588 B1 KR 102031588B1 KR 1020177036547 A KR1020177036547 A KR 1020177036547A KR 20177036547 A KR20177036547 A KR 20177036547A KR 102031588 B1 KR102031588 B1 KR 102031588B1
Authority
KR
South Korea
Prior art keywords
metadata
file
interval
index
increase
Prior art date
Application number
KR1020177036547A
Other languages
English (en)
Other versions
KR20180008774A (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 텐센트 테크놀로지(센젠) 컴퍼니 리미티드
Publication of KR20180008774A publication Critical patent/KR20180008774A/ko
Application granted granted Critical
Publication of KR102031588B1 publication Critical patent/KR102031588B1/ko

Links

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/13File access structures, e.g. distributed indices
    • 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/13File access structures, e.g. distributed indices
    • G06F16/134Distributed indices
    • 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/14Details of searching files based on file metadata
    • G06F16/148File search processing

Landscapes

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

Abstract

본 발명의 실시예는 파일 저장 시의 색인 구현 방법을 제공하며, 상기 색인 구현 방법은, 파일의 색인 작업 요청을 취득하는 단계; 증량 구간이 상기 파일에 대응하는 하나 이상의 메타데이터를 저장하고 있는지를 판정하기 위해 상기 증량 구간을 검색하는 단계; 상기 증량 구간이 상기 파일에 대응하는 하나 이상의 메타데이터를 저장하고 있는 경우, 상기 증량 구간 내의 상기 하나 이상의 메타데이터에 따라 상기 색인 작업 요청에 응답하는 단계; 및 상기 증량 구간이 상기 파일에 대응하는 하나 이상의 메타데이터를 저장하고 있지 않는 경우, 상기 증량 구간에 대응하는 전량 구간에 따라 상기 색인 작업 요청을 처리하는 단계를 포함하고, 각각의 메타데이터는 상기 파일에 대응하는 색인을 포함한다. 또한, 파일 저장 시의 색인 구현 시스템이 제공된다.

Description

파일 저장 시의 색인 구현 방법 및 시스템
삭제
본 발명은 컴퓨터 응용 기술 분야에 관한 것으로서, 더욱 구체적으로는 파일 저장 시의 색인 구현 방법 및 시스템에 관한 것이다.
대용량 파일(massive file)의 저장은 분산형 저장 클러스터(distributed storage cluster)를 통해 구현될 수 있으며, 데이터 센터(data center)에, 이 분산형 저장 클러스터가 파일 판독 및 기록 서비스를 구현하는 데 사용될 수 있는 색인을 저장하도록, 관련 데이터 센터가 구축될 수 있다.
분산형 저장 클러스터 내의 각각의 파일의 저장 위치는 데이터 센터와 색인 설정을 통해 유지될 수 있다. 현재, 가장 인기있는 방식은 데이터 센터에 파일 식별자(IDentifier, ID) 및 그 저장 위치를 저장함으로써 색인을 관리하여, 각각의 파일의 저장 위치를 유지하고 파일 판독 또는 기록 요청에 대해 응답하는 것이다.
구체적으로, 파일 ID가 키(Key)일 수 있으며 키와 저장 위치 사이의 매핑 관계는 색인을 사용하여 세그먼트(segment)에 저장될 수 있다고 가정한다. 그러나 대용량 저장 장치(massive storage)의 요건을 계층화하려면, 세그먼트는 상대적으로 큰 키 범위(Key scope)를 포함할 수 있어, 결과적으로 단일 세그먼트가 너무 많은 색인을 저장할 수 있고 색인에 대응하는 작업 성능이 현저히 저하될 수 있다.
본 발명의 일 실시예는 대용량 저장 장치의 요건을 충족하고 색인의 작업 성능을 현저히 향상시킬 수 있는, 파일 저장 시의 색인 구현 방법을 제공할 수 있다.
본 발명의 일 실시예는 대용량 저장 장치의 요건을 충족하고 색인의 작업 성능을 현저히 향상시킬 수 있는, 파일 저장 시의 색인 구현 시스템을 제공할 수 있다.
삭제
파일 저장 시의 색인 구현 방법은,
파일의 색인 작업 요청(index operation request)을 취득하는 단계;
상기 파일에 대응하는 하나 이상의 메타데이터(metadata)를 저장하고 있는지를 판정하기 위해 증량 구간(increment interval)을 검색하고, 상기 증량 구간이 상기 파일에 대응하는 하나 이상의 메타데이터를 저장하고 있는 경우, 상기 증량 구간 내의 상기 하나 이상의 메타데이터에 따라 상기 색인 작업 요청에 응답하는 단계; 및
상기 증량 구간이 상기 파일에 대응하는 하나 이상의 메타데이터를 저장하고 있지 않는 경우, 상기 증량 구간에 대응하는 전량 구간(total quantity interval)에 따라 상기 색인 작업 요청을 처리하는 단계를 포함하고,
각각의 메타데이터는 상기 파일에 대응하는 색인을 포함한다.
파일 저장 시의 색인 구현 시스템은,
파일의 색인 작업 요청을 취득하도록 구성된 요청 취득 모듈;
증량 구간이 상기 파일에 대응하는 하나 이상의 메타데이터를 저장하고 있는지를 판정하기 위해 상기 증량 구간을 검색하고, 상기 증량 구간이 상기 파일에 대응하는 하나 이상의 메타데이터를 저장하고 있는 경우, 증량 응답 모듈(increment response module)에 통지하고, 상기 증량 구간이 상기 파일에 대응하는 메타데이터를 저장하고 있지 않는 경우, 전량 응답 모듈(total quantity response module)에 통지하도록 구성된 증량 검색 모듈(increment searching module);
상기 증량 구간 내의 상기 하나 이상의 메타데이터에 따라 상기 색인 작업 요청에 응답하도록 구성된 상기 증량 응답 모듈; 및
상기 증량 구간에 대응하는 전량 구간에 따라 상기 색인 작업 요청을 처리하도록 구성된 상기 전량 응답 모듈을 포함하고,
각각의 메타데이터는 상기 파일에 대응하는 색인을 포함한다.
상기한 기술적 방안으로부터, 임의의 파일의 색인 작업 요청과 관련하여, 파일에 대응하는 하나 이상의 메타데이터를 저장하고 있는지를 판정하기 위해 증량 구간을 검색할 수 있다는 것을 알 수 있다. 파일에 대응하는 하나 이상의 메타데이터가 증량 구간에서 발견되는 경우, 메타데이터는 그 파일에 대응하는 색인을 포함하며, 색인 작업 요청에 대한 응답이 증량 구간에서의 메타데이터에 따라 이루어질 수 있다. 파일에 대응하는 메타데이터가 증량 구간에서 발견되지 않는 경우, 색인 작업 요청은 대응하는 전량 구간(total quantity interval)에 따라 처리될 수 있다. 대용량 파일의 저장은 증량 구간과, 대응하는 전량 구간의 협력으로 구현될 수 있고, 데이터 저장 구간(data storage interval)의 판독 및 기록 성능이 향상될 수 있으며, 색인의 작업 성능이 더 향상될 수 있다.
도 1은 본 발명의 다양한 실시예에 따른 서버의 구성을 나타낸 도면이다.
도 2는 본 발명의 다양한 실시예에 따른, 파일 저장 시의 색인 구현 방법을 나타낸 흐름도이다.
도 3은 본 발명의 다양한 실시예에 따른, 증량 구간에 대응하는 전량 구간에 대해 개시되는 색인 작업 요청을 처리하는 방법을 나타낸 흐름도이다.
도 4는 본 발명의 다양한 실시예에 따른, 파일 저장 시의 색인 구현 방법을 나타낸 흐름도이다.
도 5는 본 발명의 다양한 실시예에 따른, 색인 작성 요청(index creating request)에 따라 저장 위치를 할당하는 방법을 나타낸 흐름도이다.
도 6은 본 발명의 다양한 실시예에 따른, 파일 저장 시의 색인 구현 방법을 나타낸 흐름도이다.
도 7은 본 발명의 다양한 실시예에 따른, 병합 태스크(merge task)의 개시를 통해 증량 구간과 전량 구간의 병합을 트리거하는 방법을 나타낸 흐름도이다.
도 8은 본 발명의 다양한 실시예에 따른 메타데이터 저장 서비스(metadata storage service)를 나타낸 도면이다.
도 9는 본 발명의 다양한 실시예에 따른, 색인 생성의 시퀀스도(sequence diagram)이다.
도 10은 본 발명의 다양한 실시예에 따른, 색인 취득을 나타낸 시퀀스도이다.
도 11은 본 발명의 다양한 실시예에 따른, 색인 삭제를 나타낸 시퀀스도이다.
도 12는 본 발명의 다양한 실시예에 따른, 파일 저장 시의 색인 구현 시스템의 구성을 나타낸 도면이다.
도 13은 본 발명의 다양한 실시예에 따른, 전량 응답 모듈의 구성을 나타낸 도면이다.
도 14는 본 발명의 다양한 실시예에 따른, 파일 저장 시의 색인 구현 시스템의 구성을 나타낸 도면이다.
도 15는 본 발명의 다양한 실시예에 따른, 위치 할당 모듈의 구성을 나타낸 도면이다.
도 16은 본 발명의 다양한 실시예에 따른, 파일 저장 시의 색인 구현 시스템의 구성을 나타낸 도면이다.
도 17은 본 발명의 다양한 실시예에 따른, 병합 모듈의 구성을 나타낸 도면이다.
이하의 설명에서는 본 발명의 특징 및 이점을 구현하는 실시예를 상세하게 설명한다. 이는 본 발명을 총망라하거나 한정하기 위한 것은 아니다. 본 발명의 실시예는 본 발명의 범위를 벗어나지 않으면서 다양하게 변경될 수 있다. 설명 및 도면은 본 발명을 설명하기 위해 사용되고 본 발명을 한정하기 위해 사용되지 않는다.
분산형 저장 장치(distributed storage)는 두 가지 색인 관리 모드를 포함할 수 있다. 첫 번째 유형은 데이터 센터 대신 일관된 해시 모드(consistent hashing mode)를 사용하여 색인을 관리하는 것일 수 있다. 다른 유형은 파일 ID 및 그 저장 위치를 저장하기 위해 데이터 센터를 사용하여 색인을 관리하는 것일 수 있다.
어떤 모드가 채용되더라도, 대용량 파일의 저장과 관련하여, 끊임없이 확장되는 대규모 색인은 제때 유지할 필요가 있을 수 있다.
그러나 기존 대규모 색인에 대해서는, 색인 조회(index query)의 지연에 의해 작업 성능이 결정될 수 있다. 기존의 색인 관리 모드에서는, 대량의 데이터가 검색되기 때문에, 작업 성능을 향상시킬 수 없다. 따라서, 파일 저장 장치에서의 색인의 구현이 최적화되어야 한다.
본 발명의 실시예는 다양한 색인 작업의 처리 성능을 향상시키기 위해, 파일 저장 시의 색인 구현 방법을 제공할 수 있다.
파일 저장 시의 색인 구현 방법은 컴퓨터 프로그램으로 구현될 수 있다. 이에 따라, 구성된 파일 저장 시의 색인 구현 시스템은 다양한 색인 작업을 구현하고, 또 색인의 추가, 삭제, 검색 및 수정 작업을 구현하기 위한 프로세스를 실행하도록 서버 또는 서버 클러스터에 저장될 수 있다.
도 1은 본 발명의 다양한 실시예에 따른 서버의 구성을 나타낸 도면이다. 서버(100)는 상이한 구성 및 성능으로 인해 많이 다를 수 있으며, (하나 이상의 프로세서와 같은), 하나 또는 하나 이상의 중앙 처리 유닛(Central Processing Unit, CPU)(110), 저장 장치(120), 하나 또는 하나 이상의 저장 프로그램(131), 또는 (하나 이상의 대용량 저장 장치와 같은), 데이터(133)의 저장 매체(130)를 포함할 수 있다. 저장 장치(120) 및 저장 매체(130)는 일시적으로 또는 영구적으로 데이터를 저장할 수 있다. 저장 매체(130)에 저장된 프로그램은 하나 이상의 모듈(도면에는 도시되지 않음)을 포함할 수 있다. 각 모듈은 서버(100)의 일련의 명령어 오퍼레이션(instruction operation)을 포함할 수 있다. 또한, CPU(110)는 저장 매체(130)와 통신하여 저장 매체(130) 내의 일련의 명령어 오퍼레이션을 수행하도록 구성될 수 있다. 서버(100)는 하나 이상의 전원(150), 하나 이상의 유무선 네트워크 인터페이스(170), 하나 이상의 입출력 인터페이스(180), 및/또는 Windows ServerTM, Mac OS XTM, UnixTM, LinuxTM, FreeBSDTM 등과 같은, 하나 이상의 운영체제(Operating System, OS)(135)를 더 포함할 수 있다. 서버에 의해 실행되는 이하의 블록은 도 1에 도시된 서버(100)의 구성에 기초할 수 있다.
이상의 설명을 고려하여, 본 발명의 실시예에 적용될 수 있는 서버(100)는, 저장된 파일에 색인을 부여하기 위해, 프로그램 명령어(program instruction) 형식으로 파일의 색인 작업 요청에 응답할 수 있다.
또한, 본 발명의 실시예는 회로, 또는 소프트웨어 명령어와 결합된 회로를 통해 구현될 수도 있다. 따라서, 본 발명의 실시예는 특정 회로, 소프트웨어 또는 이들의 조합에 한정되지 않을 수 있다.
일 실시예에서, 구체적으로, 파일 저장 시의 색인 구현 방법은 도 2에 도시된 것일 수 있으며, 다음 블록들을 포함한다.
블록 210에서, 파일에 대한 색인 부여를 요청하는 파일의 색인 작업 요청을 취득한다.
이 파일은 저장될 파일, 즉, 분산형 저장 시스템(distributed storage system)에 저장될 파일일 수 있거나, 또는 분산형 저장 시스템에 이미 저장되어 있는 임의의 파일일 수 있다. 파일의 색인 작업은 분산형 저장 시스템에서의 파일 작업에 대응할 수 있으며, 색인 작업은 필요한 파일 작업에 따라 트리거될 수 있다.
예를 들어, 분산형 저장 시스템에서의 파일 작업은 파일을 기록, 판독 또는 삭제하기 위한 기록 작업, 판독 작업, 삭제 작업 등을 포함할 수 있다. 이에 따라, 파일의 색인 작업은 파일을 작성(creating), 취득(obtaining) 및 삭제(deleting)하는 것을 포함할 수 있다.
대용량 파일이 저장되어 있고 또한 새로운 파일이 기록되기 때문에, 파일에 대한 파일 작업을 수행할 수 있는 대량의 클라이언트 기기가 있을 수 있으며 클라이언트 기기로부터의 파일 색인 작업 요청이 계속하여 수신될 수 있다.
블록 230에서, 파일에 대응하는 메타데이터가 증량 구간에 저장되어 있는지를 판정하기 위해 검색 작업(searching operation)을 수행할 수 있다. 파일에 대응하는 메타데이터가 증량 구간에 저장되어 있는 경우, 블록 250이 수행될 수 있고; 그렇지 않으면, 블록 270이 수행될 수 있다.
일 실시예에서, 메타데이터 및 메타데이터를 저장하기 위한 증량 구간은 메타데이터 클러스터(metadata cluster) 또는 다른 기기에서 구현될 수 있다. 메타데이터 클러스터는 메타데이터를 저장하고 메타데이터 저장 서비스를 제공하는 데 사용될 수 있다. 임의의 메타데이터는 하나의 파일에 대응하는 색인 및 관련 속성을 포함할 수 있다. 메타데이터는 파일 ID, 즉 키를 통해 구별될 수 있다. 메타데이터 저장 서비스는 메타데이터에 기초한 서비스를 제공할 수 있는 프로그램일 수 있으며, 색인 작업 요청에 응답하는 경우에 호출될 수 있는 데이터 추가, 삭제, 검색 또는 수정 인터페이스를 제공할 수 있다.
메타데이터 클러스터에서, 키 구간(key interval)은 증량 구간과 전량 구간으로 나뉠 수 있다. 증량 구간과 전량 구간은 복수의 메타데이터를 저장할 수 있다. 일 실시예에서, 증량 구간에 저장된 데이터는 전량 구간에 저장된 데이터보다 적을 수 있다.
저장된 파일과 관련하여, 저장된 파일이 취득되는지 또는 삭제되는지에 상관없이 클라이언트 기기는 파일에 대한 색인 작업 요청을 개시할 수 있다. 색인 작업 요청은 색인 취득 요청 또는 색인 삭제 요청일 수 있다.
색인 작업 요청이 취득된 후, 메타데이터가 저장될 수 있는 증량 구간에서 검색 작업이 수행될 수 있다. 증량 구간이 대응하는 메타데이터를 저장하고 있는 경우, 메타데이터를 사용하여 색인 작업 요청에 응답할 수 있다.
증량 구간은 비교적 적은 데이터를 저장할 수 있기 때문에, 증량 구간에서 수행되는 검색 작업의 성능은 높을 수 있는데, 이는 검색 작업에 의해 야기되는 지연을 감소시킬 수 있다.
블록 250에서, 증량 구간 내의 메타데이터를 사용하여 색인 작업 요청에 대해 응답할 수 있다.
증량 구간에 대해 수행된 검색 작업을 통해 색인 작업 요청에 대응하는 메타데이터를 취득한 후, 메타데이터에 대한 색인 작업을 수행할 수 있으며 처리 결과를 클라이언트 기기에 회신하여 색인 작업 요청에 대한 응답을 끝낼 수 있다. 즉, 증량 구간 내의 메타데이터 중 적어도 하나에 따라 색인 작업 요청에 대해 응답하는 방법은, 증량 구간 내의 메타데이터 중 적어도 하나에 대해 색인 작업을 수행하는 것을 포함할 수 있다.
블록 270에서, 증량 구간에 대응하는 전량 구간을 통해 색인 작업 요청을 처리한다.
색인 작업 요청에 대응하는 메타데이터가 증량 구간에서 발견되지 않는 경우, 이는 메타데이터가 전량 구간에 저장되어 있다는 것을 나타낼 수 있다. 따라서, 색인 작업 요청의 처리는 전량 구간에서 수행될 수 있다. 즉, 증량 구간에 대응하는 전량 구간에 따라 색인 작업 요청을 처리하는 방법은, 증량 구간에 대응하는 전량 구간 내의 메타데이터 중 적어도 하나에 대해 색인 작업을 수행하는 것을 포함할 수 있다.
즉, 메타데이터 클러스터는, 분산형 저장 시스템의 데이터 센터로서, 색인을 저장 및 관리할 수 있다. 저장 서비스의 아키텍처는 다음과 같을 수 있다.
메타데이터 클러스터에서, 키 구간은 증량 구간과 전량 구간으로 나뉠 수 있다. 파일에 대한 색인 작업 요청을 취득한 후, 키 구간은 파일 ID에 따라 결정될 수 있다. 결정된 키 구간에서, 먼저, 검색 작업은 증량 구간에서 수행될 수 있다. 증량 구간에서 대응하는 메타데이터를 발견할 수 없는 경우, 전량 구간에서 검색 작업이 수행될 수 있다. 증량 구간에서 메타데이터를 발견할 수 있는 경우, 많은 컴퓨터 자원을 절약할 수 있고 대용량 데이터의 저장의 높은 신뢰성을 보장할 수 있다.
일 실시예에서, 상기한 색인 작업 요청은 색인 취득 요청을 포함할 수 있고, 블록 250은 다음 처리를 포함할 수 있다.
기록 시간 스탬프(write time stamp), 즉 메타데이터가 증량 구간에 기록되는 시간 스탬프에 따라 증량 구간에서 발견된 파일에 대응하는 메타데이터로부터 메타데이터를 추출할 수 있으며, 추출된 메타데이터를 발행할 수 있다.
메타데이터는 파일에 대응하는 색인들 및 관련 속성들을 포함할 수 있다. 속성은, 메타데이터가 증분 구간에 기록되는 경우에 기록 시간 스탬프와 같은, 색인에 대해 수행된 작업에 대응하는 시간 스탬프를 포함할 수 있다.
기록 시간 스탬프에 따르면, 메타데이터는 파일 ID를 통해 구별될 수 있을 뿐만 아니라 시간 스탬프에 의해서도 구별될 수 있다. 따라서 동일한 파일이, 복수의 메타데이터에 대응할 수 있거나, 증량 구간 또는 전량 구간에 저장될 수 있거나, 또는 증량 구간 및 전량 구간에 저장될 수 있다. 메타데이터는 동일한 파일 ID를 가질 수 있고 메타데이터의 기록 시간 스탬프들이 다를 수 있다.
일 실시예에서는, 증량 구간에서 발견된 파일에 대응하는 복수의 메타데이터 내의 메타데이터 각각의 기록 시간 스탬프를 비교하여 최신 시간 스탬프(latest time stamp)를 갖는 메타데이터를 추출할 수 있으며, 최신 시간 스탬프를 갖는 메타데이터를 발행할 수 있다.
또한, 본 실시예에서, 도 3에 도시된 바와 같이, 블록 270은 다음의 블록들을 포함할 수 있다.
블록 271에서, 파일에 대응하는 메타데이터가 증량 구간에 대응하는 전량 구간에 저장되어 있는지를 판정하기 위해, 검색 작업을 수행할 수 있다. 파일에 대응하는 메타데이터가 증량 구간에 대응하는 전량 구간에 저장되어 있는 경우, 블록 273이 실행될 수 있고; 그렇지 않으면, 블록 275가 실행될 수 있다.
메타데이터가 증량 구간에서 발견되지 않는 경우, 증량 구간에 대응하는 전량 구간에서 메타데이터를 검색할 수 있다.
구체적으로, 색인 작업 요청 내의 파일 ID에 따라 파일 ID를 포함하는 메타데이터를 발견하기 위해 전량 구간을 검색할 수 있다.
블록 273에서, 전량 구간에서 발견될 수 있는, 파일에 대응하는 메타데이터로부터, 기록 시간 스탬프에 따라 메타데이터를 추출하여, 발행할 수 있다.
각각의 메타데이터는 대응하는 시간 스탬프를 가질 수 있다. 따라서, 최신 시간 스탬프에 대응하는 메타데이터는 기록 시간 스탬프에 따라 추출될 수 있다.
블록 275에서, 파일에 대응하는 색인 레코드(index record)가 없다는 것을 나타내는 결과 정보를 회신할 수 있다.
전량 구간에서 메타데이터가 발견되지 않는 경우, 색인 작업 요청을 개시했을 수 있는 클라이언트 기기에 결과 정보를 회신할 수 있다.
일 실시예에서, 상기한 색인 작업 요청은 색인 삭제 요청을 포함할 수 있으며, 블록 250은 다음 처리를 포함할 수 있다.
파일의 색인 삭제 요청에 따라 증량 구간에 저장된 메타데이터에 색인 삭제 작업이 표시될 수 있으며 색인 삭제 작업에 대응하는 삭제 시간 스탬프가 추가될 수 있다.
저장된 파일에 대한 삭제 작업을 수행하기 전에, 색인의 삭제 작업을 먼저 수행할 수 있다. 따라서, 클라이언트 기기는 먼저 메타데이터 클러스터에 색인 삭제 요청을 개시할 수 있다.
메타데이터 클러스터와 관련하여, 색인 삭제 요청을 취득할 수 있으며, 증량 구간에서 대응하는 메타데이터를 발견할 수 있다. 메타데이터는 파일의 색인 삭제 요청에 따라 삭제로 표시될 수 있다. 즉, 메타데이터를 삭제하는 대신에, 그 색인을 삭제로 표시하는 작업을 수행하고, 메타데이터의 속성에 삭제 시간 스탬프를 추가할 수 있다.
상기한 색인 삭제 프로세스를 통해, 현재 버전의 메타데이터의 손실(loss)을 회피하기 위해 현재 버전의 메타데이터를 이력 데이터(history data)로서 저장할 수 있다. 따라서 저장된 파일을 삭제한 후에도 사용자는 후속의 폴백 작업(fallvack operation)에서 삭제된 파일을 여전히 취득할 수 있다.
일 실시예에서, 상기한 색인 작업 요청은 색인 작성 요청을 포함할 수 있다. 블록 210 후에, 도 4에 도시된 바와 같이, 상기한 색인 구현 방법은 다음의 블록들을 더 포함할 수 있다.
블록 310에서, 색인 작성 요청에 따라 저장 위치의 할당을 트리거할 수 있다.
색인 작성 요청은 파일 ID를 포함할 수 있고, 파일 ID는 현재 기록될 파일에 대응할 수 있다. 임의의 클라이언트 기기가 분산형 저장 시스템에 파일을 기록할 때, 먼저 파일에 대한 색인을 작성해야 할 수도 있다.
구체적으로, 클라이언트 기기는 메타데이터 클러스터에 색인 작성 요청을 개시할 수 있다. 이에 따라, 서버는 클라이언트 기기에 의해 개시된 색인 작성 요청을 수신한 후, 저장 위치에 기록될 파일에 대해 저장 위치를 할당하는 작업을 트리거할 수 있다. 저장 위치는 파일이 저장될 수 있은 물리 위치(physical position)일 수 있다.
저장 위치가 할당됨에 따라, 현재 기록될 파일이 저장 위치에 따라 저장될 수 있다. 또한, 본 실시예에서, 도 5에 도시된 바와 같이, 블록 310은 다음의 블록들을 포함할 수 있다.
블록 311에서, 색인 작성 요청 내의 파일 ID를 추출할 수 있다.
블록 313에서, 저장 위치에 파일을 기록하기 위해 파일에 대해 저장 위치를 할당하는 작업을 트리거할 수 있다.
블록 330에서, 할당된 저장 위치에 따라 파일의 색인을 작성할 수 있으며, 색인을 사용하여 파일의 메타데이터를 생성할 수 있다.
메타데이터 내의 색인은 파일 ID와 저장 위치 사이의 매핑 관계일 수 있다. 전술한 바와 같이, 임의의 메타데이터는 파일에 대응하는 색인 및 관련 속성을 포함할 수 있다. 따라서, 기록될 파일에 대한 색인을 작성하는 프로세스에서, 파일 ID와 저장 위치를 사용하여 메타데이터의 색인을 생성할 수 있으며, 시간 스탬프를 추가함으로써 메타데이터의 속성을 생성할 수 있다.
구체적으로, 저장 위치를 사용하여 파일의 메타데이터를 생성하는 프로세스는, 파일 ID와 할당된 저장 위치 사이의 매핑 관계를 작성하고 매핑 관계를 색인으로 하는 파일의 메타데이터를 생성하는 것을 포함할 수 있다.
하나 또는 복수의 저장 위치가 할당되어 그 복수의 저장 위치를 사용하여 파일을 백업할 수 있다.
블록 350에서, 메타데이터에 기록 시간 스탬프를 추가할 수 있다.
블록 370에서, 증량 구간의 위치를 결정할 수 있으며, 위치가 결정된 증량 구간에 새로운 데이터를 추가하는 방식으로 메타데이터를 기록할 수 있다.
증량 구간의 위치를 결정하는 구체적인 프로세스는, 색인 작성 요청 내의 파일 ID에 따라 메타데이터 클러스터에 대응하는 키 구간을 취득하는 것을 포함한다. 키 구간 내의 증량 구간은 현재의 색인을 부여하기 위해 작성될 수 있다.
신규 데이터를 기록하는 형식은 이력 데이터를 유지하기 위해 덮어쓰기 형식(overwrite format)이 아닌 부가 형식(append format)일 수 있으며 동일한 파일의 다른 버전을 추적할 수 있다.
다른 실시예에서, 도 6에 도시된 바와 같이, 상기한 색인 구현 방법은 다음의 블록들을 더 포함할 수 있다.
블록 410에서, 병합 태스크를 개시할 수 있다.
병합 태스크는 증량 구간과, 대응하는 전량 구간 내의 메타데이터를 병합하는 것을 가리킬 수 있다. 병합 작업(merge operation)이 트리거될 때, 병합 태스크가 개시될 수 있다. 기존의 증량 구간 및 대응하는 전량 구간의 동작(action)은 병합 작업을 통해 병합되어 병합 태스크를 구현할 수 있다. 병합 작업은 오프라인 작업(off-line operation)일 수 있다.
블록 430에서, 증량 구간과, 대응하는 전량 구간의 병합은 병합 태스크를 개시함으로써 트리거될 수 있다.
새로운 메타데이터는 새로운 데이터를 추가하는 방식으로 증량 구간에 기록될 수 있다. 데이터 클러스터에서의 메타데이터의 삭제와 관련하여, 증량 구간에 대응하는 마크가 추가될 수 있다. 따라서 전량 구간 내의 메타데이터는 수정되지 않을 수 있고 증량 구간 내의 메타데이터만 수정될 수 있다.
전량 구간은 메타데이터의 이력 데이터를 기록하는 데 사용될 수 있고, 증량 구간은 새로운 메타데이터를 저장하는 데 사용될 수 있으며, 메타데이터는 증량 구간에서 삭제될 수 있다. 이력 데이터와 새로운 메타데이터를 각각 발견하기 위해 전량 구간과 증량 구간이 검색될 수 있다.
새로운 파일의 기록과 함께, 증량 구간 내의 메타데이터는 계속 증가한다. 따라서, 구간들을 동적으로 조정하여 증량 구간 내의 데이터가 전량 구간 내의 데이터보다 적도록 하고 증량 구간 내의 색인의 판독 및 기록 성능을 보장해야 한다.
구간들을 동적으로 조정하는 프로세스는, 기존의 증량 구간과 전량 구간을 병합하고 새로운 증량 구간을 작성하는 것을 포함할 수 있다.
블록 450에서, 병합된 구간을 복수의 전량 구간으로 분할할 수 있다.
기존의 증량 구간과, 대응하는 전량 구간을 병합하여 취득한 세그먼트는 대량의 메타데이터를 포함할 수 있다. 데이터의 양이 매우 많기 때문에, 세그먼트를 분할하여 복수의 전량 구간을 취득하여 전량 구간의 메타데이터의 저장 효율 및 색인 작업 효율을 보장해야 할 수 있다.
블록 470에서, 파일의 색인 작업 요청에 대한 기록 서비스를 제공하기 위해 복수의 전량 구간에 대응하는 증량 구간을 작성할 수 있다.
각각의 전량 구간은 대응하는 증량 구간을 가질 수 있다. 따라서 전량 구간에 대해 파티션 작업(partition operation)을 수행하는 경우, 파티션 작업에 의해 취득되는 세그먼트 각각에 대해 증량 구간을 작성해야 할 수 있다.
후속의 파일 기록 작업에서, 색인이 작성되어 새로 작성된 증량 구간에 기록될 수 있다. 즉, 새로운 증량 구간이 작성될 수 있고, 대응하는 메타데이터가 새로운 증량 구간에 기록될 수 있다.
상기한 프로세스에 의해, 세그먼트들의 동적 조정이 병합 태스크를 통해 구현될 수 있다. 따라서, 메타데이터 클러스터에 설정된 증량 구간 및 전량 구간은 메타데이터의 양에 적응될 수 있는데, 이는 메타데이터의 저장, 색인의 추가, 삭제, 검색 및 수정과 같은 관련된 저장 서비스의 신뢰성을 향상시킬 수있 다.
또한, 본 실시예에서, 도 7에 도시된 바와 같이, 블록 430은 다음의 블록들을 포함할 수 있다.
블록 431에서, 증량 구간 및 대응하는 전량 구간 내의 메타데이터를 내보내는(exporting) 작업은 개시된 병합 태스크를 통해 트리거될 수 있다.
병합 태스크가 개시될 때, 이 시점 이전에 기록되었을 수 있는 메타데이터가 병합될 수 있으며, 이 시점 이후에 기록될 수 있는 메타데이터는 새로운 증량 구간에 기록될 수 있다. 따라서 증량 구간 및 대응하는 전량 구간 내의 메타데이터를 내보내는 작업은 개시된 병합 태스크를 통해 트리거될 수 있다. 내보내기 프로세스(export process) 및 병합 프로세스는 분산 방식(distributed mode), 즉, 비동기 방식(asynchronous mode)으로 수행될 수 있다.
블록 433에서, 증량 구간과, 대응하는 전량 구간(total quantity interval)을 하나의 구간으로 병합할 수 있다.
블록 435에서, 미리 설정된 병합 전략에 따라 메타데이터를 내보낼 수 있다.
미리 설정된 병합 전략에는 다음: (1) 삭제로 표시되었을 수 있는 메타데이터를 삭제할지 여부. (2) 동일한 파일 ID를 갖는 메타데이터와, 서로 다른 시간 스탬프들을 병합할지 여부; (3) 병합 작업에 의해 취득되는 세그먼트를 파티셔닝함으로써 취득될 수 있는 세그먼트 각각의 크기를 포함할 수 있다. 메타데이터를 병합하는 데 사용할 수 있는 병합 전략은, 필요에 따라 결정될 수 있으며 유통성 있는, 상기한 전략 중 어느 하나, 또는 몇 가지 전략의 조합일 수 있다.
또한, 블록 435는, 삭제로 표시되었을 수 있는 메타데이터를 내보낸 메타데이터에서 삭제하여, 삭제로 표시되었을 수 있는 메타데이터를 삭제하는 병합 전략을 구현하는 것을 포함할 수 있다.
블록 437에서, 병합된 메타데이터를 구간에 기록할 수 있다.
상기한 파일 저장 시의 색인 구현 방법을 구체적인 실시예와 함께 상세히 설명할 수 있다. 본 실시예에서는, 도 8에 도시된 바와 같이, 실제로 메타데이터의 저장 서비스는 증량 구간(델타(Delta)라고 함), 및 증량 구간에 대응하는 전량 구간(스냅 샷(Snapshot)이라고 함)을 통해 구현될 수 있다.
메타데이터의 액세스는 두 가지 유형, 즉 델타를 액세스하는 것(accessing Delta)과 스냅 샷을 액세스하는 것(accessing Snapshot)으로 분류될 수 있다. 즉, 메타데이터 액세스는 도 8에 도시된 데이터 판독 프로세스일 수 있다.
도 8에 도시된 블록은 델타 내의 데이터가 스냅 샷 내의 데이터보다 훨씬 적을 수 있음을 명확하게 보여준다. 새로운 데이터의 기록, 즉 색인의 작성은 델타에 대해 수행될 수 있다.
첨부된 도 9에 의하면, 클라이언트 기기가 데이터 노드 선택기에 색인 작성 요청을 개시할 때, 데이터 노드 선택기는 저장 위치를 할당하는 작업을 트리거할 수 있다. 블록 610에서, 클라언트 기기는 데이터 노드 선택기에, 색인을 생성하기 위한 요청을 전송할 수 있다. 블록 620에서, 데이터 노드 선택기는 저장 위치를 할당할 수 있다. 즉, 블록 620이 실행되어 할당 결과를 클라이언트, 즉 블록 630에 회신할 수 있다.
클라이언트 기기는 블록 640에서, 블록 650을 실행하기 위해 저장 위치에 대응하는 데이터 노드에 파일을 업로드할 수 있다. 블록 650에서, 이 데이터 노드에서, 파일이 디스크에 저장될 수 있다.
클라이언트 기기는 블록 670에서 데이터 노드에 의해 회신되는 업로드 결과를 수신하여, 파일이 연속적으로 업로드되었는지 여부를 취득할 수 있다. 파일이 연속적으로 업로되는 경우, 파일 ID 및 할당된 저장 위치에 따라 메타데이터가 생성될 수 있고, 블록 680에서 메타데이터의 업로드 작업이 추가로 실행되어 메타데이터를 델타에 기록하고 파일에 대응하는 색인을 작성할 수 있다. 블록 690에서, 델타는 클라이언트 기기에 업로드 결과를 회신할 수 있다.
유의해야 할 것은, 본 실시예에서의 데이터 노드 선택기는 서비스를 제공하기 위해 사용될 수 있는, 메타데이터 클러스터 내의 프로그램일 수 있는 한편, 데이터 노드는 저장 매체를 제공하는 데 사용될 수 있는, 분산형 저장 시스템에서의 컴퓨터일 수 있다.
색인의 작성이 완료된 후, 도 10을 참조하면, 클라이언트 기기는 데이터 노드 선택기와의 상호작용을 통해 색인을 취득할 수 있다.
구체적으로, 클라이언트 기기는 블록 710을 실행하여, 색인을 요청하기 위해 데이터 노드 선택기에 색인 취득 요청을 개시할 수 있다. 블록 720에서, 데이터 노드 선택기는 색인 취득 요청 내의 파일 ID에 따라, 색인이 위치할 수 있는 키 구간을 결정할 수 있다. 블록 730에서, 데이터 노드 선택기는 클라이언트 기기에 결과를 회신할 수 있다.
클라이언트 기기는, 델터를 검색하여 색인을 포함하는 메타데이터가 델타에 저장되어 있는지를 판정하고 대응하는 검색 결과를 회신하기 위해, 블록 740에서 먼저 키 구간의 델타로부터 색인을 다운로드할 수 있다.
검색 결과에 따라, 색인을 포함하는 메타데이터가 델타에서 발견되는 경우, 블록 750에서 클라이언트 기기는 델타로부터 색인을 직접 다운로드할 수 있고; 색인을 포함하는 메타데이터가 델타에서 발견되지 않는 경우, 블록 750에서 클라이언트 기기는 델타로부터 "미발견(Not Found)"을 수신할 수 있다. 블록 760에서, 클라이언트 기기는 색인 작업을 다시 실행할 수 있다.
색인을 포함하는 메타데이터가 델타에서 발견되지 않는 경우, 색인은 대응하는 스냅 샷으로부터 다운로드될 수 있다. 즉, 데이터 노드로부터 메타데이터를 다운로드하고, 데이터 노드로부터 결과를 수신하고 다운로드 결과를 회신하기 위해 블록 770∼블록 790이 실행될 수 있다.
한편, 작성되어 저장된 색인과 관련하여, 파일이 삭제되는 경우, 색인은 그에 따라 삭제될 수 있다.
도 11에 도시된 바와 같이, 파일의 삭제 프로세스 동안, 블록 810에서 클라이언트 기기는 데이터 노드 선택기에 색인 삭제를 요청하는 색인 삭제 요청을 개시할 수 있다. 데이터 노드 선택기는 블록 820을 실행하여 그 색을 포함하는 메타데이터가 델타에 저장되어 있는지를 판정하고, 즉, 색인 구간을 결정하고, 블록 830에서 클라이언트 기기에 결과를 전송할 수 있다.
블록 840에서 클라이언트 기기로부터 색인 삭제를 위한 요청을 수신하고, 메타데이터 내의 색인을 삭제할 수 있으며, 즉, 블록 850을 실행할 수 있으며, 블록 870에서 데이터 노드 선택기는 색인이 성공적으로 삭제되었음을 클라이언트 기기에 통지할 수 있다. 블록 880에서 클라이언트 기기는 삭제가 성공적임을 나타내느 결과를 회신할 수 있다.
메타데이터가 델타에 기록되고 델타 내의 메타데이터가 삭제로 표시됨에 따라, 도 8에 도시된 병합 프로세스를 참조하면, 델타와 스냅 샷을 새로운 스냅 샷으로 병합하여 새로운 스냅 샷에 대응하는 새로운 델타를 작성하고 세그먼트의 동적 조정을 구현할 수 있다.
본 발명의 일 실시예는 요청 취득 모듈(910), 증량 검색 모듈(930), 증량 응답 모듈(950) 및 전량 응답 모듈(970)을 포함하는, 파일 저장 시의 색인 구현 시스템을 더 제공할 수 있다.
요청 취득 모듈(910)은 파일의 색인 작업 요청을 취득하는 것일 수 있다.
증량 검색 모듈(930)은, 증량 구간이 파일에 대응하는 하나 이상의 메타데이터를 저장하고 있는지를 판정하기 위해 증량 구간을 검색하고, 증량 구간이 파일에 대응하는 하나 이상의 메타데이터를 저장하고 있는 경우에 증량 응답 모듈(950)에 통지하고, 증량 구간이 파일에 대응하는 메타데이터를 저장하고 있지 않는 경우에 전량 응답 모듈(970)에 통지하는 것일 수 있다.
증량 응답 모듈(950)은 증량 구간 내의 하나 이상의 메타데이터에 따라 색인 작업 요청에 응답하는 것일 수 있다.
전량 응답 모듈(970)은 증량 구간에 대응하는 전량 구간에 따라 색인 작업 요청을 처리하는 것일 수 있다.
각각의 메타데이터는 파일에 대응하는 색인을 포함할 수 있다.
일 실시예에서, 색인 작업 요청은 색인 취득 요청을 포함할 수 있으며, 증량 응답 모듈(950)은 추가로, 증량 구간에서 발견될 수 있는, 파일에 대응하는 하나 이상의 메타데이터 각각의 기록 시간 스탬프에 따라 메타데이터를 추출하고, 그 메타데이터를 발행하는 것일 수 있다.
일 실시예에서, 증량 응답 모듈(950)은 추가로, 증량 구간에서 발견되는, 파일에 대응하는 하나 이상의 메타데이터 각각의 기록 시간 스탬프에 따라 최신 기록 시간 스탬프(latest write time stamp)를 갖는 메타데이터를 추출하고, 그 메타데이터를 발행하는 것일 수 있다.
일 실시예에서, 도 13에 도시된 바와 같이, 전량 응답 모듈(970)은 검색 유닛(971), 추출 유닛(973) 및 결과 회신 유닛(975)을 포함할 수 있다.
검색 유닛(791)은, 전량 구간이 파일에 대응하는 하나 이상의 메타데이터를 포함하는지를 판정하기 위해 증량 구간에 대응하는 전량 구간을 검색하고; 전량 구간이 파일에 대응하는 하나 이상의 메타데이터를 포함하는 경우, 추출 유닛(973)에 통지하는 것일 수 있고;
추출 유닛(973)은 전량 구간에서 발견되는, 파일에 대응하는 하나 이상의 메타데이터 각각의 기록 시간 스탬프에 따라 메타데이터를 추출하고, 그 메타데이터를 발행하는 것일 수 있다.
일 실시예에서, 추출 유닛(973)은 추가로, 전량 구간에서 발견되는, 파일에 대응하는 하나 이상의 메타데이터 각각의 기록 시간 스탬프에 따라 최신 기록 시간 스탬프를 갖는 메타데이터를 추출하는 것일 수 있다.
결과 회신 유닛(975)은 파일에 대응하는 색인 레코드가 없다는 것을 나타내는 결과 정보를 회신하는 것일 수 있다.
일 실시예에서, 색인 작업 요청은 색인 삭제 요청을 포함할 수 있으며, 증량 응답 모듈(950)은 추가로, 색인 삭제 요청에 따라 증량 구간에서 하나 이상의 메타데이터 내의 색인을 삭제로 표시하는 색인 삭제 작업을 수행하고, 색인 삭제 작업에 대응하는 삭제 시간 스탬프를 추가하는 것일 수 있다.
일 실시예에서, 색인 작업 요청은 색인 작성 요청을 포함할 수 있으며, 색인 구현 시스템은 위치 할당 모듈(1010), 메타데이터 생성 모듈(1030), 시간 스탬프 추가 모듈(1050) 및 기록 모듈(1070)을 포함할 수 있다.
위치 할당 모듈(1010)은 색인 작성 요청에 따라 저장 위치의 할당을 트리거하는 것일 수 있다.
메타데이터 생성 모듈(1030)은 저장 위치에 따라 파일의 색인을 작성하고, 색인을 사용하여 파일의 메타데이터를 생성하는 것일 수 있다.
시간 스탬프 추가 모듈(1050)은 메타데이터에 기록 시간 스탬프를 추가하는 것일 수 있다.
기록 모듈(1070)은 증량 구간의 위치를 결정하고, 새로운 데이터를 추가하는 방식으로 위치가 결정된 증량 구간에 메타데이터를 기록하는 것일 수 있다.
또는, 일 실시예에서, 도 15에 도시된 바와 같이, 위치 할당 모듈(1010)은,
색인 작성 요청으로부터 파일 ID를 추출하도록 구성된 ID 추출 유닛(1011); 및
파일이 저장 위치에 기록될 수 있도록, 파일의 저장 위치를 할당하는 작업을 트리거하도록 구성된 기록 유닛(1013)을 포함할 수 있다.
또한, 메타데이터 생성 모듈(1030)은 추가로, 파일 ID와 저장 위치 사이의 매핑 관계를 작성하고, 매핑 관계를 색인으로 하여 파일의 메타데이터를 생성하는 것일 수 있다.
일 실시예에서는, 도 16에 도시된 바와 같이, 상기한 색인 구현 시스템은 태스크 개시 모듈(1110), 병합 모듈(1130), 분할 모듈(1150) 및 증량 구간 작성 모듈(1170)을 더 포함할 수 있다.
태스크 개시 모듈(1110)은 병합 태스크를 개시하는 것일 수 있다.
병합 모듈(1130)은 병합 태스크를 통해 증량 구간과 전량 구간의 병합을 트리거하는 것일 수 있다.
분할 모듈(1150)은 병합된 구간을 복수의 전량 구간으로 분할하는 것일 수 있다.
증량 구간 작성 모듈(1170)은 파일의 색인 작업 요청에 대한 기록 서비스를 제공하기 위해 복수의 전량 구간에 각각 대응하는 복수의 증량 구간을 작성하는 것일 수 있다.
일 실시예에서는, 도 17에 도시된 바와 같이, 병합 모듈(1130)이 데이터 내보내기 유닛(1131), 구간 병합 유닛(1133), 데이터 병합 유닛(1135) 및 데이터 기록 유닛(1137)을 포함할 수 있다.
데이터 내보내기 유닛(1131)은 병합 태스크를 통해 증량 구간 및 대응하는 전량 구간 내의 메타데이터의 내보내기 작업을 트리거하는 것일 수 있다.
구간 병합 유닛(1133)은 증량 구간과, 대응하는 전량 구간을 하나의 병합된 구간으로 병합하는 것일 수 있다.
데이터 병합 유닛(1135)은 미리 설정된 병합 전략에 따라, 내보낸 메타데이터를 병합하는 것일 수 있다.
일 실시예에서, 데이터 병합 유닛(1135)은 추가로, 색인이 삭제로 표시된 메타데이터를, 내보낸 메타데이터로부터 삭제하는 것일 수 있다.
데이터 기록 유닛(1137)은 병합된 메타데이터를 병합된 구간에 기록하는 것일 수 있다.
당업자라면, 이상의 실시예의 모든 또는 일부 단계를 하드웨어를 사용하여 구현할 수 있거나, 관련 하드웨어에 명령하는 프로그램으로 구현할 수 있다는 것을 이해할 수 있을 것이다. 프로그램은 컴퓨터로 판독할 수 있는 저장 매체에 저장될 수 있다. 저장 매체는 판독 전용 메모리, 자기 디스크, 광학 디스크 등일 수 있다.
이상의 설명은 본 발명의 바람직한 실시예일 뿐이며, 본 발명을 한정하기 위한 것은 아니다. 본 발명의 사상 및 원리 내에서 이루어진 임의의 수정, 등가의 대체 또는 개선은 본 발명의 보호 범위에 속해야 한다.

Claims (20)

  1. 서버에 의해 수행되는, 파일 저장 시의 색인 구현 방법으로서,
    파일의 색인 작업 요청(index operation request)을 취득하는 단계;
    증량 구간(increment interval)이 상기 파일에 대응하는 하나 이상의 메타데이터(metadata)를 저장하고 있는지를 판정하기 위해 상기 증량 구간을 검색하는 단계;
    상기 증량 구간이 상기 파일에 대응하는 하나 이상의 메타데이터를 저장하고 있는 경우, 상기 증량 구간 내의 상기 하나 이상의 메타데이터에 따라 상기 색인 작업 요청에 응답하는 단계; 및
    상기 증량 구간이 상기 파일에 대응하는 하나 이상의 메타데이터를 저장하고 있지 않는 경우, 상기 증량 구간에 대응하는 전량 구간(total quantity interval)에 따라 상기 색인 작업 요청을 처리하는 단계
    를 포함하고,
    각각의 메타데이터는 상기 파일에 대응하는 색인을 포함하는,
    색인 구현 방법.
  2. 제1항에 있어서,
    상기 색인 작업 요청이 색인 취득 요청(index obtaining request)을 포함하고, 상기 증량 구간 내의 상기 하나 이상의 메타데이터에 따라 상기 색인 작업 요청에 응답하는 단계는,
    상기 증량 구간에서 발견되는, 상기 파일에 대응하는 각각의 메타데이터의 기록 시간 스탬프(write time stamp)에 따라 최신 기록 시간 스탬프를 갖는 메타데이터를 추출하고, 추출된 메타데이터를 발행하는 단계를 포함하는, 색인 구현 방법.
  3. 제2항에 있어서,
    상기 증량 구간에 대응하는 전량 구간에 따라 상기 색인 작업 요청을 처리하는 단계는,
    상기 전량 구간이 상기 파일에 대응하는 하나 이상의 메타데이터를 포함하는지를 판정하기 위해 상기 증량 구간에 대응하는 전량 구간을 검색하는 단계; 및
    상기 전량 구간이 상기 파일에 대응하는 하나 이상의 메타데이터를 포함하는 경우, 상기 전량 구간에서 발견되는, 상기 파일에 대응하는 각각의 메타데이터의 기록 시간 스탬프에 따라 최신 기록 시간 스탬프를 갖는 메타데이터를 추출하고, 추출된 메타데이터를 발행하는 단계를 포함하는, 색인 구현 방법.
  4. 제1항에 있어서,
    상기 색인 작업 요청이 색인 삭제 요청(index deletion request)을 포함하고, 상기 증량 구간 내의 상기 하나 이상의 메타데이터에 따라 상기 색인 작업 요청에 응답하는 단계는,
    상기 색인 삭제 요청에 따라 상기 증량 구간 내의 하나 이상의 메타데이터에서의 색인을 삭제로 표시하는 색인 삭제 작업을 수행하고, 상기 색인 삭제 작업에 대응하는 삭제 시간 스탬프를 추가하는 단계를 포함하는, 색인 구현 방법.
  5. 제1항에 있어서,
    상기 색인 작업 요청이 색인 작성 요청(index creation request)을 포함하고, 상기 색인 작업 요청을 취득하는 단계 후에,
    상기 색인 작성 요청에 따라 저장 위치의 할당을 트리거하는 단계;
    할당된 저장 위치에 따라 상기 파일의 색인을 작성하고, 상기 색인을 사용하여 상기 파일의 메타데이터를 생성하는 단계;
    상기 메타데이터에 기록 시간 스탬프를 추가하는 단계; 및
    상기 증량 구간의 위치를 결정하고, 새로운 데이터를 추가하는 방식으로, 위치가 결정된 증량 구간에 상기 메타데이터를 기록하는 단계를 더 포함하는 색인 구현 방법.
  6. 제5항에 있어서,
    상기 색인 작성 요청에 따라 저장 위치의 할당을 트리거하는 단계는,
    상기 색인 작성 요청으로부터 파일 ID(IDentity)를 추출하는 단계; 및
    상기 파일이 상기 저장 위치에 기록될 수 있도록, 상기 파일의 저장 위치를 할당하는 작업을 트리거하는 단계를 포함하는, 색인 구현 방법.
  7. 제6항에 있어서,
    상기 할당된 저장 위치를 사용하여 상기 파일의 메타데이터를 생성하는 단계는,
    상기 파일 ID와 상기 할당된 저장 위치 사이의 매핑 관계를 작성하고, 상기 매핑 관계를 상기 색인으로 사용하여 상기 파일의 메타데이터를 생성하는 단계를 포함하는, 색인 구현 방법.
  8. 제1항에 있어서,
    병합 태스크(merge task)를 개시하는 단계;
    병합된 구간을 생성하기 위해 상기 병합 태스크를 통해 상기 증량 구간과 상기 전량 구간의 병합을 트리거하는 단계;
    상기 병합된 구간을 복수의 전량 구간으로 분할하는 단계; 및
    상기 파일의 색인 작업 요청에 대한 기록 서비스를 제공하기 위해 상기 복수의 전량 구간에 각각 대응하는 복수의 증량 구간을 작성하는 단계를 더 포함하는 색인 구현 방법.
  9. 제8항에 있어서,
    상기 병합 태스크를 통해 상기 증량 구간과 상기 전량 구간의 병합을 트리거하는 단계는,
    상기 병합 태스크를 통해 상기 증량 구간 및 상기 대응하는 전량 구간 내의 메타데이터를 내보내는(exporting) 작업을 트리거하는 단계;
    상기 증량 구간과 상기 대응하는 전량 구간을 상기 병합된 구간으로 병합하는 단계;
    미리 설정된 병합 전략에 따라, 내보낸 메타데이터를 병합하는 단계; 및
    병합된 메타데이터를 상기 병합된 구간에 기록하는 단계를 포함하는, 색인 구현 방법.
  10. 제9항에 있어서,
    상기 미리 설정된 병합 전략에 따라, 내보낸 메타데이터를 병합하는 단계는,
    상기 내보낸 메타데이터에서, 색인이 삭제로 표시된 메타데이터를 삭제하는 단계를 포함하는, 색인 구현 방법.
  11. 파일 저장 시의 색인 구현 시스템으로서,
    파일의 색인 작업 요청을 취득하도록 구성된 요청 취득 모듈;
    증량 구간이 상기 파일에 대응하는 하나 이상의 메타데이터를 저장하고 있는지를 판정하기 위해 상기 증량 구간을 검색하고, 상기 증량 구간이 상기 파일에 대응하는 하나 이상의 메타데이터를 저장하고 있는 경우, 증량 응답 모듈에 통지하고, 상기 증량 구간이 상기 파일에 대응하는 메타데이터를 저장하고 있지 않는 경우, 전량 응답 모듈에 통지하도록 구성된 증량 검색 모듈;
    상기 증량 구간 내의 상기 하나 이상의 메타데이터에 따라 상기 색인 작업 요청에 응답하도록 구성된 상기 증량 응답 모듈; 및
    상기 증량 구간에 대응하는 전량 구간에 따라 상기 색인 작업 요청을 처리하도록 구성된 상기 전량 응답 모듈을 포함하고,
    각각의 메타데이터는 상기 파일에 대응하는 색인을 포함하는,
    색인 구현 시스템.
  12. 제11항에 있어서,
    상기 색인 작업 요청이 색인 취득 요청을 포함하고, 상기 증량 응답 모듈은 추가로, 상기 증량 구간에서 발견되는, 상기 파일에 대응하는 하나 이상의 메타데이터 각각의 기록 시간 스탬프에 따라 최신 기록 시간 스탬프를 갖는 메타데이터를 추출하고, 추출한 메타데이터를 발행하도록 구성되는, 색인 구현 시스템.
  13. 제12항에 있어서,
    상기 전량 응답 모듈은,
    상기 전량 구간이 상기 파일에 대응하는 하나 이상의 메타데이터를 포함하는지를 판정하기 위해 상기 증량 구간에 대응하는 전량 구간을 검색하고; 상기 전량 구간이 상기 파일에 대응하는 하나 이상의 메타데이터를 포함하는 경우, 추출 유닛에 통지하도록 구성된 검색 유닛; 및
    상기 전량 구간에서 발견되는, 상기 파일에 대응하는 하나 이상의 메타데이터 각각의 기록 시간 스탬프에 따라 최신 기록 시간 스탬프를 갖는 메타데이터를 추출하고, 추출한 메타데이터를 발행하도록 구성된 상기 추출 유닛을 포함하는, 색인 구현 시스템.
  14. 제11항에 있어서,
    상기 색인 작업 요청이 색인 삭제 요청을 포함하고, 상기 증량 응답 모듈은 추가로, 상기 색인 삭제 요청에 따라 상기 증량 구간 내의 하나 이상의 메타데이터에서 색인을 삭제로 표시하는 색인 삭제 작업을 수행하고, 상기 색인 삭제 작업에 대응하는 삭제 시간 스탬프를 추가하도록 구성되는, 색인 구현 시스템.
  15. 제11항에 있어서,
    상기 색인 작업 요청이 색인 작성 요청을 포함하고, 상기 색인 구현 시스템은,
    상기 색인 작성 요청에 따라 저장 위치의 할당을 트리거하도록 구성된 위치 할당 모듈;
    상기 저장 위치에 따라 상기 파일의 색인을 작성하고, 상기 색인을 사용하여 상기 메타데이터를 생성하도록 구성된 메타데이터 생성 모듈;
    상기 메타데이터에 기록 시간 스탬프를 추가하도록 구성된 시간 스탬프 추가 모듈; 및
    상기 증량 구간의 위치를 결정하고, 새로운 데이터를 추가하는 방식으로, 위치가 결정된 증량 구간에 상기 메타데이터를 기록하도록 구성된 기록 모듈을 더 포함하는 색인 구현 시스템.
  16. 제15항에 있어서,
    상기 위치 할당 모듈은,
    상기 색인 작성 요청으로부터 파일 ID를 추출하도록 구성된 ID 추출 유닛; 및
    상기 파일이 상기 저장 위치에 기록될 수 있도록, 상기 파일의 저장 위치를 할당하는 작업을 트리거하도록 구성된 기록 유닛을 포함하는, 색인 구현 시스템.
  17. 제16항에 있어서,
    상기 메타데이터 생성 모듈은 추가로, 상기 파일 ID와 상기 저장 위치 사이의 매핑 관계를 작성하고, 상기 매핑 관계를 상기 색인으로 하여 상기 파일의 메타데이터를 생성하도록 구성되는, 색인 구현 시스템.
  18. 제11항에 있어서,
    병합 태스크를 개시하도록 구성된 태스크 개시 모듈;
    상기 병합 태스크를 통해 상기 증량 구간과 전량 구간의 병합을 트리거하도록 구성된 병합 모듈;
    병합된 구간을 복수의 전량 구간으로 분할하도록 구성된 분할 모듈; 및
    상기 파일의 색인 작업 요청에 대한 기록 서비스를 제공하기 위해 상기 복수의 전량 구간에 각각 대응하는 복수의 증량 구간을 작성하도록 구성된 증량 구간 작성 모듈을 더 포함하는 색인 구현 시스템.
  19. 제18항에 있어서,
    상기 병합 모듈은,
    상기 병합 태스크를 통해 상기 증량 구간 및 상기 대응하는 전량 구간 내의 메타데이터를 내보내는 작업을 트리거하도록 구성된 데이터 내보내기 유닛;
    상기 증량 구간과 상기 대응하는 전량 구간을 하나의 병합된 구간으로 병합하도록 구성된 구간 병합 유닛;
    미리 설정된 병합 전략에 따라, 내보낸 메타데이터를 병합하도록 구성된 데이터 병합 유닛; 및
    병합된 메타데이터를 상기 병합된 구간에 기록하도록 구성된 데이터 기록 유닛을 포함하는, 색인 구현 시스템.
  20. 명령어를 저장하는, 컴퓨터로 판독할 수 있는 비일시적인 매체로서,
    상기 명령어는 하나 이상의 프로세서에 의해 실행될 때,
    파일의 색인 작업 요청을 취득하고;
    증량 구간이 상기 파일에 대응하는 하나 이상의 메타데이터를 저장하고 있는지를 판정하기 위해 상기 증량 구간을 검색하고;
    상기 증량 구간이 상기 파일에 대응하는 하나 이상의 메타데이터를 저장하고 있는 경우, 상기 증량 구간 내의 상기 하나 이상의 메타데이터에 따라 상기 색인 작업 요청에 응답하고;
    상기 증량 구간이 상기 파일에 대응하는 하나 이상의 메타데이터를 저장하고 있지 않는 경우, 상기 증량 구간에 대응하는 전량 구간에 따라 상기 색인 작업 요청을 처리하기 위한 것이고;
    각각의 메타데이터는 상기 파일에 대응하는 색인을 포함하는,
    컴퓨터로 판독할 수 있는 비일시적인 매체.
KR1020177036547A 2015-11-04 2016-10-28 파일 저장 시의 색인 구현 방법 및 시스템 KR102031588B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201510741056.7A CN106649403B (zh) 2015-11-04 2015-11-04 文件存储中的索引实现方法和系统
CN201510741056.7 2015-11-04
PCT/CN2016/103699 WO2017076223A1 (zh) 2015-11-04 2016-10-28 文件存储中的索引实现方法和系统

Publications (2)

Publication Number Publication Date
KR20180008774A KR20180008774A (ko) 2018-01-24
KR102031588B1 true KR102031588B1 (ko) 2019-10-14

Family

ID=58661660

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177036547A KR102031588B1 (ko) 2015-11-04 2016-10-28 파일 저장 시의 색인 구현 방법 및 시스템

Country Status (5)

Country Link
US (1) US11157445B2 (ko)
JP (1) JP6501916B2 (ko)
KR (1) KR102031588B1 (ko)
CN (1) CN106649403B (ko)
WO (1) WO2017076223A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108376169A (zh) * 2018-02-26 2018-08-07 众安信息技术服务有限公司 一种用于联机分析处理的数据处理方法和装置
CN110427340B (zh) * 2018-04-28 2023-08-04 伊姆西Ip控股有限责任公司 用于文件存储的方法、装置和计算机存储介质
CN109086307B (zh) * 2018-06-22 2020-04-14 阿里巴巴集团控股有限公司 文件处理的方法及装置
KR102177489B1 (ko) 2018-08-17 2020-11-11 주식회사 마크베이스 센서 태그 데이터를 위한 색인 검색 방법 및 장치
CN111177077B (zh) * 2018-11-09 2023-05-26 杭州海康威视数字技术股份有限公司 数据存储及数据查询方法、装置、设备、介质
CN109815060A (zh) * 2019-01-30 2019-05-28 北京百度网讯科技有限公司 用于备份信息的方法及装置
CN112748866A (zh) * 2019-10-31 2021-05-04 北京沃东天骏信息技术有限公司 一种增量索引数据的处理方法和装置
US11496232B1 (en) * 2021-05-03 2022-11-08 Nihon Kohden Digital Health Solutions, Inc. Waveform synchronization system for data received from a network
US11636110B1 (en) * 2021-10-29 2023-04-25 Snowflake Inc. Metadata search via N-Gram index
CN114036107B (zh) * 2021-11-08 2023-03-14 上海柯林布瑞信息技术有限公司 基于hudi快照的医疗数据查询方法及装置
CN115981875B (zh) * 2023-03-21 2023-08-25 人工智能与数字经济广东省实验室(广州) 内存存储系统的增量更新方法、装置、设备、介质和产品

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101655858A (zh) 2009-08-26 2010-02-24 华中科技大学 一种基于分块组织的密文索引结构及其管理方法
CN103177117A (zh) 2013-04-08 2013-06-26 北京奇虎科技有限公司 信息索引系统及信息索引的更新方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0198020A (ja) * 1987-10-09 1989-04-17 Nec Corp 索引管理方式
CN100456298C (zh) * 2006-07-12 2009-01-28 百度在线网络技术(北京)有限公司 广告信息检索系统及广告信息检索方法
JP5592747B2 (ja) * 2010-10-12 2014-09-17 株式会社日立ソリューションズ ファイル検索装置およびファイル検索プログラム
JP5655538B2 (ja) * 2010-12-15 2015-01-21 三菱電機株式会社 データ管理装置及びデータ管理方法
CN102693308B (zh) * 2012-05-24 2014-02-12 北京迅奥科技有限公司 一种面向实时搜索的缓存方法
US9529808B1 (en) * 2012-07-16 2016-12-27 Tintri Inc. Efficient and flexible organization and management of file metadata
CN103678520B (zh) * 2013-11-29 2017-03-29 中国科学院计算技术研究所 一种基于云计算的多维区间查询方法及其系统
US10255286B2 (en) * 2013-12-18 2019-04-09 Software Ag File metadata handler for storage and parallel processing of files in a distributed file system, and associated systems and methods
CN103744960A (zh) * 2014-01-06 2014-04-23 河海大学 一种基于云平台的元数据索引模型及方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101655858A (zh) 2009-08-26 2010-02-24 华中科技大学 一种基于分块组织的密文索引结构及其管理方法
CN103177117A (zh) 2013-04-08 2013-06-26 北京奇虎科技有限公司 信息索引系统及信息索引的更新方法

Also Published As

Publication number Publication date
US20180075050A1 (en) 2018-03-15
JP6501916B2 (ja) 2019-04-17
JP2018516409A (ja) 2018-06-21
KR20180008774A (ko) 2018-01-24
CN106649403A (zh) 2017-05-10
CN106649403B (zh) 2020-07-28
US11157445B2 (en) 2021-10-26
WO2017076223A1 (zh) 2017-05-11

Similar Documents

Publication Publication Date Title
KR102031588B1 (ko) 파일 저장 시의 색인 구현 방법 및 시스템
US11799959B2 (en) Data processing method, apparatus, and system
US20200226100A1 (en) Metadata query method and apparatus
JP6971542B2 (ja) 不揮発性メモリ装置におけるデータ特性基盤データ配置を活用するためのインターフェイス提供方法及びシステム並びに不揮発性メモリ装置とそのデータ特性基盤データ配置方法
US9886464B2 (en) Versioned bloom filter
US10564880B2 (en) Data deduplication method and apparatus
JP2017021805A5 (ko)
CN108733306B (zh) 一种文件合并方法及装置
CN103902623A (zh) 用于在存储系统上存取文件的方法和系统
US10552460B2 (en) Sensor data management apparatus, sensor data management method, and computer program product
US9430492B1 (en) Efficient scavenging of data and metadata file system blocks
CN113094374A (zh) 分布式存储和检索方法、装置及计算机设备
CN115840731A (zh) 文件处理方法、计算设备及计算机存储介质
EP3093772B1 (en) Data processing method, data writing method, and related apparatus
CN113515518A (zh) 数据存储方法、装置、计算机设备和存储介质
CN114265828A (zh) 行迁移消除方法、装置、计算机设备和存储介质
CN109254870B (zh) 数据备份的方法和装置
CN108376104B (zh) 节点调度方法及装置、计算机可读存储介质
CN110019092B (zh) 数据存储的方法、控制器和系统
CN117687970B (zh) 一种元数据检索方法、装置及电子设备和存储介质
CN118035260A (zh) 数据更新方法、装置、计算机可读存储介质和电子设备
CN118276782A (zh) 计算任务的执行方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant