KR20220126764A - 분산형 저장 시스템들에서의 마스터 데이터 배치 - Google Patents

분산형 저장 시스템들에서의 마스터 데이터 배치 Download PDF

Info

Publication number
KR20220126764A
KR20220126764A KR1020227028047A KR20227028047A KR20220126764A KR 20220126764 A KR20220126764 A KR 20220126764A KR 1020227028047 A KR1020227028047 A KR 1020227028047A KR 20227028047 A KR20227028047 A KR 20227028047A KR 20220126764 A KR20220126764 A KR 20220126764A
Authority
KR
South Korea
Prior art keywords
data
data item
location
master copy
storage system
Prior art date
Application number
KR1020227028047A
Other languages
English (en)
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 KR20220126764A publication Critical patent/KR20220126764A/ko

Links

Images

Classifications

    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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
    • G06F16/184Distributed file systems implemented as replicated file system
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1021Server selection for load balancing based on client or server locations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/289Intermediate processing functionally located close to the data consumer application, e.g. in same machine, in same home or in same sub-network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching

Abstract

분산형 저장 시스템 상의 데이터 항목들의 배치를 관리하기 위한 시스템들, 방법들, 및 컴퓨터 판독가능한 매체들이 개시된다. 일부 예에서, 한 방법은, 분산형 저장 시스템 상의 데이터 항목의 마스터 사본의 위치를 결정하는 단계, ―이 위치는 분산형 저장 시스템 상의 데이터 저장소를 포함함―; 데이터 항목의 마스터 사본과 연관된 액세스 패턴을 결정하는 단계, ―액세스 패턴은, 데이터 항목의 마스터 사본에 대해 분산형 저장 시스템에 의해 수신된 액세스 요청들의 발생 위치들, 및 발생 위치들 각각으로부터 수신된 각각의 액세스 요청 수를 포함함―; 액세스 패턴에 기초하여, 데이터 항목의 마스터 사본을 저장하기 위한 분산형 저장 시스템 상의 상이한 위치를 결정하는 단계, ―상이한 위치는 분산형 저장 시스템 상의 상이한 데이터 저장소를 포함함―; 및 데이터 항목의 마스터 사본을 상이한 위치에 배치하는 단계를 포함한다.

Description

