KR20160124085A - 저장 네트워크 내의 저장 관리 - Google Patents
저장 네트워크 내의 저장 관리 Download PDFInfo
- Publication number
- KR20160124085A KR20160124085A KR1020167019712A KR20167019712A KR20160124085A KR 20160124085 A KR20160124085 A KR 20160124085A KR 1020167019712 A KR1020167019712 A KR 1020167019712A KR 20167019712 A KR20167019712 A KR 20167019712A KR 20160124085 A KR20160124085 A KR 20160124085A
- Authority
- KR
- South Korea
- Prior art keywords
- storage
- network
- data
- size
- block
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
-
- G06F17/30174—
-
- G06F17/30581—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
- G06F3/0649—Lifecycle management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols 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]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
저장 블록은 저장 네트워크와 연관된 네트워크 데이터의 저장을 위해 할당된 제 1 부분을 포함할 수 있다. 저장 네트워크는 저장 블록 및 하나 이상의 다른 저장 블록들을 포함할 수 있다. 저장 블록은 로컬 데이터의 저장을 위해 할당된 제 2 부분을 더 포함할 수 있다. 로컬 데이터는 저장 블록을 포함하는 디바이스의 하나 이상의 프로그램과 연관될 수 있다. 또한, 저장 블록은 저장 블록의 자유 공간으로서 제 3 부분을 포함할 수 있다. 제 3 부분은 제 1 부분 상에 저장된 네트워크 데이터의 양을 조정함으로써 대략 타깃 크기로 유지될 수 있다.
Description
본 명세서에 기술된 실시예들은 저장 네트워크 내의 저장 관리에 관한 것이다.
개인 데이터(예로서, 사진, 비디오, 문서 등)의 양이 증가하고 있으며 그에 따라 개인 데이터를 저장하기 위한 서로 다른 방법들 및 시스템들 또한 증가하고 있다. 그러나, 개인 데이터를 저장하기 위한 다수의 방법 및 시스템들이 특히 다루기 힘들고 시간 소비적이며, 부적절한 리던던시(redundancy)를 제공하며, 서로 다른 디바이스들 상에서 데이터의 용이한 접근가능성을 허용하지 않는 것과 같은 다른 과제들을 제공할 수 있다.
본 명세서에 청구된 주제 사항은 임의의 단점을 해결하거나 위에서 기술된 것과 같은 환경에서만 동작하는 실시예들로 제한되지 않는다. 오히려, 배경기술은 단지 본 명세서에 기술된 일부 실시예들이 실시될 수 있는 일 예시적인 기술 영역의 실례를 들고자 제공된 것이다.
예시적인 실시예는 저장 네트워크와 연관된 네트워크 데이터의 저장을 위해 할당된 제 1 부분을 포함할 수 있는 저장 블록을 포함한다. 저장 네트워크는 저장 블록 및 하나 이상의 다른 저장 블록을 포함할 수 있다. 저장 블록은 로컬 데이터의 저장을 위해 할당된 제 2 부분을 더 포함할 수 있다. 로컬 데이터는 저장 블록을 포함하는 디바이스의 하나 이상의 프로그램과 연관될 수 있다. 또한, 저장 블록은 저장 블록의 자유 공간으로서 제 3 부분을 포함할 수 있다. 제 3 부분은 제 1 부분 상에 저장된 네트워크 데이터의 양에 대한 조정을 통해서 대략 타깃 크기로 유지될 수 있다.
실시예들의 목적들 및 장점들이 적어도 청구범위에 특별히 언급된 요소들, 특징부들 및 조합들에 의해서 인식되고 획득될 것이다.
전술된 일반적인 설명들 및 이어지는 상세한 설명 모두가 예시적이고 설명적이며 청구된 바와 같이 본 발명을 한정하고자 하는 것은 아님이 이해되어야 한다.
예시적인 실시예들이 첨부된 도면들의 사용을 통해 더욱 구체적이고 상세하게 기술되고 설명될 것이다:
도 1은 예시적인 저장 시스템의 블록도;
도 2a-2c는 도 1의 저장 시스템 내에서 구현될 수 있는 예시적인 할당된 저장 블록을 도시한 도면;
도 3은 저장 블록 상의 저장 할당을 관리하는 예시적인 방법의 흐름도; 및
도 4는 저장 블록 상의 저장을 관리하는 예시적인 방법의 흐름도이며, 이들 전부가 본 명세서에 기술된 적어도 하나의 실시예에 따른다.
도 1은 예시적인 저장 시스템의 블록도;
도 2a-2c는 도 1의 저장 시스템 내에서 구현될 수 있는 예시적인 할당된 저장 블록을 도시한 도면;
도 3은 저장 블록 상의 저장 할당을 관리하는 예시적인 방법의 흐름도; 및
도 4는 저장 블록 상의 저장을 관리하는 예시적인 방법의 흐름도이며, 이들 전부가 본 명세서에 기술된 적어도 하나의 실시예에 따른다.
본 명세서에 기술된 일부 실시예들은 이동 저장 시스템 상의 데이터 저장 관리에 관련된다. 예시적인 실시예는 하나 이상의 저장 에이전트 및 하나 이상의 저장 블록을 포함하는 하나 이상의 디바이스를 포함하는 저장 네트워크를 포함한다. 저장 네트워크는 본 개시내용의 저장 네트워크 관리자로서 지칭될 수 있는 관리 서비스를 포함할 수 있다. 저장 에이전트는 저장 블록들 사이의 데이터의 공동 저장을 관리하도록 구성될 수 있다. 저장 네트워크 관리자는 저장 블록들 사이의 저장 네트워크 내의 데이터 저장뿐 아니라 하나 이상의 저장 에이전트에 의한 동작들을 조정하도록 구성될 수 있다. 저장 네트워크와 연관된 데이터는 "네트워크 데이터"로 지칭될 수 있으며 데이터 파일 및 데이터 객체와 연관된 메타데이터뿐 아니라 데이터 파일 및 데이터 객체를 포함할 수 있다. 일부 실시예들에서, 네트워크 데이터는 일부 경우들에서 저장 네트워크 내에 저장된 모든 데이터의 카탈로그일 수 있는 저장 네트워크 내에 저장된 데이터의 카탈로그를 포함할 수 있다.
하나 이상의 저장 블록은 네트워크 데이터의 저장을 위해 할당된 제 1 부분 및 로컬 데이터를 위해 할당된 제 2 부분을 포함할 수 있다. 로컬 데이터는 저장 블록들이 포함될 수 있는 디바이스의 하나 이상의 프로그램에 의해 사용 및/또는 관리될 수 있는 데이터일 수 있다. 또한, 하나 이상의 저장 블록이 자유 공간으로서 할당된 제 3 부분을 포함할 수 있다. 제 3 부분은 원하는 양의 자유 공간이 저장 블록 상에 유지될 수 있도록 하는 타깃 크기를 가질 수 있다. 아래에 자세하게 기술되는 바와 같이, 제 1 부분 상에 저장된 저장 네트워크 데이터의 양은 제 3 부분의 실제 크기가 타깃 크기과 동일하거나 또는 대략 동일하도록 조정될 수 있다.
본 개시내용의 실시예들이 첨부된 도면들을 참조하여 설명될 것이다.
도 1은 본 개시내용의 적어도 하나의 실시예에 따라 구성된 예시적인 저장 시스템(100)의 블록도를 도시한다. 저장 시스템(100)은 저장 에이전트(SA)(104a-104c)를 포함하는 저장 네트워크(102)를 포함할 수 있다. 저장 시스템(100)이 그 안에 포함된 세 개의 서로 다른 저장 에이전트들(104)을 갖는 단일 저장 네트워크(102)를 포함하는 것으로 도시되었지만, 시스템(100)은 임의의 수의 저장 에이전트(104)를 각각 포함할 수 있는 임의의 수의 저장 네트워크(102)를 포함할 수 있다.
일부 실시예들에서, 저장 시스템(100)은 사진, 비디오, 문서 등과 같은 데이터 파일들을 저장, 조직화 및 관리하도록 구성될 수 있다. 일부 실시예들에서, 데이터 파일들이 데이터 파일들에 대한 정보를 제공할 수 있는 메타데이터를 또한 포함할 수 있는 데이터 객체들 내에 포함될 수 있다. 본 개시내용 내의 "데이터"라는 용어는 저장 에이전트(104)에 의해 저장될 수 있으며 하나 이상의 데이터 객체, 데이터 파일, 메타데이터, 또는 이들의 임의의 조합을 포함할 수 있는 임의의 적절한 정보를 지칭할 수 있다.
또한, "네트워크 데이터"라는 용어는 저장 네트워크(102)의 하나보다 많은 저장 에이전트(104) 사이에서 동기화 및/또는 저장됨으로써 공유될 수 있는 임의의 데이터를 지칭할 수 있다. 예를 들어, 네트워크 데이터는 데이터 파일, 메타데이터, 데이터 객체, 또는 데이터 객체 루트 및 트리 구조 정보, 저장 에이전트 상태 정보(아래에서 추가로 자세하게 설명됨), 디지털 권리 관리(DRM) 라이센스 정보(아래에서 추가로 자세하게 설명됨), 공유 티켓 정보(아래에서 추가로 자세하게 설명됨), 임의의 다른 적절한 정보, 또는 이들의 임의의 조합을 포함할 수 있다.
저장 시스템(100)은 사용자에 의해 요구되는 입력량을 감소시킬 수 있는 자동화된 방식으로 저장 에이전트(104a-104c)와 연관된 저장 블록들(110) 내에 저장된 데이터를 조직화 및 관리하도록 구성될 수 있다. 이렇게, 저장 시스템(100)은 저장 네트워크(102) 내의 저장 블록들(110)에 의해 저장된 데이터의 조직화 및 데이터로의 접근을 용이하게 할 수 있다.
저장 에이전트(104)는 프로세서(150), 메모리(152) 및 저장 블록(110)과 각각 연관될 수 있다. 예를 들어, 예시적인 실시예에서, 저장 에이전트(104a)는 프로세서(150a), 메모리(152a) 및 저장 블록(110a)을 포함할 수 있고; 저장 에이전트(104b)는 프로세서(150b), 메모리(152b) 및 저장 블록(110b)을 포함할 수 있으며, 저장 에이전트(104c)는 프로세서(150c), 메모리(152c) 및 저장 블록(110c)을 포함할 수 있다.
프로세서들(150)은, 예를 들어 마이크로프로세서, 마이크로컨트롤러, 디지털 신호 프로세서(DSP), 애플리케이션 특정 집적 회로(ASIC), 필드 프로그램가능한 게이트 어레이(FPGA), 또는 프로그램 지시를 해석 및/또는 실행하고/하거나 데이터를 프로세싱하도록 구성된 임의의 다른 디지털 또는 아날로그 회로를 포함할 수 있다. 일부 실시예들에서, 프로세서들(150)은 프로그램 지시를 해석 및/또는 실행할 수 있고/있거나 자신의 연관된 메모리(152) 및/또는 하나 이상의 저장 블록(110) 내에 저장된 데이터를 프로세싱할 수 있다.
메모리들(152)은 프로그램 지시 및/또는 데이터를 소정의 기간 동안 유지하도록 구성된 임의의 적합한 컴퓨터 판독가능 매체를 포함할 수 있다. 제한이 아닌 예시로서, 이러한 컴퓨터 판독가능 매체는 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 전자 삭제가능한 프로그램가능 판독 전용 메모리(EEPROM), 소형 디스크 판독 전용 메모리(CD-ROM) 또는 다른 광학 디스크 스토리지, 자기 디스크 스토리지 또는 다른 자기 스토리지 디바이스, 플래시 메모리 디바이스(예로서, 고체 상태 메모리 디바이스), 특정 분자 시퀀스(예로서, DNA 또는 RNA)를 포함하는 실재하는(tangible) 컴퓨터 판독가능 저장 매체 또는 컴퓨터 실행가능 지시 또는 데이터 구조의 형태로 원하는 프로그램 코드를 운반 또는 저장하도록 사용될 수 있으며 프로세서들(150)에 의해 접근될 수 있는 임의의 다른 저장 매체를 포함할 수 있다. 위의 조합들 또한 컴퓨터 판독가능 매체의 범주 내에 포함될 수 있다. 컴퓨터 실행가능한 지시는, 예를 들어 범용 컴퓨터, 전용 컴퓨터, 또는 전용 프로세싱 디바이스(예로서, 프로세서들(150))로 하여금 소정의 기능 또는 기능들의 그룹들을 수행하게 하는 지시 및 데이터를 포함할 수 있다.
저장 블록들(110)은 또한 데이터 및/또는 데이터 객체를 저장하도록 구성된 임의의 적합한 컴퓨터 판독가능한 매체일 수 있다. 저장 블록들(110)은 서로 다른 저장 블록들(110)에 걸쳐 실질적으로 동일할 수 있는 네트워크 데이터를 저장할 수 있으며 또한 특정 저장 블록(110) 상에서만 발견될 수 있는 로컬 데이터를 저장할 수 있다. 각 저장 에이전트(104)가 단일 저장 블록(110)을 포함하는 것으로 도시되었지만, 저장 에이전트들(104)은 임의의 수의 컴퓨터 판독가능 매체의 임의의 수의 저장 블록(110)을 포함할 수 있다. 예를 들어, 저장 에이전트(104)는 하드 디스크 드라이브인 제 1 저장 블록(110) 및 플래시 디스크 드라이브인 제 2 저장 블록(110)을 포함할 수 있다. 추가로, 저장 블록(110)은 하나보다 많은 타입의 컴퓨터 판독가능 매체를 포함할 수 있다. 예를 들어, 저장 블록(110)은 하드 디스크 드라이브 및 플래시 드라이브를 포함할 수 있다.
또한, 하나보다 많은 저장 에이전트(104)가 서로 다른 구현들 및 구성들에 따라 동일한 저장 블록(110)과 연관될 수 있다. 예를 들어, 저장 블록(110)은 서로 다른 시점에서 서로 다른 저장 에이전트들(104)에 접속될 수 있는 유니버설 직렬 버스(USB) 저장 장치 또는 보안 디지털(SD) 카드일 수 있다. 또한, 저장 에이전트들(104)이 프로세서들(150), 메모리들(152) 및 저장 블록들(110)을 포함하는 것으로 명백하게 도시되었지만, 서로 다른 구현예들이 서로 다른 구성들을 가질 수 있다. 예를 들어, 일부 실시예들에서, 저장 에이전트들(104)은 자신의 연관된 디바이스들의 프로세서들(150)로 하여금 저장 블록들(110) 상에 저장될 수 있는 데이터의 관리와 연관된 동작들을 수행하게 하도록 구성된 컴퓨터 실행가능한 지시를 갖는 자신의 연관된 디바이스들의 메모리들(152) 내에 포함된 모듈들일 수 있다.
저장 네트워크(102) 내의 데이터의 조직화 및 관리와 연관된 일부 기능들은 저장 블록들(110) 내의 하나 이상의 부분의 할당 및 관리와 연관될 수 있다. 할당을 통해서, 저장 블록들(110)의 효율적인 이용이 유지될 수 있다. 예시적인 저장 블록들(110)의 할당 및 예시적인 저장 블록들(110)의 관리 프로세스가 도 2a 내지 2c와 관련하여 제공되었다.
일부 실시예들에서, 하나 이상의 저장 에이전트(104)는 저장 에이전트들(104)의 구성요소를 포함할 수 있는 임의의 적합한 디바이스에 포함될 수 있다. 예를 들어, 저장 에이전트들(104)이 클라우드 저장 서버, 모바일폰, 태블릿 컴퓨터, 개인 컴퓨터, 랩톱 컴퓨터, 카메라, 개인 디지털 어시스턴트(PDA), 스마트폰, 음악 재생기, 비디오 재생기, 외부 하드 드라이브 등에 포함될 수 있다.
저장 에이전트들(104)과 연관된 디바이스들은 저장 에이전트들(104) 사이의 데이터의 통신을 가능하게 할 수 있는 임의의 디바이스를 포함할 수 있다. 따라서, 디바이스들이 인터넷 접속성, 로컬 영역 네트워크(LAN) 접속성, 광역 네트워크(WAN) 접속성, 블루투스 접속성, 3G 접속성, 4G 접속성, LTE 접속성, WiFi 접속성, 머신-투-머신(M2M) 접속성, 디바이스-투-디바이스(D2D) 접속성, 임의의 다른 적절한 통신 능력, 또는 이들의 임의의 적절한 조합과 같은 저장 에이전트들(104) 사이의 일부 종류의 통신 능력을 제공할 수 있다.
위에서 나타내어진 바와 같이, 저장 에이전트들(104)은 직접 통신 및/또는 네트워크 통신을 통해 위의 통신들을 수행할 수 있다. 도시된 실시예에서, 저장 에이전트들(104)은 통신 네트워크(112)를 통해서뿐만 아니라 서로에게 직접 통신상 연결되는 것으로 도시되었다. 일부 실시예들에서, 통신 네트워크(112)는 단독 또는 임의의 적합한 조합으로, 인터넷, 인트라넷, 로컬 WiFi 네트워크, 무선 LAN, 모바일 네트워크(예컨대, 3G, 4G, 및/또는 LTE 네트워크), LAN, WAN, 또는 임의의 다른 적합한 통신 네트워크를 포함할 수 있다.
저장 에이전트들(104) 사이의 데이터 통신은 따라서 자신의 연관된 디바이스들이 자신의 개별 저장 블록들(110) 상에 로컬식으로 저장될 필요가 없는 네트워크 데이터에 접근하고 이를 사용하는 것을 가능하게 할 수 있다. 이렇게, 저장 네트워크(102) 및 저장 에이전트들(104)은 네트워크 데이터의 저장을 가능하게 할 수 있는 동시에 또한 데이터가 특정 저장 에이전트 상에 로컬로 저장되어 있지 않을 때에도 네트워크 데이터에 대한 접근을 허용한다.
일부 실시예들에서, 저장 에이전트들(104)이 객체 기반 파일 시스템 내에 포함된 클라이언트들 또는 서버들과 유사하게 동작할 수 있다. 예를 들어, 저장 에이전트들(104)은 저장 네트워크(102) 및 저장 시스템(100) 내에서 데이터를 통신하는 것과 연관된 프로토콜을 구현하도록 구성될 수 있다. 또한, 저장 에이전트들(104)에 의해서 관리되는 일부 저장 블록들(110)은 다양한 데이터 객체들 내에 포함된 메타데이터만을 저장하도록 구성될 수 있는 반면, 다른 저장 블록들(110)은 다양한 데이터 객체들 내에 포함된 메타데이터 및 데이터 파일들을 저장하도록 구성될 수 있다.
일부 실시예에서, 저장 네트워크(102) 내의 데이터 저장과 관련된 정보를 관리 및 제공하기 위해서, 데이터의 카탈로그가 저장 네트워크(102)에 대해 생성 및 관리될 수 있다. 예를 들어, 일부 실시예들에서, 카탈로그는 어느 저장 블록들(110)이 로컬로 데이터 객체들, 개별 데이터 파일들, 및/또는 임의의 다른 메타데이터를 저장할 수 있는지와 같은 정보를 포함할 수 있다. 카탈로그는 또한, 데이터 파일들과 연관될 수 있는 임의의 다른 메타데이터를 포함할 수 있다. 일부 실시예들에서, 카탈로그는 저장 네트워크(102) 내에 저장된 데이터 객체들의 모든 메타데이터의 컬렉션을 포함할 수 있다. 따라서, 카탈로그는 어느 저장 블록(110)이 서로 다른 저장 블록들(110) 상에 저장된 데이터에 대한 다른 정보뿐 아니라 자신에 저장된 소정의 데이터를 갖는지를 결정하도록 사용될 수 있다. 이렇게, 저장 에이전트들(104)은 만약 데이터가 자신의 개별 저장 블록들(110) 상에 로컬로 저장되지 않았다면 어디로부터 데이터에 접근해야만 하는지를 알 수 있다.
일부 실시 예들에서, 저장 에이전트들(104)은 서로에 접속되도록 구성될 수 있으며 저장 네트워크(102)에 걸쳐 저장될 수 있는 네트워크 데이터를 동기화할 수 있다. 예를 들어, 일부 실시예들에서, 저장 블록들(110)은 각각의 저장 에이전트들(104)이 카탈로그에 의해 인덱스된 서로 다른 데이터 파일들과 관련된 정보(예로서, 데이터 파일 업데이트, 데이터 파일 삭제, 데이터 파일 추가 등)를 가질 수 있도록 저장 네트워크(102)와 연관된 카탈로그로부터 모든 메타데이터를 저장하도록 구성될 수 있다. 이들 실시예들 및 다른 실시예들에서, 저장 에이전트들(104)은 이들이 저장 네트워크(102)와 관련된 최근 정보를 가질 수 있도록 저장 블록들 사이의 카탈로그를 동기화할 수 있다.
카탈로그와 같은 네트워크 데이터를 동기화함으로써, 저장 에이전트들(104)이 저장 네트워크(102) 내에 저장된 네트워크 데이터뿐 아니라 다른 저장 에이전트들(104)의 상태들과 관련하여 인식할 수 있거나 또는 업데이트될 수 있다. 예를 들어, 제 1 저장 에이전트(104a)가 자신에 저장된 네트워크 데이터뿐 아니라 제 2 저장 에이전트(104b) 및/또는 제 3 저장 에이전트(104c)의 접속성 또는 동작 상태와 관련하여 업데이트되도록 제 2 저장 에이전트(104b) 및/또는 제 3 저장 에이전트(104c)와 동기화될 수 있다.
서로 간의 통신에 추가로, 일부 실시예들에서, 저장 에이전트들(104)은 저장 네트워크를 통해 네트워크 데이터의 저장을 관리할 수 있고 집합적으로 또는 개별적으로 저장 네트워크 관리자(114)로 지칭될 수 있는 하나 이상의 저장 네트워크 컨트롤러와 통신할 수 있다. 저장 네트워크 관리자(114)는 분산된 저장 시스템 내의 중앙 서비스와 유사하게 작동할 수 있다. 저장 네트워크 관리자(114)는 저장 에이전트들(104)에 의한 조직화 동작들과 같은 저장 시스템(100) 내의 다수의 기능을 수행할 수 있다. 예를 들어, 저장 네트워크 매니저(114)의 기능들은 저장 네트워크(102) 내의 데이터 파일들의 위치 찾기, 저장 에이전트들(104) 사이의 네트워크 데이터의 동기화 조직화 및 저장 블록들(110) 사이의 네트워크 데이터 할당을 포함할 수 있지만, 이것으로 제한되지 않는다.
일부 실시예들에서, 저장 네트워크 관리자(114)는 저장 에이전트들(104)과 동일한 디바이스(들) 내에 포함될 수 있으며, 다른 실시예들에서; 저장 네트워크 관리자(114)는 저장 에이전트들(104)로부터 분리된 하나 이상의 디바이스들 내에 포함될 수 있다. 또한, 일부 실시예들에서, 저장 네트워크 관리자(114)는 저장 네트워크 관리자(114)가 저장 에이전트로서 동작할 수 있으며 저장 에이전트일 수 있도록 동작들을 수행할 수 있다. 예를 들어, 저장 네트워크 관리자(114)는 저장 네트워크(102)와 연관된 카탈로그 및/또는 다른 메타데이터와 같은 일부 네트워크 데이터를 저장할 수 있으며 저장 네트워크 관리자(114)가 이러한 네트워크 데이터와 관련된 저장 에이전트로서 동작할 수 있도록 저장 에이전트들(104)과 네트워크 데이터를 동기화할 수 있다.
일부 실시예들에서, 저장 네트워크 관리자(114)는 (도 1에 도시된 바와 같이) 통신 네트워크(112)를 통해 저장 에이전트들(104)과 통신할 수 있다. 저장 네트워크 관리자(114)는 또한 개별 저장 에이전트들(104)로의 직접 통신(도 1에 명백하게 도시되지 않음)을 통해 하나 이상의 저장 에이전트들(104)과 통신하도록 구성될 수 있다.
일부 실시예들에서, 저장 네트워크 관리자(114)는 저장 네트워크(102) 내에 저장된 데이터 파일들이 저장 네트워크 관리자(114) 상에 저장되지 않도록 구성될 수 있지만, 저장 네트워크(102)의 데이터 파일들(예컨대, 카탈로그)과 관련된 메타데이터가 저장 네트워크 관리자(114) 상에 저장될 수 있다. 일부 실시예들에서, 저장 네트워크 관리자(114)는 데이터의 저장과 관련된 저장 에이전트들(104)에 지시를 전달할 수 있다. 저장 에이전트들(104)은 저장 네트워크 관리자(114)로부터 전달된 지시에 응답하여 작동할 수 있다.
저장 에이전트들(104)은 저장 블록들(110) 상에 저장될 수 있는 메타데이터에 따라 저장 네트워크(102) 내에 데이터 파일들을 위치시킬 수 있다. 예를 들어, 저장 에이전트(104a)는 저장 에이전트(104a)와
연관된 저장 블록(110a) 상에 저장된 메타데이터(예로서, 카탈로그)를 사용하여 저장 블록(110b) 상에 저장된 데이터 파일을 위치시킬 수 있다. 데이터 파일들을 위치시키기 위한 일부 또는 모든 정보가 저장 에이전트들(104) 및/또는 저장 에이전트(104) 및 저장 네트워크 관리자(114) 사이의 동기화 동안에 전달될 수 있다. 추가적으로 또는 이와 다르게, 저장 에이전트들(104)은 저장 네트워크(102) 상에 저장된 데이터 파일들을 위치시키도록 저장 네트워크 관리자(114)와 통신할 수 있다.
또한, 저장 네트워크 관리자(114)는 다른 저장 에이전트들(104)과 신뢰할 수 없는 또는 간헐적인 접속성을 갖는 하나 이상의 저장 에이전트들(104)과 통신할 수 있다. 예를 들어, 저장 에이전트(104c)가 신뢰할 수 없는 접속을 이용하여 저장 에이전트(104b) 및/또는 저장 에이전트(104a)에 통신상 연결될 수 있거나 또는 저장 에이전트(104c)가 저장 에이전트(104b) 및/또는 저장 에이전트(104a)에 간헐적으로 접속하는 외부 디바이스 내에 포함될 수 있다. 저장 네트워크 관리자(114)는 따라서 통신 네트워크(112)를 통해 저장 에이전트(104c)와 통신할 수 있으며, 그 다음 정보(예로서, 네트워크 데이터)를 저장 에이전트(104c) 및 저장 블록(110c)과 관련된 저장 에이전트(104b) 및/또는 저장 에이전트(104a)에 전달할 수 있다.
일부 실시예들에서, 하나 이상의 저장 에이전트들(104)(또는 이들의 연관된 디바이스들)이 로컬 어댑터(130)를 포함할 수 있다. 도 1에서, 로컬 어댑터(130)는 제 2 저장 에이전트(104b) 내에 포함된 것으로 도시되었지만; 그러나, 하나 이상의 다른 저장 에이전트들(104a) 및/또는 (104c) 또는 이들의 연관된 디바이스들이 로컬 어댑터(130)를 포함할 수 있다. 일반적으로, 로컬 어댑터(130)는 저장 에이전트(104b) 및 저장 네트워크(102)와 연관된 디바이스 사이의 인터페이스를 생성할 수 있다. 또한, 로컬 어댑터(130)는 데이터의 카탈로그를 브라우징 및 판독하고, 새로운 데이터 객체들을 생성하며, 어댑터-관리된 데이터 파일들을 등록 및 등록 해제하는 것과 같은 다수의 기능들을 수행하도록 구성될 수 있다. 예를 들어, 저장 에이전트(104b)와 연관된 디바이스가 데이터 객체를 생성할 수 있으며 로컬 어댑터(130)는 저장 네트워크(102) 내로 생성된 데이터 객체를 받아들이는 것을 용이하게 하도록 구성될 수 있다.
이러한 환경들 및 다른 환경들에서, 로컬 어댑터(130)는 저장 네트워크(102) 내로 데이터 객체가 받아들여질 때까지 데이터 객체에 대한 단기 캐시로서 작동할 수 있다. 다른 예시에서, 저장 네트워크 관리자(114), 하나 이상의 저장 에이전트(104), 또는 다른 시스템이 로컬 어댑터(130)를 통해 생성된 데이터 객체의 데이터 파일이 접근가능한지 여부를 검출하도록 구성될 수 있다. 데이터 파일이 로컬 어댑터(130)를 통해 접근가능할 때, 데이터 객체의 메타데이터가 저장 네트워크(102)의 다른 저장 에이전트들(104)로 데이터 객체 및 연관된 데이터 파일의 인식을 제공하도록 카탈로그에 추가될 수 있도록 저장 블록(110) 내에 저장될 수 있다. 또한, 데이터 파일이 로컬 어댑터(130)를 통해 접근가능할 때, 저장 네트워크 관리자(114), 저장 에이전트(104), 또는 다른 시스템이 저장 블록들(110) 내의 데이터 파일의 추가 카피의 생성을 방지하도록 구성될 수 있다. 데이터 파일은 따라서 본질적으로 데이터 파일에 대해 시뮬레이션된 링크를 생성하는 로컬 어댑터(130)를 통해 저장 네트워크(102)에 의해서 접근가능할 수 있다.
아래에서 추가로 기술되는 바와 같이, 저장 블록들(110)이 네트워크 데이터를 효율적으로 저장하고 데이터 블록들(110)의 원하는 구성뿐 아니라 저장 네트워크(102) 내의 리던던시를 보장하기 위해서 할당될 수 있다. 도 2a-2c는 본 명세서에 기술된 적어도 하나의 실시예에 따라 저장 에이전트(201)에 의해서 관리될 수 있는 예시적인 할당된 저장 블록(200)을 도시한다. 할당된 저장 블록(200)은 도 1을 참조하여 논의된 저장 블록들(110)과 실질적으로 유사할 수 있다. 저장 에이전트(201)는 실질적으로 도 1을 참조하여 논의된 하나 이상의 저장 에이전트들(104)과 실질적으로 유사할 수 있다. 할당된 저장 블록(200)은 도 1의 저장 네트워크(102)와 같은 저장 네트워크 내에 포함될 수 있다. 또한, 저장 에이전트(201) 및 할당된 저장 블록(200)이 도 1의 디바이스들(106) 중 하나와 같은 디바이스와 연관될 수 있다. 저장 에이전트(201) 및 할당된 저장 블록(200)이 연관될 수 있는 저장 네트워크는 저장 네트워크 내에 저장된 네트워크 데이터를 인덱스할 수 있는 데이터의 카탈로그를 가질 수 있다. 할당된 저장 블록(200)은 데이터의 카탈로그의 데이터 객체들의 데이터 및/또는 데이터 파일들의 카탈로그의 데이터 객체들의 메타데이터(224)를 저장하도록 구성될 수 있다.
도 2a-2c는 본 명세서에 기술된 적어도 하나의 실시예에 따라 할당된 저장 블록(200)의 예시적인 할당(210a-210c)을 포함한다. 특히, 도 2a는 초기 할당(210a)을 도시하고, 도 2b는 중간 할당(210b)을 도시하며, 도 2c는 해소된 할당(210c)을 도시한다. 도 2a-2c를 함께 참조하면, 할당된 저장 블록(200)이 제 1 부분(202), 제 2 부분(204) 및 제 3 부분(206)을 포함할 수 있다.
제 1 부분(202)은 할당된 저장 블록(200)이 포함되는 저장 네트워크와 관련된 네트워크 데이터의 저장을 위해 할당될 수 있다. 예를 들어, 제 1 부분(202) 상에 저장된 메타데이터(224)는 네트워크 데이터의 각 데이터 객체의 메타데이터를 포함할 수 있다. 일부 실시예들에서, 메타데이터(224)는 모든 네트워크 데이터를 인덱스하는 데이터의 카탈로그로서 배치될 수 있다. 또한, 제 1 부분(202) 내의 저장 공간의 양을 포함하는 다양한 인자들에 따라서, 네트워크 데이터의 전부 또는 하위세트가 제 1 부분(202) 상에 저장될 수 있다. 일부 실시예들에서, 제 1 부분(202)의 크기(예로서, 제 1 부분(202)에 할당된 저장 공간의 양)가 저장 공간의 최소 양 또는 할당된 저장 블록(200)의 저장 공간의 소정의 백분율일 수 있다. 다른 실시예들에서, 제 1 부분(202)의 크기는 제 2 부분(204)에 대해 원하는 크기 및 제 3 부분(206)에 대한 타깃 크기가 만족된 후 할당된 저장 블록(200) 상에 남은 저장 공간의 양일 수 있으며, 이는 아래에서 추가로 자세하게 설명된다.
이러한 실시예들 및 다른 실시예들에서, 네트워크 데이터의 전부 또는 하위세트가 제 1 부분(202) 상에 저장되었는지 여부는 제 1 부분(202)의 이용가능한 공간에 기초할 수 있다. 제 1 부분(202)의 이용가능한 공간이 네트워크 데이터의 크기보다 더 크다면, 모든 네트워크 데이터가 제 1 부분(202) 상에 저장될 수 있다. 이와 다르게, 제 1 부분(202)의 이용가능한 공간이 네트워크 데이터의 크기보다 더 작다면, 네트워크 데이터의 제 1 하위세트(212)는 제 1 부분(202) 상에 저장될 수 있다. 일부 실시예들에서, 도 1의 저장 네트워크 관리자(114)와 같은 저장 네트워크 관리자는 어떤 네트워크 데이터의 데이터 파일들이 네트워크 데이터(212)의 제 1 하위세트 내에 포함될 수 있는지를 할당하도록 구성될 수 있다.
또한, 일부 실시예들에서, 네트워크 데이터(212)의 제 1 하위세트의 하나 이상의 데이터 파일들이 데이터 파일들의 2차 카피들 또는 1차 카피들로서 설계돌 수 있다. 1차 카피들은 저장 네트워크 관리자가 연관된 데이터 파일들에 대한 원하는 리던던시의 부분으로서 제 1 부분(202) 상에 저장되는 것으로서 지정될 수 있는 카피들이다. 이와 다르게, 2차 카피들은 할당된 저장 블록(200) 및 저장 에이전트(201)가 연관된, 그러나 원하는 리던던시의 부분으로서가 아닌 디바이스 상의 연관된 데이터 파일들로의 접근을 용이하게 하도록 제 1 부분(202) 내의 할당된 저장 블록(200) 상에 로컬로 저장된 연관된 데이터 파일들의 카피들이다. 일부 실시예들에서, 2차 카피들이 할당된 저장 블록(200)과 연관된 캐시 내에 저장될 수 있다. 일부 실시예들에서, 저장 에이전트(201)는 저장 네트워크 관리자로부터의 허가 없이 제 1 부분(202)으로부터의 데이터 파일들의 2차 카피들을 단독으로 제거하지만 저장 네트워크 관리자로부터의 허가 없이 데이터 파일들의 1차 카피들은 그렇지 않은 것이 가능하게 될 수 있다.
할당된 저장 블록(200)의 제 2 부분(204)이 할당된 저장 블록(200) 및 저장 에이전트(201)와 연관된 디바이스의 하나 이상의 프로그램에 의해 사용 및/또는 유지될 수 있는 로컬 데이터에 대해 할당될 수 있다. 예를 들어, 제 2 부분(204)은 정보를 실행 및/또는 프로세싱하도록 로컬 데이터를 저장하기 위해 제 1 부분(202)과 연관된 저장 네트워크에 관련되지 프로그램을 인에이블할 수 있다. 제 2 부분(204)의 크기는 디바이스 타입, 디바이스의 히스토리상 사용, 디바이스 상에 로딩된 다수의 프로그램, 디바이스 상에 로딩된 프로그램들의 타입 등과 같은 임의의 수의 요인들에 기초할 수 있다. 예를 들어, 디바이스는 제 2 부분(204) 상에 저장될 수 있는 문서들을 생성할 수 있는 워드 프로세서 또는 스프레드시트를 포함할 수 있다. 따라서, 제 2 부분(204)의 크기는 이러한 타입의 데이터의 추가를 수용하도록 할당될 수 있다.
또한, 제 2 부분(204)의 크기는 일반적으로 프로그램에 의해 수행되는 프로세스들의 수 및/또는 디바이스 상에서 구동하는 다수의 프로그램들에 기초하여 변화하거나 또는 다를 수 있다. 예를 들어, 제 2 부분(204)이 할당된 저장 블록(200) 상에 저장된 로컬 데이터와 대략 동일한 크기인 초기 크기를 갖는 것으로 초기에 할당될 수 있다. 예로서 프로그램의 추가를 통해서 로컬 데이터의 양이 증가될 때, 제 2 부분(204)의 양 또한 증가할 수 있다.
할당된 저장 블록(204)의 제 3 부분(206)이 자유 공간으로서 할당될 수 있다. "자유 공간"이라는 용어는 데이터 파일, 메타데이터, 프로그램 파일 등이 없을 수 있는 할당된 저장 블록(200)의 섹션을 지칭하도록 사용된다. 제 3 부분(206)은 타깃 크기를 포함할 수 있다. 타깃 크기는 제 3 부분(206)의 원하는 크기일 수 있으며 할당된 저장 블록(200)으로의 데이터 추가에 대한 유연성을 제공하기 위한 것일 수 있다. 일부 실시예들에서, 타깃 크기는 저장 공간의 고정된 양 또는 할당된 저장 블록(200)의 전체 크기의 백분율일 수 있다.
예를 들어, 제 3 부분(206)의 타깃 크기가 할당된 저장 블록(200)의 사전결정된 백분율, 저장 공간의 소정의 양, 또는 본 명세서에 기술된 기능들을 가능하게 하는 일부 다른 타깃 크기를 포함할 수 있다. 예시로서, 제 3 부분(206)이 저장 블록(200)의 총 저장 용량의 25%일 수 있다. 이와 다르게, 제 3 부분(206)이 소정의 양의 비트 또는 바이트를 포함할 수 있다. 일부 실시예들에서, 타깃 크기는 필요한 경우 할당된 저장 블록(200)이 적용가능한 데이터 파일들을 추가하기 위한 공간을 가질 수 있도록, 네트워크 데이터의 데이터 파일들의 평균 크기 및/또는 로컬 데이터의 데이터 파일들의 평균 크기에 기초할 수 있다.
제 3 부분(206)의 크기는 변화할 수 있거나 또는 달라질 수 있다. 예를 들어, 새로운 데이터 객체가 할당된 저장 블록(200)에 추가될 때(예로서, 제 1 부분(202), 제 2 부분(204), 또는 제 3 부분(206)에 추가될 때), 할당된 저장 블록(200) 내의 자유 공간의 양이 감소될 수 있다. 따라서, 일부 경우들에서, 할당된 저장 블록(200)의 제 3 부분(206)이 감소될 수 있다. 예를 들어, 새로운 데이터 객체는 할당된 저장 블록(200)이 포함되는 디바이스에 의해 획득되는 사진을 포함할 수 있다. 사진은 할당된 저장 블록(200) 상의 자유 저장 공간의 양을 감소시킬 수 있는 연관된 어댑터에 의해 할당된 저장 블록(200)(예컨대, 제 1 부분(202))에 자동으로 추가될 수 있으며, 결과적으로 일부 경우들에서 제 3 부분(206)의 크기를 감소시킬 수 있다. 다른 예시로서, 일부 실시예들에서, 제 2 부분(204)은 제 3 부분(206)이 크기를 감소시킬 수 있도록 (예로서, 프로그램의 추가 등을 통해서) 크기를 증가시킬 수 있다. 또한, 일부 실시예들에서, 네트워크 데이터가 제 3 부분(206)의 크기가 감소될 수 있도록 저장 네트워크 관리자에 의해 지시되는 바와 같이 제 1 부분(202)에 추가될 수 있다. 역으로, 하나 이상의 데이터 파일 또는 데이터 객체가 제 1 부분(202) 및/또는 제 2 부분(204)으로부터 제거될 수 있으며, 이는 제 3 부분(206)의 양을 증가시킬 수 있다.
저장 에이전트(201) 및/또는 저장 네트워크 관리자가 제 1 부분(202) 상에 저장된 네트워크 데이터의 양을 조정함으로써 제 3 부분(206)을 대략 타깃 크기로 유지시키도록 규정될 수 있다. 예를 들어, 일부 실시예들에서, 제 3 부분(206)의 크기(예로서, 할당된 저장 에이전트 상의 자유 공간의 양)가 제 3 부분(206)의 타깃 크기보다 더 큰지가 결정될 수 있다. 따라서, 일부 경우들에서 저장 에이전트(201)가 저장 네트워크 관리자에 이를 알릴 수 있으며 저장 네트워크 관리자는 제 3 부분(206)의 양을 감소시킬 수 있는 제 1 부분(202) 상에 저장될 네트워크 데이터로부터 추가 데이터 파일을 할당할 수 있다. 제 1 부분(202)으로의 네트워크 데이터의 추가 데이터 파일들의 할당은, 제 3 부분(206)의 크기가 타깃 크기와 동일하거나 또는 대략 동일할 수 있도록 이루어질 수 있다.
또한, 일부 실시예들에서, 제 3 부분(206)의 크기가 제 3 부분(206)의 타깃 크기보다 더 작은 것으로 결정될 수 있다. 예를 들어, 제 3 부분(206)의 크기는 제 1 부분(202) 및/또는 제 2 부분(204)으로의 데이터의 추가로 인해 감소될 수 있다. 따라서, 일부 경우들에서, 저장 에이전트(201)는 제 3 부분(206)의 크기가 증가할 수 있도록 제 1 부분(202)으로부터 네트워크 데이터를 제거할 수 있다. 네트워크 데이터의 제거는 제 3 부분(206)의 크기가 타깃 크기와 대략 동일하거나 또는 동일할 때까지 수행될 수 있다.
일부 실시예들에서, 저장 에이전트(201)는 2차 카피들이 자신들의 연관된 데이터 파일들에 대해 원하는 리던던시의 부분이 아닐 수 있기 때문에 2차 카피들로서 지정된 네트워크 데이터의 데이터 파일들을 먼저 제거하도록 구성될 수 있다. 반면에, 저장 에이전트(201)는 저장 네트워크 관리자로부터 허가를 먼저 수신하지 않고 1차 카피들로서 지정된 데이터 파일들을 제거할 수 없을 수 있다. 따라서, 일부 실시예들에서, 제 1 부분(202) 상에 저장된 데이터 파일들의 2차 카피들이 더 이상 존재하지 않고 제 3 부분(206)의 크기가 타깃 크기보다 작을 때, 저장 에이전트(201)는 어느 데이터 파일들이 제 1 부분(202)으로부터 제거될 수 있는지와 관련된 저장 네트워크 관리자로의 요청을 전달할 수 있다.
도 2a-2c는 제 3 부분(206)이 타깃 크기 아래의 크기로 감소하도록 제 2 부분(204)의 크기가 증가할 때 할당된 저장 블록(200) 내의 동작들의 예시적인 진행을 도시한다. 도 2a는 초기 할당(210a)을 도시한다. 초기 할당에서, 제 3 부분(206)의 타깃 크기는 할당된 저장 블록의 총 저장 용량의 10%일 수 있으며 제 3 부분(206)의 크기는 타깃 크기와 대략 동일할 수 있다. 또한, 제 2 부분(204)이 하나 이상의 프로그램과 연관된 로컬 데이터에 대해 할당될 수 있고 제 1 부분(202)이 메타데이터(224) 및 네트워크 데이터(212)의 제 1 하위세트의 저장을 위해 할당될 수 있다.
도 2b는 제 2 부분(204)이 제 3 부분(206)의 부분(208)을 포함하도록 증가하는 중간 할당(210b)을 도시한다. 예를 들어, 초기에 제 2 부분(204)을 사용했을 수 있는 프로그램은 제 3 부분(206)의 부분(208)을 포함하도록 저장 사용을 증가시킬 수 있다. 따라서, 예컨대, 할당된 저장 블록(200)의 저장 용량의 약 10% 내지 7%의 제 3 부분(206)이 감소될 수 있다. 중간 할당(210b)은 예를 들어 할당된 저장 블록(200)을 포함하는 디바이스 상에 로딩 및/또는 구동되는 하나 이상의 프로그램으로부터 발생할 수 있다.
도 2c는 제 3 부분(206)이 증가될 수 있는 해소된 할당(210c)을 도시한다. 특히, 제 3 부분(206)은 제 3 부분(206)으로 제 1 부분(202)의 일부를 재할당함으로써 (예를 들어, 약 10%의) 타깃 백분율로 돌아갈 수 있다. 따라서, 제 3 부분(206)의 타깃 크기(예로서, 할당된 저장 블록(200)의 전체 크기의 10%)가 제 1 부분(202)의 일부를 제 3 부분(206)으로 재할당함으로써 유지될 수 있다.
일부 실시예들에서, 제 1 부분(202)을 재할당하기 위해서, 제 1 부분(202) 상의 하나 이상의 데이터 파일이 삭제될 수 있다. 예를 들어, 초기 할당(210a)에서, 도 2a 및 2c를 참조하면, 네트워크 데이터(212)의 제 1 하위세트가 할당된 저장 블록(200)의 제 1 부분(202) 상에 저장될 수 있다. 도 2c의 해소된 할당에서, 네트워크 데이터(216)의 제 2 하위세트가 제 1 부분(202) 상에 저장될 수 있고, 여기에서 데이터 파일들(216)의 제 2 하위세트가 데이터 파일들(212)의 제 1 하위세트보다 더 작을 수 있다. 데이터 파일들이 사전구성된 백분율을 유지하도록 삭제될 수 있는 실시예들에서, 데이터 파일들(216)의 제 2 하위세트는 데이터 파일들(212)의 하나 이상의 제 1 하위세트를 포함할 수 있다.
도 3은 본 명세서에 기술된 적어도 하나의 실시예에 따라 저장 블록 상의 저장 할당을 관리하는 예시적인 방법(300)의 흐름도이다. 일부 실시예들에서, 도 1의 예시적인 저장 시스템(100)에서 동작하는 예시적인 저장 에이전트들(104) 및 예시적인 저장 네트워크 관리자(114)와 같은 저장 시스템에서 동작하는 저장 에이전트 및/또는 저장 네트워크 관리자에 의해서 방법(300)의 하나 이상의 단계가 구현될 수 있다. 예를 들어, 도 1의 저장 에이전트들(104) 및/또는 저장 네트워크 관리자(114) 중 하나가 컴퓨터 지시를 실행하여 방법(300)의 블록들 중 하나 이상에 의해 표현된 바와 같이 저장 에이전트 상의 저장 할당을 관리하는 동작을 수행하도록 구성될 수 있다. 별개의 블록들로 도시되었지만, 다양한 블록들이 원하는 구현에 따라서 추가의 블록들로 분할될 수 있고, 더 적은 블록들로 결합될 수 있거나, 또는 제거될 수 있다. 방법(300)이 이제 도 3을 참조하여 논의될 것이다.
방법(300)은 저장 블록의 제 1 부분이 네트워크 데이터의 저장을 위해 제 1 부분으로 할당되는 블록(302)에서 시작할 수 있다. 네트워크 데이터는 저장 블록을 포함하는 저장 네트워크 및 하나 이상의 다른 저장 블록과 연관될 수 있다. 블록(304)에서, 저장 블록의 제 2 부분이 저장 블록을 포함하는 디바이스의 하나 이상의 프로그램과 연관된 로컬 데이터에 대해 할당될 수 있다. 블록(306)에서, 저장 블록의 제 3 부분이 저장 블록의 자유 공간으로서 할당될 수 있다. 제 3 부분이 저장 블록 상의 자유 공간의 원하는 양과 연관된 타깃 크기를 가질 수 있다.
블록(308)에서, 제 3 부분의 크기가 제 1 부분 상에 저장된 네트워크 데이터의 양을 조정함으로써 대략 타깃 크기로 유지될 수 있다. 일부 실시예들에서, 제 3 부분의 크기는 아래의 도 4와 관련하여 기술되는 방법(400)에 따라 타깃 크기로 대략 유지될 수 있다.
도 4는 본 명세서에 기술된 적어도 하나의 실시예에 따라 저장 블록 상에서 저장을 관리하는 예시적인 방법(400)의 흐름도이다. 일부 실시예들에서, 방법(400)의 하나 이상의 단계가 도 1 및 2a 내지 2c의 예시적인 저장 에이전트들(104, 201) 및 도 1의 예시적인 저장 시스템(100) 내에서 동작하는 예시적인 저장 네트워크 관리자(114)와 같은 저장 에이전트 및/또는 저장 시스템 내에서 동작하는 저장 네트워크 관리자에 의해 구현될 수 있다. 예를 들어, 위에서 기술된 저장 에이전트들(104, 201) 중 하나 및/또는 저장 네트워크 관리자(114)는 방법(400)의 하나 이상의 블록에 의해 표현된 바와 같은 저장 에이전트 상의 저장 할당을 관리하는 동작을 수행하기 위한 컴퓨터 지시를 실행하도록 구성될 수 있다. 별개의 블록들로 도시되었지만, 다양한 블록들이 원하는 구현에 따라서 추가의 블록들로 분할될 수 있고, 더 적은 블록들로 결합될 수 있거나, 또는 제거될 수 있다.
방법(400)이 이제 도 4를 참조하여 논의될 것이다. 일부 실시예들에서, 방법(400)은 도 2a-2c 및 3과 관련하여 전술된 바와 같은 방식으로 네트워크 데이터를 위한 제 1 부분, 로컬 데이터를 위한 제 2 부분 및 자유 공간을 위한 제 3 부분으로 할당된 저장 블록과 관련해 구현될 수 있다. 설명을 위해서, 방법(400)이 저장 에이전트(201), 할당된 저장 블록(200) 및 그것의 연관된 제 1 부분(202), 제 2 부분(204) 및 제 3 부분(206)과 관련하여 아래에 기술되었다. 그러나, 방법(400)이 이러한 특정 구현으로 제한되지는 않는다.
방법(400)은 제 3 부분(206)의 타깃 크기가 할당된 저장 블록(200)에 대해 결정될 수 있는 블록(402)에서 시작할 수 있다. 일부 실시예들에서, 저장 에이전트(201)가 자유 저장 공간의 타깃 크기를 결정할 수 있다. 이러한 실시예들 또는 다른 실시예들에서, 할당된 저장 블록(200)이 포함될 수 있는 저장 네트워크와 연관된 저장 네트워크 관리자 또한 제 3 부분(206)의 타깃 크기를 결정할 수 있으며 저장 에이전트(201)로 타깃 크기를 전달할 수 있다.
위에서 나타내어진 바와 같이, 타깃 크기는 일부 실시예들에서 필요하거나 원한다면 할당된 저장 블록(200)이 데이터를 추가할 수 있도록 할당된 저장 블록(200)을 위한 자유 저장 공간의 원하는 양에 기초하여 결정될 수 있다. 일부 실시예들에서, 타깃 크기는 네트워크 데이터의 평균 파일 크기, 로컬 데이터의 평균 파일 크기, 및/또는 할당된 저장 블록(200)의 총 저장 용량에 기초할 수 있다. 이러한 실시예들 및 다른 실시예들에서, 타깃 크기가 할당된 저장 블록(200) 또는 저장 공간의 고정된 양의 총 저장 용량의 백분율일 수 있다.
블록(404)에서, 제 3 부분(206)의 양이 모니터링될 수 있다. 저장 에이전트(201) 및/또는 연관된 저장 네트워크 관리자가 모니터링을 수행할 수 있다. 블록(406)에서, 제 3 부분(206)의 크기가 자유 저장 공간의 원하는 양과 관련된 타깃 크기와 대략 동일하거나 또는 동일하다. 다시 한번, 저장 에이전트(201) 및/또는 연관된 저장 네트워크 관리자가 이러한 결정을 내릴 수 있다. 제 3 부분(206)의 크기가 타깃 크기에 대략 동일하거나 동일할 때, 방법(400)은 제 3 부분(206)의 양의 모니터링을 위해 블록(404)으로 돌아갈 수 있다. 제 3 부분(206)의 크기가 타깃 크기와 대략 동일하지 않거나 또는 동일하지 않다면, 방법(400)이 블록(408)으로 진행할 수 있다.
블록(408)에서, 제 3 부분(206)의 크기가 타깃 크기보다 큰지가 결정될 수 있다. 제 3 부분(206)의 크기가 타깃 크기보다 더 큰 경우, 방법(400)이 일부 실시예들에서 블록(410)으로 진행할 수 있다. 제 3 부분(206)이 타깃 크기보다 더 큰 경우에, 할당된 저장 블록(200)이 네트워크 데이터와 같은 더 많은 데이터를 저장할 수 있다. 따라서, 일부 실시예들에서는, 블록(410)에서 네트워크 데이터 중 어느 데이터 파일이 제 1 부분(202)에 추가될 수 있는지가 결정될 수 있다.
일부 실시예들에서는, 블록(410)에서 네트워크 데이터 중 소정의 데이터 파일들이 저장 네트워크 관리자에 의해 제 1 부분(202)으로 할당되었을 수 있지만, 제 1 부분(202)에 할당된 모든 데이터 파일들이 제 1 부분(202)에 아직 저장되지 않았을 수 있다. 이렇게, 블록(410)에서 하나 이상의 이러한 데이터 파일들이 제 1 부분(202)에 추가되어야만 하는지가 결정될 수 있다. 이러한 실시예들 및 다른 실시예들에서, 모든 할당된 데이터 파일들이 제 1 부분(202) 상에 저장될 수 있거나, 또는 저장 네트워크 관리자가 임의의 적합한 할당 방안에 따라 제 1 부분(202)에 추가될 수 있는 네트워크 데이터의 데이터 파일들의 리스트를 생성할 수 있도록 유효기간이 지났을 수 있다. 따라서, 일부 실시예들에서, 블록(410)에서 저장 네트워크 관리자에 의해 생성된 데이터 파일들의 리스트의 하나 이상의 데이터 파일이 제 1 부분(202)에 추가되어야만 한다는 것이 결정될 수 있다. 일부 실시예들에서, 저장 네트워크 관리자가 제 1 부분(202)을 모니터링하도록 구성될 수 있고 간헐적으로 리스트를 생성할 수 있는 한편, 다른 실시예들에서 저장 에이전트(201)가 저장 네트워크 관리자로부터 리스트를 요청할 수 있다.
블록(412)에서, 블록(210) 내의 제 1 부분(202)에 추가되도록 결정된 네트워크 데이터의 데이터 파일들이 제 1 부분(202)에 추가될 수 있다. 일부 실시예들에서, 네트워크 데이터의 데이터 파일들은 저장 에이전트(201)가 포함되는 저장 네트워크 내에 포함될 수 있는 하나 이상의 다른 저장 블록으로부터 제 1 부분(202)에 추가될 수 있다. 블록(412)에 이어서, 방법(400)이 블록(404)으로 돌아갈 수 있다. 일부 실시예들에서, 방법(400)이 블록들(410, 412)을 생략할 수 있으며 방법(400)은 제 3 부분의 크기가 타깃 크기보다 더 클 때 블록(408)으로부터 블록(404)으로 다시 진행할 수 있다.
제 3 부분(206)의 크기가 타깃 크기보다 더 큰지가 결정될 수 있는 블록(408)으로 돌아간다. 일부 실시예들에서 제 2 부분(206)의 크기가 타깃 크기보다 더 작을 때, 방법(400)은 블록(414)으로 진행할 수 있다. 블록(414)에서, 2차 카피들로서 제 1 부분(202) 상에 저장된 데이터 파일들의 리스트가 생성될 수 있다. 블록(416)에서, 2차 카피들로서 지정된 하나 이상의 데이터 파일이 제거될 수 있다. 저장 에이전트(201) 및/또는 저장 네트워크 관리자가 블록들(414, 416)과 연관된 지시를 생성 및/또는 실행하도록 구성될 수 있다. 위에서 언급된 바와 같이, 자신의 연관된 데이터의 원하는 리던던시에 대해 매우 중요하지 않을 수 있기 때문에, 데이터 파일들의 2차 카피들이 일부 경우들에서 먼저 제거될 수 있다. 또한, 저장 에이전트(201)는 데이터 파일들의 2차 카피들과 관련된 동작들로 인해 저장 네트워크 관리자로부터 명백한 허가 없이 블록들(414, 416)과 연관된 동작들을 수행할 수 있다.
블록(418)에서, 하나 이상의 2차 카피를 삭제한 후에 제 3 부분(206)의 양이 타깃 크기보다 여전히 더 작은지 여부가 결정될 수 있다. 일부 실시예들에서, 제 3 부분(206)의 크기가 여전히 타깃 크기보다 더 작을 때, 이들 모두가 이미 삭제되지 않았다면 더 많은 2차 카피들이 삭제될 수 있다. 이러한 실시예들 및 다른 실시예들에서, 블록(420)에서 제 3 부분(206)의 크기가 여전히 타깃 크기보다 더 작을 때, 저장 에이전트(201)가 제 1 부분(202)으로부터 제거될 수 있는 하나 이상의 데이터 파일들의 리스트에 대해 저장 네트워크 관리자와 접촉할 수 있다. 저장 네트워크 관리자는 저장 에이전트(201)에 네트워크 데이터를 할당하도록 저장 네트워크 관리자에 의해 사용될 수 있는 할당 방안에 기초한 리스트를 생성할 수 있다. 블록(422)에서, 저장 에이전트(201)가 블록(420)에서 생성된 요청과 관련된 저장 네트워크 관리자에 의해 생성된 리스트에 따라 제 1 부분(202)으로부터 데이터 파일들을 제거할 수 있다. 블록(422)에 따라서, 방법(400)이 블록(404)으로 돌아갈 수 있다.
따라서, 방법(300) 및/또는 방법(400)이 저장 블록 상의 데이터의 저장을 관리하도록 사용될 수 있다. 당업자는 본 명세서에 개시된 이러한 절차 및 방법과 다른 절차 및 방법에 있어서, 프로세스 및 방법에서 수행되는 기능들이 다른 순서로 구현될 수 있음을 이해할 것이다. 또한, 개략적으로 기술된 단계들 및 동작들은 단지 예시로서 제공되었으며, 단계들 및 동작들의 일부가 선택적일 수 있고, 더 적은 단계들 및 동작들로 결합될 수 있거나, 또는 개시된 실시예들을 해하지 않고 추가적인 단계들 및 동작들로 확장될 수 있다. 또한, 특정 요소들이 특정 단계들을 수행하는 것으로 개시되었을 수 있지만, 일부 실시예들에서 서로 다른 요소가 동일한 단계들을 수행할 수 있다. 본 명세서에 기술된 실시예들은 아래에서 더욱 자세하게 논의되는 바와 같은 다양한 컴퓨터 하드웨어 또는 소프트웨어 모듈들을 포함하는 전용 또는 범용 컴퓨터의 사용을 포함할 수 있다.
본 명세서에 기술된 실시예들은 자신에 저장된 컴퓨터 실행가능한 지시 또는 데이터 구조를 운반하거나 또는 구비하기 위한 컴퓨터 판독가능한 매체를 이용하여 구현될 수 있다. 이러한 컴퓨터 판독가능한 매체는 범용 또는 전용 컴퓨터에 의해 접근될 수 있는 임의의 이용가능한 매체일 수 있다. 예시로서, 이러한 컴퓨터 판독가능한 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학적 디스크 스토리지, 자기 디스크 스토리지 또는 다른 자기 스토리지 장치들을 포함하는 비일시적 컴퓨터 판독가능한 저장 매체, 또는 컴퓨터 실행가능한 지시 또는 데이터 구조의 형태로 원하는 프로그램 코드 수단을 운반 또는 저장하도록 사용될 수 있고 범용 또는 전용 컴퓨터에 의해 접근될 수 있는 임의의 다른 비일시적 저장 매체를 포함할 수 있다. 전술된 것들의 조합 또한 컴퓨터 판독가능 매체의 범주 내에 포함되어야만 한다.
컴퓨터 실행가능한 지시는, 예를 들어 범용 컴퓨터, 전용 컴퓨터, 또는 전용 프로세싱 디바이스로 하여금 소정의 기능 또는 기능들의 그룹을 수행하게 하는 지시 및 데이터를 포함한다. 주제사항이 구조적 특징부 및/또는 방법론적 동작들에 대해 특정한 언어로 기술되었지만, 첨부된 청구범위 내에 정의된 주제사항이 위에 기술된 특정한 특징부 또는 동작들로 반드시 제한되지는 않음이 이해되어야만 한다. 오히려, 전술된 특정한 특징부 및 동작들이 청구범위를 구현하는 예시적인 형태로서 개시되었다.
본 명세서에서 사용되는 "모듈" 또는 "구성요소"라는 용어는 컴퓨팅 시스템의 범용 하드웨어(예컨대, 컴퓨터 판독가능한 매체, 프로세싱 디바이스 등)에 의해 저장될 수 있고/있거나 실행될 수 있는 모듈 또는 구성요소 및/또는 소프트웨어 객체 또는 소프트웨어 루틴의 동작들을 수행하도록 구성된 특정 하드웨어 구현을 지칭할 수 있다. 일부 실시예들에서, 본 명세서에 기술된 서로 다른 구성요소, 모듈, 엔진 및 서비스가 (예로서 개별적인 스레드와 같은) 컴퓨팅 시스템 상에서 실행하는 객체 또는 프로세스로서 구현될 수 있다. 본 명세서에 기술된 시스템 및 방법의 일부가 일반적으로 (범용 하드웨어에 의해 저장 및/또는 실행되는) 소프트웨어 내에 구현되는 것으로 기술되었지만, 특정 하드웨어 구현 또는 소프트웨어 및 특정 하드웨어 구현의 조합 또한 가능하거나 고려된다. 이 설명에서, "컴퓨팅 엔티티" 는 본 명세서에서 이전에 정의된 바와 같은 임의의 컴퓨팅 시스템일 수 있거나, 또는 컴퓨팅 시스템 상에서 구동하는 임의의 모듈 또는 모듈들의 조합일 수 있다.
본 명세서에 개시된 모든 예시들 및 조건적인 언어들은 독자가 본 개시내용 및 본 기술분야를 더 발전시키도록 본 출원인에 의해 기여된 개념을 이해하는 것을 돕기 위한 교육학적 목적으로 의도되었으며, 이렇게 특별하게 개시된 예시들 및 조건들에 대한 제한 없이 해석된다. 본 개시내용의 실시예들이 자세하게 기술되었지만, 다양한 변경, 치환 및 수정이 본 개시내용의 사상 및 범주로부터 벗어나지 않고 이루어질 수 있음이 이해되어야만 한다.
Claims (20)
- 저장 블록 상의 저장 할당을 관리하는 방법으로서,
저장 블록 및 하나 이상의 다른 저장 블록들을 포함하는 저장 네트워크와 연관된 네트워크 데이터의 저장을 위해 상기 저장 블록의 제 1 부분을 할당하는 단계;
상기 저장 블록을 포함하는 디바이스의 하나 이상의 프로그램과 연관된 로컬 데이터의 저장을 위해 상기 저장 블록의 제 2 부분을 할당하는 단계;
상기 저장 블록의 자유 공간으로서 상기 저장 블록의 제 3 부분을 할당하되, 상기 제 3 부분이 상기 저장 블록에 대해 원하는 양의 자유 공간과 연관된 타깃 크기를 갖는, 단계; 및
상기 제 1 부분 상에 저장된 네트워크 데이터의 양을 조정함으로써 상기 제 3 부분을 대략 상기 타깃 크기로 유지하는 단계를 포함하는, 방법. - 제 1 항에 있어서,
상기 제 3 부분을 대략 상기 타깃 크기로 유지하는 단계는, 상기 제 3 부분의 실제 크기가 상기 제 3 부분의 상기 타깃 크기보다 더 큰 경우, 상기 저장 네트워크의 상기 하나 이상의 다른 저장 블록들로부터 상기 제 1 부분에 네트워크 데이터를 추가하는 단계를 포함하는, 방법.
- 제 2 항에 있어서,
상기 저장 네트워크의 저장 네트워크 관리자로부터 수신된 지시에 따라서 상기 제 1 부분에 상기 네트워크 데이터를 추가하는 단계를 더 포함하는, 방법. - 제 1 항에 있어서,
상기 제 3 부분을 대략 상기 타깃 크기로 유지하는 단계는, 상기 제 3 부분의 실제 크기가 상기 제 3 부분의 상기 타깃 크기보다 더 작은 경우, 상기 제 1 부분으로부터 네트워크 데이터를 제거하는 단계를 포함하는, 방법. - 제 4 항에 있어서,
2차 카피(secondary copy)로 지정된 상기 네트워크 데이터의 하나 이상의 데이터 파일을 가장 먼저 제거하는 단계를 더 포함하는, 방법. - 제 4 항에 있어서,
상기 저장 네트워크의 저장 네트워크 관리자로부터 수신된 지시에 따라서 상기 네트워크 데이터를 제거하는 단계를 더 포함하는, 방법. - 제 1 항에 있어서,
상기 네트워크 데이터의 전체 크기가 상기 제 1 부분 상의 이용가능한 공간보다 더 큰지 여부를 판정하는 단계;
상기 네트워크 데이터의 전체 크기가 상기 제 1 부분 상의 이용가능한 공간보다 더 크면, 상기 제 1 부분 상에 상기 네트워크 데이터의 데이터 파일들에 대한 정보를 포함하는 데이터의 카탈로그를 저장하고 상기 제 1 부분 상에 상기 데이터 파일들의 하위세트를 저장하는 단계; 및
상기 네트워크 데이터의 전체 크기가 상기 제 1 부분 상의 이용가능한 공간보다 더 작으면, 상기 네트워크 데이터를 전부 상기 제 1 부분 상에 저장하는 단계를 더 포함하는, 방법. - 제 1 항에 있어서,
상기 타깃 크기는 상기 저장 블록의 총 저장 용량의 백분율 또는 저장 공간의 고정된 양인, 방법. - 제 1 항에 있어서,
상기 타깃 크기는 상기 네트워크 데이터의 평균 파일 크기 및 상기 로컬 데이터의 평균 파일 크기 중 하나 이상에 기초하는, 방법. - 저장 블록으로서,
하나 이상의 다른 저장 블록들을 포함하는 저장 네트워크와 연관된 네트워크 데이터의 저장을 위해 할당된 제 1 부분;
상기 저장 블록을 포함하는 디바이스의 하나 이상의 프로그램과 연관된 로컬 데이터의 저장을 위해 할당된 제 2 부분;
상기 저장 블록의 자유 공간으로서 데이터의 양을 조정함으로써 대략 타깃 크기로 유지되는 제 3 부분을 포함하는, 저장 블록. - 제 10 항에 있어서,
상기 제 3 부분을 대략 상기 타깃 크기로 유지하기 위해서, 상기 제 3 부분의 실제 크기가 상기 제 3 부분의 상기 타깃 크기보다 더 큰 경우, 네트워크 데이터가 상기 저장 네트워크의 상기 하나 이상의 다른 저장 블록들로부터 상기 제 1 부분에 추가되는, 저장 블록. - 제 11 항에 있어서,
상기 네트워크 데이터가 상기 저장 네트워크의 저장 네트워크 관리자로부터 수신된 지시에 따라서 추가되는, 저장 블록. - 제 10 항에 있어서,
상기 제 3 부분을 대략 상기 타깃 크기로 유지하기 위해서, 상기 제 3 부분의 실제 크기가 상기 제 3 부분의 상기 타깃 크기보다 더 작은 경우, 네트워크 데이터가 상기 제 1 부분으로부터 제거되는, 저장 블록.
- 제 13 항에 있어서,
상기 네트워크 데이터가 상기 저장 네트워크의 저장 네트워크 관리자로부터 수신된 지시에 따라서 제거되는, 저장 블록. - 제 13 항에 있어서,
2차 카피로 지정된 상기 네트워크 데이터의 하나 이상의 데이터 파일이 가장 먼저 제거되는, 저장 블록. - 제 10 항에 있어서,
상기 타깃 크기는 상기 저장 블록의 총 저장 용량의 백분율 또는 저장 공간의 고정된 양인, 저장 블록. - 제 10 항에 있어서,
상기 타깃 크기는 상기 네트워크 데이터의 평균 파일 크기 및 상기 로컬 데이터의 평균 파일 크기 중 하나 이상에 기초하는, 저장 블록. - 시스템으로 하여금 저장 에이전트 상의 저장 할당을 관리하기 위한 동작들을 수행하게 하는 지시를 포함하는 컴퓨터 판독가능 저장 매체로서, 상기 동작들은,
저장 블록 및 하나 이상의 다른 저장 블록들을 포함하는 저장 네트워크와 연관된 네트워크 데이터의 저장을 위해 상기 저장 블록의 제 1 부분을 할당하고;
상기 저장 블록을 포함하는 디바이스의 하나 이상의 프로그램과 연관된 로컬 데이터의 저장을 위해 상기 저장 블록의 제 2 부분을 할당하고;
상기 저장 블록의 자유 공간으로서 상기 저장 블록의 제 3 부분을 할당하되, 상기 제 3 부분이 상기 저장 블록에 대해 원하는 양의 자유 공간과 연관된 타깃 크기를 가지며;
상기 제 1 부분 상에 저장된 네트워크 데이터의 양을 조정함으로써 상기 제 3 부분을 대략 상기 타깃 크기로 유지하는 것을 포함하는, 컴퓨터 판독가능 저장 매체. - 제 18 항에 있어서,
상기 제 3 부분을 대략 상기 타깃 크기로 유지하는 것은, 상기 제 3 부분의 실제 크기가 상기 제 3 부분의 상기 타깃 크기보다 더 큰 경우, 상기 저장 네트워크의 상기 하나 이상의 다른 저장 블록들로부터 상기 제 1 부분에 네트워크 데이터를 추가하는 것을 포함하는, 컴퓨터 판독가능 저장 매체. - 제 18 항에 있어서,
상기 제 3 부분을 대략 상기 타깃 크기로 유지하는 것은, 상기 제 3 부분의 실제 크기가 상기 제 3 부분의 상기 타깃 크기보다 더 작은 경우, 상기 제 1 부분으로부터 네트워크 데이터를 제거하는 것을 포함하는, 컴퓨터 판독가능 저장 매체.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361750324P | 2013-01-08 | 2013-01-08 | |
US201361750319P | 2013-01-08 | 2013-01-08 | |
US14/137,680 | 2013-12-20 | ||
US14/137,680 US9727268B2 (en) | 2013-01-08 | 2013-12-20 | Management of storage in a storage network |
PCT/US2014/071761 WO2015095851A1 (en) | 2013-01-08 | 2014-12-20 | Management of storage in a storage network |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160124085A true KR20160124085A (ko) | 2016-10-26 |
KR101791594B1 KR101791594B1 (ko) | 2017-10-30 |
Family
ID=51061780
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020157021377A KR101700667B1 (ko) | 2013-01-08 | 2014-01-08 | 스토리지 네트워크 데이터 할당 |
KR1020167019712A KR101791594B1 (ko) | 2013-01-08 | 2014-12-20 | 저장 네트워크 내의 저장 관리 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020157021377A KR101700667B1 (ko) | 2013-01-08 | 2014-01-08 | 스토리지 네트워크 데이터 할당 |
Country Status (8)
Country | Link |
---|---|
US (8) | US9727268B2 (ko) |
EP (3) | EP2943888A4 (ko) |
JP (1) | JP2016511862A (ko) |
KR (2) | KR101700667B1 (ko) |
CN (2) | CN105164661A (ko) |
CA (1) | CA2900966A1 (ko) |
TW (4) | TWI514161B (ko) |
WO (4) | WO2014110142A1 (ko) |
Families Citing this family (54)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9495194B1 (en) * | 2008-10-17 | 2016-11-15 | Dispersive Networks, Inc. | Dispersive storage area networks |
US8881256B1 (en) * | 2011-12-21 | 2014-11-04 | Amazon Technologies, Inc. | Portable access to auditing information |
US9239781B2 (en) | 2012-02-07 | 2016-01-19 | SMART Storage Systems, Inc. | Storage control system with erase block mechanism and method of operation thereof |
US9671962B2 (en) | 2012-11-30 | 2017-06-06 | Sandisk Technologies Llc | Storage control system with data management mechanism of parity and method of operation thereof |
US9727268B2 (en) | 2013-01-08 | 2017-08-08 | Lyve Minds, Inc. | Management of storage in a storage network |
US20140229695A1 (en) * | 2013-02-13 | 2014-08-14 | Dell Products L.P. | Systems and methods for backup in scale-out storage clusters |
US9329928B2 (en) | 2013-02-20 | 2016-05-03 | Sandisk Enterprise IP LLC. | Bandwidth optimization in a non-volatile memory system |
US10049037B2 (en) | 2013-04-05 | 2018-08-14 | Sandisk Enterprise Ip Llc | Data management in a storage system |
US9543025B2 (en) | 2013-04-11 | 2017-01-10 | Sandisk Technologies Llc | Storage control system with power-off time estimation mechanism and method of operation thereof |
US10546648B2 (en) | 2013-04-12 | 2020-01-28 | Sandisk Technologies Llc | Storage control system with data management mechanism and method of operation thereof |
US9244519B1 (en) | 2013-06-25 | 2016-01-26 | Smart Storage Systems. Inc. | Storage system with data transfer rate adjustment for power throttling |
US9367353B1 (en) | 2013-06-25 | 2016-06-14 | Sandisk Technologies Inc. | Storage control system with power throttling mechanism and method of operation thereof |
US9037762B2 (en) * | 2013-07-31 | 2015-05-19 | Dropbox, Inc. | Balancing data distribution in a fault-tolerant storage system based on the movements of the replicated copies of data |
US9448946B2 (en) | 2013-08-07 | 2016-09-20 | Sandisk Technologies Llc | Data storage system with stale data mechanism and method of operation thereof |
US9361222B2 (en) | 2013-08-07 | 2016-06-07 | SMART Storage Systems, Inc. | Electronic system with storage drive life estimation mechanism and method of operation thereof |
US9431113B2 (en) * | 2013-08-07 | 2016-08-30 | Sandisk Technologies Llc | Data storage system with dynamic erase block grouping mechanism and method of operation thereof |
US9747157B2 (en) | 2013-11-08 | 2017-08-29 | Sandisk Technologies Llc | Method and system for improving error correction in data storage |
US9678678B2 (en) | 2013-12-20 | 2017-06-13 | Lyve Minds, Inc. | Storage network data retrieval |
US9626376B1 (en) * | 2014-02-14 | 2017-04-18 | Western Digital Technologies, Inc. | Local area network distributed storage |
US9531610B2 (en) * | 2014-05-09 | 2016-12-27 | Lyve Minds, Inc. | Computation of storage network robustness |
CN104461914A (zh) * | 2014-11-10 | 2015-03-25 | 浪潮电子信息产业股份有限公司 | 一种自动精简配置的自适应优化方法 |
US10165040B2 (en) | 2015-06-05 | 2018-12-25 | Apple Inc. | Small disk support for large cloud-based storage systems |
CN105022679A (zh) * | 2015-07-15 | 2015-11-04 | 柳州首光科技有限公司 | 数据存储系统 |
CN105069367A (zh) * | 2015-07-15 | 2015-11-18 | 柳州首光科技有限公司 | 具有隐私保护功能的数据存储系统 |
CN105095796A (zh) * | 2015-07-15 | 2015-11-25 | 柳州首光科技有限公司 | 采用虹膜加密的数据存储系统 |
CN105069338A (zh) * | 2015-07-16 | 2015-11-18 | 柳州首光科技有限公司 | 采用虹膜加密的信息存储方法 |
CN105005745A (zh) * | 2015-07-16 | 2015-10-28 | 柳州首光科技有限公司 | 信息存储方法 |
CN105045682A (zh) * | 2015-07-16 | 2015-11-11 | 柳州首光科技有限公司 | 基于网络的信息存储方法 |
CN105069368A (zh) * | 2015-07-16 | 2015-11-18 | 柳州首光科技有限公司 | 具有隐私保护功能的信息存储方法 |
US11226987B2 (en) * | 2015-10-23 | 2022-01-18 | Oracle International Corporation | System and method for in-place data writes to reduce fragmentation in a multidimensional database environment |
US9996473B2 (en) | 2015-11-13 | 2018-06-12 | Samsung Electronics., Ltd | Selective underlying exposure storage mapping |
US9990304B2 (en) * | 2015-11-13 | 2018-06-05 | Samsung Electronics Co., Ltd | Multimode storage management system |
US9940028B2 (en) * | 2015-11-13 | 2018-04-10 | Samsung Electronics Co., Ltd | Multimode storage device |
US9946642B2 (en) * | 2015-11-13 | 2018-04-17 | Samsung Electronics Co., Ltd | Distributed multimode storage management |
CN105677240B (zh) * | 2015-12-30 | 2019-04-23 | 上海联影医疗科技有限公司 | 数据删除方法及系统 |
US20170222886A1 (en) * | 2016-01-28 | 2017-08-03 | Hewlett Packard Enterprise Development Lp | Metering storage usage |
US11287973B2 (en) | 2016-02-02 | 2022-03-29 | Samsung Electronics Co., Ltd. | Polymorphic storage devices |
CN105786777B (zh) * | 2016-02-22 | 2018-09-28 | 中国移动通信集团广东有限公司 | 基于文本解析器的存储容量集中处理方法 |
US10235060B1 (en) | 2016-04-14 | 2019-03-19 | EMC IP Holding Company, LLC | Multilevel snapshot replication for hot and cold regions of a storage system |
US10228886B2 (en) | 2016-04-20 | 2019-03-12 | International Business Machines Corporation | Storage device volume selection for improved space allocation |
US10572247B2 (en) * | 2016-06-01 | 2020-02-25 | Dell Products L.P. | Prototype management system |
US10140039B1 (en) | 2016-12-15 | 2018-11-27 | EMC IP Holding Company LLC | I/O alignment for continuous replication in a storage system |
US10467102B1 (en) | 2016-12-15 | 2019-11-05 | EMC IP Holding Company LLC | I/O score-based hybrid replication in a storage system |
US10346057B1 (en) * | 2016-12-30 | 2019-07-09 | EMC IP Holding Company LLC | Probability-based allocation of storage from storage pools |
TWI740884B (zh) * | 2017-01-20 | 2021-10-01 | 香港商阿里巴巴集團服務有限公司 | 分散式檔案系統中的資料寫入方法和裝置 |
US10209914B2 (en) | 2017-01-31 | 2019-02-19 | Sandisk Technologies Llc | System and method for dynamic folding or direct write based on block health in a non-volatile memory system |
CN106934034B (zh) * | 2017-03-14 | 2019-11-12 | 杭州火剧科技有限公司 | 分析影视作品发行特征的方法和服务器 |
JP6489144B2 (ja) * | 2017-03-23 | 2019-03-27 | 日本電気株式会社 | 情報処理装置 |
US11782875B2 (en) * | 2017-11-13 | 2023-10-10 | Weka.IO Ltd. | Directory structure for a distributed storage system |
US10700974B2 (en) * | 2018-01-30 | 2020-06-30 | Marvell Israel (M.I.S.L) Ltd. | Dynamic allocation of memory for packet processing instruction tables in a network device |
US11171671B2 (en) * | 2019-02-25 | 2021-11-09 | Samsung Electronics Co., Ltd. | Reducing vulnerability window in key value storage server without sacrificing usable capacity |
US10892938B1 (en) * | 2019-07-31 | 2021-01-12 | Abb Power Grids Switzerland Ag | Autonomous semantic data discovery for distributed networked systems |
TWI751580B (zh) | 2020-06-10 | 2022-01-01 | 財團法人工業技術研究院 | 儲存空間暫存檔案的管理方法及用於儲存多個暫存檔案的記錄裝置 |
US20240296155A1 (en) * | 2023-03-01 | 2024-09-05 | Microsoft Technology Licensing, Llc | Methods and systems of verifying data synchronized to multiple data stores |
Family Cites Families (88)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5881311A (en) | 1996-06-05 | 1999-03-09 | Fastor Technologies, Inc. | Data storage subsystem with block based data management |
US6708221B1 (en) * | 1996-12-13 | 2004-03-16 | Visto Corporation | System and method for globally and securely accessing unified information in a computer network |
US6085192A (en) | 1997-04-11 | 2000-07-04 | Roampage, Inc. | System and method for securely synchronizing multiple copies of a workspace element in a network |
FR2759517B1 (fr) | 1997-01-24 | 1999-03-05 | Bull Sa | Systeme informatique a stockage de donnees distribue |
US6094672A (en) | 1997-05-19 | 2000-07-25 | Novell, Inc. | Method and system for time synchronization management |
JP3233071B2 (ja) | 1997-07-02 | 2001-11-26 | 日本電気株式会社 | マネージャ・エージェント間同期装置及びマネージャ・エージェント間同期方法並びにマネージャ・エージェント間同期制御プログラムを記録した記録媒体 |
EP0986225A1 (en) | 1998-09-11 | 2000-03-15 | Visto Corporation | System and method for securely synchronizing multiple copies of a workspace element in a network |
US20020108025A1 (en) | 1998-10-21 | 2002-08-08 | Nicholas Shaylor | Memory management unit for java environment computers |
US6757847B1 (en) | 1998-12-29 | 2004-06-29 | International Business Machines Corporation | Synchronization for system analysis |
JP3953243B2 (ja) | 1998-12-29 | 2007-08-08 | インターナショナル・ビジネス・マシーンズ・コーポレーション | システム分析のためにバス・アービトレーション制御を使用する同期方法及び装置 |
US6401104B1 (en) | 1999-07-03 | 2002-06-04 | Starfish Software, Inc. | System and methods for synchronizing datasets using cooperation among multiple synchronization engines |
US7509420B2 (en) | 2000-02-18 | 2009-03-24 | Emc Corporation | System and method for intelligent, globally distributed network storage |
US20010039497A1 (en) | 2000-03-30 | 2001-11-08 | Hubbard Edward A. | System and method for monitizing network connected user bases utilizing distributed processing systems |
US6789258B1 (en) | 2000-05-11 | 2004-09-07 | Sun Microsystems, Inc. | System and method for performing a synchronization operation for multiple devices in a computer system |
US6664891B2 (en) | 2000-06-26 | 2003-12-16 | Koninklijke Philips Electronics N.V. | Data delivery through portable devices |
US6470329B1 (en) | 2000-07-11 | 2002-10-22 | Sun Microsystems, Inc. | One-way hash functions for distributed data synchronization |
CN101309168A (zh) * | 2000-07-31 | 2008-11-19 | 株式会社东芝 | 代理程序系统 |
US20020078461A1 (en) | 2000-12-14 | 2002-06-20 | Boykin Patrict Oscar | Incasting for downloading files on distributed networks |
US7177912B1 (en) | 2000-12-22 | 2007-02-13 | Datacore Software Corporation | SCSI transport protocol via TCP/IP using existing network hardware and software |
ATE344995T1 (de) | 2001-01-26 | 2006-11-15 | Siemens Ag | Verfahren, programm und anordnung zur synchronisierung von einem network manager mit einem network agenten |
US20020129290A1 (en) | 2001-03-06 | 2002-09-12 | Bruno Couillard | Method and system for time synchronization |
US20020176418A1 (en) | 2001-04-19 | 2002-11-28 | Russell Hunt | Systems and methods for producing files for streaming from a content file |
US7685126B2 (en) | 2001-08-03 | 2010-03-23 | Isilon Systems, Inc. | System and methods for providing a distributed file system utilizing metadata to track information about data stored throughout the system |
US6721871B2 (en) | 2002-04-02 | 2004-04-13 | Nokia Corporation | Method and apparatus for synchronizing data stores with respect to changes in folders |
US7707175B1 (en) | 2002-05-02 | 2010-04-27 | Palmsource Inc. | Single ended synchronization agents |
US7139748B1 (en) | 2002-05-02 | 2006-11-21 | Palmsource, Inc. | N-way synchronization of computer databases |
JP2004013547A (ja) | 2002-06-07 | 2004-01-15 | Hitachi Ltd | データ割当方法、情報処理システム |
US6904498B2 (en) | 2002-10-08 | 2005-06-07 | Netcell Corp. | Raid controller disk write mask |
US20040127242A1 (en) | 2002-12-31 | 2004-07-01 | Dashevsky Jane Y. | Apparatus and associated methods for the synchronization of shared content |
JP4265245B2 (ja) * | 2003-03-17 | 2009-05-20 | 株式会社日立製作所 | 計算機システム |
US20040199740A1 (en) * | 2003-04-07 | 2004-10-07 | Nokia Corporation | Adaptive and recursive compression of lossily compressible files |
US7275073B2 (en) | 2003-05-07 | 2007-09-25 | Good Technology, Inc. | System and method for notifying mobile devices based on device type and network capabilities |
US20040230317A1 (en) * | 2003-05-15 | 2004-11-18 | Sun Microsystems, Inc. | Method, system, and program for allocating storage resources |
US20050050142A1 (en) | 2003-08-28 | 2005-03-03 | Aligo Inc. | Method and framework for transaction synchronization |
US7076622B2 (en) | 2003-09-30 | 2006-07-11 | International Business Machines Corporation | System and method for detecting and sharing common blocks in an object storage system |
JP2005115438A (ja) * | 2003-10-03 | 2005-04-28 | Mitsubishi Electric Corp | データ管理装置 |
US7734701B2 (en) | 2003-11-14 | 2010-06-08 | International Business Machines Corporation | Method to write information to an information storage medium using a network attached storage device |
US7149866B2 (en) | 2004-06-04 | 2006-12-12 | International Business Machines Corporation | Free item distribution among multiple free lists during garbage collection for more efficient object allocation |
US7567988B2 (en) * | 2004-07-16 | 2009-07-28 | Sap Ag | Synchronizing agent for multiple clients/applications on a computer system |
US7584220B2 (en) | 2004-10-01 | 2009-09-01 | Microsoft Corporation | System and method for determining target failback and target priority for a distributed file system |
US20060106881A1 (en) | 2004-10-25 | 2006-05-18 | Empower Technologies | System and method for global data synchronization |
US7500053B1 (en) | 2004-11-05 | 2009-03-03 | Commvvault Systems, Inc. | Method and system for grouping storage system components |
US7600125B1 (en) | 2004-12-23 | 2009-10-06 | Symantec Corporation | Hash-based data block processing with intermittently-connected systems |
US7933936B2 (en) * | 2005-06-10 | 2011-04-26 | Network Appliance, Inc. | Method and system for automatic management of storage space |
JP4784854B2 (ja) * | 2005-06-13 | 2011-10-05 | 独立行政法人産業技術総合研究所 | データ管理装置および方法 |
US7523146B2 (en) | 2005-06-21 | 2009-04-21 | Apple Inc. | Apparatus and method for peer-to-peer N-way synchronization in a decentralized environment |
KR100654462B1 (ko) | 2005-08-24 | 2006-12-06 | 삼성전자주식회사 | 캐쉬 메모리를 메모리 블록으로 나누어 파일의 데이터를저장하는 캐쉬 방법 및 캐쉬 시스템 |
US9063881B2 (en) | 2010-04-26 | 2015-06-23 | Cleversafe, Inc. | Slice retrieval in accordance with an access sequence in a dispersed storage network |
TW200723093A (en) | 2005-12-14 | 2007-06-16 | Inventec Corp | Method for establishing mirror storage equipment and synchronously storing equipment update data |
TWI312112B (en) | 2005-12-30 | 2009-07-11 | Ind Tech Res Inst | Data managing method, method and apparatus to snapshot data for multiple volumes to a single snapshot volume in a data processing system |
TWI353536B (en) | 2006-01-26 | 2011-12-01 | Infortrend Technology Inc | Virtualized storage computer system and method of |
EP1821487B1 (en) * | 2006-02-21 | 2010-04-07 | Microsoft Corporation | Topology management in peer-to-peer content distribution clouds |
US9047310B2 (en) | 2006-02-22 | 2015-06-02 | Microsoft Technology Licensing, Llc | Reliable, efficient peer-to-peer storage |
US8085891B2 (en) | 2006-05-29 | 2011-12-27 | Research In Motion Limited | System and method for management of mobile device communication |
US20090132621A1 (en) | 2006-07-28 | 2009-05-21 | Craig Jensen | Selecting storage location for file storage based on storage longevity and speed |
JPWO2008026262A1 (ja) | 2006-08-30 | 2010-01-14 | パイオニア株式会社 | 記録媒体再生装置、記録媒体再生方法、記録媒体再生プログラムおよび記録媒体 |
US20080077638A1 (en) * | 2006-09-21 | 2008-03-27 | Microsoft Corporation | Distributed storage in a computing environment |
US20080077628A1 (en) | 2006-09-22 | 2008-03-27 | International Business Machines Corporation | Conflict resolution for distributed processing systems |
CN101715575A (zh) | 2006-12-06 | 2010-05-26 | 弗森多系统公司(dba弗森-艾奥) | 采用数据管道管理数据的装置、系统和方法 |
US7760767B2 (en) | 2007-01-05 | 2010-07-20 | Apple Inc. | Wide area peer-to-peer synching in a decentralized environment |
KR100932642B1 (ko) | 2007-01-09 | 2009-12-21 | 포항공과대학교 산학협력단 | 유비쿼터스 환경에서 데이터 통합관리를 위한 분산 파일서비스 방법 및 시스템 |
JP4696089B2 (ja) | 2007-03-30 | 2011-06-08 | 三菱電機インフォメーションシステムズ株式会社 | 分散ストレージシステム |
US20080294769A1 (en) * | 2007-05-25 | 2008-11-27 | Kenshi Doi | Efficient synchronization of agents starting a task where the agents poll a server to learn the task start time |
US20080307094A1 (en) * | 2007-06-11 | 2008-12-11 | Olli Karonen | Association of peer-to-peer contribution credits with multiple devices |
US20090228669A1 (en) | 2008-03-10 | 2009-09-10 | Microsoft Corporation | Storage Device Optimization Using File Characteristics |
US7849180B2 (en) * | 2008-04-29 | 2010-12-07 | Network Appliance, Inc. | Load balanced storage provisioning |
US8103621B2 (en) | 2008-10-03 | 2012-01-24 | International Business Machines Corporation | HSM two-way orphan reconciliation for extremely large file systems |
US7974314B2 (en) | 2009-01-16 | 2011-07-05 | Microsoft Corporation | Synchronization of multiple data source to a common time base |
US20100241726A1 (en) | 2009-03-23 | 2010-09-23 | Riverbed Technology, Inc. | Virtualized Data Storage Over Wide-Area Networks |
US8560639B2 (en) | 2009-04-24 | 2013-10-15 | Microsoft Corporation | Dynamic placement of replica data |
WO2011054375A1 (en) | 2009-11-03 | 2011-05-12 | Telecom Italia S.P.A. | Sharing of digital contents in p2p networks exploiting localization data |
US8234464B2 (en) * | 2009-11-05 | 2012-07-31 | International Business Machines Corporation | Hybrid storage data migration by selective data removal |
US8527749B2 (en) | 2009-11-11 | 2013-09-03 | International Business Machines Corporation | User device, computer program product and computer system for system for secure network storage |
US8504670B2 (en) | 2010-03-23 | 2013-08-06 | Riverbed Technology, Inc. | Virtualized data storage applications and optimizations |
US8861727B2 (en) | 2010-05-19 | 2014-10-14 | Cleversafe, Inc. | Storage of sensitive data in a dispersed storage network |
US8930618B2 (en) * | 2010-08-24 | 2015-01-06 | Futurewei Technologies, Inc. | Smart memory |
US20120173900A1 (en) | 2010-11-03 | 2012-07-05 | Broadcom Corporation | Providing power over ethernet within a vehicular communication network |
WO2012141687A1 (en) | 2011-04-12 | 2012-10-18 | Empire Technology Development, Llc | A service associated with persistent storage |
US8812454B2 (en) | 2012-01-12 | 2014-08-19 | Alcatel Lucent | Apparatus and method for managing storage of data blocks |
US20130232215A1 (en) | 2012-03-05 | 2013-09-05 | Riverbed Technology, Inc. | Virtualized data storage system architecture using prefetching agent |
US8977672B2 (en) * | 2012-06-08 | 2015-03-10 | Commvault Systems, Inc. | Intelligent scheduling for remote computers |
TWM441275U (en) | 2012-06-15 | 2012-11-11 | zheng-dao Lin | Distributed wireless network data storage system |
TWI470999B (zh) | 2012-06-19 | 2015-01-21 | Wistron Corp | 編輯與儲存串流的方法、裝置、系統 |
US9015212B2 (en) | 2012-10-16 | 2015-04-21 | Rackspace Us, Inc. | System and method for exposing cloud stored data to a content delivery network |
US9612948B2 (en) | 2012-12-27 | 2017-04-04 | Sandisk Technologies Llc | Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device |
US9727268B2 (en) | 2013-01-08 | 2017-08-08 | Lyve Minds, Inc. | Management of storage in a storage network |
US9265935B2 (en) | 2013-06-28 | 2016-02-23 | Nevro Corporation | Neurological stimulation lead anchors and associated systems and methods |
US9678678B2 (en) | 2013-12-20 | 2017-06-13 | Lyve Minds, Inc. | Storage network data retrieval |
-
2013
- 2013-12-20 US US14/137,680 patent/US9727268B2/en active Active
- 2013-12-20 US US14/137,664 patent/US8903959B2/en not_active Expired - Fee Related
- 2013-12-20 US US14/137,691 patent/US20140195482A1/en not_active Abandoned
- 2013-12-20 US US14/137,654 patent/US8880838B2/en not_active Expired - Fee Related
-
2014
- 2014-01-07 TW TW103100524A patent/TWI514161B/zh not_active IP Right Cessation
- 2014-01-07 TW TW103100525A patent/TWI555359B/zh not_active IP Right Cessation
- 2014-01-08 KR KR1020157021377A patent/KR101700667B1/ko active IP Right Grant
- 2014-01-08 CN CN201480009956.6A patent/CN105164661A/zh active Pending
- 2014-01-08 JP JP2015552745A patent/JP2016511862A/ja active Pending
- 2014-01-08 EP EP14737590.1A patent/EP2943888A4/en not_active Withdrawn
- 2014-01-08 CA CA2900966A patent/CA2900966A1/en not_active Abandoned
- 2014-01-08 WO PCT/US2014/010697 patent/WO2014110142A1/en active Application Filing
- 2014-01-08 WO PCT/US2014/010694 patent/WO2014110140A1/en active Application Filing
- 2014-11-03 US US14/531,791 patent/US9910614B2/en active Active
- 2014-11-03 US US14/531,786 patent/US9274707B2/en active Active
- 2014-12-19 TW TW103144548A patent/TW201535105A/zh unknown
- 2014-12-19 TW TW103144547A patent/TW201531863A/zh unknown
- 2014-12-20 EP EP14872166.5A patent/EP3084631A4/en not_active Ceased
- 2014-12-20 EP EP14871685.5A patent/EP3084613A4/en not_active Withdrawn
- 2014-12-20 WO PCT/US2014/071761 patent/WO2015095851A1/en active Application Filing
- 2014-12-20 KR KR1020167019712A patent/KR101791594B1/ko active IP Right Grant
- 2014-12-20 CN CN201480069767.8A patent/CN106537358A/zh active Pending
- 2014-12-20 WO PCT/US2014/071762 patent/WO2015095852A1/en active Application Filing
-
2016
- 2016-01-14 US US14/996,132 patent/US20160132267A1/en not_active Abandoned
- 2016-11-16 US US15/353,658 patent/US20170161297A1/en not_active Abandoned
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101791594B1 (ko) | 저장 네트워크 내의 저장 관리 | |
US20200409798A1 (en) | Tiered cloud storage for different availability and performance requirements | |
KR101885688B1 (ko) | 낮은 지연속도 데이터 액세스를 위한 데이터 스트림의 분할 | |
US10853242B2 (en) | Deduplication and garbage collection across logical databases | |
US9372880B2 (en) | Reclamation of empty pages in database tables | |
CN107368260A (zh) | 基于分布式系统的存储空间整理方法、装置及系统 | |
US9323771B2 (en) | Efficient rename in a lock-coupled traversal of B+tree | |
CN107423301B (zh) | 一种数据处理的方法、相关设备及存储系统 | |
US11914565B1 (en) | System and method for identifying matching portions of two sets of data in a multiprocessor system | |
US20170262463A1 (en) | Method and system for managing shrinking inode file space consumption using file trim operations | |
US11080207B2 (en) | Caching framework for big-data engines in the cloud | |
US10515228B2 (en) | Commit and rollback of data streams provided by partially trusted entities | |
US20170083537A1 (en) | Mapping logical identifiers using multiple identifier spaces | |
US9716666B2 (en) | Process cage providing attraction to distributed storage | |
US9009204B2 (en) | Storage system | |
US10592493B1 (en) | Spot-instanced bulk data uploading | |
Fahmy et al. | CoS-HDFS: Co-locating geo-distributed spatial data in hadoop distributed file system | |
US10824640B1 (en) | Framework for scheduling concurrent replication cycles | |
US11003504B2 (en) | Scaling virtualization resource units of applications | |
CA3065157C (en) | Parallel map and reduce on hash chains | |
CN108959517B (zh) | 文件管理方法、装置及电子设备 | |
KR102162466B1 (ko) | 분산 스토리지 서버, 그것에 포함되는 서버 장치, 및 서버 장치를 동작시키는 방법 | |
US10235078B2 (en) | Meta-data block within a non-volatile memory device | |
CN116107514A (zh) | 针对对象存储的数据处理方法和装置 | |
CN103617166A (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 |