분산형 저장 시스템들에서의 마스터 데이터 배치
관련 출원에 대한 상호참조
본 출원은, 참조에 의해 그 전체 개시내용이 그 전체로 본 명세서에 포함되는, 2020년 1월 13일에 출원된 미국 정식 특허 출원 번호 제16/741,580호의 혜택 및 그에 대한 우선권을 주장한다.
본 기술은 분산형 저장 시스템들, 더 구체적으로는, 분산형 저장 시스템들에서의 마스터 데이터 배치에 관한 것이다.
인터넷-가능형 디바이스의 보편화는, 인터넷 서비스 및 콘텐츠에 대한 엄청난 수요가 생성했다. 많은 방식으로, 사용자들이 네트워크 서비스와 콘텐츠에 점점 더 의존하는 상호접속된 사회가 되었다. 이러한 인터넷 및 상호접속 혁명은, 종종 성능 기대치에는 미달하는 상황에서 많은 양의 클라이언트 요청들을 서비스하기 위해 분투하고 있는 콘텐츠 및 스토리지 제공자에게 중대한 과제들을 생성했다. 예를 들어, 데이터 제공자는 전형적으로 사용자들로부터의 네트워크 및 데이터 요구들을 따라잡기 위해 크고 복잡한 데이터 센터들을 필요로 한다. 이들 데이터 센터들은 종종, 특정한 데이터 및 서비스들을 호스트하도록 구성된 서버 팜들을 장착하며, 데이터 요청들을 라우팅하고 처리하도록 구성된 수많은 네트워크 디바이스들을 포함한다. 많은 경우, 특정한 데이터 센터는 수백만 건의 트래픽 흐름들과 데이터 요청들을 처리해야 하는 것으로 예상된다.
당연히, 이러한 많은 양의 데이터는 관리하기 어렵고 상당한 성능 저하와 과제들을 생성할 수 있다. 일부 경우에, 성능 및 서비스 신뢰성을 개선하기 위해 부하 밸런싱 솔루션들이 구현될 수 있다. 그러나, 현재 부하 밸런싱 솔루션은 노드 고장들이 발생하기 쉽고, 네트워크 및 데이터 요청들에서의 동적 변화들 및 변동들을 종종 적절히 감안하지 못하며, 레이턴시 및 병목에 취약할 수 있다. 추가 자원들을 구매하고 구현하여 네트워크 용량을 증가시킴으로써 레이턴시와 성능 문제를 감소시킬 수 있다. 불행히도, 이 접근법은 비용이 많이 들고 네트워크에 추가된 복잡성이 도입되며, 네트워크 변동들 및 다양한 데이터 액세스 패턴에 여전히 취약하게 유지되어, 과부하 조건들로부터의 레이턴시, 저부하 조건들로부터의 낭비, 및 매우 가변적인 성능을 초래할 수 있다.
본 개시내용의 다양한 이점 및 피처들이 획득될 수 있는 방식을 설명하기 위해, 위에서 간략하게 설명된 원리에 대한 더 구체적인 설명은 첨부된 도면에 예시된 그 특정한 실시예를 참조하여 이루어질 것이다. 이들 도면들은 본 개시내용의 예시적인 실시예만을 도시하는 것이고 그에 따라 본 개시내용의 범위를 제한하는 것으로 간주되어서는 안 된다는 것을 이해하면서, 본 개시내용의 원리는, 다음과 같은 첨부된 도면들의 이용을 통해 추가적인 구체성 및 상세사항과 함께 기술되고 설명될 것이다:
도 1은 일부 예에 따른 한 예시적인 분산형 저장 시스템을 나타낸다;
도 2는 일부 예에 따른 분산형 저장 시스템에서의 예시적인 데이터 항목 배치 시나리오를 나타낸다;
도 3은 일부 예에 따른 분산형 저장 시스템에서의 예시적인 그룹 데이터 항목 배치 시나리오를 나타낸다;
도 4는 일부 예에 따른 분산형 저장 시스템에서의 또 다른 예시적인 그룹 데이터 항목 배치 시나리오를 나타낸다;
도 5는 일부 예에 따른 분산형 저장 시스템 상의 데이터 항목들의 배치를 관리하기 위한 예시적인 방법을 나타낸다;
도 6은 일부 예에 따른 예시적인 네트워크 디바이스를 나타낸다;
도 7은 일부 예에 따른 예시적인 컴퓨팅 디바이스를 나타낸다.
본 개시내용의 다양한 실시예가 아래에서 상세히 논의된다. 특정한 구현이 논의되지만, 이것은 예시의 목적을 위한 것임을 이해해야 한다. 관련 기술 분야의 통상의 기술자라면, 본 개시내용의 사상 및 범위를 벗어나지 않고 다른 컴포넌트 및 구성이 이용될 수 있다는 것을 인식할 것이다. 본 개시내용의 추가적인 피처 및 이점이 이하의 설명에서 개시될 것이며, 설명으로부터 부분적으로 명백해지거나, 여기서 개시된 원리의 실행에 의해 학습될 수 있다. 본 개시내용의 피처 및 이점들은 첨부된 청구항들에서 특별히 지적된 수단들 및 조합들에 의해 실현되고 획득될 수 있다. 본 개시내용의 이들 및 다른 피처들은 이하의 설명 및 첨부된 청구항들로부터 더욱 완전하게 명백해지거나, 여기서 개시된 원리의 실행에 의해 학습될 수 있다.
개요
분산형 상태 저장 시스템들에서, 데이터 항목 배치들의 지능적이고 동적인 관리를 위한 시스템들, 방법들, 및 컴퓨터 판독가능한 매체가 여기서 개시된다. 여기서의 데이터 배치 기술들은, 액세스 패턴들, 네트워크 통계들, 및/또는 이벤트들 또는 조건들에 기초하여 분산형 저장 시스템 상의 소정의 위치들에 데이터 항목들의 마스터 사본들을 지능적으로 배치함으로써 데이터 액세스 레이턴시들을 감소시키고 데이터 액세스 성능을 증가시킬 수 있다.
적어도 하나의 예에 따르면, 분산형 저장 시스템에서 데이터 항목들의 배치를 관리하기 위한 방법이 제공된다. 이 방법은, 분산형 저장 시스템 상에 저장된 데이터 항목의 마스터 사본의 현재 위치를 결정하는 단계, ―데이터 항목의 마스터 사본의 현재 위치는 분산형 저장 시스템 상의 복수의 데이터 저장소로부터의 현재의 데이터 저장소를 포함함―; 데이터 항목의 마스터 사본과 연관된 액세스 패턴을 결정하는 단계, ―액세스 패턴은 데이터 항목의 마스터 사본에 대해 분산형 저장 시스템에 의해 수신된 액세스 요청 세트의 하나 이상의 발생 위치 및 하나 이상의 발생 위치 각각으로부터 수신된 각각의 액세스 요청 수를 포함함―; 데이터 항목의 마스터 사본과 연관된 액세스 패턴에 기초하여, 데이터 항목의 마스터 사본을 저장하기 위한 분산형 저장 시스템 상의 상이한 위치를 결정하는 단계, ―상이한 위치는 복수의 데이터 저장소와는 상이한 데이터 저장소를 포함함―; 및 데이터 항목의 마스터 사본을 분산형 저장 시스템 상의 상이한 위치에 배치하는 단계를 포함할 수 있다.
적어도 하나의 예에 따르면, 분산형 저장 시스템에서 데이터 항목들의 배치를 관리하기 위한 시스템이 제공된다. 이 시스템은, 하나 이상의 프로세서; 및 명령어들이 저장된 적어도 하나의 컴퓨터 판독가능한 저장 매체를 포함할 수 있고, 명령어들은, 하나 이상의 프로세서에 의해 실행될 때, 시스템으로 하여금: 분산형 저장 시스템 상에 저장된 데이터 항목의 마스터 사본의 현재 위치를 결정하고, ―데이터 항목의 마스터 사본의 현재 위치는 분산형 저장 시스템 상의 복수의 데이터 저장소로부터의 현재의 데이터 저장소를 포함함―; 데이터 항목의 마스터 사본과 연관된 액세스 패턴을 결정하고, ―액세스 패턴은 데이터 항목의 마스터 사본에 대해 분산형 저장 시스템에 의해 수신된 액세스 요청 세트의 하나 이상의 발생 위치 및 하나 이상의 발생 위치 각각으로부터 수신된 각각의 액세스 요청 수를 포함함―; 데이터 항목의 마스터 사본과 연관된 액세스 패턴에 기초하여, 데이터 항목의 마스터 사본을 저장하기 위한 분산형 저장 시스템 상의 상이한 위치를 결정하고, ―상이한 위치는 복수의 데이터 저장소와는 상이한 데이터 저장소를 포함함―; 및 데이터 항목의 마스터 사본을 분산형 저장 시스템 상의 상이한 위치에 배치하게 한다.
적어도 하나의 예에 따르면, 분산형 저장 시스템에서 데이터 항목들의 배치를 관리하기 위한 비일시적인 컴퓨터 판독가능한 저장 매체가 제공된다. 이 비일시적인 컴퓨터 판독가능한 저장 매체는 명령어들을 저장할 수 있고, 명령어들은, 하나 이상의 프로세서에 의해 실행될 때, 하나 이상의 프로세서로 하여금: 분산형 저장 시스템 상에 저장된 데이터 항목의 마스터 사본의 현재 위치를 결정하고, ―데이터 항목의 마스터 사본의 현재 위치는 분산형 저장 시스템 상의 복수의 데이터 저장소로부터의 현재의 데이터 저장소를 포함함―; 데이터 항목의 마스터 사본과 연관된 액세스 패턴을 결정하고, ―액세스 패턴은 데이터 항목의 마스터 사본에 대해 분산형 저장 시스템에 의해 수신된 액세스 요청 세트의 하나 이상의 발생 위치 및 하나 이상의 발생 위치 각각으로부터 수신된 각각의 액세스 요청 수를 포함함―; 데이터 항목의 마스터 사본과 연관된 액세스 패턴에 기초하여, 데이터 항목의 마스터 사본을 저장하기 위한 분산형 저장 시스템 상의 상이한 위치를 결정하고, ―상이한 위치는 복수의 데이터 저장소와는 상이한 데이터 저장소를 포함함―; 및 데이터 항목의 마스터 사본을 분산형 저장 시스템 상의 상이한 위치에 배치하게 한다.
적어도 일부 양태에서, 위에서 설명된 방법, 시스템, 및 비일시적인 컴퓨터 판독가능한 저장 매체는, 분산형 저장 시스템과 연관된 정보를 수집하는 것, ―정보는, 하나 이상의 자원과 연관된 통계, 분산형 저장 시스템 상의 하나 이상의 데이터 항목과 연관된 하나 이상의 데이터 액세스 제한, 하나 이상의 이벤트, 데이터 액세스 패턴들, 및/또는 분산형 저장 시스템 및 분산형 저장 시스템과 연관된 하나 이상의 네트워크 중 적어도 하나와 연관된 네트워크 통계 중에서 적어도 하나를 포함하고, 하나 이상의 자원은, 저장 노드, 컴퓨팅 노드, 가상 머신, 소프트웨어 컨테이너, 서버, 네트워크, 및/또는 네트워킹 디바이스 중 적어도 하나를 포함함―; 분산형 저장 시스템과 연관된 정보에 기초하여, 분산형 저장 시스템 상의 하나 이상의 데이터 항목과 연관된 데이터 액세스 성능을 개선하거나 분산형 저장 시스템의 성능을 개선하는 것으로 추정되는 데이터 배치 액션을 결정하는 것, ―데이터 배치 액션은, 적어도 하나의 데이터 항목을 적어도 하나의 저장 위치로부터 적어도 하나의 상이한 저장 위치로 이동시키는 것을 포함하고, 적어도 하나의 저장 위치 및 적어도 하나의 상이한 저장 위치는 복수의 데이터 저장소로부터의 상이한 데이터 저장소들을 포함함―; 및 데이터 배치 액션을 결정하는 것에 응답하여, 적어도 하나의 데이터 항목을 적어도 하나의 저장 위치로부터 적어도 하나의 상이한 저장 위치로 이동시키는 것을 포함한다.
일부 양태에서, 데이터 항목의 마스터 사본을 저장하기 위한 분산형 저장 시스템 상의 상이한 위치를 결정하는 단계는, 데이터 항목의 마스터 사본과 연관된 액세스 패턴에 기초하여, 하나 이상의 발생 위치로부터, 데이터 항목의 마스터 사본과 연관된 가장 높은 수의 액세스 요청의 발생 위치를 식별하는 단계; 복수의 데이터 저장소 중 어느 것이 데이터 항목의 마스터 사본과 연관된 가장 높은 수의 액세스 요청의 발생 위치에 가장 가까이 위치하는지를 결정하는 단계; 및 상이한 위치와 연관된 상이한 데이터 저장소가 데이터 항목의 마스터 사본과 연관된 가장 높은 수의 액세스 요청의 발생 위치에 가장 가까이 위치한다고 결정하는 단계를 포함할 수 있다.
일부 예에서, 하나 이상의 발생 위치는 데이터 항목의 마스터 사본에 대해 분산형 저장 시스템에 의해 수신된 액세스 요청 세트를 생성한 하나 이상의 클라이언트 디바이스에 대응할 수 있다. 게다가, 일부 예에서, 분산형 저장 시스템 상의 상이한 위치에 데이터 항목의 마스터 사본을 배치하는 단계는, 데이터 항목의 마스터 사본을 현재의 데이터 저장소로부터 상이한 데이터 저장소로 이동하는 단계를 포함할 수 있다.
일부 예에서, 상이한 데이터 저장소가 데이터 항목의 마스터 사본과 연관된 가장 높은 수의 액세스 요청의 발생 위치에 가장 가까이 위치한다고 결정하는 단계는, 상이한 데이터 저장소와 발생 위치 사이의 홉 수가 복수의 데이터 저장소 각각과 하나 이상의 발생 위치로부터의 하나 이상의 나머지 위치 각각 사이의 각각의 홉 수보다 작다고 결정하는 단계; 및/또는 상이한 데이터 저장소와 발생 위치 사이의 거리가 복수의 데이터 저장소 각각과 하나 이상의 발생 위치로부터의 하나 이상의 나머지 위치 각각 사이의 각각의 거리보다 작다고 결정하는 단계를 포함할 수 있다.
일부 양태에서, 데이터 항목의 마스터 사본을 저장하기 위한 분산형 저장 시스템 상의 상이한 위치를 결정하는 단계는, 분산형 저장 시스템 상에 저장된 제2 데이터 항목의 제2 마스터 사본의 제2 현재 위치를 결정하는 단계, ―제2 데이터 항목의 제2 마스터 사본의 제2 현재 위치는, 분산형 저장 시스템 상의 복수의 데이터 저장소로부터의 제2 현재의 데이터 저장소를 포함함―; 데이터 항목의 마스터 사본과 연관된 액세스 패턴 및 제2 데이터 항목의 제2 마스터 사본과 연관된 제2 액세스 패턴에 기초하여, 제2 데이터 항목의 마스터 사본과 제2 데이터 항목의 제2 마스터 사본 양쪽 모두를 저장하기 위한 분산형 저장 시스템 상의 상이한 위치를 선택하는 단계; 및 데이터 항목의 마스터 사본과 제2 데이터 항목의 제2 마스터 사본 양쪽 모두를 분산형 저장 시스템 상의 상이한 위치에 배치하는 단계를 포함할 수 있다.
일부 예에서, 제2 액세스 패턴은 제2 데이터 항목의 제2 마스터 사본과 연관된 제2 세트의 액세스 요청들의 하나 이상의 각각의 발생 위치 및 하나 이상의 각각의 발생 위치들 각각으로부터 수신된 제2 각각의 액세스 요청 수를 포함할 수 있다. 일부 예에서, 데이터 항목의 마스터 사본과 제2 데이터 항목의 제2 마스터 사본 양쪽 모두를 분산형 저장 시스템의 상이한 위치에 배치하는 단계는, 데이터 항목의 마스터 사본을 현재 위치로부터 상이한 위치로 이동시키는 단계 및 제2 데이터 항목의 제2 마스터 사본을 제2 현재 위치로부터 상이한 위치로 이동시키는 단계를 포함할 수 있다. 게다가, 일부 예에서, 데이터 항목의 마스터 사본은 파티션화된 데이터 세트의 제1 파티션을 포함할 수 있고, 제2 데이터 항목의 제2 마스터 사본은 파티션화된 데이터 세트의 제2 파티션을 포함할 수 있다.
일부 양태에서, 위에서 설명된 방법, 시스템, 및 비일시적인 컴퓨터 판독가능한 저장 매체는, 분산형 저장 시스템 상의 데이터 항목의 마스터 사본과 제2 데이터 항목이 임계 횟수만큼 함께 액세스되었다고 결정하는 것; 및 데이터 항목의 마스터 사본을 저장하기 위한 분산형 저장 시스템 상의 상이한 위치를 결정한 후, 제2 데이터 항목을 제2 데이터 항목의 현재의 각각의 위치로부터 상이한 위치로 이동시키는 것―현재의 각각의 위치는 분산형 저장 시스템 상의 복수의 데이터 저장소 중 하나를 포함함―을 포함할 수 있다.
위에서 설명된 방법, 시스템, 및 비일시적인 컴퓨터 판독가능한 저장 매체는, 데이터 항목의 마스터 사본이 분산형 저장 시스템 상에 저장된 제2 데이터 항목의 특정한 사본에 대한 참조를 포함한다고 결정하는 것, ―제2 데이터 항목의 특정한 사본은 제2 데이터 항목의 각각의 마스터 사본 또는 제2 데이터 항목의 각각의 마스터 사본의 복제본 중 하나를 포함함―; 데이터 항목의 마스터 사본을 저장하기 위한 분산형 저장 시스템 상의 상이한 위치를 결정하고 데이터 항목의 마스터 사본이 제2 데이터 항목의 특정한 사본에 대한 참조를 포함한다고 결정하는 것에 응답하여, 제2 데이터 항목의 특정한 사본을 저장하기 위한 분산형 저장 시스템 상의 상이한 위치를 선택하는 것; 및 제2 데이터 항목의 특정한 사본을 분산형 저장 시스템 상의 각각의 위치로부터 분산형 저장 시스템 상의 상이한 위치로 이동시키는 것을 포함할 수 있다.
본 개요는 청구 대상의 핵심적 또는 본질적 피처들을 식별하기 위함도 아니고, 청구 대상의 범위를 결정하기 위해 단독으로 이용되기 위한 것도 아니다. 본 주제는 본 출원의 전체 명세서의 적절한 부분들, 임의의 또는 모든 도면, 및 각각의 청구항을 참조함으로써 이해되어야 한다.
전술된 내용은, 다른 피처들 및 실시예들과 함께, 이하의 명세서, 청구항들, 및 첨부된 도면들을 참조하면 더욱 명확해질 것이다.
설명
분산형 상태유지 저장 시스템(distributed, stateful storage system)들은 네트워크 환경에 걸쳐 상태를 관리하여 데이터 항목에 대한 판독 및 기입 액세스를 제공한다. 일부 예에서, 상태는, 데이터 항목들에 대한 판독 및 기입 액세스를 관리하도록 구성된 코어 네트워크 등의, 중앙 위치에 놓인 하나 이상의 데이터 저장소를 이용하여 중앙집중식으로 관리될 수 있다. 여기서, 클라이언트들은 중앙 위치의 하나 이상의 데이터 저장소에 요청을 전송함으로써 판독 및 기입 동작들을 수행할 수 있다. 일부 경우에, 판독 전용 상태 복제본들은 선택사항으로서 탈집중형 방식으로 관리될 수 있다. 예를 들어, 판독 전용 상태 복제본들은 네트워크의 "엣지"에 위치한 하나 이상의 데이터 저장소(예를 들어, 캐시들)에서 관리될 수 있다. 네트워크 엣지에 있는 하나 이상의 데이터 저장소는 데이터 항목들에 대한 판독 전용 액세스를 관리할 수 있으며, 클라이언트들은 네트워크의 엣지에 있는 하나 이상의 데이터 저장소로부터 탈중앙화된 데이터 저장소(예를 들어, 캐시)에 요청들을 전송함으로써 판독 동작들을 수행할 수 있다.
네트워크 엣지에 데이터 저장소들 또는 캐시들을 구현하면, 판독 동작들의 성능을 개선할 수 있지만, 기입 동작들은, 요청 클라이언트들이 중앙 위치의 데이터 저장소들로부터 멀리 떨어져 있기 때문에 레이턴시와 감소된 성능을 겪을 수 있다. 예를 들어, 클라이언트들과 이러한 클라이언트들에게 데이터 항목들에 대한 기입 액세스를 제공하는 중앙집중식 데이터 저장소 사이의 거리는, 추가된 거리가 이러한 클라이언트들과 중앙 집중식 데이터 저장소 사이의 데이터 액세스 통신이 통과하는 네트워크, 디바이스, 및 잠재적인 병목의 수를 증가시키므로, 이러한 클라이언트들로부터의 기입 동작들에 데이터 액세스 성능을 감소시키고 레이턴시를 증가시킬 수 있다.
일부 경우에, 클라이언트들로부터의 기입 동작들에 대한 레이턴시를 감소시키고 데이터 액세스 성능을 증가시키기 위해, 여기서의 접근법들은 데이터 액세스 위치들(예를 들어, 데이터 항목에 관한 클라이언트 디바이스의 위치) 및 빈도들 등의 데이터 액세스 패턴들에 기초하여 분산형 저장 환경 상의 전략적 위치들에 데이터 항목들의 마스터 사본들을 지능적으로 배치할 수 있다. 예를 들어, 특정한 클라이언트에 의해 자주 액세스되는 데이터 항목의 마스터 사본은 클라이언트에 대해 계산된 액세스 패턴들 및/또는 데이터 항목의 마스터 사본에 기초하여 클라이언트에 더 가까운 데이터 저장소로 이동될 수 있다. 이것은 클라이언트와의 데이터 액세스 통신이 통과하는 홉 수를 감소시키고, 이러한 데이터 액세스 통신이 통과하는 잠재적인 병목의 수를 감소시키며, 일반적으로 레이턴시를 감소시키고 그 클라이언트에 대한 데이터 액세스 성능을 증가시킬 수 있다.
일부 경우에, 데이터 항목의 마스터 사본을 저장하거나 이동시키기 위한 위치를 선택할 때 다른 인자들도 고려될 수 있다. 예를 들어 데이터 항목의 마스터 사본(및/또는 복제본)을 배치할 전략적 위치를 결정할 때, 시스템은, 비용 고려사항들, 네트워크 성능 고려사항들, 클라이언트 액세스 요건들, 클라이언트 가입 레벨들(예를 들어, 프리미엄 액세스 레벨들, 표준 액세스 레벨들 등), 데이터 항목 및/또는 클라이언트 그룹과 연관된 액세스 패턴들, 데이터 항목들의 유형, 데이터 항목과 다른 데이터 항목의 관계(예를 들어, 데이터 항목의 파티션, 참조하는 데이터 항목 등), 이력 및/또는 예측된 액세스 패턴 등의 다양한 인자들을 고려할 수 있다.
아래에서 추가로 설명되는 바와 같이, 개시된 기술은 분산형 저장 시스템들에서 마스터 데이터 배치를 위한 시스템들, 방법들, 및 컴퓨터 판독가능한 매체를 제공한다. 본 기술은 후속 개시내용에서 다음과 같이 설명될 것이다. 이 논의는, 도 1에 나타낸 바와 같이, 예시적인 분산형 저장 시스템에 대한 설명, 및 도 2 내지 도 4의 분산형 저장 시스템에서의 마스터 데이터 배치를 위한 다양한 예와 기술에 대한 설명으로 시작된다. 도 5에 나타낸 바와 같이, 분산형 저장 시스템에서의 마스터 데이터 배치를 위한 예시적인 방법의 설명이 뒤따를 것이다. 이 논의는, 도 6에 나타낸 바와 같이, 한 예시적인 네트워크 디바이스의 설명, 및 도 7에 나타낸 바와 같이, 저장 및 컴퓨팅 동작들을 수행하기에 적합한 예시적인 하드웨어 컴포넌트들을 포함하는 예시적인 컴퓨팅 디바이스 아키텍쳐에 대한 설명으로 끝난다. 이제, 설명은 도 1로 간다.
도 1은 일부 예에 따른 예시적인 분산형 저장 시스템(100)의 간소화된 블록도이다. 이 예에서, 분산형 저장 시스템(100)은 코어(102) 및 엣지들(110A-N)(이하 집합적으로 "110")을 포함한다. 코어(102)는, 분산형 저장 시스템(100)에 의해 제공되는 네트워크 및 저장 서비스를 위한 백본, 중앙집중식 네트워크 및/또는 중앙 허브로서 역할할 수 있다. 더욱이, 코어(102)는, 예를 들어 클라우드 네트워크, 데이터센터 등의 하나 이상의 네트워크, 및/또는 코어 세그먼트 또는 허브 등의 분산형 저장 시스템(100)의 네트워크 환경의 하나 이상의 세그먼트를 포함할 수 있다.
엣지(110)는, 예를 들어, 하나 이상의 스위치 또는 라우터 등의 하나 이상의 네트워크 디바이스를 통해, 및/또는 예를 들어, 하나 이상의 공용 네트워크(예를 들어, 광역 네트워크, 공용 클라우드 등), 하나 이상의 사설 네트워크(예를 들어, 사설 데이터 센터들, 사설 클라우드들, 근거리 통신망들, 가상 사설 네트워크들 등), 및/또는 하나 이상의 하이브리드 네트워크(예를 들어, 하이브리드 클라우드 등) 등의 하나 이상의 네트워크를 통해 코어(102)에 접속될 수 있다. 일부 예에서, 엣지들(110)은 코어(102)를 통해 및/또는 직접(또는 코어(102)를 통하지 않고) 서로 상호접속될 수 있다.
일부 경우에, 엣지들(110)은 분산형 저장 시스템(100)과 연관된 네트워크 환경의 세그먼트들 또는 섹션들을 나타낼 수 있다. 예를 들어, 엣지들(110)은 코어(102) 및/또는 분산형 저장 시스템(100)과 연관된 네트워크 환경의 엣지 또는 주변부에 위치한 네트워크 세그먼트들 또는 섹션들일 수 있다. 다른 경우에, 엣지들(110)은, 예를 들어 포그 네트워크(fog network)들, 근거리 통신망(LAN)들, 구역내 데이터 센터, 엔터프라이즈 네트워크들 등의 별개의 네트워크들을 나타낼 수 있다. 일부 예에서 이러한 네트워크들은 분산형 저장 시스템(100)과 연관된 네트워크 환경의 엣지 또는 주변부에 위치할 수 있다. 따라서, 엣지들(110)은 하나 이상의 클라이언트(160-166)에 코어(102)보다 물리적으로 및/또는 논리적으로 더 가까이 위치할 수 있다.
코어(102)는 하나 이상의 데이터 저장소(106)를 보관하거나 호스팅하기 위한 하나 이상의 저장 노드(104)를 포함할 수 있다. 유사하게, 엣지(110)는 데이터 저장소(114-120)를 보관하거나 호스팅하기 위한 저장 노드(112)를 포함할 수 있다. 예를 들어, 엣지(110A)는 하나 이상의 데이터 저장소(114)를 보관하기 위한 하나 이상의 저장 노드(112)를 포함할 수 있고, 엣지(110B)는 하나 이상의 데이터 저장소(116)를 보관하기 위한 하나 이상의 저장 노드(112)를 포함할 수 있고, 엣지(110C)는 하나 이상의 데이터 저장소(118)를 보관하기 위한 하나 이상의 저장 노드(112)를 포함할 수 있고, 엣지(110N)는 하나 이상의 데이터 저장소(120)를 보관하기 위한 하나 이상의 저장 노드(112)를 포함할 수 있다.
저장 노드들(104 및 112)은 분산형 저장 시스템(100) 상의 하드웨어 및/또는 가상 저장 인프라를 나타낼 수 있다. 더욱이, 저장 노드들(104 및 112)은, 하나 이상의 물리적 저장 서버, 하나 이상의 가상 저장 서버(예를 들어, 가상 머신(VM), 소프트웨어 컨테이너들 등), 하나 이상의 물리적 및/또는 논리적 저장 컴포넌트(예를 들어, 저장 드라이브, 논리적 볼륨, 저장 파티션, 저장 어레이 등), 및/또는 기타 임의의 물리적 및/또는 가상/논리적 저장 요소를 포함할 수 있다. 저장 노드들(104 및 112) 각각은 개개의 저장 요소에 의해 구현될 수 있거나 복수의 저장 요소에 걸쳐 있거나 분산될 수 있고 분산형 저장 인프라를 제공할 수 있다. 일부 경우에, 저장 노드는 여러 물리적 또는 가상 저장 요소들에 걸쳐 있을 수 있다. 예를 들어, 저장 노드는, 가상 저장 디바이스, 컨테이너 또는 2개 이상의 물리적 서버 및/또는 저장 디바이스로부터 생성된 위치를 나타낼 수 있다.
일부 경우에, 저장 노드들(104 및 112)은 저장 노드 푸울들 또는 클러스터들로 그룹화될 수 있다. 예를 들어, 코어(102) 상의 저장 노드들(104)은 하나 이상의 저장 노드 푸울 또는 클러스터들로 그룹화될 수 있고, 엣지들(110) 각각 상의 저장 노드들(112)은 하나 이상의 저장 노드 푸울 또는 클러스터들로 그룹화될 수 있다. 저장 노드들은, 하나 이상의 공통 특성 등의 하나 이상의 인자에 기초하여 저장 노드 푸울들 또는 클러스터들로 그룹화될 수 있다. 예를 들어, 저장 노드들은, 저장 유형, 데이터의 유형(예를 들어, 저장 노드들이 저장하는 데이터의 유형), 기저 저장 플랫폼, 물리적 또는 가상 위치, 용량, 구성 설정들 또는 아키텍쳐, 저장 역할, 우선순위들, 네트워크 세그먼트들(예를 들어, IP 접두사들 또는 서브넷들), 공유된 자원들, 동작 조건들 등에 의해, 저장 노드 푸울들 또는 클러스터들로 그룹화될 수 있다. 일부 경우에, 저장 노드들의 푸울 또는 클러스터(예를 들어, 104 및/또는 112)는 단일 저장 노드 또는 분산형 저장으로서 기능하도록 구성될 수 있다. 다른 경우들에서, 저장 노드들의 푸울 또는 클러스터(예를 들어, 104 및/또는 112)는 별개로 및/또는 개별적으로 동작할 수 있는 저장 노드들의 모음을 나타낼 수 있다.
코어(102) 상의 데이터 저장소들(106) 및 엣지들(110) 상의 데이터 저장소들(114-120)은, 마스터 데이터 항목들(108A-N) 및 복제본 데이터 항목들(130A-N)을 지속적으로 저장 및 관리하기 위한 저장 저장고들, 컨테이너들 또는 구조들을 포함할 수 있다. 코어(102) 상의 데이터 저장소들(106) 및 엣지들(110) 상의 데이터 저장소들(114-120)은, 예를 들어, 데이터베이스들, 파일들, 파일 시스템들, 저장 시스템들, 및/또는 기타 임의의 데이터 저장고들을 포함할 수 있다. 일부 구현에서, 데이터 저장소들(106 및 114-120)은 하나 이상의 데이터베이스를 포함할 수 있다.
데이터 저장소들(106 및 114-120) 상의 마스터 데이터 항목들(108A-N) 및 복제본 데이터 항목들(130A-N) 각각은, 예를 들어, 레코드(예를 들어, 데이터베이스 레코드), 하나 이상의 데이터베이스 필드, 데이터 객체, 데이터 또는 데이터 값들을 포함하는 데이터 구조, 데이터 요소들의 모음, 데이터 값(들), 데이터 파티션, 콘텐츠 항목 등을 포함할 수 있다. 일부 예에서, 데이터 저장소들(106 및/또는 114-120) 상의 데이터 항목(예를 들어, 108A-N 및/또는 130A-N)은, 프로파일, 레코드, 테이블 행, 다른 데이터 항목들을 참조하지 않는(또는 다른 데이터 항목들에 대한 참조가 제한된) 데이터 세트 등과 같은, 임의의 유형의 독립적인(또는 대체로 독립적인) 데이터 항목을 포함할 수 있다.
코어(102) 상의 데이터 저장소들(106) 내의 마스터 데이터 항목들(108A-N)은 복제본 데이터 항목들(130A-N)의 마스터 사본들을 나타낼 수 있는 반면, 엣지들(110) 상의 데이터 저장소들(114-120) 내의 복제본 데이터 항목들(130A-N)은 코어(102) 상의 데이터 저장소들(106) 내의 마스터 데이터 항목들(108A-N)의 복제본들 또는 판독 전용 사본들을 나타낼 수 있다. 마스터 데이터 항목들(108A-N)은 판독-기입 데이터 항목들일 수 있고 복제본 데이터 항목들(130A-N)에 대한 진실의 소스(예를 들어, 현재 및/또는 정식 데이터 상태 및/또는 버전)를 제공할 수 있다. 예를 들어, 마스터 데이터 항목(108A)은 판독-기입 데이터 항목일 수 있고 마스터 데이터 항목(108A) 및 복제본 데이터 항목(130A)과 연관된 데이터의 현재 및 정식 상태 또는 버전을 제공할 수 있으며, 마스터 데이터 항목(108N)은 판독-기입 데이터 항목일 수 있고 마스터 데이터 항목(108N) 및 복제본 데이터 항목(130N)과 연관된 데이터의 현재 및 정식 상태 또는 버전을 제공할 수 있다.
클라이언트들(160-166)은 분산형 저장 시스템(100)을 통해 마스터 데이터 항목들(108A-N) 및 복제본 데이터 항목들(130A-N)에 액세스할 수 있다. 특히, 클라이언트들(160-166)은 코어(102) 및/또는 엣지들(110)을 통해 마스터 데이터 항목들(108A-N) 및 복제본 데이터 항목들(130A-N)에 액세스할 수 있다. 예를 들어, 판독 동작들의 경우, 클라이언트들(160-166)은 코어(102) 및/또는 엣지들(110)로부터 마스터 데이터 항목들(108A-N) 및/또는 복제본 데이터 항목들(130A-N)에 액세스할 수 있고, 기입 동작들의 경우, 클라이언트들(160-166)은 코어(102)를 통해 마스터 데이터 항목들(108A-N)(예를 들어, 복제본 데이터 항목들(130A-N)의 마스터 사본들)에 액세스할 수 있다. 그러나, 아래에서 추가로 설명되는 바와 같이, 마스터 데이터 항목들(108A-N)은 하나 이상의 인자에 기초하여 분산형 저장 시스템(100) 상의 다른 곳으로 이동되거나 배치될 수 있다. 따라서, 일부 경우에, 클라이언트들(160-166)은 엣지들(110) 중 하나 이상으로부터 마스터 데이터 항목들(108A-N)에 액세스할 수 있다.
클라이언트들(160-166)은 임의의 컴퓨팅 디바이스들 또는 네트워크들을 나타낼 수 있다. 예를 들어, 일부 경우에, 클라이언트들(160-166)은 하나 이상의 클라이언트 엔드포인트(예를 들어, 개인용 컴퓨터들, 스마트폰들, 태블릿 컴퓨터들, 스마트 텔레비전들, 게임 시스템들, 셋탑 박스들, 스마트 착용기기들 등의 클라이언트 컴퓨팅 디바이스들), 하나 이상의 서버, 하나 이상의 사물 인터넷(IoT) 디바이스, 하나 이상의 자율 차량, 하나 이상의 네트워크 디바이스(예를 들어, 스위치, 라우터 등) 등을 포함할 수 있다. 다른 경우들에서, 클라이언트들(160-166)은, 예를 들어 하나 이상의 LAN, 하나 이상의 데이터 센터, 하나 이상의 엔터프라이즈 네트워크, 하나 이상의 캠퍼스 네트워크, 하나 이상의 사설 네트워크 등과 같은, 하나 이상의 네트워크를 포함할 수 있다.
분산형 저장 시스템(100)은, 분산형 저장 시스템(100)에 관한 정보를 수집 및 분석하고 분산형 저장 시스템(100) 상의 마스터 데이터 항목들(108A-N) 및 복제본 데이터 항목들(130A-N)의 배치 또는 이동을 조율하거나 조정할 수 있는 조율자 시스템(140)을 포함할 수 있다. 더욱이, 조율자 시스템(100)은 하나 이상의 컴퓨팅 디바이스(물리적 및/또는 가상)를 포함할 수 있거나 이에 의해 구현될 수 있다. 예를 들어, 일부 경우에, 조율자 시스템(100)은, 서버, 네트워크 제어기, 조율자 기기, 라우터, 또는 임의의 다른 컴퓨팅 디바이스에 의해 구현될 수 있다. 다른 경우들에서, 조율자 시스템(100)은, 복수의 서버, 복수의 네트워크 제어기, 복수의 조정자 기기, 복수의 라우터 등의, 복수의 디바이스에 의해 구현될 수 있다.
일부 예에서, 조율자 시스템(140)은, 분산형 저장 시스템(100), 마스터 데이터 항목들(108A-N), 및/또는 복제본 데이터 항목들(130A-N)과 연관된 통계 및 정보를 추적 및 모니터링하고, 조율자 시스템(140)에 의해 추적되고 모니터링된 통계 및 정보에 기초하여 분산형 저장 시스템(100)의 특정한 위치(들)로 마스터 데이터 항목들(108A-N) 및/또는 복제본 데이터 항목들(130A-N) 중 하나 이상을 이동시킬 수(또는 분산형 저장 시스템(100)에게 이동시킬 것을 명령할 수) 있다.
설명하기 위해, 조율자 시스템(140)에 의해 모니터링된 통계 및 정보가 마스터 데이터 항목(108A)이 엣지(110A)에 가장 가까운 위치로부터 클라이언트(160)에 의해 자주 액세스된다는 것을 나타낸다면, 조율자 시스템(140)은 코어(102) 상의 데이터 저장소들(106)로부터 엣지(110A) 상의 데이터 저장소들(114)로 마스터 데이터 항목(108A)의 이동을 트리거할 수 있다. 이러한 이동은, 마스터 데이터 항목(108A)과 마스터 데이터 항목(108A)에 자주 액세스하는 클라이언트(160) 사이의 거리(뿐만 아니라, 홉 수 및/또는 잠재적인 병목 수)를 감소시킬 것이고, 따라서, 코어(102) 상의 데이터 저장소들(106)로부터 마스터 데이터 항목(108A)에 액세스하는 것과는 대조적으로, 엣지(110A) 상의 데이터 저장소들(114)로부터 마스터 데이터 항목(108A)에 액세스할 때 클라이언트(160)가 경험하는 레이턴시와 액세스 성능을 증가시킨다.
일부 경우에, 조율자 시스템(140)은 수집된 정보를 이용하여 분산형 저장 시스템(100) 상의 복제본 데이터 항목들(130A-N)의 이동을 조율하거나 조정할 수 있다. 예를 들어, 이전 예에서 설명된 바와 같이 마스터 데이터 항목(108A)을 코어(102)의 데이터 저장소들(106)로부터 엣지(110A)의 데이터 저장소들(114)로 이동시킬 때, 조율자 시스템(140)은 또한, 엣지(110A)의 데이터 저장소들(114) 상의 복제본 데이터 항목(130A)을 코어(102) 상의 데이터 저장소들(106)로 이동시킬 수 있다. 또 다른 예로서, 조율자 시스템(140)에 의해 수집되고 모니터링된 정보가, 복제본 데이터 항목(130A)이 코어(102)에 가장 가까운 위치로부터 클라이언트(164)에 의해 자주 액세스되거나 엣지(110)보다 코어(102)로부터 더 빠른 응답 시간을 수신한다는 것을 나타내는 경우, 조율자 시스템(140)은 엣지들(110) 중 하나로부터 코어(102)로 복제본 데이터 항목(130A)의 이동을 트리거할 수 있다. 또 다른 예로서, 조율자 시스템(140)에 의해 수집 및 모니터링된 정보가, 복제본 데이터 항목(130N)이 엣지(110N)로부터 드물게 액세스된다는 것을 나타낸다면, 조율자 시스템(140)은 엣지(110N)에서의 네트워크 및/또는 자원 활용을 감소시키기 위해(및 그에 따라, 대역폭을 증가시키고, 혼잡을 감소시키며, 엣지(110N)에서의 자원 가용성을 증가시키기 위해) 엣지(110N)로부터 코어(102)로 복제본 데이터 항목(130N)의 이동을 트리거할 수 있다.
더욱이, 일부 경우에, 마스터 데이터 항목을 현재의 데이터 저장소로부터 상이한 목적지 데이터 저장소로 이동시키는 것이 아니라, 조율자 시스템(140)은, 그 대신에, 상이한 목적지 데이터 저장소에 저장된 마스터 데이터 항목의 복제본(예를 들어, 복제본 데이터 항목(130A 또는 130N)을 마스터 데이터 항목으로서 지정하고 현재의 데이터 저장소에 있는 이전의 마스터 데이터 항목을 복제본 데이터 항목으로서 지정할 수 있다. 일부 예에서, 조율자 시스템(140)이 마스터 데이터 항목을 복제본 데이터 항목의 위치로 이동시키는 것 대신에 마스터 데이터 항목으로의 복제본 데이터 항목의 지정을 변경하는 경우, 조율자 시스템(140)은 일관성 체크를 수행하여, 마스터 데이터 항목으로서 지정된 복제본 데이터 항목이 최신의 데이터를 반영하거나 오래되지 않았음을 보장하거나 및/또는 복제본 데이터 항목을 마스터 데이터 항목으로서 지정하는 것이 어떠한 충돌이나 오류들을 생성하지 않음을 체크할 수 있다.
일부 경우에, 복제본 데이터 항목을 마스터 데이터 항목으로서 지정하는 것이 충돌 또는 오류들을 생성하거나 및/또는 복제본 데이터 항목이 최신의 데이터를 반영하지 않거나 오래된 것이라고 조율자 시스템(140)이 결정한다면, 조율자 시스템(140)은 복제본 데이터 항목을 마스터 데이터 항목으로서 지정하기 전에 이러한 충돌 또는 오류를 정정하거나 및/또는 복제본 데이터 항목을 업데이트하여 최신 데이터를 반영하려고 시도할 수 있다. 다른 경우들에서, 이러한 충돌 또는 오류를 정정하거나 및/또는 복제본 데이터 항목을 업데이트하여 최신 데이터를 반영하려고 시도하는 것이 아니라, 조율자 시스템(140)은 복제본 데이터 항목을 마스터 데이터 항목으로서 지정하지 않기로 결정하고, 그 대신에 실제 마스터 데이터 항목을 복제본 데이터 항목이 저장된 위치로 이동시키기로 결정할 수 있다. 이러한 경우들에서, 조율자 시스템(140)은 복제본 데이터 항목을 복제본으로서 내버려 둘 수 있고, 복제본 데이터 항목을 그 현재 위치에 두거나, 복제본 데이터 항목을 마스터 데이터 항목이 있었던 위치 등의 상이한 위치로 이동시킬 수 있다.
일부 예에서, 조율자 시스템(140)에 의해 추적/모니터링되고 데이터 배치 액션들을 트리거하는데 이용되는 통계 및 정보는, 마스터 데이터 항목들(108A-N), 복제본 데이터 항목들(130A-N), 코어(102), 엣지들(110) 중 하나 이상, 및/또는 클라이언트들(160-166) 중 하나 이상과 연관된 액세스 패턴들 및/또는 메트릭들을 포함할 수 있다. 일부 경우에, 조율자 시스템(140)은 이러한 정보를 이용하여, 특정한 마스터 데이터 항목 및/또는 특정한 복제본 데이터 항목과 연관된 액세스 레이턴시 및/또는 액세스 성능이, 마스터 또는 복제본 데이터 항목을 분산형 저장 시스템(100) 내의 상이한 위치(예를 들어, 상이한 데이터 저장소, 저장 노드, 세그먼트, 및/또는 네트워크)로 이동함으로써 개선될 수 있는지를 결정할 수 있다. 예를 들어, 조율자 시스템(140)은, 마스터 또는 복제본 데이터 항목을, 그 마스터 또는 복제본 데이터 항목과 가장 많은 상호작용들 또는 가장 빈번한 상호작용들(예를 들어, 판독 및/또는 기입 액세스 동작들 또는 상호작용들)을 갖는 클라이언트에 가장 가까이 위치한 특정한 데이터 저장소 및/또는 위치(예를 들어, 코어(102), 엣지(110A), 엣지(110B), 엣지(110C), 또는 엣지(110N))로 이동시키는 것이 액세스 지연 또는 레이턴시, 액세스 요청들/동작들에 대한 왕복 시간(RTT), 오류율 등의 마스터 또는 복제본 데이터 항목에 대한 액세스 통계를 개선시킬 것인지를 결정하기 위해 이러한 정보를 이용할 수 있다.
데이터 항목 이동을 결정/수행하기 위해 조율자 시스템(100)에 의해 이용될 수 있는 액세스 패턴 정보의 비제한적인 예들은, 소정 기간에 걸쳐 및/또는 일반적으로(예를 들어, 데이터 항목들에 액세스한 클라이언트(160-166)의 위치) 분산형 저장 시스템(100) 상의 데이터 항목들(예를 들어, 108A-N 및/또는 130A-N)을 액세스한 위치들(예를 들어, 네트워크 주소들, 물리적 위치들, 네트워크들, 지리적 영역들, 저장 노드들, 데이터 저장소들 등), 이러한 위치들로부터의 데이터 항목들(예를 들어, 108A-N 및/또는 130A-N)의 액세스 빈도(예를 들어, 이러한 위치로부터 및/또는 이러한 위치의 각각의 클라이언트에 의해 각각의 데이터 항목이 액세스된 횟수 및/또는 빈도 등), 어떤 클라이언트들(예를 들어, 160-166) 및/또는 얼마나 많은 클라이언트가 다양한 데이터 항목(예를 들어, 108A-N 및/또는 130A-N)에 액세스했는지, 각각의 액세스 위치 및/또는 클라이언트로부터의 액세스의 유형(예를 들어, 판독, 기입 등), 특정한 데이터 항목과 연계 또는 연관하여 어떤 다른 데이터 항목들(있는 경우)이 액세스되었는지, 데이터 항목들(예를 들어, 108A-N 및/또는 130A-N) 및/또는 액세스 위치들에 대응하는 액세스 동작들과 연계 또는 연관하여 어떤 다른 동작들이 수행되었는지, 액세스 위치들로부터 데이터 항목들(예를 들어, 108A-N 및/또는 130A-N)이 액세스된 시간들 및/또는 요일들(및/또는 상이한 시간들 및/또는 요일들 사이의 상대적 액세스 빈도), 액세스 위치들로부터의 요청들/동작들에 대해 관찰된 레이턴시 및/또는 기타의 성능 또는 액세스 메트릭들, 데이터 항목들(예를 들어, 108A-N 및/또는 130A-N)의 액세스 및/또는 액세스 위치들과 연관된 라우팅 정보(예를 들어, 홉 수, 네트워크 경로, 라우팅 비용, 지연, 성능, 보안, 대역폭, 혼잡 등), 및/또는 기타 임의의 액세스 패턴 정보를 포함할 수 있다.
일부 경우에, 조율자 시스템(140)에 의해 추적/모니터링되고 데이터 배치 액션들을 트리거하는데 이용되는 정보는, 분산형 저장 시스템(100)의 상태, 보안, 안정성, 및/또는 성능, 및/또는 분산형 저장 시스템(100)에 의해 수신되거나 처리되는 액세스 요청들 또는 동작들의 성능, 비용 및/또는 기타의 메트릭들에 영향을 미칠 수 있는 다른 유형들의 정보를 포함할 수 있다. 예를 들어, 정보는, 마스터 데이터 항목들(108A-N) 및 복제본 데이터 항목들(130A-N)의 위치들, 분산형 저장 시스템(100)의 하나 이상의 요소(예를 들어, 코어(102), 엣지(110), 저장 노드들(104 및 112), 데이터 저장소(106), 데이터 저장소들(114-120) 등)의 상황/조건, 마스터 데이터 항목들(108A-N) 및/또는 복제본 데이터 항목들(130A-N)과 연관된 액세스 요청들에 대한 응답 시간들, 코어(102) 및/또는 엣지들(110) 중 하나 이상에서 이용가능한 대역폭, 코어(102) 및/또는 엣지들(110) 중 하나 이상에서 이용가능한 자원 이용 및/또는 작업부하 조건들, 코어(102) 및/또는 엣지들(110) 중 하나 이상에서 이용가능한 자원 가용성 및/또는 처리 용량, 코어(102) 및/또는 엣지들(110)의 위치, 코어(102) 및/또는 엣지들(110)의 토폴로지, 코어(102) 및/또는 엣지들(110)과 연관된 성능 메트릭들/통계(예를 들어, 초당 입력/출력 동작들(IOPS), 레이턴시, 대역폭, 처리량, 패킷 손실, 지터, 접속성, 재전송, 오류율, RTT, 혼잡, 가용성, 활용도 등), 클라이언트들(160-166)과 연관된 클라이언트 가입 레벨들(예를 들어, 프리미엄 액세스, 표준 또는 기본 액세스, 게스트 액세스 등) 등을 포함할 수 있다.
일부 경우에, 조율자 시스템(100)은, 데이터 항목 배치 방식 또는 분산형 저장 시스템(100) 상의 특정한 위치들(예를 들어, 데이터 저장소들, 저장 노드들, 세그먼트들, 네트워크들 등)에서의 마스터 데이터 항목들(108A-N) 및/또는 복제본 데이터 항목들(130A-N) 중 하나 이상을 배치하거나 분산하기 위한 액션을 결정하기 위해 분산형 저장 시스템(100)으로부터/을 위해 수집된 정보를 이용할 수 있다. 예를 들어, 조율자 시스템(100)은 이러한 정보를 이용하여 분산형 저장 시스템(100)에 관한 부하 또는 부담을 더 양호하게 밸런싱하거나 분산시키고, 마스터 데이터 항목들(108A-N) 및/또는 복제본 데이터 항목들(130A-N)에 대한 액세스 성능을 개선하고, 오류율을 감소시키고, 소정의 액세스 기준(예를 들어, 액세스 성능 레벨들, 서비스 품질(QoS) 요건들, 서비스 레벨 협약(SLA)들, 보안 요건들, 액세스 제약들 등)을 충족하고, 데이터 주권 법률/정책들을 충족하고, 자원 가용성을 증가시키고, 자원의 과이용을 감소시키고, 혼잡을 감소시키고, 비용을 절감하고, 대역폭을 개선시키고, 효율성을 증가시키고, 네트워크 트래픽을 감소시키는 등을 위해 추정된 데이터 항목 배치 방식을 결정할 수 있다.
설명하기 위해, 조율자 시스템(100)은 이 정보를 이용하여 마스터 데이터 항목들(108A-N)과 연관된 기입 요청들의 소스들 및 위치들을 결정할 수 있고, 위치들 각각으로부터의 기입 요청들의 각각의 빈도를 이용하여 마스터 데이터 항목들(108A-N) 중 하나 이상을 이동 또는 배치하기 위한 타겟 위치를 식별할 수 있다. 타겟 위치는, 예를 들어, 가장 빈번한 기입 요청이 발생하는 위치에 가장 가까운 분산형 저장 시스템(100) 상의 위치(예를 들어, 엣지, 코어, 데이터 저장소, 저장 노드 등)일 수 있다. 마스터 데이터 항목들(108A-N) 중 하나 이상을 이러한 위치로 이동시키거나 배치하는 것은, 그 위치(가장 빈번한 액세스 위치이므로, 이러한 마스터 데이터 항목(들)이 저장되는 분산형 저장 시스템(100) 상의 위치로의 이러한 마스터 데이터 항목(들)에 대한 기입 요청들의 상당 부분을 설명함)로부터 발생하는 이러한 마스터 데이터 항목(들)에 대한 기입 요청들이 통과하는 거리를 감소시킬 수 있다. 이것은 그 특정한 위치로부터의 이러한 마스터 데이터 항목(들)에 대한 기입 요청들의 레이턴시를 감소시키고 성능을 개선하는데 도움이 될 수 있다.
조율자 시스템(140)은, 푸시 및/또는 풀 기반으로 분산형 저장 시스템(100)(예를 들어, 코어(102), 엣지(110), 분산형 저장 시스템(100) 상의 하나 이상의 네트워크 디바이스 등)으로부터 조율자 시스템(140)에 의해 수집되고 모니터링/추적된 정보(예를 들어, 데이터 항목 액세스 이력들 및/또는 통계, 분산형 저장 시스템(100) 상의 다양한 위치에서의 동작 조건들, 데이터 항목 정보, 분산형 저장 시스템(100)과 연관된 토폴로지 정보, 성능 메트릭들, 저장 또는 배치 정보, 자원 파라미터들, 요청 파라미터들, 구성 정보 등)를 수신할 수 있다. 예를 들어, 조율자 시스템(140)은, 액세스 패턴들, 통계, 메트릭들, 상황 정보, 동작 조건 등과 같은 데이터의 각각의 스트림을 분산형 저장 시스템(100)으로부터 당길 수 있다. 또 다른 예로서, 분산형 저장 시스템(100)은 데이터의 이러한 각각의 스트림을 조율자 시스템(140)에 푸시할 수 있다.
도 1에 도시된 요소들 및 컴포넌트들은 설명의 목적을 위해 제공된 예시적인 예들이다. 따라서, 도 1은 소정 유형 및 개수의 네트워크들 또는 세그먼트들(예를 들어, 코어(102), 엣지들(110A 내지 110N)) 및 컴포넌트들(예를 들어, 저장 노드들(104 및 112), 데이터 저장소들(106 및 114-120), 마스터 데이터 항목들(108A-N), 복제본 데이터 항목들(130A-N) 등)을 나타내고 있지만, 본 기술분야의 통상의 기술자라면 다른 예들이 도 1에 도시된 것들과는 상이한 개수 및/또는 유형의 네트워크들/세그먼트들 및/또는 컴포넌트들을 포함할 수 있다는 것을 인식할 것이다. 예를 들어, 일부 경우에, 분산형 저장 시스템(100)은, 도 1에 도시된 것들보다 더 많거나 더 적은 엣지, 코어 또는 코어 세그먼트, 및/또는 컴포넌트(예를 들어, 저장 노드들(104 및 112), 데이터 저장소들(106 및 114-120), 마스터 데이터 항목들(108A-N), 복제본 데이터 항목들(130A-N), 디바이스들 등)를 포함할 수 있다.
도 2는 분산형 저장 시스템(100)에서의 예시적인 데이터 항목 배치 시나리오(200)를 나타낸다. 이 예에서, 클라이언트(160)는 엣지(110A)에 더 가깝게/가장 가깝게 위치하고, 클라이언트(162)는 엣지(110B)에 더 가깝게/가장 가깝게 위치하며, 클라이언트(164)는 엣지(110C)에 더 가깝거나/가장 가깝게 위치하고, 클라이언트(166)는 엣지(110N)에 더 가깝게/가장 가깝게 위치한다. 더욱이, 조율자 시스템(140)은 분산형 저장 시스템(100)으로부터 배치 데이터(202)를 수신하고 모니터링할 수 있다.
배치 데이터(202)는, 메트릭들, 통계, 이벤트 데이터, 상황 정보, 상태 정보, 통보들, 구성 정보, 잡/작업부하 정보, 데이터 항목들에 관한 정보, 액세스 패턴 정보, 파라미터들, 선호사항들, 클라이언트 정보, 액세스 및/또는 데이터 제약들에 대한 정보, 위치 정보, 자원 정보, 네트워크 정보 등을 포함할 수 있다. 일부 예에서, 배치 데이터(202)는 마스터 데이터 항목들(108A-N) 및 복제본 데이터 항목들(130A-N)과 연관된 액세스 요청들 및/또는 동작들(예를 들어, 액세스 패턴들)의 이력을 포함할 수 있다. 액세스 요청들 및/또는 동작들의 이력은, 어느 클라이언트들(160-166)이 마스터 데이터 항목들(108A-N) 및 복제본 데이터 항목들(130A-N)에 액세스했는지, 마스터 데이터 항목들(108A-N) 및 복제본 데이터 항목들(130A-N)과 연관된 액세스 요청들 및/또는 동작들의 위치들(예를 들어, 액세스 요청들 및/또는 동작들과 연관된 클라이언트들(160-166)의 위치), 액세스 요청들 및/또는 동작들과 연관된 위치들로부터의 액세스 요청들 및/또는 동작들의 빈도, 액세스 요청들 및/또는 동작들의 유형(예를 들어, 판독, 기입 등), 이러한 액세스 요청들 및/또는 동작들의 요일/시간, 액세스 요청들 및/또는 동작들과 연관된 성능 통계, 액세스 이상들, 액세스 경향들 등의, 마스터 데이터 항목들(108A-N) 및 복제본 데이터 항목들(130A-N)과 연관된 하나 이상의 액세스 패턴을 나타낼 수 있다.
예를 들어, 배치 데이터(202)는, 클라이언트(160)가 (엣지들(110B-N) 및 코어(102)에 비해) 엣지(110A)에 가장 가깝고, 클라이언트(162)가 (엣지(110A), 엣지들(110C-N) 및 코어(102)에 비해) 엣지(110B)에 가장 가깝고, 클라이언트(164)는 (엣지들(110A-B), 엣지(110N) 및 코어(102)에 비해) 엣지(110C)에 가장 가깝고, 클라이언트(166)는 (엣지들(110A-C) 및 코어(102)에 비해) 엣지(110N)에 가장 가깝다는 것을 나타낼 수 있다. 배치 데이터(202)는 또한, 클라이언트(162)가 클라이언트들(160 및 164-166)보다 코어(102)의 데이터 저장소들(106) 상의 마스터 데이터 항목(108A)에 더 자주 및/또는 더 큰 횟수로 액세스했고 클라이언트(166)가 클라이언트들(160-164)보다 코어(102)의 데이터 저장소들(106) 상의 마스터 데이터 항목(108N)에 더 자주 및/또는 더 큰 횟수로 액세스했음을 나타낼 수 있다. 아래에서 추가로 설명되는 바와 같이, 조율자 시스템(140)은 배치 데이터(202)의 이 정보를 이용하여 마스터 데이터 항목들(108A 및 108N)을 각각 클라이언트들(162 및 166)에 더 가깝게 이동시키고, 이로써 레이턴시를 감소시키고 클라이언트들(162 및 166)로부터 마스터 데이터 항목들(108A 및 108N)에 대한 액세스 요청 및 동작들의 성능을 개선시킬 수 있다.
일부 예에서, 배치 데이터(202)는, 코어(102), 엣지들(110), 및/또는 예를 들어, 저장 노드들(104 및 112), 코어(102) 상의 데이터 저장소(106), 엣지들(110) 상의 데이터 저장소들(114-120), 마스터 데이터 항목들(108A-N) 및 복제본 데이터 항목들(130A-N) 등의 코어(102) 및/또는 엣지들(110)의 컴포넌트들에 대한 정보(예를 들어, 성능 통계, 대역폭, 혼잡, 용량, 지연들, 자원 가용성, 상태, 조건, 메트릭들, 위치 정보, 구성 정보, 액세스 제약들, 액세스 정책들 등)를 포함할 수 있다.
조율자 시스템(140)은 배치 데이터(202)를 분석하고 마스터 데이터 항목들(108A-N) 및/또는 복제본 데이터 항목들(130A-N) 중 임의의 항목이 이동되어야 하는지(예를 들어, 이러한 데이터 항목들을 이동하는 것이 하나 이상의 개선/혜택을 가져올 것인지)를 클라이언트들(160-166)의 액세스 패턴들 및/또는 분산형 저장 시스템(100)과 연관된 기타 임의의 정보에 기초하여 결정할 수 있다. 다시 말해서, 조율자 시스템(140)은 배치 데이터(202)를 분석하고 마스터 데이터 항목들(108A-N) 및/또는 복제본 데이터 항목들(130A-N) 중 임의의 항목을 상이한 저장 위치로 이동시키는 것이 미래의 액세스 요청들/동작들의 레이턴시를 감소시키거나, 미래의 액세스 요청들/동작들의 성능을 개선시키거나, 분산형 저장 시스템(100) 상의 부하/부담을 감소시키거나, 분산형 저장 시스템(100)의 자원 활용도를 개선시키거나, 혼잡을 감소시키거나, 대역폭 이용/가용성을 최적화하거나, 분산형 저장 시스템(100)에서의 자원 가용성을 개선시키거나, 및/또는 데이터 액세스 요청들/동작들 및/또는 네트워크/시스템 조건들에 대한 기타 임의의 혜택들을 제공하는지를 결정할 수 있다.
예를 들어, 이전에 언급된 바와 같이, 배치 데이터(202)는, 코어(102) 상의 마스터 데이터 항목(108A)이 (클라이언트들(160 및 164-166)에 비해) 클라이언트(162)에 의해 가장 자주 액세스되었음을 나타낼 수 있다. 따라서, 마스터 데이터 항목(108A)에 액세스하기 위한 클라이언트(162) 및 마스터 데이터 항목(108N)에 액세스하기 위한 클라이언트(166)에 의한 미래의 요청들에 대한 액세스 성능 및 효율성을 개선시키기 위해, 조율자 시스템(140)은 마스터 데이터 항목(108A) 및 마스터 데이터 항목(108N)을 클라이언트(162) 및 클라이언트(166)에 더 가까운 위치들로 이동시킴으로써 레이턴시를 감소시키고 마스터 데이터 항목들(108A 및 108N)에 대한 클라이언트들(162 및 166)로부터의 미래의 액세스 요청들의 성능을 증가시킬 수 있다.
따라서, 일부 예에서, 코어(102) 상의 마스터 데이터 항목(108A)이 클라이언트(162)에 의해 가장 빈번하게 액세스되고 클라이언트(162)가 분산형 저장 시스템(100) 상의 다른 저장 위치들(예를 들어, 코어(102) 및 엣지들(110A, 110C, 및 110N))보다 엣지(110B)에 더 가깝거나/가장 가깝다고 (예를 들어, 배치 데이터(202)에 기초하여) 결정한 후, 조율자 시스템(140)은, 마스터 데이터 항목(108A)에 대한 클라이언트(162)로부터의 요청들/동작들의 레이턴시를 감소시키고 성능을 개선시키기 위해 코어(102)로부터(예를 들어, 데이터 저장소들(106)로부터) 엣지(110B)(예를 들어, 데이터 저장소들(116))로 마스터 데이터 항목(108A)을 이동시키기로 결정할 수 있다.
유사하게, 코어(102) 상의 마스터 데이터 항목(108N)이 클라이언트(166)에 의해 가장 빈번하게 액세스되고 클라이언트(166)가 분산형 저장 시스템(100) 상의 다른 저장 위치들(예를 들어, 코어(102) 및 에지들(110A, 110B, 및 110C))보다 엣지(110N)에 더 가깝거나/가장 가깝다고 (예를 들어, 배치 데이터(202)에 기초하여) 결정한 후, 조율자 시스템(140)은, 마스터 데이터 항목(108N)에 대한 클라이언트(166)로부터의 요청들/동작들의 레이턴시를 감소시키고 성능을 개선시키기 위해 코어(102)로부터(예를 들어, 데이터 저장소들(106)로부터) 엣지(110N)(예를 들어, 데이터 저장소들(120))로 마스터 데이터 항목(108N)을 이동시키기로 결정할 수 있다.
데이터 항목들을 이동시키거나 배치 액션들을 트리거하기 위해, 조율자 시스템(140)은 분산형 저장 시스템(100)(예를 들어, 코어(102), 엣지(110A), 엣지(110B), 엣지(110C), 엣지(110N), 및/또는 분산형 저장 시스템(100)의 네트워크 디바이스)에 배치 요청(204)을 전송할 수 있다. 예를 들어, 조율자 시스템(140)은 배치 요청(204)을 코어(102)에 전송할 수 있으며, 이것은 마스터 데이터 항목(108A)의 엣지(110B)로의 이동 및 마스터 데이터 항목(108N)의 엣지(110N)로의 이동을 트리거할 수 있다. 배치 요청(204)은, 예를 들어, 마스터 데이터 항목(108A)을 엣지(110B)로 이동시키고 마스터 데이터 항목(108N)을 엣지(110N)로 이동시키기 위한 커맨드, 명령어, 및/또는 요청을 포함할 수 있다.
분산형 저장 시스템(100)은 조율자 시스템(140)으로부터 배치 요청(204)을 수신할 수 있고(예를 들어, 코어(102)에서) 배치 요청(204)에서 요청되거나 이에 의해 트리거된 데이터 배치 액션들(206 및 208)을 수행할 수 있다. 일부 예에서, 데이터 배치 액션(206)은, 마스터 데이터 항목(108A)이 마스터 데이터 항목(108A)에 가장 자주 액세스하는 클라이언트(162)에 더 가까이 저장되도록 코어(102)로부터 엣지(110B)로의 마스터 데이터 항목(108A)의 이동일 수 있다. 유사하게, 일부 예에서, 데이터 배치 액션(208)은, 마스터 데이터 항목(108N)이 마스터 데이터 항목(108N)에 가장 자주 액세스하는 클라이언트(166)에 더 가까이 저장되도록 코어(102)로부터 엣지(110N)로의 마스터 데이터 항목(108N)의 이동일 수 있다.
데이터 배치 액션들(206 및 208) 후에, 마스터 데이터 항목(108A)은, 코어(102)와 대조적으로, 엣지(110B)에 의해 호스팅(예를 들어, 엣지(110B) 상에 저장)될 것이고, 마스터 데이터 항목(108N)은, 코어(102)와 대조적으로, 엣지(110N)에 의해 호스팅(예를 들어, 엣지(110N) 상에 저장)될 것이다. 따라서, 미래의 경우들에, 클라이언트(162)는 엣지(110B)에 있는 데이터 저장소들(116) 중 대응하는 하나로부터 마스터 데이터 항목(108A)에 액세스할 수 있을 것이고, 클라이언트(166)는 엣지(110N에 있는 데이터 저장소들(120) 중 대응하는 하나로부터 마스터 데이터 항목(108N)에 액세스할 수 있을 것이다. 마스터 데이터 항목(108A)을 엣지(110B)에 배치함으로써, 조율자 시스템(140)은 클라이언트(162)와 마스터 데이터 항목(108A) 사이의 거리를 감소시킬 수 있고, 이로써 레이턴시를 감소시키고 마스터 데이터 항목(108A)에 대한 클라이언트(162)에 의한 미래의 액세스 요청들 및 동작들의 성능을 증가시킬 수 있다. 추가로, 마스터 데이터 항목(108A)을 엣지(110N)에 배치함으로써, 조율자 시스템(140)은 클라이언트(166)와 마스터 데이터 항목(108N) 사이의 거리를 감소시킬 수 있고, 이로써 레이턴시를 감소시키고 마스터 데이터 항목(108N)에 대한 클라이언트(166)에 의한 미래의 액세스 요청들 및 동작들의 성능을 증가시킬 수 있다.
조율자 시스템(140)은 추가 데이터 배치 액션들이 수행되어야 하는지를 결정하기 위해 배치 데이터(202)를 계속 수신하고 모니터링할 수 있다. 예를 들어, 클라이언트(160)가 이제 이전에 엣지(110B)로 이동된 마스터 데이터 항목(108A)에 가장 자주 액세스(판독 및/또는 기입)하는 클라이언트임을 새로운 배치 데이터가 나타내는 경우, 조율자 시스템(140)은 새로운 배치 요청을 분산형 저장 시스템(100)에 전송하여 엣지(110B)로부터 클라이언트(160)에 더 가까운 엣지(110A)로의 마스터 데이터 항목(108A)의 이동을 트리거할 수 있다.
데이터 배치 액션들(206 및 208)이 마스터 데이터 항목들(108A 및 108N)을 마스터 데이터 항목들(108A 및 108N)에 가장 자주 액세스하는 클라이언트들(162 및 166)에 가장 가까운 위치들(예를 들어, 엣지들(110B 및 110N) 및 데이터 저장소들(116 및 120))로 이동시키는 것을 포함하는 것으로서 상기의 예들에서 설명되었지만, 다른 예들에서, 데이터 배치 액션들(206 및 208)은 마스터 데이터 항목들(108A 및 108N)을 기타의 인자들 및/또는 액세스 패턴들에 기초하여 및/또는 다른 위치들(예를 들어, 다른 데이터 저장소들 및/또는 엣지들, 코어 등)로 이동시킬 수 있다는 점에 유의해야 한다.
예를 들어, 일부 경우에, 마스터 데이터 항목(예를 들어, 108A, 108B 또는 108N)은, 소스 및/또는 목적지 위치(예를 들어, 데이터 저장소, 코어, 엣지 등)에서의 하나 이상의 조건(예를 들어, 대역폭, 자원 가용성, 혼잡, 접속성 또는 다운타임, 오류율, 상태, 성능, 액세스 제약들 등), 소스 및/또는 목적지 위치의 하나 이상의 특성(예를 들어, 위치, 플랫폼 또는 인프라, 구성, 성능 통계, 상대적 순위들, 네트워크 유형, 데이터 유형, 자원의 유형 등), 하나 이상의 이벤트(예를 들어, 트래픽 변동들, 하나 이상의 네트워크 또는 자원 고장들, 하나 이상의 오류, 하나 이상의 네트워크 변경 등), 하나 이상의 선호사항 또는 요건(예를 들어, 하나 이상의 QoS 요건, SLA, 클라이언트 선호사항들, 데이터 또는 잡(job) 요건들, 제약들 등), 비용들 및/또는 클라이언트 가입 레벨들, 기타의 액세스 패턴들(예를 들어, 데이터 항목, 클라이언트 및/또는 위치 그룹과 연관된 판독 및/또는 기입 액세스 패턴들), 및/또는 기타 임의의 인자들 또는 인자들의 조합에 기초하여, 특정한 위치(예를 들어, 데이터 저장소(106, 114, 116, 118 또는 120); 코어(102); 엣지(110A, 110B, 110C), 또는 엣지(110N) 등)로 또는 특정한 위치로부터 이동될 수 있다.
도 3은 분산형 저장 시스템(100)에서의 한 예시적인 그룹 데이터 항목 배치 시나리오(300)를 나타낸다. 조율자 시스템(140)은, 이전에 설명된 바와 같이, 분산형 저장 시스템(100)으로부터 배치 데이터(202)를 수신하고 모니터링할 수 있다. 이 예에서, 배치 데이터(202)는 파티션화된 데이터(304)와 연관된 액세스 패턴들을 포함할 수 있다. 파티션화된 데이터(304)는 마스터 데이터 항목들(108A-N)을 포함할 수 있다. 예를 들어, 마스터 데이터 항목들(108A-N) 각각은 파티션화된 데이터 세트(예를 들어, 304)의 파티션을 나타낼 수 있고, 마스터 데이터 항목들(108A-N)은 함께 파티션화된 데이터(304)를 구성할 수 있다. 따라서, 이 예에서, 배치 데이터(202)는 파티션화된 데이터 세트(예를 들어, 304) 내의 상이한 데이터 파티션들(예를 들어, 108A-N)에 대한 액세스 패턴들을 제공할 수 있다.
일부 경우에, 배치 데이터(202)는 파티션화된 데이터(304) 및/또는 파티션화된 데이터(304) 내의 각각의 개개의 파티션(예를 들어, 마스터 데이터 항목들(108A-N))에 액세스하는 클라이언트들의 각각의 위치뿐만 아니라 이러한 클라이언트에 의한 각각의 액세스 빈도를 식별하는 통계를 포함할 수 있다. 일부 예에서, 배치 데이터(202)는 또한, 복제본 데이터 항목들(130A-N) 등의 다른 데이터 항목들에 대한 액세스 패턴들을 식별하는 통계를 포함할 수 있다. 따라서 조율자 시스템(140)은 배치 데이터(202)를 분석하고 파티션화된 데이터(304)가 클라이언트들(160 및 162)에 의해 가장 자주 액세스된다고 결정할 수 있다. 일부 경우에, 조율자 시스템(140)은 또한, 클라이언트(160)가 엣지(110A)에 가장 가깝게 위치하고 클라이언트(162)가 엣지(110B)에 가장 가깝게 위치한다고 (예를 들어, 배치 데이터(202)에 기초하여) 결정할 수 있다. 조율자 시스템(140)은 또한, 클라이언트(160)가 엣지(110A)에 가장 가깝더라도, 엣지(110B)가 코어(102)(및 엣지들(110C 및 110N))보다 클라이언트(160)에 더 가깝다고 결정할 수 있다.
이 정보에 기초하여, 조율자 시스템(140)은 마스터 데이터 항목들(108A-N)을 포함하는 파티션화된 데이터(304)를 엣지(110B)로 이동시키는 것이 전체로서의 파티션화된 데이터(304) 및/또는 그 구성 부분들 중 하나 이상(예를 들어, 마스터 데이터 항목들(108A-N))과 연관된 액세스 요청들/동작들에 대한 성능 및/또는 비용에 있어서 가장 큰 향상 및/또는 장점들(및/또는 장점들과 단점들의 균형)을 제공할 수 있다고 결정할 수 있다. 따라서, 파티션화된 데이터(304)를 엣지(110B)로 이동시키는 것이 파티션화된 데이터(304)와 연관된 액세스 요청들/동작들에 대한 성능 및/또는 비용에 있어서 가장 큰 향상 및/또는 장점들(및/또는 장점들과 단점들의 최적 균형)을 제공할 수 있다고 결정한 후, 조율자 시스템(140)은 그룹 배치 요청(302)을 분산형 저장 시스템(100)(예를 들어, 코어(102), 엣지(110B), 및/또는 분산형 저장 시스템(100)의 네트워크 디바이스)에 전송할 수 있다.
그룹 배치 요청(302)은, 마스터 데이터 항목들(108A-N)을 포함하는 파티션화된 데이터(304)를 엣지(110B)로 이동시키라는 명령어를 포함할 수 있다. 그 다음, 명령어는 마스터 데이터 항목들(108A-N)을 포함하는 파티션화된 데이터(304)를 엣지(110B)로 (예를 들어, 엣지(110B) 상의 데이터 저장소들(116) 중 하나 이상으로) 이동시키는 것을 포함할 수 있는 그룹 배치 액션(304)을 트리거할 수 있다. 그룹 배치 액션(304) 후에, 파티션화된 데이터(304)는, 코어(102)와 대조적으로, 엣지(110B)에 의해 호스팅(예를 들어, 엣지(110B) 상에 저장)될 것이다. 따라서, 미래에, 클라이언트들(160 및 162)(및 임의의 다른 클라이언트들)은, 코어(102)보다 클라이언트들(160 및 162)에 더 가깝고 그에 따라 액세스 성능 개선들/혜택들(예를 들어, 감소된 레이턴시), 비용 개선들/혜택들 및/또는 기타의 개선들/혜택들을 줄 수 있는, 엣지(110B)로부터 파티션화된 데이터(304)(및/또는 파티션화된 데이터(304)의 마스터 데이터 항목들(108A-N) 중 임의의 것)에 액세스할 수 있을 것이다. 예를 들어, 파티션화된 데이터(304)를 엣지(110B)에 배치함으로써, 조율자 시스템(140)은 클라이언트들(160 및 162)과 파티션화된 데이터(304) 사이의 거리를 감소시킬 수 있고, 이로써 레이턴시를 감소시키고 파티션화된 데이터(304)에 대한 클라이언트들(160 및 162)에 의한 미래의 액세스 요청들 및 동작들의 성능을 증가시킬 수 있다.
조율자 시스템(140)은 추가 배치 액션들이 수행되어야 하는지를 결정하기 위해 배치 데이터(202)를 계속 수신하고 모니터링할 수 있다. 예를 들어, 구성가능한 시간 동안 클라이언트들(164 및/또는 166)이 클라이언트들(160 및/또는 162)보다 더 큰 빈도로 파티션화된 데이터(304)에 액세스했음을 새로운 배치 데이터가 나타내는 경우, 조율자 시스템(140)은 파티션화된 데이터(304)가 상이한 위치로 이동되어야 하는지를 결정할 수 있다. 설명을 위해, 조율자 시스템(140)이 클라이언트들(164 및 166)이 엣지(110B)보다 엣지(110C)에 더 가깝게 위치한다고 결정하면, 조율자 시스템(140)은 파티션화된 데이터(304)를 엣지(110B)로부터 엣지(110C)로 이동시키는 것이 성능 또는 기타의(예를 들어, 비용, 자원 가용성, 혼잡/대역폭 등) 개선들(전체적으로 및/또는 균형적으로)을 줄 것인지를 추정할 수 있다.
조율자 시스템(140)은 파티션화된 데이터(304)를 엣지(110B)로부터 엣지(110C)로 이동시키는 것이 이러한 개선을 줄 것인지를 하나 이상의 인자에 기초하여 추정할 수 있다. 예를 들어, 일부 경우에, 조율자 시스템(140)은, 엣지(110B)로부터 엣지(110C)로 파티션화된 데이터(304)를 이동시키는 것이 이러한 개선들을 줄 것인지를, 엣지들(110B 및 110C)까지의 클라이언트들(160-166)의 상대 거리들, 클라이언트들(160-166)이 파티션화된 데이터(304)에 액세스하는 빈도(및/또는 빈도에서의 차이들), 클라이언트들(160-166)이 파티션화된 데이터(304)에 액세스하는 요일들/시간들, 클라이언트들(160-166) 및/또는 엣지들(110B 및 110C)과 연관된 대역폭 및/또는 혼잡 메트릭들, 클라이언트들(160-166)과 연관된 QoS 요건들 및/또는 SLA들, 및/또는 기타 임의의 관련 인자들에 기초하여 추정할 수 있다.
앞서 언급된 바와 같이, 도 3에 도시된 예에서, 클라이언트(160)는 엣지(110A)에 가장 가깝고 클라이언트(162)는 엣지(110B)에 가장 가깝고, 파티션화된 데이터(304)는, 클라이언트(160)가 엣지(110A)에 더 가깝게 위치함에도 불구하고, 클라이언트들(160 및 162)의 액세스 빈도들에 기초하여 엣지(110B)로 이동되었다. 여기서, 조율자 시스템(140)은, 파티션화된 데이터(304)를 엣지(110B)로 이동시키는 것이 파티션화된 데이터(304)를 엣지(110A)로 이동시키는 것보다 더 큰 성능 향상 등의 더 큰 장점/혜택(전체적으로 및/또는 균형적으로)을 제공할 것이라고 결정할 수 있다. 예를 들어, 조율자 시스템(140)은 파티션화된 데이터(304)를 엣지(110A) 및 엣지(110B)로 이동시키는 것의 장점들 및 단점들을 비교할 수 있고, 장점들 및 단점들의 비교에 기초하여 파티션화된 데이터(304)의 타겟 위치로서 엣지(110B)를 선택할 수 있다. 조율자 시스템(140)은, 예를 들어 엣지들(110A 및 110B)까지의 클라이언트들(160 및 162)의 상대 거리, 클라이언트들(160 및 162)이 파티션화된 데이터(304)에 액세스하는 상대 빈도, 파티션화된 데이터(304)에 관해 클라이언트들(160 및 162)에 의해 수행된 동작들의 유형(예를 들어, 판독 및/또는 기입), 클라이언트들(160 및 162) 및/또는 엣지들(110A 및 110B)과 연관된 대역폭 및/또는 혼잡 메트릭들, 클라이언트들(160 및 162)과 연관된 QoS 요건들 및/또는 SLA들, 및/또는 기타 임의의 관련 인자들에 기초하여, 장점들 및 단점들을 결정할 수 있다.
도 4는 분산형 저장 시스템(100)에서의 또 다른 예시적인 그룹 데이터 항목 배치 시나리오(400)를 나타낸다. 이전에 설명된 바와 같이, 조율자 시스템(140)은 분산형 저장 시스템(100)으로부터 배치 데이터(202)를 수신하고 모니터링할 수 있다. 이 예에서, 배치 데이터(202)는, 마스터 데이터 항목들(108A-N) 및 복제본 데이터 항목(130A-N)으로부터의 데이터 항목들의 그룹들 등의 데이터 항목들의 그룹들과 연관된 액세스 패턴들을 포함할 수 있다. 예를 들어, 배치 데이터(202)는 자주 함께 액세스되는 데이터 항목들의 하나 이상의 그룹을 식별하는 통계뿐만 아니라, 데이터 항목들의 하나 이상의 그룹에 액세스하는 클라이언트들의 각각의 위치 및 이러한 클라이언트들에 의한 각각의 액세스 빈도를 포함할 수 있다.
예시를 위해, 배치 데이터(202)는, 마스터 데이터 항목들(108A 및 108N)이 기입 동작들에 대해 클라이언트(162)에 의해 자주 함께 액세스되고, 클라이언트(162)가 코어(102) 및 엣지들(110A, 110C, 110N)보다 엣지(110B)에 더 가깝게 위치한다는 것을 나타낼 수 있다. 배치 데이터(202)는, 클라이언트(162)가 클라이언트들(160, 164 및 166)보다 더 자주 (예를 들어, 함께 및/또는 개별적으로) 마스터 데이터 항목들(108A 및 108N)에 (예를 들어, 함께 및/또는 개별적으로) 액세스한다는 것을 나타낼 수 있다. 이 정보에 기초하여, 조율자 시스템(140)은, 마스터 데이터 항목들(108A 및 108N)을 엣지(110B)로 이동시키는 것이 마스터 데이터 항목들(108A 및 108N)을 그들 각각의 위치들(예를 들어, 코어(102) 및 엣지(110N)에 내버려 두거나 마스터 데이터 항목들(108A 및 108N)을 분산형 저장 시스템(100)의 상이한 위치로 이동시키는 것보다 더 큰 성능 및/또는 다른 혜택/개선(전체적으로 및/또는 균형적으로)을 제공할 것이라고 결정할 수 있다.
따라서, 마스터 데이터 항목들(108A 및 108N)을 엣지(110B)로 이동시키는 것이 마스터 데이터 항목들(108A 및 108N)과 연관된 액세스 요청들/동작들에 대해 성능 및/또는 양태들에서 더 큰 상승 및/또는 혜택/장점(및/또는 장점들과 단점들의 최적 균형)을 제공할 수 있다고 결정한 후, 조율자 시스템(140)은 그룹 배치 요청(402)을 분산형 저장 시스템(100)(예를 들어, 코어(102), 엣지(110B), 엣지(110N), 및/또는 분산형 저장 시스템(100) 내의 네트워크 디바이스)에 전송할 수 있다.
그룹 배치 요청(402)은 마스터 데이터 항목들(108A 및 108N)을 엣지(110B)로 이동시키라는 명령어를 포함할 수 있다. 이 명령어는, 마스터 데이터 항목들(108A 및 108N)을 코어(102)로부터 엣지(110B)로(예를 들어, 엣지(110B) 상의 데이터 저장소들(116) 중 하나 이상으로) 이동시키는 것을 포함할 수 있는 그룹 배치 액션(404)을 트리거할 수 있다. 그룹 배치 액션(404) 후에, 마스터 데이터 항목(108A)은, 코어(102)와 대조적으로, 엣지(110B)에 의해 호스팅(예를 들어, 엣지(110B) 상에 저장)될 것이고, 마스터 데이터 항목(108N)은, 엣지(110N)와는 대조적으로, 엣지(110B)에 의해 호스팅(예를 들어, 엣지(110B) 상에 저장)될 것이다. 따라서, 미래에, 클라이언트(162)(및 기타 임의의 클라이언트들)는 클라이언트(162)에 가장 가까운 엣지(110B)로부터 마스터 데이터 항목들(108A 및 108N)에 액세스할 수 있을 것이고, 따라서 액세스 성능 개선들/혜택들(예를 들어, 감소된 레이턴시), 비용 개선들/혜택들 및/또는 기타의 개선들/혜택들을 줄 수 있다. 예를 들어, 마스터 데이터 항목들(108A 및 108N)을 엣지(110B)에 배치함으로써, 조율자 시스템(140)은 클라이언트(162)와 마스터 데이터 항목들(108A 및 108N) 사이의 거리를 감소시킬 수 있고, 이로써 레이턴시를 감소시키고 마스터 데이터 항목(108A 및 108N)에 대한 클라이언트(162)에 의한 미래의 액세스 요청들 및 동작들의 성능을 증가시킬 수 있다. 전반적으로 및/또는 균형적으로, 이러한 개선들/혜택들은, 클라이언트들(160, 164, 및/또는 166)로부터의 액세스 요청들/동작들에 대한 성능에서의 임의의 감소 등의, 마스터 데이터 항목들(108A 및 108N)을 엣지(110B)로 이동시키는 것의 임의의 단점보다 더 큰 것으로 추정될 수 있다.
조율자 시스템(140)은 추가 배치 액션들이 수행되어야 하는지를 결정하기 위해 배치 데이터(202)를 계속 수신하고 모니터링할 수 있다. 분산형 저장 시스템(100)의 상이한 위치에 더 가깝게 위치한 다른 클라이언트(들)가 구성가능한 시간량 동안 클라이언트(162)보다 더 큰 빈도로 마스터 데이터 항목들(108A 및/또는 108N)에 액세스했음을 새로운 배치 데이터가 나타내는 경우, 조율자 시스템(140)은, 이전에 설명된 바와 같이, 마스터 데이터 항목들(108A 및/또는 108N)이 그 상이한 위치로 이동되어야 하는지를 결정할 수 있다.
예시적인 시스템들, 컴포넌트들 및 개념들을 개시하였으므로, 본 개시내용은 이제, 도 5에 도시된 바와 같이, 분산형 저장 시스템(예를 들어, 100) 상의 데이터 항목들(예를 들어, 108A-N, 130A-N)의 배치를 관리하기 위한 예시적인 방법(500)으로 전환한다. 여기서 설명된 단계들은 예시의 목적으로 제공된 비제한적인 예들이며, 소정의 단계들을 제외, 추가 또는 수정하는 조합들을 포함한, 이들의 임의의 조합으로 구현될 수 있다.
단계 502에서, 방법(500)은, 분산형 저장 시스템(예를 들어, 100)에 저장된 데이터 항목의 마스터 사본(예를 들어, 마스터 데이터 항목 108A, 108B 또는 108N)의 현재 위치(예를 들어, 코어(102); 엣지(110A, 110B, 110C 또는 110N); 데이터 저장소들(106, 114, 116, 118, 또는 120)을 결정하는 단계를 포함할 수 있다. 일부 예에서, 데이터 항목의 마스터 사본의 현재 위치는, 분산형 저장 시스템 상의 현재의 네트워크 또는 네트워크 세그먼트(예를 들어, 코어(102), 엣지(110A), 엣지(110B), 엣지(110C), 또는 엣지(110N)) 및/또는 분산형 저장 시스템 상의 복수의 데이터 저장소(예를 들어, 데이터 저장소들(106 및 114-120))로부터의 현재의 데이터 저장소(예를 들어, 데이터 저장소(106, 114, 116, 118, 또는 120))를 포함할 수 있다.
단계 504에서, 방법(500)은 데이터 항목의 마스터 사본과 연관된 액세스 패턴을 결정하는 단계를 포함할 수 있다. 일부 경우에, 데이터 항목의 마스터 사본과 연관된 액세스 패턴은, 데이터 항목의 마스터 사본에 대해 분산형 저장 시스템에 의해 수신된 액세스 요청 세트(예를 들어, 판독 및/또는 기입 요청들)의 하나 이상의 발생 위치, 하나 이상의 발생 위치들 각각에서 수신된 액세스 요청 수, 액세스 요청들의 유형들(예를 들어, 판독, 기입 등), 액세스 요청들의 요일들/시간들, 데이터 액세스 경향들(예를 들어, 시간-기반의 데이터 액세스 경향, 클라이언트 기반의 데이터 액세스 경향들, 위치 기반의 액세스 경향들, 특정한 데이터 항목들 또는 유형들과 연관된 액세스 경향들, 특정한 액세스 트리거들과 연관된 액세스 경향들, 데이터 항목들의 특정한 그룹들과 연관된 액세스 경향들, 데이터 액세스 시퀀스들, 특정한 이벤트들과 연관된 액세스 경향들, 특정한 조건들과 연관된 액세스 경향들 등) 및/또는 기타 임의의 액세스 패턴 특성들을 포함할 수 있다.
일부 예에서, 데이터 항목의 마스터 사본과 연관된 액세스 패턴은, 데이터 항목의 마스터 사본에 대해 분산형 저장 시스템에 의해 수신된 액세스 요청 세트(예를 들어, 판독 및/또는 기입 요청들)의 하나 이상의 발생 위치, 및 하나 이상의 발생 위치 각각으로부터 수신된 액세스 요청 수를 포함한다. 하나 이상의 발생 위치는 액세스 요청 세트가 발생되는(예를 들어, 액세스 요청이 생성되거나, 전송되는 등의) 위치(예를 들어, 네트워크들, 클라이언트들, 주소들, 지리적 위치들, 지역들, 소스들 등)를 지칭할 수 있다. 액세스 요청 수는 액세스 요청의 수량 및/또는 빈도를 지칭할 수 있다. 예를 들어, 발생 위치로부터 수신된 액세스 요청의 수는, 그 위치로부터 얼마나 많은 액세스 요청이 발생하는지 및/또는 그 위치로부터 액세스 요청들이 수신되는 빈도를 지칭할 수 있다.
일부 경우에, 데이터 항목의 마스터 사본과 연관된 액세스 패턴은, 분산형 저장 시스템으로부터 수집되거나 및/또는 모니터링된 배치 데이터(예를 들어, 202)에 기초하여 결정될 수 있다. 예를 들어, 일부 경우에, 조율자 시스템(예를 들어, 140)은, 분산형 저장 시스템으로부터, 액세스 패턴 통계(예를 들어, 데이터 액세스 요청들 또는 동작들, 데이터 액세스 요청들 또는 동작들의 수 및/또는 빈도, 데이터 액세스 요청들 또는 동작들과 연관된 클라이언트들의 위치, 이러한 위치들로부터 이러한 클라이언트들에 의해 액세스된 데이터 항목들의 위치, 이러한 데이터 항목들의 위치와 이러한 클라이언트들의 위치 사이의 거리, 이러한 데이터 액세스 요청들 또는 동작들의 요일들/시간들 등), 네트워크 통계, 자원 통계, 데이터 액세스 제약들, 데이터 액세스 가입 레벨들, 네트워크 및/또는 분산형 저장 시스템 특성들, 시스템 이벤트들, 오류들, 고장들, 메트릭들, 데이터 항목 특성들, 클라이언트 및/또는 데이터 선호사항들, 데이터 유형들, 네트워크 또는 시스템 구성 정보, 데이터 액세스 정책들 등과 같은 정보를 수집할 수 있다.
단계 506에서, 방법(500)은, 데이터 항목의 마스터 사본과 연관된 액세스 패턴에 기초하여, 데이터 항목의 마스터 사본을 저장하기 위한 분산형 저장 시스템 상의 상이한 위치(예를 들어, 코어(102); 엣지(110A, 110B, 110C, 또는 110N); 데이터 저장소들(106, 114, 116, 118 또는 120) 중 상이한 하나)를 결정하는 단계를 포함할 수 있다. 일부 예에서, 상이한 위치는, 분산형 저장 시스템 상의 상이한 네트워크 또는 네트워크 세그먼트(예를 들어, 코어(102), 엣지(110A), 엣지(110B), 엣지(110C), 또는 엣지(110N) 및/또는 복수의 다른 데이터 저장소로부터의 상이한 데이터 저장소를 포함할 수 있다.
일부 양태에서, 데이터 항목의 마스터 사본을 저장하기 위한 분산형 저장 시스템 상의 상이한 위치를 결정하는 단계는, 데이터 항목의 마스터 사본과 연관된 액세스 패턴에 기초하여, 하나 이상의 발생 위치로부터, 데이터 항목의 마스터 사본과 연관된 가장 높은 수의 액세스 요청의 발생 위치를 식별하는 단계; 복수의 데이터 저장소 중 어느 것이 데이터 항목의 마스터 사본과 연관된 가장 높은 수의 액세스 요청의 발생 위치에 가장 가까이(예를 들어, 지리적으로 가장 가까이, 논리적으로 가장 가까이 등) 위치하는지를 결정하는 단계; 및 상이한 위치와 연관된 상이한 데이터 저장소가 데이터 항목의 마스터 사본과 연관된 가장 높은 수의 액세스 요청의 발생 위치에 가장 가까이 위치한다고 결정하는 단계를 포함할 수 있다.
가장 높은 수의 액세스 요청이 발생한 위치는, 데이터 항목의 마스터 사본에 대한 액세스 요청의 가장 많은 양 및/또는 빈도가 발생한 위치 및/또는 데이터 항목의 마스터 사본에 대한 액세스 요청의 가장 많은 양 및/또는 빈도가 분산형 저장 시스템에 의해 수신된 위치를 지칭할 수 있다. 일부 예에서, 하나 이상의 발생 위치는 데이터 항목의 마스터 사본에 대해 분산형 저장 시스템에 의해 수신된 액세스 요청 세트를 생성한 하나 이상의 클라이언트 디바이스(예를 들어, 160, 162, 164, 166)에 대응할 수 있다.
일부 예에서, 상이한 데이터 저장소가 데이터 항목의 마스터 사본과 연관된 가장 높은 수의 액세스 요청의 발생 위치에 가장 가까이 위치한다고 결정하는 단계는, (예를 들어, 상이한 위치와 연관된) 상이한 데이터 저장소와 발생 위치 사이의 홉 수가 복수의 데이터 저장소 각각과 하나 이상의 발생 위치로부터의 하나 이상의 나머지 위치(예를 들어, 가장 높은 수의 액세스 요청의 발생 위치를 제외한 하나 이상의 발생 위치) 각각 사이의 각각의 홉 수보다 작다고 결정하는 단계; 및/또는 상이한 데이터 저장소와 발생 위치 사이의 거리가 복수의 데이터 저장소 각각과 하나 이상의 발생 위치로부터의 하나 이상의 나머지 위치 각각 사이의 각각의 거리보다 작다고 결정하는 단계를 포함할 수 있다.
다른 예들에서, 상이한 데이터 저장소가 데이터 항목의 마스터 사본과 연관된 가장 높은 수의 액세스 요청의 발생 위치에 가장 가까이 위치한다고 결정하는 단계는, 그 대신에 또는 추가적으로, 상이한 데이터 저장소와 발생 위치 사이의 홉 수가 분산형 저장 시스템과 연관된 복수의 네트워크 또는 네트워크 세그먼트(예를 들어, 코어(102), 엣지들(110)) 각각과 하나 이상의 발생 위치로부터의 하나 이상의 나머지 위치 각각 사이의 각각의 홉 수보다 작다고 결정하는 단계; 및/또는 상이한 데이터 저장소와 발생 위치 사이의 거리가 분산형 저장 시스템과 연관된 복수의 네트워크 또는 네트워크 세그먼트(예를 들어, 코어(102), 엣지들(110)) 각각과 하나 이상의 발생 위치로부터의 하나 이상의 나머지 위치 각각 사이의 각각의 거리보다 작다고 결정하는 단계를 포함할 수 있다.
일부 양태에서, 데이터 항목의 마스터 사본을 저장하기 위한 분산형 저장 시스템 상의 상이한 위치를 결정하는 단계는, 분산형 저장 시스템 상에 저장된 제2 데이터 항목의 제2 마스터 사본(예를 들어, 마스터 데이터 항목(108A, 108B, 또는 108N))의 제2 현재 위치를 결정하는 단계; 데이터 항목의 마스터 사본과 연관된 액세스 패턴 및 제2 데이터 항목의 제2 마스터 사본과 연관된 제2 액세스 패턴에 기초하여, 제2 데이터 항목의 마스터 사본과 제2 데이터 항목의 제2 마스터 사본 양쪽 모두를 저장하기 위한 분산형 저장 시스템 상의 상이한 위치를 선택하는 단계; 및 데이터 항목의 마스터 사본과 제2 데이터 항목의 제2 마스터 사본 양쪽 모두를 분산형 저장 시스템 상의 상이한 위치에 배치하는 단계를 포함할 수 있다. 일부 예에서, 제2 데이터 항목의 제2 마스터 사본의 제2 현재 위치는 분산형 저장 시스템 상의 복수의 데이터 저장소들로부터의 제2 현재의 데이터 저장소를 포함할 수 있다. 게다가, 일부 예에서, 데이터 항목의 마스터 사본은 파티션화된 데이터 세트(예를 들어, 파티션화된 데이터(304))의 제1 파티션을 포함할 수 있고, 제2 데이터 항목의 제2 마스터 사본은 파티션화된 데이터 세트의 제2 파티션을 포함할 수 있다.
일부 경우에, 제2 액세스 패턴은 제2 데이터 항목의 제2 마스터 사본과 연관된 제2 세트의 액세스 요청들의 하나 이상의 각각의 발생 위치(예를 들어, 제2 세트의 액세스 요청들이 시작되거나 수신된 위치들) 및 하나 이상의 각각의 발생 위치 각각으로부터 수신된 제2 각각의 액세스 요청 수(예를 들어, 액세스 요청의 양 및/또는 빈도)를 포함할 수 있다. 일부 예에서, 데이터 항목의 마스터 사본과 제2 데이터 항목의 제2 마스터 사본 양쪽 모두를 분산형 저장 시스템의 상이한 위치에 배치하는 단계는, 데이터 항목의 마스터 사본을 현재 위치로부터 상이한 위치로 이동 또는 이주시키는 단계 및 제2 데이터 항목의 제2 마스터 사본을 제2 현재 위치로부터 상이한 위치로 이동 또는 이주시키는 단계를 포함할 수 있다.
단계 508에서, 방법(500)은 데이터 항목의 마스터 사본을 분산형 저장 시스템 상의 상이한 위치에 배치하는 단계를 포함할 수 있다. 일부 예에서, 분산형 저장 시스템 상의 상이한 위치에 데이터 항목의 마스터 사본을 배치하는 단계는, 데이터 항목의 마스터 사본을 현재의 데이터 저장소로부터 상이한 데이터 저장소로 이동 또는 이주시키는 단계를 포함할 수 있다.
일부 양태에서, 방법(500)은, 분산형 저장 시스템 상의 데이터 항목의 마스터 사본과 제2 데이터 항목이 임계 횟수 및/또는 시간 빈도만큼 함께 액세스되었다고 결정하는 것; 및 데이터 항목의 마스터 사본을 저장하기 위한 분산형 저장 시스템 상의 상이한 위치를 결정한 후, 제2 데이터 항목을 제2 데이터 항목의 현재의 각각의 위치로부터 상이한 위치로 이동시키는 것을 포함할 수 있다. 현재 각각의 위치는, 예를 들어, 분산형 저장 시스템 상의 복수의 데이터 저장소로부터의 데이터 저장소를 포함할 수 있다.
일부 양태에서, 방법(500)은, 데이터 항목의 마스터 사본이 분산형 저장 시스템 상에 저장된 제2 데이터 항목의 특정한 사본에 대한 참조(예를 들어, 포인터, 연관, 링크, 관계 등)를 포함한다고 결정하는 단계; 데이터 항목의 마스터 사본을 저장하기 위한 분산형 저장 시스템 상의 상이한 위치를 결정하고 데이터 항목의 마스터 사본이 제2 데이터 항목의 특정한 사본에 대한 참조를 포함한다고 결정하는 것에 응답하여, 제2 데이터 항목의 특정한 사본을 저장하기 위한 분산형 저장 시스템 상의 상이한 위치를 선택하는 단계; 및 제2 데이터 항목의 특정한 사본을 분산형 저장 시스템 상의 각각의 위치로부터 분산형 저장 시스템 상의 상이한 위치로 이동시키는 단계를 포함할 수 있다. 일부 예에서, 제2 데이터 항목의 특정한 사본은 제2 데이터 항목의 마스터 사본 또는 제2 데이터 항목의 마스터 사본의 복제본을 포함할 수 있다.
일부 구현에서, 방법(500)은 액세스 패턴 정보 및/또는 하나 이상의 다른 인자에 기초하여 데이터 항목을 배치(예를 들어, 이동, 이주, 저장 등)하기 위한 상이한 위치를 결정할 수 있다. 예를 들어, 일부 양태에서, 방법(500)은 분산형 저장 시스템과 연관된 정보를 수집하는 단계; 분산형 저장 시스템과 연관된 정보에 기초하여 분산형 저장 시스템 상의 하나 이상의 데이터 항목과 연관된 데이터 액세스 성능(예를 들어, 레이턴시, 응답 시간, 오류율 등)을 개선하거나 및/또는 분산형 저장 시스템의 성능(예를 들어, 전체로서의 분산형 저장 시스템 성능 및/또는 분산형 저장 시스템의 하나 이상의 컴포넌트/자원의 성능)을 개선할 것으로 추정되는 데이터 배치 액션을 결정하는 단계; 데이터 배치 액션을 결정하는 것에 응답하여, 적어도 하나의 데이터 항목(예를 들어, 마스터 데이터 항목들(108A, 108B 및/또는 108N); 및/또는 복제본 데이터 항목들(130A 및/또는 130N))을 적어도 하나의 저장 위치(예를 들어, 데이터 저장소, 코어(102), 엣지(110A), 엣지(110B), 엣지(110C), 또는 엣지(110N))로부터 적어도 하나의 상이한 저장 위치(예를 들어, 상이한 데이터 저장소, 코어(102), 엣지(110A), 엣지(110B), 엣지(110C), 또는 엣지(110N))로 이동시키는 단계를 포함할 수 있다.
일부 예에서, 분산형 저장 시스템과 연관된 수집된 정보는, 하나 이상의 자원(예를 들어, 저장 노드들(104 및/또는 112), 컴퓨팅 노드들, 코어(102), 엣지들(110), 네트워크 디바이스들, 대역폭 등)과 연관된 통계, 분산형 저장 시스템의 하나 이상의 데이터 항목과 연관된 하나 이상의 데이터 액세스 제약(예를 들어, 위치 기반의 제약들, 정책 기반의 제약들, 클라이언트 기반의 제약들, 네트워크 기반의 제약들, 자원 기반의 제약들, 소스 기반의 제약들, 데이터 유형 기반의 제약들, 가입 기반의 제약들 등), 데이터 저장 제약들(예를 들어, 데이터 주권법, 데이터 유형들, 자원 유형들, 네트워크 활용도, 자원 활용도, 요일/시간, 자원 가용성 등에 기초한 제약들) , 하나 이상의 이벤트(예를 들어, 오류들, 고장들, 네트워크 변경들, 트래픽 변경들, 액세스 이벤트들, 시스템 이벤트들 등), 데이터 액세스 패턴들, 및/또는 분산형 저장 시스템 및/또는 분산형 저장 시스템과 연관된 하나 이상의 네트워크와 연관된 네트워크 통계를 포함할 수 있다. 일부 예에서, 하나 이상의 자원은, 저장 노드, 컴퓨팅 노드, 가상 머신, 소프트웨어 컨테이너, 서버, 네트워크, 및/또는 네트워킹 디바이스(예를 들어, 스위치, 라우터, 방화벽, 기기 등)를 포함할 수 있다.
일부 경우에, 데이터 배치 액션은, 적어도 하나의 데이터 항목을, 적어도 하나의 저장 위치(예를 들어, 데이터 저장소, 코어(102), 엣지(110A), 엣지(110B), 엣지(110C), 또는 엣지(110N)로부터 적어도 하나의 상이한 저장 위치로 이동시키는 것을 포함할 수 있다. 일부 예에서, 적어도 하나의 저장 위치 및 적어도 하나의 상이한 저장 위치는, 복수의 데이터 저장소들로부터의 상이한 데이터 저장소들, 분산형 저장 시스템과 연관된 상이한 네트워크들, 상이한 네트워크 세그먼트들 등을 포함할 수 있다.
일부 예에서, 복수의 더 많은 인자들(예를 들어, 액세스 패턴들, 성능 통계, 자원 메트릭들, 환경 조건들, 이벤트들 등)에 기초하여 데이터 배치 액션(예를 들어, 데이터 항목을 이동시키거나 이주시키는 것)을 결정할 때, 데이터 배치 액션을 결정하는데 이용되는 인자들은 가중치부여될 수 있다. 예를 들어, 데이터 항목에 대한 데이터 배치 액션이 상이한 액세스 위치들로부터의 데이터 항목의 액세스 빈도, 분산형 저장 시스템 상의 상이한 저장 노드들의 상황, 및 분산형 저장 시스템의 상이한 네트워크들 또는 세그먼트들에서 이용가능한 대역폭의 양에 기초하여 결정된다고 가정한다. 여기서, 액세스 빈도, 상이한 저장 노드들의 상황, 및 배치 액션을 결정하는데 이용되는 가용 대역폭의 양에 대해, 상이한 가중치들이 결정되고 적용될 수 있다. 이것은, 더 높은 가중치, 강조 또는 우선순위를 받는 소정의 인자들과 함께, 배치 액션에 대해 다양한 인자가 고려되는 것을 허용할 것이다.
본 개시내용은 이제, 스위치들, 라우터들, 노드들, 서버들, 클라이언트 디바이스들, 조정기들(예를 들어, 조율자 시스템(140)) 등의, 예시적인 네트워크 디바이스들 및 컴퓨팅 디바이스들을 나타내는 도 6 및 도 7을 참조한다.
도 6은, 스위칭, 라우팅, 부하 밸런싱, 및 기타의 네트워킹 동작을 수행하기에 적합한 예시적인 네트워크 디바이스(600)를 나타낸다. 네트워크 디바이스(600)는, 중앙 처리 유닛(CPU)(604), 인터페이스(602), 및 버스(610)(예를 들어, PCI 버스)를 포함한다. 적절한 소프트웨어 또는 펌웨어의 제어하에 동작할 때, CPU(604)는, 패킷 관리, 오류 검출, 및/또는 라우팅 기능들을 실행하는 것을 담당한다. CPU(604)는 바람직하게는 운영 체제 및 임의의 적절한 애플리케이션 소프트웨어를 포함한 소프트웨어의 제어하에 이들 모든 기능을 달성한다. CPU(604)는 INTEL X86 계열의 마이크로프로세서로부터의 프로세서 등의 하나 이상의 프로세서(608)를 포함할 수 있다. 일부 경우에, 프로세서(608)는 네트워크 디바이스(600)의 동작을 제어하기 위해 특별히 설계된 하드웨어일 수 있다. 일부 경우에, 메모리(606)(예를 들어, 비휘발성 RAM, ROM 등)도 역시 CPU(604)의 일부를 형성한다. 그러나, 메모리가 시스템에 결합될 수 있는 많은 상이한 방법들이 있다.
인터페이스(602)는 전형적으로 모듈형 인터페이스 카드들("라인 카드들"이라고도 함)로서 제공된다. 일반적으로, 이들은 네트워크를 통한 데이터 패킷의 전송 및 수신을 제어하고 때로는 네트워크 디바이스(600)와 함께 이용되는 다른 주변기기를 지원한다. 제공될 수 있는 인터페이스 중에는, 이더넷 인터페이스, 프레임 중계 인터페이스, 케이블 인터페이스, DSL 인터페이스, 토큰 링 인터페이스 등이 있다. 추가로, 고속 토큰 링 인터페이스, 무선 인터페이스, 이더넷 인터페이스, 기가비트 이더넷 인터페이스, ATM 인터페이스, HSSI 인터페이스, POS 인터페이스, FDDI 인터페이스, WIFI 인터페이스, 3G/4G/5G 셀룰러 인터페이스, CAN BUS, LoRA 등과 같은 다양한 초고속 인터페이스가 제공될 수 있다. 일반적으로, 이들 인터페이스는 적절한 매체와의 통신에 적절한 포트를 포함할 수 있다. 일부 경우에, 이들은 독립 프로세서를 포함하고 일부 경우에는 휘발성 RAM을 포함할 수도 있다. 독립 프로세서는, 패킷 스위칭, 매체 제어, 신호 처리, 암호화 처리, 및 관리 등의, 통신 집약적인 작업을 제어할 수 있다. 통신 집약적인 작업들을 위해 별도의 프로세서들을 제공함으로써, 이들 인터페이스는 마스터 CPU(예를 들어, 604)가, 라우팅 계산들, 네트워크 진단들, 보안 기능들 등을 효율적으로 수행하는 것을 허용한다.
도 6에 도시된 시스템은 본 개시내용의 하나의 특정한 네트워크 디바이스이지만, 본 개시내용이 구현될 수 있는 유일한 네트워크 디바이스 아키텍쳐를 의미하는 것은 결코 아니다. 예를 들어, 통신뿐만 아니라 라우팅 계산 등을 처리하는 단일 프로세서를 갖는 아키텍쳐가 종종 이용된다. 또한, 다른 유형의 인터페이스 및 매체도 네트워크 디바이스(600)와 함께 이용될 수 있다.
네트워크 디바이스의 구성에 관계없이, 여기서 설명된 로밍, 경로 최적화 및 라우팅 기능들을 위한 메커니즘 및 범용 네트워크 동작을 위한 프로그램 명령어를 저장하도록 구성된 (메모리(606)를 포함한) 하나 이상의 메모리 또는 메모리 모듈을 이용할 수 있다. 프로그램 명령어는, 예를 들어, 운영 체제 및/또는 하나 이상의 애플리케이션의 동작을 제어할 수 있다. 메모리 또는 메모리들은 또한, 이동성 바인딩, 등록, 및 연관 테이블 등의 테이블을 저장하도록 구성될 수 있다. 메모리(606)는 또한, 다양한 소프트웨어 컨테이너 및 가상화된 실행 환경 및 데이터를 보유할 수 있다.
네트워크 디바이스(600)는 또한, 라우팅 및/또는 스위칭 동작들을 수행하도록 구성될 수 있는 주문형 집적 회로(ASIC)를 포함할 수 있다. ASIC은, 예를 들어, 라우팅, 스위칭, 및/또는 데이터 저장 동작들 등의, 데이터 및 신호를 교환하고 네트워크 디바이스(600)에 의한 다양한 유형의 동작을 조율하기 위해 버스(610)를 통해 네트워크 디바이스(600)의 다른 컴포넌트와 통신할 수 있다.
도 7은 데이터 연산들 및 요청들을 처리하고, 데이터 항목들을 저장 및 이동하고, 데이터 배치 액션들을 조율하고, 다른 컴퓨팅 동작들을 수행하는데 이용될 수 있는 시스템(700)의 한 예시적인 컴퓨팅 시스템 아키텍쳐를 나타낸다. 이 예에서, 시스템(700)의 컴포넌트들은 버스 등의 접속부(706)를 이용하여 서로 전기적으로 통신한다. 시스템(700)은, 처리 유닛(CPU 또는 프로세서)(704)과, ROM(read only memory)(718) 및 RAM(random access memory)(716) 등의 메모리(720)를 포함한 다양한 시스템 컴포넌트를 프로세서(704)에 결합하는 접속부(706)를 포함한다. 시스템(700)은, 프로세서(704)와 직접 접속되거나, 프로세서(704)에 근접하여 또는 그 일부로서 통합된 고속 메모리의 캐시를 포함할 수 있다. 시스템(700)은 프로세서(704)에 의한 빠른 액세스를 위해 메모리(720) 및/또는 저장 디바이스(708)로부터 캐시(702)로 데이터를 복사할 수 있다. 이러한 방식으로, 캐시는 데이터를 기다리는 동안 프로세서(704) 지연을 피하는 성능 향상을 제공할 수 있다. 이들 및 다른 모듈들은 다양한 액션들을 수행하기 위해 프로세서(704)를 제어하거나 제어하도록 구성될 수 있다. 다른 메모리(720)도 사용하기 위해 역시 이용가능할 수 있다. 메모리(720)는 상이한 성능 특성을 갖는 복수의 상이한 유형의 메모리를 포함할 수 있다. 프로세서(704)는, 임의의 범용 프로세서, 및 프로세서(704)뿐만 아니라 소프트웨어 명령어가 실제 프로세서 설계에 통합된 특별 목적 프로세서를 제어하도록 구성된 저장 디바이스(708)에 저장된 서비스 1(710), 서비스 2(712) 및 서비스 3(714) 등의 하드웨어 또는 소프트웨어 서비스를 포함할 수 있다. 프로세서(704)는, 복수의 코어 또는 프로세서, 버스, 메모리 제어기, 캐시 등을 포함하는, 완전 자립형 컴퓨팅 시스템일 수 있다. 멀티-코어 프로세서는 대칭 또는 비대칭일 수 있다.
컴퓨팅 시스템(700)과의 사용자 상호작용을 가능케하기 위해, 입력 디바이스(722)는, 음성용 마이크로폰, 제스처 또는 그래픽 입력용 터치 감지 스크린, 키보드, 마우스, 모션 입력, 음성 등의 임의의 수의 입력 메커니즘을 나타낼 수 있다. 출력 디바이스(724)는 또한, 본 기술분야의 통상의 기술자에게 알려진 다수의 출력 메커니즘 중 하나 이상일 수 있다. 일부 경우에, 다중양태 시스템은 사용자가 컴퓨팅 시스템(700)과 통신하기 위해 복수 유형의 입력을 제공할 수 있게 할 수 있다. 통신 인터페이스(726)는 일반적으로 사용자 입력 및 시스템 출력을 통제하고 관리할 수 있다. 임의의 특정한 하드웨어 구성에서 작동하는 것에 관한 어떠한 제한도 없으므로, 여기서의 기본적인 피처들은 그것들이 개발될 때 개선된 하드웨어 또는 펌웨어 배열들로 쉽게 대체될 수 있다.
저장 디바이스(708)는 비휘발성 메모리이며, 자기 카세트, 플래시 메모리 카드, 솔리드 스테이트 메모리 디바이스, 디지털 다용도 디스크, 카트리지, 랜덤 액세스 메모리(RAM)(716), 판독 전용 메모리(ROM)(718), 및 이들의 하이브리드 등의, 컴퓨터에 의해 액세스될 수 있는 데이터를 저장할 수 있는 하드 디스크 또는 다른 유형의 컴퓨터 판독가능한 매체일 수 있다.
저장 디바이스(708)는 프로세서(704)를 제어하기 위한 서비스(710, 712, 714)를 포함할 수 있다. 다른 하드웨어 또는 소프트웨어 모듈도 고려된다. 저장 디바이스(708)는 접속부(706)에 접속될 수 있다. 한 양태에서, 특정한 기능을 수행하는 하드웨어 모듈은, 그 기능을 실행하기 위한, 프로세서(704), 접속(706), 출력 디바이스(724) 등의 필요한 하드웨어 컴포넌트와 관련하여 컴퓨터 판독가능한 매체에 저장된 소프트웨어 컴포넌트를 포함할 수 있다.
설명의 명료성을 위해, 일부 경우에 본 기술은, 디바이스, 디바이스 컴포넌트, 소프트웨어 또는 하드웨어와 소프트웨어의 조합으로 구현된 방법의 단계 또는 루틴을 포함하는 기능 블록들을 포함한 개개의 기능 블록을 포함하는 것으로 제시될 수 있다.
일부 실시예에서, 컴퓨터 판독가능한 저장 디바이스, 매체, 및 메모리는, 비트 스트림 등을 포함하는 케이블 또는 무선 신호를 포함할 수 있다. 그러나, 언급될 때, 비일시적인 컴퓨터 판독가능한 저장 매체는, 에너지, 캐리어 신호, 전자기파, 및 신호 그 자체 등의 매체들을 명시적으로 배제한다.
전술된 예들에 따른 방법은, 컴퓨터 판독가능한 매체에 저장되거나 또는 다르게는, 이용가능한 컴퓨터 실행가능한 명령어를 이용하여 구현될 수 있다. 이러한 명령어는, 예를 들어, 범용 컴퓨터, 특별 목적 컴퓨터 또는 특별 목적 처리 디바이스로 하여금 소정의 기능 또는 기능 그룹을 수행하게 하거나 또는 다르게는, 수행하게 하도록 구성된 명령어 및 데이터를 포함할 수 있다. 이용된 컴퓨터 자원의 일부는 네트워크를 통해 액세스될 수 있다. 컴퓨터 실행가능한 명령어는, 예를 들어, 2진, 어셈블리어 등의 중간 포멧의 명령어, 펌웨어 또는 소스 코드일 수 있다. 명령어, 이용된 정보, 및/또는 설명된 예에 따른 방법 동안 생성된 정보를 저장하는데 이용될 수 있는 컴퓨터 판독가능한 매체의 예는, 자기 또는 광 디스크, 플래시 메모리, 비휘발성 메모리를 갖춘 USB 디바이스, 네트워킹된 저장 디바이스 등을 포함한다.
이들 개시내용에 따른 방법을 구현하는 디바이스는, 하드웨어, 펌웨어 및/또는 소프트웨어를 포함할 수 있으며 다양한 폼 팩터 중 임의의 것을 취할 수 있다. 이러한 폼 팩터의 전형적인 예는, 랩탑, 스마트 폰, 소형 폼 팩터 개인용 컴퓨터, 개인용 디지털 보조도구, 랙마운트 디바이스, 독립형 디바이스 등을 포함한다.
여기서 설명된 기능은 또한, 주변기기 또는 애드-인 카드에서도 구현될 수 있다. 이러한 기능은 또한, 추가 예로서, 상이한 칩들 중의 회로 보드 또는 단일 디바이스에서 실행되는 상이한 프로세스들 상에서 구현될 수 있다.
명령어, 이러한 명령어를 운반하기 위한 매체, 명령어를 실행하기 위한 컴퓨팅 자원, 및 이러한 컴퓨팅 자원을 지원하기 위한 기타의 구조들은, 이들 개시내용에서 설명된 기능을 제공하기 위한 수단이다.
다양한 예와 기타의 정보가 첨부된 청구항들의 범위 내의 양태들을 설명하는데 이용되었지만, 본 기술분야의 통상의 기술자라면 이들 예를 이용하여 다양한 구현을 도출할 수 있기 때문에, 이러한 예들의 특정한 피처들 또는 배열들에 기초하여 청구항의 제한이 암시되어서는 안된다. 또한 일부 주제가 구조적 피처 및/또는 방법 단계의 예 특유의 용어로 설명되었을 수 있지만, 첨부된 청구항들에 정의된 주제가 반드시 이들 설명된 피처 또는 동작으로 제한되는 것은 아니라는 것을 이해해야 한다. 예를 들어, 이러한 기능은 상이하게 분산되거나 여기서 식별된 것들과는 다른 컴포넌트들에서 수행될 수 있다. 오히려, 설명된 피처 및 단계는, 첨부된 청구항들의 범위 내에서 시스템 및 방법의 컴포넌트의 예로서 개시된 것이다.
"세트 중 적어도 하나"라고 기재한 청구항 용어는 세트의 한 구성원 또는 세트의 여러 멤버들이 그 청구항을 충족한다는 것을 나타낸다. 예를 들어, "A와 B 중 적어도 하나"라고 기재한 청구항 용어는, A, B, 또는 A 및 B를 의미한다.

Claims (20)

  1. 방법으로서,
    분산형 저장 시스템 상에 저장된 데이터 항목의 마스터 사본의 현재 위치를 결정하는 단계, ―상기 데이터 항목의 마스터 사본의 상기 현재 위치는 상기 분산형 저장 시스템 상의 복수의 데이터 저장소로부터의 현재의 데이터 저장소를 포함함―;
    상기 데이터 항목의 마스터 사본과 연관된 액세스 패턴을 결정하는 단계, ―상기 액세스 패턴은 상기 데이터 항목의 마스터 사본에 대해 상기 분산형 저장 시스템에 의해 수신된 액세스 요청 세트의 하나 이상의 발생 위치 및 상기 하나 이상의 발생 위치 각각으로부터 수신된 각각의 액세스 요청 수를 포함함―;
    상기 데이터 항목의 마스터 사본과 연관된 상기 액세스 패턴에 기초하여, 상기 데이터 항목의 마스터 사본을 저장하기 위한 상기 분산형 저장 시스템 상의 상이한 위치를 결정하는 단계, ―상기 상이한 위치는 상기 복수의 데이터 저장소와는 상이한 데이터 저장소를 포함함―; 및
    상기 데이터 항목의 마스터 사본을 상기 분산형 저장 시스템 상의 상기 상이한 위치에 배치하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 데이터 항목의 마스터 사본을 저장하기 위한 상기 분산형 저장 시스템 상의 상기 상이한 위치를 결정하는 단계는,
    상기 데이터 항목의 마스터 사본과 연관된 상기 액세스 패턴에 기초하여, 상기 하나 이상의 발생 위치로부터, 상기 데이터 항목의 마스터 사본과 연관된 가장 높은 수의 액세스 요청의 발생 위치를 식별하는 단계;
    상기 복수의 데이터 저장소 중 어느 것이 상기 데이터 항목의 마스터 사본과 연관된 가장 높은 수의 액세스 요청의 발생 위치에 가장 가까이 위치하는지를 결정하는 단계; 및
    상기 상이한 위치와 연관된 상기 상이한 데이터 저장소가 상기 데이터 항목의 마스터 사본과 연관된 가장 높은 수의 액세스 요청의 발생 위치에 가장 가까이 위치한다고 결정하는 단계
    를 포함하는, 방법.
  3. 제2항에 있어서, 상기 하나 이상의 발생 위치는 상기 데이터 항목의 마스터 사본에 대해 상기 분산형 저장 시스템에 의해 수신된 액세스 요청 세트를 생성한 하나 이상의 클라이언트 디바이스에 대응하고, 상기 분산형 저장 시스템 상의 상기 상이한 위치에 상기 데이터 항목의 마스터 사본을 배치하는 단계는, 상기 데이터 항목의 마스터 사본을 상기 현재의 데이터 저장소로부터 상기 상이한 데이터 저장소로 이동하는 단계를 포함하는, 방법.
  4. 제2항 또는 제3항에 있어서, 상기 상이한 데이터 저장소가 상기 데이터 항목의 마스터 사본과 연관된 가장 높은 수의 액세스 요청의 발생 위치에 가장 가까이 위치한다고 결정하는 단계는,
    상기 상이한 데이터 저장소와 상기 발생 위치 사이의 홉 수가 상기 복수의 데이터 저장소 각각과 상기 하나 이상의 발생 위치로부터의 하나 이상의 나머지 위치 각각 사이의 각각의 홉 수보다 작다고 결정하는 단계; 및
    상기 상이한 데이터 저장소와 상기 발생 위치 사이의 거리가 상기 복수의 데이터 저장소 각각과 상기 하나 이상의 발생 위치로부터의 하나 이상의 나머지 위치 각각 사이의 각각의 거리보다 작다고 결정하는 단계
    중 적어도 하나를 포함하는, 방법.
  5. 제1항에 있어서, 상기 데이터 항목의 마스터 사본을 저장하기 위한 상기 분산형 저장 시스템 상의 상기 상이한 위치를 결정하는 단계는,
    상기 분산형 저장 시스템 상에 저장된 제2 데이터 항목의 제2 마스터 사본의 제2 현재 위치를 결정하는 단계, ―상기 제2 데이터 항목의 제2 마스터 사본의 상기 제2 현재 위치는, 상기 분산형 저장 시스템 상의 상기 복수의 데이터 저장소로부터의 제2 현재의 데이터 저장소를 포함함―;
    상기 데이터 항목의 마스터 사본과 연관된 상기 액세스 패턴 및 상기 제2 데이터 항목의 제2 마스터 사본과 연관된 제2 액세스 패턴에 기초하여, 상기 제2 데이터 항목의 마스터 사본과 상기 제2 데이터 항목의 제2 마스터 사본 양쪽 모두를 저장하기 위한 상기 분산형 저장 시스템 상의 상이한 위치를 선택하는 단계; 및
    상기 데이터 항목의 마스터 사본과 상기 제2 데이터 항목의 제2 마스터 사본 양쪽 모두를 상기 분산형 저장 시스템 상의 상기 상이한 위치에 배치하는 단계를 포함하는, 방법.
  6. 제5항에 있어서, 상기 제2 액세스 패턴은, 상기 제2 데이터 항목의 제2 마스터 사본과 연관된 제2 세트의 액세스 요청들의 하나 이상의 각각의 발생 위치 및 상기 하나 이상의 각각의 발생 위치 각각으로부터 수신된 제2 각각의 액세스 요청 수를 포함하고, 상기 데이터 항목의 마스터 사본과 상기 제2 데이터 항목의 제2 마스터 사본 양쪽 모두를 상기 분산형 저장 시스템 상의 상이한 위치에 배치하는 단계는 상기 데이터 항목의 마스터 사본을 상기 현재 위치로부터 상기 상이한 위치로 이동시키는 단계 및 상기 제2 데이터 항목의 제2 마스터 사본을 상기 제2 현재 위치로부터 상기 상이한 위치로 이동시키는 단계를 포함하는, 방법.
  7. 제5항 또는 제6항에 있어서, 상기 데이터 항목의 마스터 사본은 파티션화된 데이터 세트의 제1 파티션을 포함하고, 상기 제2 데이터 항목의 제2 마스터 사본은 상기 파티션화된 데이터 세트의 제2 파티션을 포함하는, 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 분산형 저장 시스템 상의 상기 데이터 항목의 마스터 사본과 제2 데이터 항목이 임계 횟수만큼 함께 액세스되었다고 결정하는 단계; 및
    상기 데이터 항목의 마스터 사본을 저장하기 위한 상기 분산형 저장 시스템 상의 상이한 위치를 결정한 후, 상기 제2 데이터 항목을 상기 제2 데이터 항목의 현재의 각각의 위치로부터 상기 상이한 위치로 이동시키는 단계를 더 포함하고, 상기 현재의 각각의 위치는 상기 분산형 저장 시스템 상의 상기 복수의 데이터 저장소 중 하나를 포함하는, 방법.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서,
    상기 데이터 항목의 마스터 사본이 상기 분산형 저장 시스템 상에 저장된 제2 데이터 항목의 특정한 사본에 대한 참조를 포함한다고 결정하는 단계를 더 포함하고, ―상기 제2 데이터 항목의 상기 특정한 사본은 상기 제2 데이터 항목의 각각의 마스터 사본 또는 상기 제2 데이터 항목의 각각의 마스터 사본의 복제본 중 하나를 포함함―;
    상기 데이터 항목의 마스터 사본을 저장하기 위한 상기 분산형 저장 시스템 상의 상이한 위치를 결정하고 상기 데이터 항목의 마스터 사본이 상기 제2 데이터 항목의 상기 특정한 사본에 대한 참조를 포함한다고 결정하는 것에 응답하여, 상기 제2 데이터 항목의 상기 특정한 사본을 저장하기 위한 상기 분산형 저장 시스템 상의 상기 상이한 위치를 선택하는 단계; 및
    상기 제2 데이터 항목의 상기 특정한 사본을 상기 분산형 저장 시스템 상의 각각의 위치로부터 상기 분산형 저장 시스템 상의 상기 상이한 위치로 이동시키는 단계
    를 더 포함하는 방법.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서,
    상기 분산형 저장 시스템과 연관된 정보를 수집하는 단계, ―상기 정보는, 하나 이상의 자원과 연관된 통계, 상기 분산형 저장 시스템 상의 하나 이상의 데이터 항목과 연관된 하나 이상의 데이터 액세스 제한, 하나 이상의 이벤트, 데이터 액세스 패턴들, 및 상기 분산형 저장 시스템 및 상기 분산형 저장 시스템과 연관된 하나 이상의 네트워크 중 적어도 하나와 연관된 네트워크 통계 중에서 적어도 하나를 포함하고, 상기 하나 이상의 자원은, 저장 노드, 컴퓨팅 노드, 가상 머신, 소프트웨어 컨테이너, 서버, 네트워크 및 네트워킹 디바이스 중 적어도 하나를 포함함―;
    상기 분산형 저장 시스템과 연관된 정보에 기초하여, 상기 분산형 저장 시스템 상의 하나 이상의 데이터 항목과 연관된 데이터 액세스 성능을 개선하거나 상기 분산형 저장 시스템의 성능을 개선하는 것으로 추정되는 데이터 배치 액션을 결정하는 단계, ―상기 데이터 배치 액션은, 적어도 하나의 데이터 항목을 적어도 하나의 저장 위치로부터 적어도 하나의 상이한 저장 위치로 이동시키는 것을 포함하고, 상기 적어도 하나의 저장 위치 및 상기 적어도 하나의 상이한 저장 위치는 상기 복수의 데이터 저장소로부터의 상이한 데이터 저장소들을 포함함―; 및
    상기 데이터 배치 액션을 결정하는 것에 응답하여, 상기 적어도 하나의 데이터 항목을 상기 적어도 하나의 저장 위치로부터 상기 적어도 하나의 상이한 저장 위치로 이동시키는 단계
    를 더 포함하는 방법.
  11. 시스템으로서,
    하나 이상의 프로세서; 및
    명령어들이 저장된 적어도 하나의 컴퓨터 판독가능한 저장 매체
    를 포함하고, 상기 명령어들은, 상기 하나 이상의 프로세서에 의해 실행될 때, 상기 하나 이상의 프로세서로 하여금:
    분산형 저장 시스템 상에 저장된 데이터 항목의 마스터 사본의 현재 위치를 결정하고, ―상기 데이터 항목의 마스터 사본의 상기 현재 위치는 상기 분산형 저장 시스템 상의 복수의 데이터 저장소로부터의 현재의 데이터 저장소를 포함함―;
    상기 데이터 항목의 마스터 사본과 연관된 액세스 패턴을 결정하고, ―상기 액세스 패턴은 상기 데이터 항목의 마스터 사본에 대해 상기 분산형 저장 시스템에 의해 수신된 액세스 요청 세트의 하나 이상의 발생 위치 및 상기 하나 이상의 발생 위치 각각으로부터 수신된 각각의 액세스 요청 수를 포함함―;
    상기 데이터 항목의 마스터 사본과 연관된 상기 액세스 패턴에 기초하여, 상기 데이터 항목의 마스터 사본을 저장하기 위한 상기 분산형 저장 시스템 상의 상이한 위치를 결정하고, ―상기 상이한 위치는 상기 복수의 데이터 저장소와는 상이한 데이터 저장소를 포함함―; 및
    상기 데이터 항목의 마스터 사본을 상기 분산형 저장 시스템 상의 상기 상이한 위치에 배치하게 하는, 시스템.
  12. 제11항에 있어서, 상기 데이터 항목의 마스터 사본을 상기 분산형 저장 시스템 상의 상기 상이한 위치에 배치하는 것은, 상기 데이터 항목의 마스터 사본을 상기 현재의 데이터 저장소로부터 상기 상이한 데이터 저장소로 이동시키는 것을 포함하고, 상기 데이터 항목의 마스터 사본을 저장하기 위한 상기 분산형 저장 시스템 상의 상이한 위치를 결정하는 것은,
    상기 데이터 항목의 마스터 사본과 연관된 상기 액세스 패턴에 기초하여, 상기 하나 이상의 발생 위치로부터, 상기 데이터 항목의 마스터 사본과 연관된 가장 높은 수의 액세스 요청의 발생 위치를 식별하는 것;
    상기 복수의 데이터 저장소 중 어느 것이 상기 데이터 항목의 마스터 사본과 연관된 가장 높은 수의 액세스 요청의 발생 위치에 가장 가까이 위치하는지를 결정하는 것; 및
    상기 상이한 위치와 연관된 상기 상이한 데이터 저장소가 상기 데이터 항목의 마스터 사본과 연관된 가장 높은 수의 액세스 요청의 발생 위치에 가장 가까이 위치한다고 결정하는 것
    을 포함하는, 시스템.
  13. 제12항에 있어서, 상기 상이한 데이터 저장소가 상기 데이터 항목의 마스터 사본과 연관된 가장 높은 수의 액세스 요청의 발생 위치에 가장 가까이 위치한다고 결정하는 것은,
    상기 상이한 데이터 저장소와 상기 발생 위치 사이의 홉 수가 상기 복수의 데이터 저장소 각각과 상기 하나 이상의 발생 위치로부터의 하나 이상의 나머지 위치 각각 사이의 각각의 홉 수보다 작다고 결정하는 것; 및
    상기 상이한 데이터 저장소와 상기 발생 위치 사이의 거리가 상기 복수의 데이터 저장소 각각과 상기 하나 이상의 발생 위치로부터의 하나 이상의 나머지 위치 각각 사이의 각각의 거리보다 작다고 결정하는 것
    중 적어도 하나를 포함하는, 시스템.
  14. 제11항에 있어서, 상기 데이터 항목의 마스터 사본을 저장하기 위한 상기 분산형 저장 시스템 상의 상기 상이한 위치를 결정하는 것은,
    상기 분산형 저장 시스템 상에 저장된 제2 데이터 항목의 제2 마스터 사본의 제2 현재 위치를 결정하는 것, ―상기 제2 데이터 항목의 제2 마스터 사본의 상기 제2 현재 위치는, 상기 분산형 저장 시스템 상의 상기 복수의 데이터 저장소로부터의 제2 현재의 데이터 저장소를 포함함―;
    상기 데이터 항목의 마스터 사본과 연관된 상기 액세스 패턴 및 상기 제2 데이터 항목의 제2 마스터 사본과 연관된 제2 액세스 패턴에 기초하여, 상기 제2 데이터 항목의 마스터 사본과 상기 제2 데이터 항목의 제2 마스터 사본 양쪽 모두를 저장하기 위한 상기 분산형 저장 시스템 상의 상이한 위치를 선택하는 것; 및
    상기 데이터 항목의 마스터 사본과 상기 제2 데이터 항목의 제2 마스터 사본 양쪽 모두를 상기 분산형 저장 시스템 상의 상기 상이한 위치에 배치하는 것을 포함하는, 시스템.
  15. 제14항에 있어서, 상기 데이터 항목의 마스터 사본은 파티션화된 데이터 세트의 제1 파티션을 포함하고, 상기 제2 데이터 항목의 제2 마스터 사본은 상기 파티션화된 데이터 세트의 제2 파티션을 포함하고, 상기 제2 액세스 패턴은 상기 제2 데이터 항목의 제2 마스터 사본과 연관된 제2 세트의 액세스 요청들의 하나 이상의 각각의 발생 위치 및 상기 하나 이상의 각각의 발생 위치 각각으로부터 수신된 제2 각각의 액세스 요청 수를 포함하는, 시스템.
  16. 제11항 내지 제15항 중 어느 한 항에 있어서, 상기 적어도 하나의 컴퓨터 판독가능한 저장 매체는 명령어들을 저장하고, 상기 명령어들은, 상기 하나 이상의 프로세서에 의해 실행될 때, 상기 시스템으로 하여금:
    상기 분산형 저장 시스템 상의 상기 데이터 항목의 마스터 사본과 제2 데이터 항목이 임계 횟수만큼 함께 액세스되었다고 결정하고;
    상기 데이터 항목의 마스터 사본을 저장하기 위한 상기 분산형 저장 시스템 상의 상이한 위치를 결정한 후, 상기 제2 데이터 항목을 상기 제2 데이터 항목의 현재의 각각의 위치로부터 상기 상이한 위치로 이동시키게 하는 ―상기 현재의 각각의 위치는 상기 분산형 저장 시스템 상의 상기 복수의 데이터 저장소 중 하나를 포함함―, 시스템.
  17. 제11항 내지 제16항 중 어느 한 항에 있어서, 상기 적어도 하나의 컴퓨터 판독가능한 저장 매체는 명령어들을 저장하고, 상기 명령어들은, 상기 하나 이상의 프로세서에 의해 실행될 때, 상기 시스템으로 하여금:
    상기 데이터 항목의 마스터 사본이 상기 분산형 저장 시스템 상에 저장된 제2 데이터 항목의 특정한 사본에 대한 참조를 포함한다고 결정하고, ―상기 제2 데이터 항목의 상기 특정한 사본은 상기 제2 데이터 항목의 각각의 마스터 사본 또는 상기 제2 데이터 항목의 각각의 마스터 사본의 복제본 중 하나를 포함함―;
    상기 데이터 항목의 마스터 사본을 저장하기 위한 상기 분산형 저장 시스템 상의 상이한 위치를 결정하고 상기 데이터 항목의 마스터 사본이 상기 제2 데이터 항목의 상기 특정한 사본에 대한 참조를 포함한다고 결정하는 것에 응답하여, 상기 제2 데이터 항목의 상기 특정한 사본을 저장하기 위한 상기 분산형 저장 시스템 상의 상기 상이한 위치를 선택하고;
    상기 제2 데이터 항목의 상기 특정한 사본을 상기 분산형 저장 시스템 상의 각각의 위치로부터 상기 분산형 저장 시스템 상의 상기 상이한 위치로 이동시키게 하는, 시스템.
  18. 제11항 내지 제19항 중 어느 한 항에 있어서, 상기 적어도 하나의 컴퓨터 판독가능한 저장 매체는 명령어들을 저장하고, 상기 명령어들은, 상기 하나 이상의 프로세서에 의해 실행될 때, 상기 시스템으로 하여금:
    상기 분산형 저장 시스템과 연관된 정보를 수집하고, ―상기 정보는, 하나 이상의 자원과 연관된 통계, 상기 분산형 저장 시스템 상의 하나 이상의 데이터 항목과 연관된 하나 이상의 데이터 액세스 제한, 하나 이상의 이벤트, 데이터 액세스 패턴들, 및 상기 분산형 저장 시스템 및 상기 분산형 저장 시스템과 연관된 하나 이상의 네트워크 중 적어도 하나와 연관된 네트워크 통계 중에서 적어도 하나를 포함하고, 상기 하나 이상의 자원은, 저장 노드, 컴퓨팅 노드, 가상 머신, 소프트웨어 컨테이너, 서버, 네트워크 및 네트워킹 디바이스 중 적어도 하나를 포함함―;
    상기 분산형 저장 시스템과 연관된 정보에 기초하여, 상기 분산형 저장 시스템 상의 하나 이상의 데이터 항목과 연관된 데이터 액세스 성능을 개선하거나 상기 분산형 저장 시스템의 성능을 개선하는 것으로 추정되는 데이터 배치 액션을 결정하고, ―상기 데이터 배치 액션은, 적어도 하나의 데이터 항목을 적어도 하나의 저장 위치로부터 적어도 하나의 상이한 저장 위치로 이동시키는 것을 포함하고, 상기 적어도 하나의 저장 위치 및 상기 적어도 하나의 상이한 저장 위치는 상기 복수의 데이터 저장소로부터의 상이한 데이터 저장소들을 포함함―; 및
    상기 데이터 배치 액션을 결정하는 것에 응답하여, 상기 적어도 하나의 데이터 항목을 상기 적어도 하나의 저장 위치로부터 상기 적어도 하나의 상이한 저장 위치로 이동시키게 하는, 시스템.
  19. 명령어들이 저장된 비일시적인 컴퓨터 판독가능한 저장 매체로서, 상기 명령어들은, 하나 이상의 프로세서에 의해 실행될 때, 상기 하나 이상의 프로세서로 하여금:
    분산형 저장 시스템 상에 저장된 데이터 항목의 마스터 사본의 현재 위치를 결정하고, ―상기 데이터 항목의 마스터 사본의 상기 현재 위치는 상기 분산형 저장 시스템 상의 복수의 데이터 저장소로부터의 현재의 데이터 저장소를 포함함―;
    상기 데이터 항목의 마스터 사본과 연관된 액세스 패턴을 결정하고, ―상기 액세스 패턴은 상기 데이터 항목의 마스터 사본에 대해 상기 분산형 저장 시스템에 의해 수신된 액세스 요청 세트의 하나 이상의 발생 위치 및 상기 하나 이상의 발생 위치 각각으로부터 수신된 각각의 액세스 요청 수를 포함함―;
    상기 데이터 항목의 마스터 사본과 연관된 상기 액세스 패턴에 기초하여, 상기 데이터 항목의 마스터 사본을 저장하기 위한 상기 분산형 저장 시스템 상의 상이한 위치를 결정하고, ―상기 상이한 위치는 상기 복수의 데이터 저장소와는 상이한 데이터 저장소를 포함함―; 및
    상기 데이터 항목의 마스터 사본을 상기 분산형 저장 시스템 상의 상기 상이한 위치에 배치하게 하는, 비일시적인 컴퓨터 판독가능한 저장 매체.
  20. 제19항에 있어서, 상기 데이터 항목의 마스터 사본을 저장하기 위한 상기 분산형 저장 시스템 상의 상기 상이한 위치를 결정하는 것은,
    상기 데이터 항목의 마스터 사본과 연관된 상기 액세스 패턴에 기초하여, 상기 하나 이상의 발생 위치로부터, 상기 데이터 항목의 마스터 사본과 연관된 가장 높은 수의 액세스 요청의 발생 위치를 식별하는 것;
    상기 복수의 데이터 저장소 중 어느 것이 상기 데이터 항목의 마스터 사본과 연관된 가장 높은 수의 액세스 요청의 발생 위치에 가장 가까이 위치하는지를 결정하는 것; 및
    상기 상이한 위치와 연관된 상기 상이한 데이터 저장소가 상기 데이터 항목의 마스터 사본과 연관된 가장 높은 수의 액세스 요청의 발생 위치에 가장 가까이 위치한다고 결정하는 것
    을 포함하는, 비일시적인 컴퓨터 판독가능한 저장 매체.
KR1020227028047A 2020-01-13 2021-01-19 분산형 저장 시스템들에서의 마스터 데이터 배치 KR20220126764A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/741,580 US11327688B2 (en) 2020-01-13 2020-01-13 Master data placement in distributed storage systems
PCT/US2021/014002 WO2021146725A1 (en) 2020-01-13 2021-01-19 Master data placement in distributed storage systems

Publications (1)

Publication Number Publication Date
KR20220126764A true KR20220126764A (ko) 2022-09-16

Family

ID=74885012

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227028047A KR20220126764A (ko) 2020-01-13 2021-01-19 분산형 저장 시스템들에서의 마스터 데이터 배치

Country Status (8)

Country Link
US (2) US11327688B2 (ko)
EP (1) EP4091316A1 (ko)
JP (1) JP2023514487A (ko)
KR (1) KR20220126764A (ko)
CN (1) CN115176227A (ko)
AU (1) AU2021208652B2 (ko)
CA (1) CA3162863A1 (ko)
WO (1) WO2021146725A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019122971A1 (en) * 2017-12-20 2019-06-27 Telefonaktiebolaget Lm Ericsson (Publ) Datafall: a policy-driven algorithm for decentralized placement and reorganization of replicated data
US11275666B1 (en) * 2020-10-01 2022-03-15 Dell Products, L.P. Method and apparatus for identifying high importance devices of a consistency group
JP2022180956A (ja) * 2021-05-25 2022-12-07 富士通株式会社 情報処理装置,プログラム及び情報処理方法
CN114338716B (zh) * 2021-12-14 2024-02-13 浙江清华长三角研究院 一种灵活务工场景下的用户原始数据的分布式存储方法
CN114244859B (zh) * 2022-02-23 2022-08-16 阿里云计算有限公司 数据处理方法及装置和电子设备
EP4329266A1 (de) * 2022-08-25 2024-02-28 DGC Switzerland AG Verfahren und systemanordnung zur geolokation von datensätzen

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5838909A (en) 1996-05-23 1998-11-17 Sandcastle, Inc. Reducing latency when synchronizing access to a multi-user database over a network
US8165146B1 (en) 1999-10-28 2012-04-24 Lightwaves Systems Inc. System and method for storing/caching, searching for, and accessing data
JP5082310B2 (ja) * 2006-07-10 2012-11-28 日本電気株式会社 データ移行装置及びプログラム
CN101577716B (zh) 2009-06-10 2012-05-23 中国科学院计算技术研究所 基于InfiniBand网络的分布式存储方法和系统
US10097406B2 (en) 2012-03-19 2018-10-09 Level 3 Communications, Llc Systems and methods for data mobility with a cloud architecture
US8903764B2 (en) 2012-04-25 2014-12-02 International Business Machines Corporation Enhanced reliability in deduplication technology over storage clouds
JP5958301B2 (ja) * 2012-11-21 2016-07-27 富士通株式会社 情報処理方法、プログラム、情報処理装置、及び情報処理システム。
US9317223B2 (en) 2012-12-17 2016-04-19 International Business Machines Corporation Method and apparatus for automated migration of data among storage centers
US9996562B2 (en) * 2013-07-09 2018-06-12 Oracle International Corporation Automated database migration architecture
US9298727B2 (en) 2013-11-01 2016-03-29 International Business Machines Corporation Plural architecture master data management
WO2016041998A1 (en) * 2014-09-15 2016-03-24 Foundation For Research And Technology - Hellas (Forth) Tiered heterogeneous fast layer shared storage substrate apparatuses, methods, and systems
US10452538B2 (en) * 2015-01-21 2019-10-22 Red Hat, Inc. Determining task scores reflective of memory access statistics in NUMA systems

Also Published As

Publication number Publication date
US20210216214A1 (en) 2021-07-15
US20220236885A1 (en) 2022-07-28
CA3162863A1 (en) 2021-07-22
US11327688B2 (en) 2022-05-10
JP2023514487A (ja) 2023-04-06
EP4091316A1 (en) 2022-11-23
CN115176227A (zh) 2022-10-11
WO2021146725A1 (en) 2021-07-22
AU2021208652A1 (en) 2022-09-08
AU2021208652B2 (en) 2023-05-11

Similar Documents

Publication Publication Date Title
AU2021208652B2 (en) Master data placement in distributed storage systems
US11838361B2 (en) Reducing distributed storage operation latency using segment routing techniques
US10630779B2 (en) System and method for using VoIP session continuity information using logical scalable units
US10523545B2 (en) System and method for managing VoIP session continuity information using logical scalable units
US10069707B2 (en) System and method for seamless horizontal scaling using logical scalable units
US8965845B2 (en) Proactive data object replication in named data networks
US9363177B2 (en) System and methods for communicating in a telecommunication network via independent key routing and proxies
US20180025052A1 (en) Infrastructure aware query optimization
EP2670112B1 (en) System and Method for Communicating in a Telecommunication Network via Common Key Routing and Proxies
EP2670111B1 (en) System and Methods for Communicating in a Telecommunication Network Using Common Key Routing and Data Locality Tables
US9338126B2 (en) System and method for communicating in a telecommunication network via independent key routing and data locality tables
EP3065379A1 (en) System and method for volte session continuation using logical scalable units

Legal Events

Date Code Title Description
E902 Notification of reason for refusal