KR20160124885A - 데이터 처리 방법 및 장치 - Google Patents

데이터 처리 방법 및 장치 Download PDF

Info

Publication number
KR20160124885A
KR20160124885A KR1020167026230A KR20167026230A KR20160124885A KR 20160124885 A KR20160124885 A KR 20160124885A KR 1020167026230 A KR1020167026230 A KR 1020167026230A KR 20167026230 A KR20167026230 A KR 20167026230A KR 20160124885 A KR20160124885 A KR 20160124885A
Authority
KR
South Korea
Prior art keywords
partition
key
partitions
total amount
current
Prior art date
Application number
KR1020167026230A
Other languages
English (en)
Other versions
KR101912728B1 (ko
Inventor
시옹 루오
Original Assignee
후아웨이 테크놀러지 컴퍼니 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 후아웨이 테크놀러지 컴퍼니 리미티드 filed Critical 후아웨이 테크놀러지 컴퍼니 리미티드
Publication of KR20160124885A publication Critical patent/KR20160124885A/ko
Application granted granted Critical
Publication of KR101912728B1 publication Critical patent/KR101912728B1/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • 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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • H04L41/042Network management architectures or arrangements comprising distributed management centres cooperatively managing the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

파티션 관리 장치에 적용되는 데이터 처리 기술이 제공된다. 파티션 관리 장치는 파티션 뷰를 저장하고, 파티션 뷰는 현재 파티션의 ID와 저장 디스크의 어드레스 사이의 대응 관계를 기록한다. 현재 파티션의 총량은 최종 파티션의 총량보다 적을 수 있다. 이 기술을 사용하면, 현재 파티션을 사용하여, 키-값 데이터에 데이터 포워딩이 수행될 수 있고, 따라서 파티션 뷰의 복잡성이 감소한다.

Description

데이터 처리 방법 및 장치{DATA PROCESSING METHOD AND APPARATUS}
본 발명은 데이터 처리 기술에 관한 것으로서, 보다 상세하게는 데이터 처리 방법 및 장치에 관한 것이다.
사회가 발전함에 따라, 데이터의 양의 증가는 저장되고 관리되어야 하고, 대용량 데이터로서 지칭되다. 초대규모 데이터가 종래의 집중화된 저장 방식에 의해 관리될 때, 판독/기록 작업의 효율은 개선되기 어렵고, 좋은 확장성과 높은 가용성은 거의 충족될 수 없다.
이런 상황에 대처하기 위해, 물리적 스토리지 복수의 노드로 구성된 저장 시스템이 나오고, 각 저장 노드는 저장 공간을 제공한다. 이러한 저장 방식은 저장 방식은 같은 분산형 저장이라 칭한다. 키-값 저장으로 지칭되는 분산 저장 방식이 있다. 키-값 저장에서, 저장된 데이터(또는 데이터 조각)는 값(value)으로 지칭되고, 데이터의 각 조각은 전체 저장 시스템의 범위 내에서 고유 식별자를 가지며, 이 식별자는 키(key)이다. 키와 값은 일대일의 대응 관계이다.
키와 이러한 키에 대응하는 값은 전체적으로 키-값(K-V: key-value)으로 지칭된다. 각 키-값은 저장 시스템의 저장 디스크에 저장된다. DHT(distributed hash table ) 기술에서, 구체적 키-값에 대해, 키-값이 저장되는 저장 디스크는 매핑 규칙(mapping rule.)을 사용하여 결정될 수 있다. 이러한 매핑 규칙은, 해시 작업(hash operation )을 수행하여 형성된 해시 값(Hash value )에 기초하고, 각 키-값이 하나의 저장 디스크에 대응할 수 있게 하기 위해, 각 해시 값은 하나의 파티션(partition)에 속하며, 파티션은 저장 디스크에 대응한다. 이러한 방식에 기초하여, 상이한 두 개의 계산된 해시 값이 동일하면, 이러한 두 개의 키에 대응하는 키-값은 동일한 저장 디스크에 저장된다. 파티션과 저장 디스크 사이의 대응 관계는 파티션 뷰(partition view)로 지칭된다.
종래 기술에서, DHT 기술을 사용하여 키에 따라 계산된 해시 값은 예를 들어 정수 범위 [0, 2^32-1] 내에 있다. 시스템 초기화 동안, 이러한 큰 정수 범위에 세그먼테이션(segmentation)이 수행되고, 각 세그먼트(segment)는 동일하거나 대략 그 크기가 동일하다. 이런 경우, 1개의 세그먼트는 파티션이고, 파티션의 해시 값의 수량은 기본적으로 같다. 저장 디스크 클러스터 내의 저장 디스크의 수량이 상대적으로 작으면, 각 저장 디스크는 초과 파티션을 가지고, 파티션 뷰가 과도하게 복잡해져서, 파티션 뷰에 따른 데이터 패킷 포워딩(data packet forwarding)은 비효율적이게 된다.
최대 25,000개의 저장 디스크를 지원하는 클러스터가 있다고 가정한다. 저장 디스크의 최대 수량은, 각 저장 디스크는 대략 100개의 파티션을 가진다. 즉, 전체 클러스터는 총 2,500,000개의 파티션을 가진다. 각 파티션은 4개의 비트 저장 공간을 점유한다고 가정한다. 이러한 파티션의 정보는 총 10MB의 저장 공간을 점유하고, 파티션 뷰의 정보는 10MB 보다 크다.
파티션 뷰가 사용될 때, 시스템 리소스의 많은 수량이 점유된다.
본 발명은 키-값 데이터가 처리될 때, 시스템 리소스의 점유를 줄일 수 있는 데이터 처리 방법 및 장치를 제공한다.
제1 측면에 따르면, 본 발명은 데이터 처리 방법을 제공하고, 이러한 데이터 처리 방법은, 상기 데이터 처리 방법은 파티션(partition) 관리 장치에 적용되고, 상기 파티션 관리 장치는 파티션 뷰(partition view)를 저장하고, 상기 파티션 뷰는, 현재 파티션의 ID와 저장 디스크의 어드레스 사이의 대응 관계를 기록하며, 상기 데이터 처리 방법은, 키-값 데이터에서 키를 획득하고, 상기 키에 따라, 상기 키-값 데이터에 대응하는 최종 파티션의 ID를 계산하는 단계; 상기 최종 파티션의 ID에 대응하는 현재 파티션의 ID를 계산하는 단계; 상기 파티션 뷰를 조회하여 상기 현재 파티션의 ID에 대응하는 저장 디스크의 어드레스를 획득하는 단계; 및 상기 저장 디스크의 어드레스를 목적지 어드레스로 사용하여 키-값 패킷을 생성하고, 상기 키-값 패킷을 상기 저장 디스크에 송신하는 단계를 포함하며, 상기 키-값 데이터는, 값 및 상기 값에 고유하게 대응하는 상기 키를 포함하고, 각 현재 파티션의 ID는 복수의 최종 파티션의 ID에 대응하며, 상기 키-값 패킷은 상기 키-값 데이터를 운반한다.
제2 측면에 따르면, 본 발명은 데이터 처리 장치를 제공하고, 이러한 데이터 처리 장치는, 파티션 뷰(partition view)를 저장하도록 구성된 저장 모듈; 키-값 데이터에서 키를 획득하고, 상기 키에 따라, 상기 키-값 데이터에 대응하는 최종 파티션의 ID를 계산하도록 구성된 최종 파티션 계산 모듈; 상기 최종 파티션의 ID에 대응하는 현재 파티션의 ID를 계산하도록 구성된 현재 파티션 계산 모듈; 상기 저장 모듈에 의해 저장된 상기 파티션 뷰를 조회하여 상기 현재 파티션의 ID에 대응하는 저장 디스크의 어드레스를 획득하도록 구성된 조회 모듈; 및 상기 저장 디스크의 어드레스를 목적지 어드레스로 사용하여 키-값 패킷을 생성하고, 상기 키-값 패킷을 상기 저장 디스크에 송신하도록 구성된 송신 모듈을 포함하고, 상기 파티션 뷰는 현재 파티션의 ID와 저장 디스크 사이의 대응 관계를 기록하며, 상기 키-값 데이터는, 값 및 상기 값에 유일하게 대응하는 상기 키를 포함하고, 각 현재 파티션의 ID는 복수의 최종 파티션의 ID에 대응하고, 상기 키-값 패킷은 상기 키-값 데이터를 운반한다.
제3 측면에 따르면, 본 발명은 데이터 처리 장치를 제공하고, 이러한 데이터 처리 장치는, 파티션 뷰(partition view)를 저장하도록 구성된 메모리; 외부 연결을 제공하도록 구성된 인터페이스; 컴퓨터 프로그램을 저장하도록 구성된 컴퓨터 판독 가능한 매체; 및 상기 메모리, 상기 인터페이스, 및 상기 컴퓨터 판독 가능한 매체에 연결되고, 상기 프로그램을 실행하여, 이하의 단계: 키-값 데이터에서 키를 획득하고, 상기 키에 따라, 상기 키-값 데이터에 대응하는 최종 파티션의 ID를 계산하는 단계; 상기 최종 파티션의 ID에 대응하는 현재 파티션의 ID를 계산하는 단계; 상기 파티션 뷰를 조회하여 상기 현재 파티션의 ID에 대응하는 저장 디스크의 어드레스를 획득하는 단계; 및 상기 저장 디스크의 어드레스를 목적지 어드레스로 사용하여 키-값 패킷을 생성하고, 상기 키-값 패킷을 상기 저장 디스크에 송신하는 단계를 실행하도록 구성된 프로세서를 포함하고, 상기 파티션 뷰는 현재 파티션의 ID와 저장 디스크의 어드레스 사이의 대응관계를 기록하고, 상기 키-값 데이터는 값 및 상기 값에 고유하게 대응하는 상기 키를 포함하고, 각 현재 파티션의 ID는 복수의 최종 파티션의 ID에 대응하며, 상기 키-값 패킷은 상기 키-값 데이터를 운반한다.
제4 측면에 따르면, 본 발명은 파티션 관리 방법을 제공하고, 이러한 파티션 관리 방법은, 상기 파티션 관리 방법은 제어기에 의해 실행되고, 상기 제어기는, 클러스터 내의 저장 디스크에 파티션 관리를 수행하며, 상기 클러스터는 복수의 저장 디스크를 포함하고, 상기 파티션 관리 방법은, N개의 신규 저장 디스크가 상기 클러스터에 추가된 것이 탐지되면, 상기 클러스터 내의 현재 저장 디스크의 수량 M 및 상기 클러스터의 현재 파티션의 총량 T를 획득하는 단계; 상기 현재 파티션의 총량 T 및 저장 디스크의 총량 M+N 사이의 수학적 관계가 미리 설정된 제1 조건을 만족하는지 결정하는 단계; 및 상기 수학적 관계가 상기 미리 설정된 제1 조건을 만족하면, 분할 후 획득된 파티션의 총량 S가 S>T를 만족하도록, 상기 현재 파티션 중 적어도 하나를 분할하고, 상기 분할 후 획득된 파티션을 M+N개의 상기 저장 디스크에 할당하는 단계를 포함하고, 상기 분할 후 획득된 파티션의 총량 S 및 상기 저장 디스크의 총량 M+N 사이의 수학적 관계는 미리 설정된 제2 조건을 만족하며, 상기 분할 후 획득된 파티션의 총량 S는 상기 클러스터에 의해 지원되는 최종 파티션의 총량 L보다 크지 않고, 상기 L 및 S 모두 1보다 큰 자연수이며, 상기 M, N, 및 T는 모두 자연수이다.
제4 측면의 제1 구현 방식에서, 파티션 뷰를 업데이트하는 작업이 추가로 수행되고, 상기 파티션 뷰는 현재 파티션과 IP 디스크 사이의 대응관계를 기록한다.
제5 측면에 따르면, 본 발명은 파티션 관리 장치를 제공하고 이러한 파티션 관리 장치는, 클러스터 내의 저장 디스크에 파티션 관리를 수행하도록 구성되고, 상기 클러스터는 복수의 저장 디스크를 포함하며, 상기 파티션 관리 장치는, N개의 신규 저장디스크가 상기 클러스터에 추가된 것이 탐지되면, 상기 클러스터 내의 현재 저장 디스크의 수량 M 및 상기 클러스터의 현재 존재하는 파티션의 총량 T를 획득하도록 구성된 저장 디스크 탐지 모듈; 현재 파티션의 총량 T 및 저장 디스크의 총량 M+N 사이의 수학적 관계가 미리 설정된 제1 조건을 만족하는지 결정하도록 구성된 미리 설정된 제1 조건 결정 모듈; 및 상기 수학적 관계가 상기 미리 설정된 제1 조건을 만족하면, 분할 후 획득된 파티션의 총량은 S가 되도록, 상기 현재 파티션 중 적어도 하나를 분할하고, 상기 분할 후 획득된 파티션을 M+N개의 상기 저장 디스크에 할당하도록 구성된 파티션 분할 모듈을 포함하고, 상기 분할 후 획득된 파티션의 총량 S 및 상기 저장 디스크의 총량 M+N 사이의 수학적 관계는, 상기 클러스터에 의해 지원되는 최종 파티션의 총량 L보다 크지 않고, 상기 L 및 S는 모두 1보다 큰 자연수이며, 상기 M, N, 및 T는 모두 자연수이다.
제5 측면의 제1 구현 방식에서, 상기 파티션 분할 모듈은 추가로, 파티션 뷰를 업데이트하는 작업을 수행하고, 상기 파티션 뷰는 현재 파티션과 IP 디스크 사이의 대응관계를 기록한다.
제6 측면에 따르면, 본 발명은 파티션 관리 장치를 제공하고, 이러한 파티션 관리 장치는, 상기 파티션 관리 장치는 클러스터에 연결되어 있고, 상기 클러스터 내의 저장 디스크에 파티션 관리를 수행하도록 구성되며, 상기 클러스터는 복수의 저장 디스크를 포함하고, 상기 파티션 관리 장치는 파티션 뷰(partition view)를 저장하도록 구성된 메모리; 외부 인터페이스를 제공하도록 구성된 인터페이스; 컴퓨터 프로그램을 저장하도록 구성된 컴퓨터 판독 가능한 매체; 및 상기 메모리, 상기 인터페이스, 및 상기 컴퓨터 판독 가능한 매체에 연결되고, 상기 프로그램을 실행하여, 이하의 단계; 상기 인터페이스를 사용하여, N개의 신규 저장 디스크가 상기 클러스터에 추가된 것이 탐지되면, 상기 클러스터 내의 현재 저장 디스크의 수량 M 및 상기 클러스터의 현재 존재하는 파티션의 총량 T를 획득하는 단계; 상기 현재 파티션의 총량 T 및 저장 디스크의 총량 M+N 사이의 수학적 관계가 미리 설정된 제1 조건을 만족하는지 결정하는 단계; 및 상기 수학적 관계가 상기 미리 설정된 제1 조건을 만족하면, 분할 후 획득된 파티션의 총량이 S가 되도록, 상기 현재 파티션 중 적어도 하나를 분할하고, 상기 분할 후 획득된 파티션을 M+N개의 상기 저장 디스크에 할당하는 단계를 실행하도록 구성된 프로세서를 포함하고, 상기 파티션 뷰는 현재 파티션의 ID와 저장 디스크의 어드레스 사이의 대응 관계를 기록하고, 상기 M, N, 및 T는 모두 자연수이며, 상기 분할 후 획득된 파티션의 총량 S 및 상기 저장 디스크의 총량 M+N은 미리 설정된 제2 조건을 만족하고, 상기 분할 후 획득된 파티션의 총량은 상기 클러스터에 의해 지원되는 최종 파티션의 총량 L보다 크지 않으며, 상기 L 및 S는 모두 1보다 큰 자연수다.
제6 측면의 제1 구현 방식에서, 상기 프로세서는 추가로, 파티션 뷰를 업데이트하는 작업을 수행하고, 상기 파티션 뷰는 현재 파티션과 IP 디스크 사이의 대응관계를 기록한다.
본 발명의 기술적 해결 수단을 이용하여, 파티션 관리 장치는, 현재 파티션을 사용하여 키-값 데이터 포워딩을 수행할 수 있다. 현재 파티션의 수량이 최종 파티션의 수량보다 적기 때문에, 최종 파티션이 포워딩을 수행하는 데 사용되는 종래 기술의 기술적 해결 수단과 비교하여, 리소스 소비가 감소한다.
도 1은 본 발명에 따른 저장 시스템의 실시예의 토폴로지(topology) 도면이다.
도 2는 본 발명에 따른 파티션 관리 방법 실시예의 흐름도이다.
도 3은 본 발명에 따른 제어기의 실시예의 구조도이다.
도 4는 본 발명에 따른 파티션 관리 장치의 실시예의 개략적인 도면이다.
도 5는 본 발명에 따른 데이터 처리 방법의 실시예의 흐름도이다.
도 6은 본 발명에 따른 데이터 처리 장치의 실시예의 구조도이다.
도 7은 본 발명에 따른 데이터 처리 장치 실시예의 개략도이다.
이하에서, 본 발명의 실시예에 첨부된 도면을 참조하여, 본 발명의 실시예에서의 기술적 해결 수단을 명확하게 설명한다. 분명한 것은, 설명되는 실시예는 본 발명의 모든 실시예가 아닌 일부 실시예라는 것이다. 본 발명의 실시예를 기초로 하여 획득된 다른 모든 실시예는 본 발명의 보호 범위 내에 있다.
도 1은 본 발명에 따른 저장 시스템의 실시예의 토폴로지(topology) 도면이다. 어플리케이션 서버(11)는 관리 서버 클러스터(12)에 연결되어 있다. 관리 서버 클러스터(12)는 스위치 클러스터(13)에 연결되어 있다. 스위치 클러스터(13)는 IP 디스크 클러스터(14)에 연결되어 있다. 관리 서버 클러스터(12)는 적어도 하나의 관리 서버(121)로 구성되어 있다. IP 디스크 클러스터(14)는 적어도 하나의 IP 디스크(141)로 구성되어 있다.
어플리케이션 서버(1)는 데이터 판독 명령 또는 데이터 쓰기 명령을 송신?愎?. 관리 서버(121)는, 예를 들어, DOP(distribute object pool)이고, 어플리케이션 서버(11)에 오브젝트의 인터페이스를 제공하고, 오브젝트는, 예를 들어, GB의 기본 단위로, 매우 클 수 있다.
오브젝트가 과도하게 크면, 관리 서버(121)는 오브젝트를 작은 세그먼트(segment)로 분할할 수 있다. 예를 들어, 관리 서버(121)는 오브젝트를 각 1MB의 크기를 가진 세그먼트로 분할할 수 있고, 각 세그먼트는 값이며, 각 값은 키로 지칭되는 태그를 가진다. 관리 서버(121)는 키에 해시 연산을 수행할 수 있고, 계산된 해시 값을 파티션에 매칭할 수 있다. 또한, 관리 서버(121)는 추가로, 파티션 뷰를 저장할 수 있고, 구체적으로, 이는 현재 파티션의 ID와 IP 디스크 사이의 대응관계일 수 있다. 따라서, 관리 서버는 각 키-값에 대응하는 IP 디스크를 찾을 수 있다. 찾아진 IP 디스크는 타깃 디스크로 지칭되고, 관리 서버(112)는 타깃 IP 디스크의 어드레스를 목적지 어드레스로 사용하여 IP 패킷을 생성하고, IP 패킷을 스위치 클러스터(13)에 송신할 수 있다. 예를 들어, 파티션 뷰에 기록된 콘텐츠는 표 1과 같고, i는 자연수이며, m은 1보다 큰 자연수이다.
IP 디스크의 어드레스 파티션 번호
IP 디스크 0 파티션 0 파티션1 ... 파티션 i-1
IP 디스크 1 파티션i 파티션i+1 ... 파티션 2i-1
... .... ... ... ...
IP 디스크 m-1 파티션
i·(m-1)
Partition
i·(m-1)+1
... 파티션
i·m-1
스위치 클러스터(13)는 적어도 하나의 스위치로 구성되고, 데이터를 판독하거나 쓰는 동안, 관리 서버(121)와 IP 디스크(141) 사이의 데이터를 교환하는 데 사용된다. 파티션 뷰를 조회하는 작업은 또한 스위치 클러스터(13)의 스위치에 의해 핸드 오버 되고 실행될 수 있다. 즉, 스위치 클러스터(13)의 스위치는 파티션 뷰를 저장한다. 이런 시나리오에서, 스위치 클러스터(3)로 데이터가 송신될 때, 관리 서버(121)는 IP 패킷을 사용하지 않고, 키-값 패킷(key-value packet)으로 지칭되는 신규 유형의 패킷을 사용할 수 있다. 기 값 패킷과 IP 패킷 사이의 차이는, 단지, 키-값 패킷의 목적지 어드레스는 키를 사용한 계산을 통해 획득된 파티션 번호이고, 패킷 타입 필드는, 키-값 패킷으로부터 IP 패킷을 차별화하는데 사용되고, 키-값 패킷의 다른 부분은 IP 패킷의 다른 부분과 동일하다는 것이다. 스위치는 파티션 번호와 IP 디스크의 어드레스 사이의 매핑 테이블을 조회하고, 매핑 테이블은 스위치에 의해 저장되고, 파티션에 대응하는 IP 디스크의 어드레스를 목적지 어드레스로 대체하며, 키-값 패킷을 IP 패킷으로 변환하기 위해 패킷 유형을 수정한 다음, 저장을 위해, IP 패킷을 대응하는 IP디스크로 포워딩한다.
관리 서버(121)에서, 파티션과 IP 디스크 사이의 대응 관계를 기록하는 방식은, 파티션 번호(또한, 파티션 ID로 지칭됨) 및 IP 디스크의 어드레스 사이의 대응 관계를 기록할 수 있다. 쉬운 이해를 위해, 대응 관계의 다른 표현 방식은: IP 디스크에 속한 파티션이고, 또 다른 표현 방식은: IP 디스크가 파티션을 가진다는 것이다.
파티션은 논리 개념이고, 파티션은 저장 공간을 차지하지 않는다. 데이터를 실제로 저장하는 것은 IP 디스크이다. 그러나 각 파티션은 대응하는 IP 디스크를 가진다. 데이터 저장 과정 동안, 실제 저장을 수행하기 위해, 파티션에 대응하는 IP 디스크는 파티션 뷰를 조회하여 습득될 수 있다. 사용자 관점에서, 데이터는 파티션에 저장되는 것처럼 보인다. 따라서, 파티션에 대응하는 IP 디스크에서 데이터 저장의 과정을 파티션에서의 데이터 저장으로 때때로 지칭할 수 있다.
제어기(15)는 파티션의 총량을 계산하고, IP 디스크에 대한 정보를 획득하며, IP 디스크와 파티션 사이의 대응 관계를 성립하고, 적절할 때 각 관리 서버에 대응관계를 업데이트 하도록 구성된다. 대응 관계는 또한 파티션 뷰로 지칭된다.
종래 기술에서, 파티션의 총량은 일정하고, IP 디스크의 수량이 증가함에 따라, 각 IP 디스크에 대응하는 파티션은 감소한다. 따라서, IP 디스크의 수량이 상대적으로 작으면, 각 IP 디스크는 과도한 파티션에 대응한다. 예를 들어, 백그라운드(Background)에서, 25,000개의 저장 디스크가 있으면, 각 저장 디스크에 대해 100개의 파티션을 갖는 것이 적당하다. 그러나 75개의 저장 디스크가 있는 경우, 각 저장 디스크는 33,333개의 파티션을 가지고, 이것은 적어도 이하의 문제를 야기하기 때문에 부적절하다.
(1)파티션 뷰는, 대략 25,000개의 저장 디스크가 있는 경우의 대응 관계의 수량인 75 × 33,33 = 2,499,975개의 대응 관계를 가지기 때문에, 파티션 뷰는 과도하게 복잡하다. 파티션 뷰를 사용하여 IP 패킷을 포워딩할 때, 관리 서버는 파티션 뷰에서 대응 관계를 조회해야 한다. 이러한 대응 관계의 큰 수량은 IP 디스크의 수량이 적은 경우 조회되어야 하고, 낮은 포워딩 효율의 결과가 된다. 또한, 파티션 뷰가 게시되면, 제어기는 파티션 뷰를 각 관리 서버에 게시해야 하고, 이것은 상대적으로 많은 대역폭을 차지한다.
(2) 데이터 신뢰성을 개선하기 위해, 각 파티션은 다른 IP 디스크에 듀플리 케이트 파티션(duplicate partition)을 가지고, 파티션과 듀플리케이트 파티션은 상이한 IP 디스크에 위치하지만, 동일한 데이터를 저장한다. 이런 경우는 복수의 듀플리케이트로서 지칭된다. 파티션 B와 파티션 C가 파티션 A의 듀플리케이트 파티션이라고 가정한다. 패킷이 파티션 A가 위치하는 IP 디스크에 저장될 때, 파티션 B가 위치한 IP 디스크와 파티션 C가 위치한 IP 디스크에 동시에 저장된다.
복수의 듀플리케이트 시나리오에서, IP 디스크에서 발생한 오류를 가정한다. 데이터 신뢰성을 확보하기 위해, 오류 난 디스크의 데이터는 듀플리케이트를 사용하여 복구되어야 한다. 구체적으로 오류 난 IP 디스크는 파티션의 듀플리케이트 파티션에 대해 조회되고, 듀플리케이트 파티션의 데이터는 복사되며, 복사된 데이터는 오류 없는 IP 디스크에 저장된다. 각 IP 디스크에 과도한 파티션이 있으면, 이러한 파티션의 듀플리케이트 파티션은 또한, 매우 크고, 이러한 듀플리케이트 파티션은 다른 IP 디스크의 큰 수량에 위치할 수 있다. 결과적으로, IP 디스크가 오류 나면, 데이터 복구에 관여한 IP 디스크의 많은 수량이 영향을 받는다.
(3) 복수의 듀플리케이트의 시나리오에서, 각 IP 디스크가 파티션의 과도한 수량을 가지면, 1개의 IP 디스크에 대해, IP 디스크의 파티션의 듀플리케이트는 IP 디스크의 많은 수량에 흩어져 있다. 듀플리케이트를 저장하는 IP 디스크의 수량은 상대적으로 많기 때문에, 복수의 IP 디스크에서 오류가 발생할 확률은 동시에 증가하고, 따라서, 데이터 신뢰도가 낮아진다.
(4)본 발명의 실시예는 패런트 파티션(parent partition) 및 최종 파티션의 개념을 도입하고, 최종 파티션의 총량은 일정하며, 이것은 종래 기술에서의 파티셔닝(partitioning)과 유사하다. 패런트 파티션은 복수의 서브 파티션으로 분할될 수 있고, 서브 파티션은 신규의 서브 파티션으로 분할되면, 서브 파티션은 다음 레벨 서브 파티션의 패런트 파티션이다. 클러스터 내의 IP 디스크의 수량이 증가함에 따라, 분할을 통해 최종 파티션이 획득될 때까지, 분할 과정이 진행된다. 이런 경우, 전체 클러스터가 소유한 파티션의 수량은 최종 파티션의 총량에 도달한다.
종래 기술에서, 사용자가 본 파티션의 수량과 저장 시스템 내부에서 관리되는 파티션의 수량은 동일하다. 본 발명의 실시에서, 사용자가 보는 것은 최종 파티션의 수량이지만, 클러스터가 아물 많은 IP 디스크를 가지고 있어도 파티션의 수량은 일정하다. 그러나 패런트 파티션이 최종 파티션으로 분할되기 전, 패런트 파티션을 사용하여 저장 시스템은 관리된다. 즉, 파티션 뷰 및 패킷 포워딩(packet forwarding) 모두는 패런트 파티션을 사용하여 처리된다. 본 발명의 실시예에서, 달리 언급하지 않는 한, 파티션은, 저장 시스템에 의해 관리되는 파티션을 의미한다.
클러스터에서 상대적으로 적은 수량의 IP 디스크가 있을 때, 적절한 수의 패런트 파티션은 각 IP 디스크에 할당되고, 각 IP 디스크의 합쳐진 파티션의 수량은 관리자에 의해 구체화되거나 시스템에 의해 자동으로 설정될 수 있으나, 최종 파티션의 수량이 이에 제한되는 것은 아니다. 예를 들어, 클러스터가 75개의 IP 디스크를 가지고 있을 때, 각 IP 디스크는 100개의 패런트 파티션에 대응하고, 75 ×100 = 7,500개의 대응관계만 파티션 뷰에 존재한다. 클러스터가 150개의 IP 디스크를 가지고 각 패런트 파티션이 2개의 서브 파티션으로 분할되면, 각 IP 디스크는 여전히 100개의 파티션에 대응한다. 각 파티션이 하나의 듀플리케이트를 가진다고 가정하면, IP 디스크에 오류가 발생할 때, 영향받는 다른 IP 디스크의 다른 수량은 100으로 제한된다. 즉, 본 발명은, 각 IP 디스크가 소유하는 파티션의 수량이 제어 가능하게 되도록, 파티션의 수량의 사용자 정의를 구현할 수 있다. 본 발명의 실시예에서 제공하는 방법에 기초하여, 제어기가 관리 서버 클러스터의 각 관리 서버에 파티션 뷰를 송신할 때, 더 작은 대역폭이 점유된다. 또한, 대응 관계 항목 수량이 감소한 후, 관리 서버는 더 빨리 키에 대응하는 저장 디스크의 어드레스를 조회한다.
어플리케이션 서버(1)가 데이터를 판독하거나 기록할 때, 데이터는 관리 서버(21) 및 스위치 클러스터(3)를 순서대로 통과하여 IP 디스크에 도달한다.
IP 디스크는 자기 디스크 또는 플래시 메모리를 저장 매체로 사용할 수 있고, 소프트웨어에서 키-값 인터페이스를 제공할 수 있으며, 하드웨어에서 이더넷 인터페이스(Ethernet Interface)를 제공할 수 있고, 예를 들어, 씨게이트 테크놀로지의 키네틱 제품(Kinetic product of Seagate Technology)과 같이, IP 패킷을 획득하기 위해, 이더넷 인터페이스를 통해 수신된 이더넷 프레임을 압축해제할 수 있다.
본 발명의 본 실시예에서, 키-값 데이터를 저장하는 메모리가 총괄적으로 저장 디스크로 지칭될 수 있다. 다른 구현 방식에서, 또한 IP 디스크에, 저장 디스크는 키-값 인터페이스를 지원하는 다른 저장 장치를 사용할 수 있고, 하드웨어의 넌-이더넷 인터페이스(non-Ethernet Interface)를 사용할 수 있다. 저장 디스크에 의해 사용되는 저장 장치는 하드 디스크 또는 플래시 메모리 일 수 있다.
도 2는 본 발명에 따른 파티션 관리 방법 실시예의 흐름도이고, IP 디스크 클러스터 내의 IP 디스크의 수량이 확장될 때, 신규로 추가된 IP 디스크의 요구사항을 만족하기 위해 파티션의 수량이 어떻게 증가하는지를 설명한다. 본 발명은 제어기에 의해 수힝되고, 본 발명은 이하의 단계를 포함한다.
단계(21): 클러스터에 의해 지원되는 IP 디스크의 최대 수량에 따라, 자연수인, 최종 파티션의 수량 L을 결정하고, 초기 IP 디스크의 수량에 따라 각 IP 디스크에 의해 소유된 초기 파티션의 수량을 결정한다. 본 단계는 제어기가 초기화될 때, 전치 단계이고, 선택적이다. 또한, 각 초기 파티션은 1개의 저장 디스크에 대응하고, 이러한 대응 관계는 파티션 뷰를 사용하여 기록된다.
본 단계가 실행된 후, 제어기는 초기 IP 디스크의 수량을 현재 IP 디스크의 수량 M으로 기록하고, 각 IP 디스크에 의해 소유된 초기 파티션의 수량을 현재 파티션의 수량 P로 기록하며, 클러스터에서 현재 존재하는 파티션의 총량 T는: T=M·P이다. 제어기는 추가로, 최종 파티션의 수량 L을 기록한다. 결과적으로, 클러스터 내의 IP 디스크의 수량이 변하거나, 각 IP 디스크 파티션의 수량이 변하면, 현재 IP 디스크의 수량 M과 현재 파티션의 수량 P은 업데이트된다. 본 발명의 본 실시예에서, "·" 심볼은 프로덕트(product)를 의미한다.
최종 파티션의 수량이 일정하고, 최종 파티션은 분할될 수 없으며, 사용자에 의해 지각될 수 있다. 초기 파티션은 대체로 패런트 파티션이고, 분할을 통해 다음 레벨 패런트 파티션 또는 최종 파티션을 생성하기 위해, 패런트 파티션은 분할될 수 있는 파티션이다. 패런트 파티션은 저장 시스템에 의해 사용되고, 사용자는 패런트 파티션의 존재를 지각할 수 없다. 본 발명의 본 실시예에서, 현재 파티션은 현 시점에서 관리 서버에 의해 사용되는 파티션을 의미하고, 제어기에 의해 관리 서버에 개시된다. 파티션의 분할이 수행되면, 현재 파티션은 파티션 분할 후 획득된 파티션이다. 현재 파티션은 패런트 파티션일 수 있거나 최종 파티션을 포함할 수 있다.
L의 값은 사용자에 의해 설정되거나, 시스템에 의해 자동으로 할당될 수 있고, 대체로, IP 디스크의 수량이 최대 일 때, IP 디스크의 최대 수량 및 각 IP 디스크의 수량 모두에 의해 결정될 수 있다. 즉, L = IP 디스크의 최대 수량 × 각 IP 디스크의 파티션의 수량이다. 각 IP 디스크에 대해 X개의 파티션을 소유하는 것이 적합한 값이라는 것을 가정한다. 예를 들어, 사용자가, 각 IP 디스크에 대해 100개의 파티션을 소유하는 것이 상대적으로 적합하다고 고려한다. 즉, X=100이고 IP 디스크 클러스터에의해 지원될 수 있는 IP 디스크의 최대 수량은 10,000이며, L = 10,000 × 100 = 1,000,000이다.
유사하게, 초기 파티션의 수량은 사용자에 의해 설정되거나, 시스템에 의해 자동으로 설정될 수 있다. 하나의 선택적 방식은, 초기 상황에서, IP 디스크의 수량 M은: M=75이고, 100개의 파티션이 각 IP 디스크에 할당된 것으로 가정하면, 초기 파티션의 총량 = 75 × 100 = 7,500이다. 본 발명의 본 방법을 사용하여, 초기 국면에서, 저장 시스템의 각 IP 디스크가 소유한 파티션의 수량은 자유롭게 설정될 수 있고, 파티션의 수량은 사용자의 요구를 만족하는 값으로 설정될 수 있으며, 그 값으로 저장 리소스, 계산 리소스, 및 대역폭 리소스로서 과도한 리소스를 점유하지 않을 수 있다.
각 초기 파티션은 최종 파티션에 대응한다. 각 초기 파티션은 ID를 갖고, ID의 수는 0보다 크거나 같은 정수이다. 각 최종 파티션은 ID를 갖고 ID의 수는 0보다 크거나 같은 정수이다. 초기 파티션에 대응하는 최종 파티션을 획득하는 방법은: 최종 파티션의 ID를 사용하여 초기 파티션의 총량에 모듈로 연산(modulo operation)을 수행하는 단계이고, 모듈로 연산에서 나머지 값은 최종 파티션에 대응하는 초기 파티션의 ID를 지시한다. 이런 경우, 초기 파티션은 현재 파티션이다.
단계(22): N개의 신규 IP 디스크가 IP 디스크 클러스터에 추가된 것이 탐지되면, 클러스터 내의 현재 저장 디스크의 수량 M과 클러스터의 현재 존재하는 파티션의 총량 T를 획득하고, M, N, 및 T는 모두 자연수이다.
제어기는 IP 디스크 클러스터에 연결되어 있고, 클러스터에 추가된 신규 IP 디스크는 제어기에 의해 탐지될 수 있다. 현재, 이미 M개의 IP 디스크가 있고, 현재 파티션의 총량은 M·P이다. N개의 IP 디스크는 클러스터에 물리적으로 연결되어 있고, 제어기에 의해 탐지될 수 있으나, IP 디스크에 파티션이 할당되지 않아 데이터를 기록할 수 없다.
"현재"는 본 단계가 실행되는 시점을 의미한다. 본 실시예에서, IP 디스크는 제어기가 초기화된 후 추가되지 않는다. 따라서, 현재 IP 디스크는 M개 이다. 다른 실시예에서, IP 디스크 클러스터 내의 IP 디스크의 수량이 본 단계가 수행되기 전에 변하면, 현재 IP 디스크의 수량은 M이 아니다. 본 단계가 수행되기 전에 파티션이 분할되면, 현재 각 IP 디스크에 의해 소유된 초기 파티션의 수량은 P보다 크다. T개의 파티션은 대략 M개의 IP 디스크에 균등하게 할당된다.
단계(23): 현재 파티션의 수량이 현재 IP 디스크와 신규로 추가된 IP 디스크의 공통 요구 사항을 만족하는지 결정, 즉, 현재 파티션의 총량 T와 저장 디스크의 총량 M+N 사이의 수학적 관계가 미리 설정된 제1 조건을 만족하는지 결정한다. 구체적으로, 결정하는 단계는, 수학식 M·P/(M+N)과 제1 임계치를 비교하는 방식에서 수행되고, 제1 임계치는 자연수이며, 제1 임계치는 제어기에 의해 미리 설정될 수 있다. 본 단계가 제어기가 초기화된 후 처음 수행될 때, T = M·P이다. 선택적으로, 전술한 제1 임계치는 16, 17, 18 또는 19와 같은, 10보다 크고 20보다 작은 정수일 수 있다.
결정하는 하나의 방법은 T/(M·P)가 제1 임계치보다 작으면, 미리 설정된 제1 조건은 만족하고, 분할이 수행되어야 한다. 각 IP 디스크가 소유한 파티션의 수량이 분할 임계치보다 적으면(또는 적거나 같다고 설정될 수 있음), 분할이 수행되지 않으면 각 IP 디스크가 소유한 파티션의 수량은 과도하게 적다. 따라서, 분할을 통해 파티션의 총량을 증가시킨 다음, 단계(24)가 실행된다. 각 IP 디스크가 소유한 파티션의 수량이 분할 임계치보다 적으면, 단계(25)가 실행된다.
다른 결정 방법은: 파티션 분할 1회 후, 각 IP 디스크가 소유한 파티션의 평균 수량이 임계치보다 크면(또는 크거나 같은 것으로 설정될 수 있음), 각 IP 디스크게 의해 소유된 파티션의 수량은, 분할이 수행되면 과도하게 큰 것을 지시한 다음, 단계(25)가 수행된다. 각 IP 디스크에 의해 소유된 파티션의 평균 수량이 임계치보다 크지 않으면 단계(24)가 실행된다. 또한, 2개의 결정 방법이 결합하여 결정하는 단계기 수행될 수 있고, 서비스에 가장 높은 만족도의 기술적 해결 수단이 선택된다. 이하의 모든 실시예는 예로서 제1 결정 방법을 사용하여 본 발명을 설명한다.
단계(24): 분할 후 획득된 파티션의 수량이 요구사항을 만족할 때까지, 현재 파티션의 적어도 하나를 한 번 분할하거나, 복수 회 분할한 다음, 단계(26)를 실행한다. 분할 후 획득된 파티션의 수량이 요구사항을 만족하는 것은, 분할 후 획득된 파티션의 총량 S와 저장 디스크의 총량 M+N이 미리 설정된 제2 조건을 만족하는 것일 수 있고, 분할 후 획득된 파티션의 총량은 최종 파티션의 총량 L보다 크다. 복수 회 분할은 분할을 통해 피ㅌ션에 복수회 분할을 수행한 것을 의미한다.
분할 후 획득된 파티션의 총량 S와 저장 디스크의 총량 M+N 사이의 수학적 관계가 미리 설정된 제2 조건을 만족하는 것은, 구체적으로: S/(M+N)이 제2 임계치보다 크거나 작은 것이고, 제2 임계치는 자연수이다. 제2 임계치는, 예를 들어, 25, 26, 27, 48, 또는 49와 같은 25보다 크고 50보다 작은 자연수 일 수 있다.
분할 후 획득된 파티션의 수량이 요구사항을 만족하는지 결정하는 방법은 다양할 수 있다. 예를 들어, 분할 후 획득된 파티션의 총량 S와 저장 디스크의 총량 M+N 사이의 수학적 관계가 미리 설정된 제2 조건을 만족하면, 분할은 종료한다. 구체적으로, 예를 들어, 분할 후 각 IP 디스크에 의해 소유된 파티션의 평균 수량이 제2 임계치보다 크거나 같으면, 미리 설정된 제2 조건이 만족한 것으로 고려되고, 분할은 종료된다. 대안으로서, 분할 후 각 IP 디스크에 의해 소유된 파티션의 평균 수량이 미리 설정된 임계치 범위를 만족하면, 요구사항을 만족한 것으로 고려된다.
분할의 각 시각에서, 각 파티션이 복수의 서브 파티션으로 분할되면, 각 파티션은 동일한 서브 파티션의 수량으로 분할된다. 첫 번째 분할로부터 마지막 분할까지, 파티션의 수량이 변하는 배수는 분할 계수로 지칭된다. 각 분할 시각에서, 각 패런트 파티션이 2개의 서브 파티션으로 분할된다고 가정한다. 1번의 분할 후 분할이 종료되면, 분할 계수는 2이다. 2번의 분할 후 분할이 종료되면, 분할 계수는 22이다.
현재 파티션의 적어도 1개의 분할이 현재 파티션 전부의 분할을 의미하면, 분할 후 획득된 파티션의 총량 S = T × 분할 계수이다. 현재 파티션의 적어도 1개의 분할이 현재 파티션의 일부 분할을 의미하면, 분할 후 획득된 파티션의 총량 S < T × 분할 계수이다. 전자의 분할 속도가 더 빠르고, 후자의 분할 방식에서, 분할 후 획득된 파티션의 총량의 조정 가능성은 더 좋다. 설명의 편의를 위해, 본 발명의 본 실시예는 전자의 분할 방식을 사용하여 설명한다.
이하에서, 후자의 분할 방식의 실시예를 설명한다.: 최종 파티션의 총량은 1,000개로 가정하고, 현재 파티션의 총량은 512로 가정하며, 분할 계수는 2인 것으로 가정한다. 파티션이 분할되면, 1,024개의 파티션이 분할 후 획득되고, 이것은 최종 파티션의 총량을 초과한다. 현재 파티션의 총량이 최종 파티션의 총량보다 큰 것은 허용되지 않는다. 이러한 경우를 회피하기 위해, 488개의 현재 파티션 만 분할될 수 있다.: 488 + 512 = 1,000, 즉, 분할 후 획득된 현재 파티션의 총량은 단지 1,000개에 도달하고, 최종 파티션의 총량을 초과하지 않는다. 또한, 예를 들어, 사용자가 1,000개의 현재 파티션이 과도하게 큰 수량이라고 고려하면, 사용자는 분할 후 획득된 현재 파티션의 총량이 800에 도달한 것이 가장 적합하다고 고려하고, 분할 후 획득된 현재 파티션의 총량이 800에 도달할 수 있도록, 512개 중 288개의 현재 파티션이 분할 계수 2에 따라 분할될 수 있다. 후자의 분할 방법을 사용하여, 각 시각에 1개의 파티션만 분할될 수 있다. 분할 계수가 2이면, 분할 전후 현재 파티션의 총 수량의 차는 1이다. 따라서, 파티션 분할에 대한 그래뉴얼리티(granularity)가 가장 작다.
또한, 전술한 실시예에 기초하여, 분할 계수는 또한 변할 수 있다. 예를 들어, 첫 번째 분할 동안, 분할 계수로서 2가 사용되지만, 두 번째 분할 동안 분할 계수는 5로 변한다. 이것은 분할 후 획득된 파티션의 총량의 값을 렌더링하여 더 조정가능하게 하는 목적을 달성할 수 있다.
현재 파티션과 최종 파티션 사이에는 대응관계가 있다. 이러한 대응 관계는 제어기에 저장될 수 있고, 제어기에 의해 각 관리 서버에 게시될 수 있다. 각 현재 파티션은 ID를 가지고, 현재 파티션의 ID는 0보다 크거나 같은 정수일 수 있다. 총 T개의 현재 파티션이 있고, T 개의 현재 파티션의 ID는 첫 번째 항이 0이고, 공차는 1이며, 항수는 T인 등차수열을 형성한다. 각 최종 파티션은 ID를 가지고, 최종 파티션의 ID는 0보다 크거나 같은 정수 일수 있다. 총 S개의 최종 파티션이 있고, S개의 최종 파티션의 ID는 첫 번째 항이 0이고, 차는 1이며, 항수는 S인 등차수열을 형성한다. 예를 들어, 12개의 파티션이 24개의 파티션을 분할되고, 분할 전의 파티션의 ID는 0, 1, 2, 3, ..., 9, 10. 및 11이며, 분할 후 파티션의 ID는 0, 1, 2, 3, ..., 21, 22, 및 23이다.
파티션이 분할된 후, 파티션 ID 생성 규칙은: 분할 후 획득된 파티션에서, 1개의 파티션이 파티션의 원래 ID를 유지하고, 다른 파티션의 ID의 값과 파티션의 원래 ID의 값은 등차수열을 형성하며, 항은 분할 전의 파티션의 총량 M의 공차만큼 점진적으로 증가한다. 예를 들어, 분할 전 총 200개의 파티션이 있고, 분할 후, 각 파티션이 3개의 파티션으로 분할된다. ID가 21인, 파티션의 분할 후 생성된 3개의 파티션의 ID는 순서대로, 221, 421, 및 621이다. 이러한 ID 생성 규칙은 변할 수 있고, 전체 분할 과정이 종료된 후, 현재 파티션의 ID가 여전히, 첫 번째 항이 0이고, 공차는 1인 점진적으로 증가하는 등차수열을 형성하는 것을 제공한다.
예를 들어, 다른 파티션 ID 생성 규칙에 따라: ID가 0인 파티션 분할 후 획득된 3개의 파티션의 ID는 추가로, 0, 201, 및 202일 수 있고, ID가 3인 파티션의 분할 후 획득된 ID는 3, 205, 및 206일 수 있고, 다른 파티션의 ID는 유사한 방법으로 획득될 수 있다.
현재 파티션의 총량 S가 최종 파티션의 총량 L에 도달할 때, 이하와 같은 경우가 발생할 수 있다.: 각 파티션을 한 번 분할하여 생성된 파티션의 총량이 최종 파티션의 총량 L보다 크면, 분할을 통해 파티션의 총량이 증가할 수 있도록, 파티션의 일부만 분할되거나, 분할 계수가 감소하는 것일 수 있고, 파티션의 총량은 최종 파티션의 총량 L을 초과하지 않는다.
단계(25): M·P개의 파티션이 균일하게 M+N개의 IP 디스크에 분배되도록, 원래 M개의 IP 디스크에 의해 소유된 일부 파티션을 신규로 추가된 N개의 IP에 이동하는 파티션 이동을 수행한다. 단계(25)가 수행된 후, 전체 시스템의 파티션의 총량은 변하지 않고, 각 IP 디스크에 의해 소유된 파티션의 평균 수량은 감소한다. 단계(24)와 단계(25)는 대안으로서 수행된다. 파티션 관리의 완전한 실시예에서, 단계(24)가 실행된 후, 단계(25) 또는 단계(26)은 실행되지 않는다.
단계(26): 제어기에 기록된 현재 IP 디스크의 총량을 M+N으로 업데이트 되고, 현재 파티션의 총량은 S로 업데이트된다. 본 단계는 단계(24)와 동시에 실행될 수 있다. 각 IP 디스크의 현재 파티션의 수량은 대략 S/(M+N)이다. 따라서, 파티션의 총량 S은 기록되지 않을 수 있고, 대신, 클러스터 내의 각 IP 디스크의 현재 파티션의 수량은 대략 S/(M+N)으로 기록될 수 있다.
단계(26)는 다음 분할을 위한 준비이다. 따라서 현재 파티션 관리 작업에 대해, 단계(26)는 반드시 실행되어야 하는 단계는 아니다.
S개의 현재 파티션은 M+N 개의 IP 디스크에 할당된다. 파티션 뷰의 업데이트 작업이 추가로 수행될 수 있고, 파티션 뷰는 현재 파티션에 대응하는 IP 디스크를 기록할 수 있으며, 이는 구체적으로 현재 파티션의 ID와 IP 디스크의 어드레스 사이의 대응관계이다. 이하에서 데이터 처리 방법은 본 단계에서 업데이트 된 파티션 뷰를 사용할 수 있다. 실제로, 파티션은 현재 파티션과 IP 디스크 사이의 대응관계가 정확히 기록된 후 사용될 수 있기 때문에, 본 발명의 다른 실시예에서, 현재 파티션의 변화가 관련될 때, 파티션뷰를 업데이트 하는 작업은 실행되어야 한다.
전술한 파티션 관리 방법은 도 3에서 도시된 하드웨어를 사용하여 실행될 수 있다. 도 3에서, 제어기(3)는 인터페이스(31), 프로세서(32), 및 저장 매체(33)를 포함한다.
인터페이스(31)는 외부 인터페이스, 예를 들어, 저장 디스크 클러스터 및 관리 서버에 연결된 외부 인터페이스를 제공하도록 구성된다. 저장 매체(33)는 컴퓨터 프로그램 코드를 저장하도록 구성된다. 프로세서(32)는, 저장 매체(33)에 저장된 프로그램 코드를 사용하여, 전술한 파티션 관리 방법을 수행하도록 구성된다.
도 4를 참조하면, 본 발명의 실시예는 추가로, 파티션 관리 장치(4)를 제공하고, 파티션 관리 장치(4)는 하드웨어 또는 소프트웨어에 의해 형성된 가상 하드웨어일 수 있다. 파티션 관리 장치(4)는 저장 디스크 탐지 모듈(41), 미리 설정된 제1 조건 결정 모듈(42), 및 파티션 분할 모듈(43)을 포함한다. 선택적으로, 파티션 관리 장치(4)는 추가로, 초기화 모듈(40)을 포함할 수 있다. 선택적으로, 파티션 관리 장치(4)는 추가로 업데이트 모듈(44)을 포함할 수 있다.
초기화 모듈(40)은 IP 디스크의 최대 수량에 따라, 자연수인, 최종 파티션의 수량 L을 결정하고, 초기 IP 디스크의 수량에 따라, 각 IP 디스크에 의해 소유된 초기 파티션의 수량을 결정하도록 구성된다. 본 단계는 제어기가 초기화될 때만 실행되는 전치 단계이고 따라서, 선택적이다.
업데이트 모듈(44)은 초기 IP 디스크의 수량을 현재 IP 디스크의 수량 M으로 기록하고, 각 IP 디스크에 의해 소유된 초기 파티션의 수량을 현재 파티션의 수량 P로 기록하도록 구성되며, 클러스터의 현재 존재하는 파티션의 총량 T는: T = M·P이다. 업데이트 모듈(44)은 추가로, 최종 파티션의 수량 L을 기록하도록 구성된다. 결과적으로, 클러스터에서 IP 디스크의 수량은 변하거나, 각 IP 디스크의 파티션의 수량은 변하고, 현재 IP 디스크의 수량 M과 현재 파티션의 수량 P는 업데이트 된다. 본 발명의 본 실시예에서, "·" 심볼은 프로덕트를 의미한다.
최종 파티션의 수량은 일정하고, 최종 파티션은 분할될 수 없으며, 사용자에 의해 인식될 수 있다. 초기 파티션은 대체로 패런트 파티션이고, 분할을 통해 다음 레벨의 패런트 파티션 또는 최종 파티션을 생성하기 위해 패런트 파티션은 분할될 수 있다. 패런트 파티션은 저장 시스템에 의해 사용되며 사용자는 패런트 파티션의 존재를 인식할 수 없다.
L의 값은 사용자에 의해 설정돼가나 시스템에 의해 자동으로 설정될 수 있고, IP 디스크의 수량이 최대 일 때, 즉, L = IP 디스크의 최대 수량 × 각 IP 디스크의 파티션의 수량일 때, 대체로 IP 디스크의 최대 수량과 각 IP 디스크의 조각에 의해 결정될 수 있다. 각 IP 디스크에 대해 X개의 파티션을 소유하는 것이 적합한 값이라는 것을 가정한다. 예를 들어, 사용자가, 각 IP 디스크에 대해 100개의 파티션을 소유하는 것이 상대적으로 적합하다고 고려한다. 즉, X=100이고 IP 디스크 클러스터에 의해 지원될 수 있는 IP 디스크의 최대 수량은 10,000이며, L = 10,000 × 100 = 1,000,000이다.
유사하게, 초기 파티션의 수량은 사용자에 의해 설정되거나, 시스템에 의해 자동으로 설정될 수 있다. 하나의 선택적 방식은, 초기 상황에서, IP 디스크의 수량 M은: M=75이고, 100개의 파티션이 각 IP 디스크에 할당된 것으로 가정하면, 초기 파티션의 총량 = 75 × 100 = 7,500이다. 본 발명의 본 방법을 사용하여, 초기 국면에서, 저장 시스템의 각 IP 디스크가 소유한 파티션의 수량은 자유롭게 설정될 수 있고, 파티션의 수량은 사용자의 요구를 만족하는 값으로 설정될 수 있으며, 그 값으로 저장 리소스, 계산 리소스, 및 대역폭 리소스로서 과도한 리소스를 점유하지 않을 수 있다.
저장 디스크 탐지 모듈(41)은 N개의 신규 저장 디스크가 클러스터에 추가된 것이 탐지되면, 클러스터 내의 현재 저장 디스크의 수량 M을 획득하고, 클러스터의 현재 존재하는 파티션의 총량 T를 획득하도록 구성되며, M, N, 및 T는 모두 자연수이다.
파티션 관리 장치(4)는 IP 디스크 클러스터에 연결된다. 따라서, 신규로 클러스터에 추가된 IP 디스크는 저장 디스크 탐지 모듈(41)에 의해 탐지될 수 있다. 현재, 이미 M개의 디스크가 있고, 현재 파티션의 총량은 M·P이다. N개의 IP 디스크는 물리적으로 클러스터에 연결되어 있고, 저장 디스크 탐지 모듈(41)에 의해 탐지될 수 있으나, IP 디스크에는 파티션이 할당되지 않아서 데이터를 저장할 수 없다.
"현재"는 작업이 실행되는 순간을 의미한다. 본 실시예에서, IP 디스크는 파티션 장치(4)가 초기화된 후에는 추가되지 않는다. 현재 IP 디스크의 수량은 M이다. 다른 실시예에서, 디스크 클러스터 내의 IP 디스크의 수량이 본 단계가 실행되기 전에 변하면, 현재 IP 디스크의 수량은 M이 아니다. 본 단계 이전에 파티션 분할이 수행되면, 현재 각 IP 디스크에 의해 소유된 초기 파티션의 수량은 P보다 많다. T개의 파티션이 대략 M개의 IP디스크에 동등하게 할당된다.
미리 설정된 제1 조건 결정 모듈(42)은 현재 파티션의 총량 T와 저장 디스크의 총량 M+N 사이의 수학적 관계가 미리 설정된 제1 조건을 만족하는지 결정하도록 구성된다.
현재 파티션의 수량이 현재 IP 디스크와 신규로 추가된 IP 디스크의 공통 요구사항을 만족하는지는 d를 결정한다. 즉, 현재 파티션의 총량 T와 저장 디스크의 총량 M+N 사이의 수학적 관계가 미리 설정된 제1 조건을 만족하는 지가 d를 결정하고, 그러한 결정은 수학식 T/(M+M)과 제1 임계치를 비교하는 방식으로 수행된다. 분할 임계치는 제어기에 의해 미리 설정될 수 있다. 이러한 작업이, 제어기가 초기화된 후 처음 실행될 때, T = M·P이다. 제1 임계치는, 16, 17, 18, 19, 및 20과 같은, 10보다 크고 20 보다 작은 정수일 수 있다.
하나의 결정 방법은: T/(M+M)가 제1 임계치보다 작으면, 미리 설정된 조건을 만족하고, 분할이 수행되어야 한다. 각 IP 디스크가 가진 파티션의 수량이 분할 임계치보다 작으면(또는 작거나 같은 것으로 설정될 수 있음), 분할이 수행되지 않으면 각 IP 디스크가 가진 파티션의 수량은 과도하게 적다는 것을 지시한다. 그리고 현재 파티션의 적어도 하나의 파티션은 분할되어야 한다. 각 IP 디스크가 가진 파티션의 수량이 분할 임계치보다 작지 않으면, 파티션 이동이 수행되어야 한다.
다른 결정 방법은: 한 번의 파티션 분할 후, 각 IP 디스크가 소유한 파티션의 평균 수량이 임계치보다 크면(또는 크거나 같은 것으로 설정될 수 있음), 각 IP 디스크가 가진 파티션의 수가 분할이 수행되면 과도하게 많다는 것을 지시한다. 그리고 현재 파티션 이동이 수행되어야 한다. 각 IP 디스크가 소유한 파티션의 평균 수량 임계치보다 크지 않으면, 현재 파티션의 적어도 하나의 파티션은 분할되어야 한다. 또한, 상술한 두 방법은 결정을 수행하기 위해 결합 될 수 있고, 서비스에 가장 적합한 해결 수단이 선택된다. 이하에서, 모든 실시예는 첫 번째 결정 방법을 예로 사용하여 설명된다.
파티션 분할 모듈(43)에 대해, 미리 설정된 제1 조건 결정 모듈(42)에 의한 결정의 결론이 수학적 관계가 미리 설정된 제1 조건을 만족한다는 것이면, 파티션 분할 모듈(43)은 분할 후 획득된 파티션의 총량이 S가 되도록, 현재 파티션의 적어도 하나의 파티션을 분할하고, 분할 후 획득된 파티션을 M+N개의 저장 디스크에 할당하도록 구성된다. 분할 후 획득된 파티션의 총량 S와 저장 디스크의 총량 M+N 사이의 수학적 관계는 미리 설정된 제2 조건을 만족하고, 분할 후 획득한 파티션의 총량은 클러스터에 의해 지원되는 최종 파티션의 총량 L보다 크지 않고, L과 S는 1보다 크다. 분할 후 획득된 파티션은 M+N개의 저장 디스크에 균등하게 할당될 수 있다.
분할 후 획득된 파티션의 수량이 요구사항을 만족할 때까지, 현재 파티션의 적어도 하나가 한번 분할될 수 있고, 또는 복수 회 분할될 수 있다. 분할 후 획득된 총량 S와 저장 디스크의 총량 M+N 사이의 수학적 관계는 미리 설정된 제2 조건을 만족하는 것은, 구체적으로: S/(M+N)이 제2 임계치보다 크거나 같은 것일 수 있으며, 여기에서, 제2 임계치는 자연수이다. 제2 임계치는, 예를 들어, 47, 48, 49, 및 50과 같은 25보다 크고 50보다 작은 자연수일 수 있다.
분할 후 획득된 파티션의 수량이 요구 사향을 만족하는지 결정하는 방법은 다양할 수 있다. 예를 들어, 분할 후 획득된 파티션의 총량 S와 저장 디스크의 총량 M+N 사이의 수학적 관계가 미리 설정된 제2 조건을 만족하면, 분할은 끝난다. 구체적으로, 예를 들어, 분할 후 각 IP 디스크가 소유한 파티션의 평균 수량이 제2 임계치보다 크거나 같으면, 미리 설정된 제2 조건은 만족한 것으로 고려되고, 분할의 계속은 종료한다. 대안으로서, 분할 후 각 IP 디스크가 소유한 파티션의 평균 수량이 미리 설정된 임계치 범위를 만족하면, 요구사항이 만족된 것으로 고려된다.
각 분할시 각 파티션이 복수의 서브 파티션으로 분할되면, 각 파티션은 서브 파티션의 동일 수량으로 분할된다. 첫 분할부터 마지막 분할까지, 파티션의 복수의 변화는 분할 계수로서 지칭된다. 각 분할시 각 패런트 파티션이 2개의 서브 파티션으로 분할된다고 가정한다. 1번의 분할 후, 분할이 종료되면, 분할 계수는 2이다. 2번의 분할 후 분할이 종료하면, 분할 계수는 22이다.
현재 파티션의 적어도 한 파티션의 분할이 모든 현재 파티션의 분할을 지칭하면, 분할 후 획득된 파티션의 총량 S = T × 분할 계수이다. 현재 파티션의 적어도 한 파티션의 분할이, 일부 현재 파티션의 분할을 지칭하면, 분할 후 획득된 파티션의 총량 S < T × 분할 계수이다. 첫 번째 분할 방식의 분할 속도가 더 빠르고, 두 번째 분할 방식에서, 분할 후 획득된 파티션의 총량의 조정 가능성이 더 좋다. 구체적 세부 사항을 위해, 파티션 관리 방법의 실시예의 설명을 참조한다. 설명의 편의를 위해 본 발명의 실시예는 첫 번째 분할 방식을 사용하여 설명한다.
2번째 분할 방식의 예는: 최종 파티션의 총량은 1,000, 현재 파티션의 총량은 512, 및 분할 계수는 2인 것으로 주어진다. 각 파티션은 분할되고, 분할 후 1,024의 파티션이 획득되며, 이는 최종 파티션의 총량을 초과한다. 현재 파티션의 총량이 최종 파티션의 총량보다 큰 것은 허용되지 않는다. 이러한 경우를 회피하기 위해, 488개의 현재 파티션만 분할될 수 있다.: 488 + 512 = 1,000이고, 즉, 분할 후 획득된 현재 파티션의 총량은 1,000에 도달하고, 최종 파티션의 총량의 값보다 크지 않다. 또한, 사용자가 1,000개의 현재 파티션이 과도하게 큰 수량이라고 고려하면, 예를 들어, 사용자가, 분할 후 획득된 현재 파티션의 총량이 800에 도달하는 것이 가장 적당하다고 가정하면, 분할 후 획득된 현재 파티션의 총량이 800에 도달할 수 있도록, 512개의 현재 파티션의 288개의 파티션은 분할 계수 2에 따라 분할될 수 있다. 2번째의 분할 방법을 사용하여, 매 시각 1개의 파티션만 분할될 수 있다. 분할 계수가 2이면, 분할 전후의 현재 파티션의 총 수량의 차이는 1이다. 따라서, 파티션 분할의 그래뉴얼리티(granularity )는 가장 작다.
또한, 전술한 실시예에 기초하여, 분할 계수는 바뀔 수 있다. 예를 들어, 처음 분할되는 동안, 2가 분할 계수로서 사용되지만, 2번째 분할 동안, 분할 계수는 5로 바뀐다. 이것은 또한, 분할 후 획득된 파티션의 총량의 값을 더욱 조정 가능하게 렌더링(rendering)하는 목적을 달성할 수 있다. 현재 파티션과 최종 파티션 사이에는 대응 관계가 있다. 이러한 대응 관계는 업데이트 모듈(44)에 의해 저장될 수 있고, 추가로 업데이트 모듈(44)에 의해 데이터 처리 장치에 게시될 수 있다. 각 현재 파티션은 ID가 있고, 현재 파티션의 ID는 0보다 크거나 같은 정수일 수 있다. 모든 현재 파티션은, 첫 번째 항이 0, 공차는 1인 등차수열을 형성할 수 있다. 최종 파티션은 ID를 가지고, 최종 파티션의 ID는 0보다 크거나 같은 정수일 수 있다. 모든 최종 파티션은 첫 번째 항이 0이고 차가 1인 등차수열을 형성할 수 있다. 예를 들어, 12개의 파티션이 24개의 파티션으로 분할되고, 분할 전 파티션의 ID는 0, 1, 2, 3, ..., 9, 10, 및 11이며, 분할 후 파티션의 ID는 0, 1, 2, 3, ..., 21, 22, 및 23이다.
파티션이 분할된 후, 파티션 ID 생성 규칙은: 분할 후 획득된 파티션에서, 1개의 파티션은 파티션의 원래 ID를 유지하고, 다른 파티션의 ID의 값 및 파티션의 원래 ID의 값은 등차수열을 형성하고, 등차수열에서 항은 분할 전 파티션의 총량 M의 공차만큼 점진적으로 증가할 수 있다는 것일 수 있다. 예를 들어, 분할 전 총 200개의 파티션이 있고, 분할 후 각 파티션은 3개의 파티션으로 분할된다. 분할 전 ID가 21인 파티션이 분할된 후 생성된 3개의 파티션은 차례대로 ID가 221, 421, 및 621이다. 이러한 ID 생성 규칙은 변경될 수 있고, 현재 파티션의 ID는, 전체 분할 과정이 끝난 후, 첫 번째 항은 0이고 공차가 1인 점진적으로 증가하는 등차수열을 여전히 형성한다는 것을 제공할 수 있다.
현재 파티션의 총량 S가 최종 파티션의 총량 L에 도달할 때, 다음:
1번 각 파티션의 분할에 의해 생성된 파티션의 총량이 최종 파티션의 총량 L보다 크면, 분할을 통해, 파티션의 총량이 증가될 수 있도록, 파티션의 일부만 분할된 것 일 수 있거나, 또는 분할 계수는 감소하고, 파티션의 총량은 최종 파티션의 총량 L을 초과하지 않는 것과 같은 상황이 발생할 수 있다.
업데이트 모듈(44)은 파티션 분할 모듈(43)의 작업이 실행된 후, 파티션 관리 장치(4)에서 M+N으로 기록한 현재 IP 디스크의 총량을 업데이트 하고, 현재 파티션의 총량을 S로 업데이트 하도록 구성된다. 각 IP 디스크의 현재 파티션의 총량은 대략 S/(M+N)이다. 따라서, 파티션의 총량 S는 기록되지 않을 수 있다. 대신, 클러스터 내의 각 IP 디스크의 현재 파티션의 총량이 대략 S/(M+N)인 것으로 기록된다.
업데이트 모듈(44)이 수행하는 작업은 다음 분할에 대한 준비이다. 따라서, 이러한 파티션 관리 작업에 대해, 업데이트 모듈(44)는 강제되는 모듈은 아니다.
선택적으로, 파티션 분할 모듈(43) 또는 업데이트 모듈(44)은 추가로, 파티션 뷰에 관련된 작업을 수행할 수 있고, 파티션 뷰는 현재 파티션에 대응하는 IP 디스크, 예를 들어, 현재 파티션의 파티션 ID와 IP 디스크의 대응하는 IP 디스크 어드레스 사이의 대응 관계를 기록한다. 즉, 파티션 뷰는 S 개의 현재 파티션의 각 파티션에 대응하는, M+N 개의 IP 디스크 내의 IP 디스크에 기록한다. 이하에서 데이터 처리 장치는 업데이트된 파티션 뷰를 사용할 수 있다.
선택적으로, 파티션 이동 모듈(도면에 도시되지 않음)이 추가로 포함될 수 있다. 파티션 분할이 수행되지 않으면, 파티션 이동 모듈은 파티션 이동에 사용될 수 있고, M·P 개의 파티션이 M+N 개의 IP 디스크에 고르게 분배될 수 있도록, M 개의 원래 IP 디스크에 의해 소유된 일부 파티션을 신규로 추가된 N 개의 IP로 이동하는 데 사용될 수 있다.
도 5를 참조하면, 본 발명은 추가로, 파티션 관리 장치에 적용되는 데이터 처리 방법을 제공한다. 파티션 관리 장치는 파티션 뷰를 저장하고, 파티션 뷰는 현재 파티션의 ID와 저장 디스크(예를 들어, IP 디스크)의 어드레스 사이의 대응 관계를 저장한다. 데이터 처리 방법은, 파티션 관리 방법 후 실행되고, 파티션 관리 방법에 기초한다. 그러나 두 방법은 상대적으로 독립적이다. 파티션 관리 장치는 제어기에 연결되어 있다. 예를 들어, 파티션 관리 장치는 관리 서버 또는 스위치 클러스터 일 수 있다. 이하에서 관리 서버를 예로 사용하여 설명한다. 데이터 처리 방법의 실시예는 전술한 파티션 관리 방법에서 제공되는 파티션 뷰에 근거하여 실행될 수 있다. 파티션 뷰는 제어기에 의해 생성되고, 저장을 위해, 파티션 관리 장치 클러스터 내의 파티션 관리 장치에 송신된다.
단계(S51): 기록되어야 할 데이터에 따라 키-값을 생성한다. 예를 들어, 값을 포함하는 세트를 획득하기 위해 기록되어야 할 데이터가 분할되고, 키-값 데이터를 형성하기 위해 그 값의 키는 생성되며, 키-값은 키와 그 키에 대응하는 값의 조합이다. 기록되어야 할 데이터의 한 조각이 복수의 값으로 분할될 수 있기 때문에, 이에 대응하여, 복수의 키-값은 생성될 수 있다. 설명의 편의를 위해, 이하의 단계는 구체적 키-값의 처리 과정에 대해서만 설명한다.
기록되어야 할 데이터, 예를 들어, 파일 또는 데이터 스트림은, 어플리케이션 서버로부터 비롯된다. 기록되어야 할 데이터의 크기가 상대적으로 크면, 저장을 용이하게 하기 위해, 관리 서버는 데이터를 분할할 수 있다. 예를 들어 관리 서버는 데이터를 각 1MB의 동일한 크기의 데이터 세그먼트(segment)로 분할할 수 있고, 각 세그먼트는 값으로 지칭된다. 키는 값을 고유하게 식별하기 위해 사용된다. 따라서, 상이한 키의 값은 다르다. 예를 들어, "데이터 파일 이름 + 숫자(data file name + numeral)"가 값의 키로서 사용될 수 있다. 상대적으로 작은 크기의 데이터는 분할되지 않아도 되고, 데이터의 키는 직접 생성된 다음, 키-값 데이터가 형성된다. 일부 특별한 시나리오에서, 큰 사이즈를 가진 데이터는 분할되지 않아도 되고, 대응하는 키-값 데이터는 직접 형성된 다음, 저장을 위해 IP 디스크로 송신된다.
단계(S52): 키-값의 키를 획득하고, 키에 따라, 키-값 데이터에 대응하는 최종 파티션의 ID를 계산한다. 상술한 바와 같이, 키-값 데이터는 값 및 그 값에 고유하게 대응하는 키를 포함한다.
최종 파티션의 ID를 계산하는 방법은: 키의 해시 값(hash value)을 획득하기 위해, 그 키에 해시 연산을 수행하는 단계, 최종 파티션의 총량 L에 따라, 해시 값에 모듈로 연산을 수행하는 단계이고, 모듈로 연산에서 나머지는 최종 파티션의 ID로서 사용되며, L은 2보다 크거나 같은 자연수이다. 이러한 방식으로, 최종 파티션의 획득된 ID는 디지털 수이다. 다른 실시예에서, 동등한 변환은 디지털 수를 다른 사인, 예를 들어, 영어로 된 수로 매핑하고, 그 영어로 된 수를 최종 파티션의 ID로 사용하는 것이다. 또한, 최종 파티션에, 초기 파티션과 현재 파티션이 또한, 영어로된 수를 사용하여 표시될 수 있다. 키에 대응하는 최종 파티션이 계산되거나, 현재 파티션과 최종 파티션 사이의 대응 관계가 계산되면, 영어로 된 수는 디지털 수로 다시 매핑될 수 있고, 매핑을 통해 획득된 디지털 수는, "모듈(modulo)"로 방식을 사용하여 형성된 디지털 형태의 파티션 ID와 같이 계산된다. 이 알고리즘에서, 최종 파티션의 개념에 대해, 전술한 파티션 관리 방법 실시예의 설명을 참조한다.
단계(S53): 최종 파티션의 ID에 대응하는 현재 파티션을 계산하고, 각 현재 파티션의 ID는 복수의 최종 파티션의 ID에 대응한다.
최종 파티션의 현재 파티션을 계산하는 알고리즘은: 현재 파티션의 총량 T에 따라, 최종 파티션의 ID에 모듈로 연산을 수행하는 것이고, 그 모듈로 연산의 나머지는 현재 파티션의 ID로 사용되며, 현재 파티션의 총량 T는 자연수이다. 유사하게, 현재 파티션의 ID는 디지털 수이고, 동등한 변환은 현재 파티션의 ID로서 디지털 수를 다른 사인으로 매핑하는 것이다. 현재 파티션은 현 시각에, IP 클러스터에 의해 소유된 파티션을 의미하고, 현재 파티션은 1개의 IP 디스크에 대응한다. 기준은 전술한 파티션 관리 방법의 실시예의 현재 파티션의 설명으로 만들어진다.
이러한 관점에서, 현재 파티션의 ID와 복수의 최종 파티션의 ID에는 대응 관계가 있다. 대응 관계에 대해 상세한 설명을 위해, 파티션 관리 방법의 실시예를 참조한다. 현재 파티션과 최종 파티션 사이의 대응 관계가 있고, 이러한 대응 관계는 제어기에 저장될 수 있으며, 단계(S53)가 수행될 때 판독된다. 또는 대응 관계는 미리 저장되지 않고, 단계(S53)가 수행될 때 알고리즘에 따른 계산을 통해 획득될 수 있다. 각 현재 파티션은 ID를 포함하고, 현재 파티션의 ID는 0보다 크거나 같은 정수일 수 있다. 모든 현재 파티션의 ID의 세트는 첫 번째 항은 0, 공차는 1인 등차수열을 형성한다. 각 최종 파티션은 ID가 있고, 최종 파티션의 ID는 0보다 크거나 같은 정수일 수 있다. 모든 최종 파티션의 ID의 세트는 첫 번째 항은 0, 차는 1인 등차수열을 형성한다. 현재 파티션에 대응하는 최종 파티션을 획득하는 방법은: 최종 파티션의 ID를 사용하여 현재 파티션의 총량에 모듈로 연산을 수행하는 것이고, 그 모듈로 연산에서 나머지는 최종 파티션에 대응하는 현재 파티션의 ID로서 사용된다.
또한, 파티션 분할 후, ID 생성 규칙은: 분할 후 획득된 파티션에서, 1개의 파티션이 파티션의 원래 ID를 간직하고, 다른 파티션의 ID의 값과 파티션의 원래 ID의 값은 등차수열을 형성하며, 진행하는 항은 분할 전 파티션의 총량의 공차만큼 점진적으로 증가한다. 예를 들어, 분할 전 총 200개의 파티션이 있고, 분할 후 각 파티션이 3개의 파티션으로 분할된다. ID가 21인 파티션의 분할 후 생성된 3개의 파티션의 ID는 순서대로, 221, 421, 및 621이다. 이러한 ID 생성 규칙은 변할 수 있고, 현재 파티션의 ID가, 전체 분할 과정이 종료된 후, 첫 번째 항은 0이고 공차는 1인 점진적으로 증가하는 등차수열을 여전히 형성하는 것을 제공할 수 있다. 예를 들어, ID가 0인 파티션은 다른 파티셔닝(partitioning) 방법에 따라 분할될 수 있다. 분할 후 획득된 3개의 파티션의 ID는 추가로, 0, 201, 및 202일 수 있고, ID가 1인 파티션을 분할하여 획득된 파티션의 ID는 1, 203, 및 204이다. ID가 3인 파티션을 분할하여 획득된 파티션의 ID는 3, 205, 및 206이다. 다른 파티션의 ID는 유사한 방법에 의해 획득될 수 있다.
단계(S54): 현재 파티션의 ID에 대응하는 저장 디스크의 어드레스를 획득하기 위해, 파티션 뷰를 조회한다.
파티션 저장 장치는 파티션 뷰를 저장하고, 파티션 뷰는 현재 파티션의 ID와 저장 디스크의 어드레스 사이의 대응 관계를 저장한다. 저장 디스크가 IP 디스크면, 저장 디스크의 어드레스는 IP 어드레스 일 수 있다. 저장 디스크가 다른 유형의 프로토콜, 예를 들어, ATM 또는 IPX 프로토콜에 기초하면, 저장 디스크의 어드레스는 ATM 어드레스 또는 IPX 어드레스이다.
단계(S55): 저장 디스크의 어드레스를 사용하여, 목적지 어드레스로서 키-값 패킷을 생성하고, 키-값 패킷을 저장 디스크로 송신하며, 키-값 패킷의 페이로드(payload)는 키-값 데이터를 운반한다.
키-값 패킷을 수신한 후, 저장 디스크는 키-값 데이터를 저장한다.
도 6에 도시된 바와 같이, 도 6은 본 발명에 따른 데이터 처리 장치의 실시 예다. 데이터 처리 장치는, 파티션 뷰를 저장하도록 구성된 메모리(61), 외부 인터페이스를 제공하도록 구성된 인터페이스(62), 컴퓨터 프로그램을 저장하도록 구성된 컴퓨터 판독 가능한 매체(63), 및 메모리(61), 인터페이스(62), 및 컴퓨터 판독 가능한 매체(63)에 연결되고, 프로그램을 실행하여 전술한 데이터 처리 방법을 실행하도록 구성된 프로세서(64)를 포함하고, 파티션 뷰는 현재 파티션의 ID와 저장 디스크의 어드레스 사이의 대응 관계를 저장한다. 예를 들어, 데이터 처리 방법은 이하의 단계를 포함한다.
키-값 데이터의 키를 획득하고, 키에 따라 키-값 데이터에 대응하는 최종 파티션의 ID를 획득하는 단계, 최종 파티션의 ID에 대응하는 현재 파티션의 ID를 계산하는 단계, 파티션 뷰를 조회하여 현재 파티션의 ID에 대응하는 저장 디스크의 어드레스를 획득하는 단계, 및 저장 디스크의 어드레스를 사용하여, 목적지 어드레스로 키-값 패킷을 생성하고 저장 디스크에 키-값 패킷을 송신하는 단계를 포함하며, 키-값 데이터는 값 및 그 값에 고유하게 대응하는 키를 포함하고, 각 현재 파티션의 ID는 복수의 최종 파티션의 ID에 대응하며, 키-값 패킷은 키-값 데이터를 운반한다.
도 7에 도시된 바와 같이, 도 7은 본 발명의 실시예에 따른 데이터 처리 장치(7)의 첨부 도면이다. 데이터 처리 장치(7)는 저장 모듈(71), 최종 파티션 계산 모듈(6), 현재 파티션 계산 모듈(73), 조회 모듈(74), 및 송신 모듈(75)을 포함한다. 선택적으로, 데이터 처리 장치(7)는 추가로 키-값 데이터 생성 모듈(76)을 포함할 수 있다.
저장 모듈(71)은 파티션 뷰를 저장하도록 구성되고, 파티션 뷰는 현재 파티션의 ID와 저장 디스크의 어드레스 사이의 대응 관계를 저장한다. 저장 모듈(71)이 사용하년 저장 매체는 플래시 메모리 또는 하드디스크일 수 있다.
저장 모듈(71)의 파티션 뷰는 파티션 관리 장치 예를 들어, 도 4의 파티션 관리 장치(4)로부터 비롯된다. 저장 모듈(71)은 파티션 관리 장치(4)에 연결되어 파티션 뷰를 수신할 수 있다.
최종 파티션 계산 모듈(72)은 키-값 데이터에서 키를 획득하고, 키에 따라, 키-값 데이터에 대응하는 최종 파티션의 ID를 계산하도록 구성되며, 키-값 데이터는 값 및 그 값에 고유하게 대응하는 키를 포함한다.
최종 파티션의 ID를 계산하기 위해, 최종 파티션 계산 모듈(72)이 사용하는 방법은: 키의 해시 값을 획득하기 위해, 키에 해시 연산을 수행하고, 최종 파티션의 총량 L에 따라, 해시 값에 모듈로 연산을 수행하는 단계이며, 모듈로 연산의 나머지는 최종 파티션의 ID로서 사용되며, L은 2보다 크거나 같은 자연수이다. 이러한 방식으로, 최종 파티션의 획득된 ID는 디지털 수이다. 다른 실시예에서, 동등한 변환은 디지털 수를 다른 사인, 예를 들어, 영어로 된 수로 매핑하고, 그 영어로 된 수를 최종 파티션의 ID로 사용하는 것이다. 또한, 최종 파티션에, 초기 파티션과 현재 파티션이 또한, 영어로 된 수를 사용하여 표시될 수 있다. 키에 대응하는 최종 파티션이 계산되거나, 현재 파티션과 최종 파티션 사이의 대응 관계가 계산되면, 영어로 된 수는 디지털 수로 다시 매핑될 수 있고, 매핑을 통해 획득된 디지털 수는, "모듈(modulo)"로 방식을 사용하여 형성된 디지털 형태의 파티션 ID와 같이 계산된다. 최종 파티션의 개념에 대해, 전술한 파티션 관리 방법 실시예의 설명을 참조한다.
현재 파티션 계산 모듈(73)은 최종 파티션의 ID에 대응하는 현재 파티션의 ID를 계산하도록 구성되고, 각 현재 파티션의 ID는 복수의 최종 파티션의 ID에 대응한다.
현재 파티션 계산 모듈(73)이 최종 파티션의 ID에 대응하는 현재 파티션의 ID를 계산하기 위해 사용하는 방법은: 현재 파티션의 총량 T에 따라, 최종 파티션의 ID에 모듈로 연산을 수행하는 단계이고, 그 모듈로 연산의 나머지는 현재 파티션의 ID로 사용되며, 현재 파티션의 총량 T는 자연수이다. 유사하게, 현재 파티션의 ID는 디지털 수이고, 동등한 변환은 현재 파티션의 ID로서 디지털 수를 다른 사인으로 매핑하는 것이다. 현재 파티션은 현 시각에, IP 클러스터에 의해 소유된 파티션을 의미하고, 현재 파티션은 1개의 IP 디스크에 대응한다. 기준은 전술한 파티션 관리 방법의 실시예의 현재 파티션의 설명으로 만들어진다.
이러한 관점에서, 현재 파티션의 ID와 복수의 최종 파티션의 ID에는 대응 관계가 있다. 대응 관계에 대해 상세한 설명을 위해, 파티션 관리 장치의 실시예를 참조한다. 대응 관계를 생성한 후, 파티션 관리 장치는 대응 관계를 각 처리 장치에 게시한다. 현재 파티션과 최종 파티션 사이의 대응 관계가 있고, 이러한 대응 관계는 현재 파티션 계산 모듈(73)에 저장될 수 있거나, 또는 대응 관계는 미리 저장되지 않고, 현재 파티션 계산 모듈(73)에 의한 계산을 통해 획득될 수 있다. 각 현재 파티션은 ID를 포함하고, 현재 파티션의 ID는 0보다 크거나 같은 정수일 수 있다. 모든 현재 파티션의 ID의 세트는 첫 번째 항은 0, 공차는 1인 등차수열을 형성한다. 각 최종 파티션은 ID가 있고, 최종 파티션의 ID는 0보다 크거나 같은 정수일 수 있다. 모든 최종 파티션의 ID의 세트는 첫 번째 항은 0, 차는 1인 등차수열을 형성한다. 예를 들어, 12개의 파티션이 24개의 파티션으로 분할되고, 분할 전 파티션의 ID는 0, 1, 2, 3, ..., 9, 10, 및 11이고, 분할 후 파티션의 ID는 0, 1, 2, 3, ..., 21, 22, 23이다.
또한, 파티션 분할 후, ID 생성 규칙은: 분할 후 획득된 파티션에서, 1개의 파티션이 파티션의 원래 ID를 간직하고, 다른 파티션의 ID의 값과 파티션의 원래 ID의 값은 등차수열을 형성하며, 진행하는 항은 분할 전 파티션의 총량의 공차만큼 점진적으로 증가한다. 예를 들어, 분할 전 총 200개의 파티션이 있고, 분할 후 각 파티션이 3개의 파티션으로 분할된다. ID가 21인 파티션의 분할 후 생성된 3개의 파티션의 ID는 순서대로, 221, 421, 및 621이다. 이러한 ID 생성 규칙은 변할 수 있고, 현재 파티션의 ID가, 전체 분할 과정이 종료된 후, 첫 번째 항은 0이고 공차는 1인 점진적으로 증가하는 등차수열을 여전히 형성하는 것을 제공할 수 있다. 예를 들어, ID가 0인 파티션은 다른 파티셔닝(partitioning) 방법에 따라 분할될 수 있다. 분할 후 획득된 3개의 파티션의 ID는 추가로, 0, 201, 및 202일 수 있고, ID가 1인 파티션을 분할하여 획득된 파티션의 ID는 1, 203, 및 204이다. ID가 3인 파티션을 분할하여 획득된 파티션의 ID는 3, 205, 및 206이다. 다른 파티션의 ID는 유사한 방법에 의해 획득될 수 있다.
조회 모듈(74)은 저장 모듈(71)에 의해 저장된 파티션 뷰를 조회하여 현재 파티션의 ID에 대응하는 저장 디스크의 어드레스를 획득하도록 구성된다.
파티션 뷰는 현재 파티션의 ID와 저장 디스크의 어드레스 사이의 대응 관계를 기록한다. 저장 디스크가 IP 디스크이면, 저장 디스크의 어드레스는 IP 어드레스 일 수 있다. 저장 디스크가 다른 유형의 프로토콜, 예를 들어, ATM 또는 IPX 프로토콜에 기초하면, 저장 디스크의 어드레스는 ATM 어드레스 또는 IPX 어드레스이다.
송신 모듈(75)은, 저장 디스크의 어드레스를 사용하여, 키-값 패킷을 목적지 어드레스로 생성하고, 키-값 패킷을 저장 디스크에 송신하도록 구성되며, 키-값 패킷은 키-값 데이터를 운반한다.
다음, 키-값 패킷의 목적지 장치로서, 저장 디스크는 스위치 클러스터를 사용하여 키-값 패킷을 수신한다음, 키-값 데이터를 저장하도록 구성된다.
키-값 데이터 생성 모듈(76)은 키-값 데이터를 생성하도록 구성된다. 예를 들어, 값을 포함하는 세트를 획득하기 위해 기록되어야 할 데이터를 저장하고, 키-값 데이터를 형성하기 위해 값의 키를 생성한다. 여기에서, 키-값은 키 및 그 키에 대응하는 값의 조합이다. 기록되어야 할 데이터의 한 조각은 복수의 값으로 분할될 수 있기 때문에, 대응하도록, 복수의 키-값은 생성될 수 있다. 설명의 편의를 위해, 본 발명의 실시예는 구체적 키-값의 처리 방식에 대해서만 설명한다.
기록되어야 할 데이터, 예를 들어, 파일 또는 데이터 스트림은, 어플리케이션 서버로부터 비롯된다. 기록되어야 할 데이터의 크기가 상대적으로 크면, 저장을 용이하게 하기 위해, 관리 서버는 데이터를 분할할 수 있다. 예를 들어 관리 서버는 데이터를 각 1MB의 동일한 크기의 데이터 세그먼트(segment)로 분할할 수 있고, 각 세그먼트는 값으로 지칭된다. 키는 값을 고유하게 식별하기 위해 사용된다. 따라서, 상이한 키의 값은 다르다. 예를 들어, "데이터 파일 이름 + 숫자(data file name + numeral)"가 값의 키로서 사용될 수 있다. 상대적으로 작은 크기의 데이터는 분할되지 않아도 되고, 키-값 데이터를 생성하기 위해, 그 데이터는 값으로 직접 사용된다. 일부 특별한 시나리오에서, 큰 사이즈를 가진 데이터는 분할되지 않아도 되고, 키-값 데이터를 생성하기 위해, 값으로서 직접 사용된다.
데이터 처리 장치(7)가 키-값 데이터 생성 모듈(76)을 포함하면, 최종 파티션 계산 모듈(72)은 키-값 데이터 생성 모듈(76)에 연결될 수 있다. 데이터 처리 장치(7)가 키-값 데이터 생성 모듈(76)을 포함하지 않으면, 최종 파티션 계산 모듈(72)은 외부 인터페이스를 통해 어플리케이션 서버로부터 키-값 데이터를 직접 획득할 수 있다.
본 발명의 각 측면 또는 각 측면의 가능한 구현 방식은 시스템, 방법, 또는 컴퓨터 프로그램 제품으로 구체적으로 구현될 수 있다는 것을 당업자는 이해할 수 있다. 따라서, 본 발명의 각 측면 또는 각 측면의 가능한 구현 방식은, 하드웨어의 형태만의 실시 예, 소프트웨어만의 실시 예(펌웨어, 상주 소프트웨어 등을 포함), 또는 소프트웨어와 하드웨어의 조합의 실시예의 형태를 사용할 수 있고, 여기에서, 이것은 "회로", "모듈" 또는 "시스템"이라고 고유하게 지칭된다. 또한, 본 발명의 각 측면 또는 각 측면의 가능한 구현 방식은 컴퓨터 프로그램 제품을 취할 수 있고, 이러한 컴퓨터 프로그램 제품은 컴퓨터 판독 가능한 매체에 저장된 컴퓨터 판독 가능 프로그램 코드를 의미한다.
컴퓨터 판독 가능한 매체는 컴퓨터 판독 가능 신호 매체 또는 컴퓨터 판독 가능 저장 매체 일 수 있다. 컴퓨터 판독 가능 저장 매체가 포함되지만, RAM(random access memory), ROM(read-only memory), 및 EPROM(erasable programmable read only memory) 또는 플래시 메모리, 광섬유 및 CD-ROM()과 같은, 전자, 자기, 광학, 전자기, 적외선, 또는 반도 전성 시스템, 장치 또는 기기, 또는 이들의 임의의 적절한 조합에 한정되지 않는다
프로세서가 함수 및 각 단계 또는 흐름도의 단계들의 조합, 지정된 동작을 수행할 수 있도록, 컴퓨터의 프로세서는 컴퓨터 판독 가능한 매체에 저장된 컴퓨터 판독 가능한 프로그램 코드를 판독한다. 장치는, 블록도의, 각 블록 또는 블록의 조합으로 구체화 되는 기능 및 동작을 구현하기 위해 생성된다.

Claims (32)

  1. 데이터 처리 방법으로서,
    상기 데이터 처리 방법은 파티션(partition) 관리 장치에 적용되고, 상기 파티션 관리 장치는 파티션 뷰(partition view)를 저장하고, 상기 파티션 뷰는, 현재 파티션의 ID와 저장 디스크의 어드레스 사이의 대응 관계를 기록하며, 상기 데이터 처리 방법은,
    키-값 데이터에서 키를 획득하고, 상기 키에 따라, 상기 키-값 데이터에 대응하는 최종 파티션의 ID를 계산하는 단계;
    상기 최종 파티션의 ID에 대응하는 현재 파티션의 ID를 계산하는 단계;
    상기 파티션 뷰를 조회하여 상기 현재 파티션의 ID에 대응하는 저장 디스크의 어드레스를 획득하는 단계; 및
    상기 저장 디스크의 어드레스를 목적지 어드레스로 사용하여 키-값 패킷을 생성하고, 상기 키-값 패킷을 상기 저장 디스크에 송신하는 단계
    를 포함하며,
    상기 키-값 데이터는, 값 및 상기 값에 고유하게 대응하는 상기 키를 포함하고, 각 현재 파티션의 ID는 복수의 최종 파티션의 ID에 대응하며, 상기 키-값 패킷은 상기 키-값 데이터를 운반하는, 데이터 처리 방법.
  2. 제1항에 있어서,
    상기 파티션 관리 장치는 추가로, 최종 파티션의 총량 L을 기록하고,
    상기 키에 따라, 상기 키-값 데이터에 대응하는 최종 파티션의 ID를 계산하는 단계는 구체적으로,
    상기 키에 해시 연산(hash operation)을 수행하여 상기 키의 해시 값을 획득하고, 상기 최종 파티션의 총량 L에 따라 상기 해시 값에 모듈로 연산(modulo operation)을 수행하는 단계
    를 포함하고,
    상기 모듈로 연산에서 나머지가 상기 최종 파티션의 ID로서 사용되는, 데이터 처리 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 파티션 관리 장치는 추가로, 현재 파티션의 총량 T를 기록하고,
    상기 최종 파티션의 ID에 대응하는 현재 파티션의 ID를 계산하는 단계는 구체적으로,
    상기 현재 파티션의 총량 T에 따라, 상기 최종 파티션의 ID에 모듈로 연산을 수행하는 단계
    를 포함하고,
    상기 모듈로 연산에서 나머지가 상기 현재 파티션의 ID로서 사용되고, 상기 최종 파티션의 ID는 0보다 크거나 같은 정수인, 데이터 처리 방법.
  4. 제1항에 있어서,
    상기 최종 파티션은, 상기 현재 파티션의 서브 파티션(sub-partition)이고, 상기 현재 파티션의 분할을 통해 획득되는, 데이터 처리 방법.
  5. 제1항에 있어서,
    상기 데이터 처리 방법은 구체적으로, 데이터 기록 방법이며, 상기 키-값 데이터에서 키를 획득하는 단계 전, 상기 데이터 처리 방법은,
    상기 값을 포함하는 값 세트를 획득하기 위해, 기록되어야 하는 데이터를 분할하고, 상기 키-값 데이터를 형성하기 위해, 상기 값의 상기 키를 생성하는 단계
    를 더 포함하는 데이터 처리 방법.
  6. 데이터 처리 장치로서,
    파티션 뷰(partition view)를 저장하도록 구성된 저장 모듈;
    키-값 데이터에서 키를 획득하고, 상기 키에 따라, 상기 키-값 데이터에 대응하는 최종 파티션의 ID를 계산하도록 구성된 최종 파티션 계산 모듈;
    상기 최종 파티션의 ID에 대응하는 현재 파티션의 ID를 계산하도록 구성된 현재 파티션 계산 모듈;
    상기 저장 모듈에 의해 저장된 상기 파티션 뷰를 조회하여 상기 현재 파티션의 ID에 대응하는 저장 디스크의 어드레스를 획득하도록 구성된 조회 모듈; 및
    상기 저장 디스크의 어드레스를 목적지 어드레스로 사용하여 키-값 패킷을 생성하고, 상기 키-값 패킷을 상기 저장 디스크에 송신하도록 구성된 송신 모듈
    을 포함하고,
    상기 파티션 뷰는 현재 파티션의 ID와 저장 디스크 사이의 대응 관계를 기록하며, 상기 키-값 데이터는, 값 및 상기 값에 유일하게 대응하는 상기 키를 포함하고, 각 현재 파티션의 ID는 복수의 최종 파티션의 ID에 대응하고, 상기 키-값 패킷은 상기 키-값 데이터를 운반하는, 데이터 처리 장치.
  7. 제6항에 있어서,
    상기 저장 모듈은 추가로, 최종 파티션의 총량 L을 기록하도록 구성되고,
    상기 최종 파티션 계산 모듈은 구체적으로,
    상기 키에 해시 연산(hash operation)을 수행하여 상기 키의 해시 값을 획득하고, 상기 최종 파티션의 총량 L에 따라, 상기 해시 값에 모듈로 연산(modulo operation)을 수행하도록 구성되고,
    상기 모듈로 연산에서 나머지가 상기 최종 파티션의 ID로서 사용되는, 데이터 처리 장치.
  8. 제6항 또는 제7항에 있어서,
    상기 저장 모듈은 추가로, 현재 파티션의 총량 T를 기록하도록 구성되고,
    상기 현재 파티션 계산 모듈은 구체적으로,
    현재 파티션의 총량 T에 따라 상기 최종 파티션의 ID에 모듈로 연산을 수행하도록 구성되고,
    상기 모듈로 연산에서 나머지가 상기 현재 파티션의 ID로서 사용되며, 상기 최종 파티션의 ID는 0보다 크거나 같은 정수인, 데이터 처리 장치.
  9. 제6항에 있어서,
    상기 최종 파티션은, 상기 현재 파티션의 서브 파티션(sub-partition)이고, 상기 현재 파티션의 분할을 통해 획득되는, 데이터 처리 장치.
  10. 제6항에 있어서,
    상기 값을 포함하는 값 세트를 획득하기 위해, 기록되어야 하는 데이터를 분할하고, 상기 키-값 데이터를 형성하기 위해, 상기 값의 상기 키를 생성하도록 구성된 키-값 데이터 생성 모듈
    을 더 포함하는 데이터 처리 장치.
  11. 데이터 처리 장치로서,
    파티션 뷰(partition view)를 저장하도록 구성된 메모리;
    외부 연결을 제공하도록 구성된 인터페이스;
    컴퓨터 프로그램을 저장하도록 구성된 컴퓨터 판독 가능한 매체; 및
    상기 메모리, 상기 인터페이스, 및 상기 컴퓨터 판독 가능한 매체에 연결되고, 상기 프로그램을 실행하여, 이하의 단계:
    키-값 데이터에서 키를 획득하고, 상기 키에 따라, 상기 키-값 데이터에 대응하는 최종 파티션의 ID를 계산하는 단계;
    상기 최종 파티션의 ID에 대응하는 현재 파티션의 ID를 계산하는 단계;
    상기 파티션 뷰를 조회하여 상기 현재 파티션의 ID에 대응하는 저장 디스크의 어드레스를 획득하는 단계; 및
    상기 저장 디스크의 어드레스를 목적지 어드레스로 사용하여 키-값 패킷을 생성하고, 상기 키-값 패킷을 상기 저장 디스크에 송신하는 단계
    를 실행하도록 구성된 프로세서
    를 포함하고,
    상기 파티션 뷰는 현재 파티션의 ID와 저장 디스크의 어드레스 사이의 대응관계를 기록하고, 상기 키-값 데이터는 값 및 상기 값에 고유하게 대응하는 상기 키를 포함하고, 각 현재 파티션의 ID는 복수의 최종 파티션의 ID에 대응하며, 상기 키-값 패킷은 상기 키-값 데이터를 운반하는, 데이터 처리 장치.
  12. 제11항에 있어서,
    상기 메모리는 추가로, 최종 파티션의 총량 L을 기록하도록 구성되고,
    상기 키에 따라, 상기 키-값 데이터에 대응하는 최종 파티션의 ID를 계산하는 단계는 구체적으로,
    상기 키에 해시 연산(hash operation)을 수행하여 상기 키의 해시 값을 획득하고, 상기 최종 파티션의 총량 L에 따라 상기 해시 값에 모듈로 연산(modulo operation)을 수행하는 단계
    를 포함하고,
    상기 모듈로 연산에서 나머지가 상기 최종 파티션의 ID로서 사용되는, 데이터 처리 장치.
  13. 제11항 또는 제12항에 있어서,
    상기 메모리는 추가로, 현재 파티션의 총량 T를 기록하도록 구성되고,
    상기 최종 파티션의 ID에 대응하는 현재 파티션의 ID를 계산하는 단계는 구체적으로,
    상기 현재 파티션의 총량 T에 따라, 상기 최종 파티션의 ID에 모듈로 연산을 수행하는 단계
    를 포함하고,
    상기 모듈로 연산에서 나머지가 상기 현재 파티션의 ID로서 사용되고, 상기 최종 파티션의 ID는 0보다 크거나 같은 정수인, 데이터 처리 장치.
  14. 제11항에 있어서,
    상기 최종 파티션은, 상기 현재 파티션의 서브 파티션(sub-partition)이고, 상기 현재 파티션의 분할을 통해 획득되는, 데이터 처리 장치.
  15. 제12항에 있어서,
    상기 키-값 데이터에서 키를 획득하는 단계 전, 상기 프로세서는 이하의 단계:
    상기 값을 포함하는 값 세트를 획득하기 위해, 기록되어야 하는 데이터를 분할하고, 상기 키-값 데이터를 형성하기 위해, 상기 값의 상기 키를 생성하는 단계
    를 더 실행하도록 구성된, 데이터 처리 장치.
  16. 파티션 관리 방법으로서,
    상기 파티션 관리 방법은 제어기에 의해 실행되고, 상기 제어기는, 클러스터 내의 저장 디스크에 파티션 관리를 수행하며, 상기 클러스터는 복수의 저장 디스크를 포함하고,
    상기 파티션 관리 방법은,
    N개의 신규 저장 디스크가 상기 클러스터에 추가된 것이 탐지되면, 상기 클러스터 내의 현재 저장 디스크의 수량 M 및 상기 클러스터의 현재 파티션의 총량 T를 획득하는 단계;
    상기 현재 파티션의 총량 T 및 저장 디스크의 총량 M+N 사이의 수학적 관계가 미리 설정된 제1 조건을 만족하는지 결정하는 단계; 및
    상기 수학적 관계가 상기 미리 설정된 제1 조건을 만족하면, 분할 후 획득된 파티션의 총량 S가 S>T를 만족하도록, 상기 현재 파티션 중 적어도 하나를 분할하고, 상기 분할 후 획득된 파티션을 M+N개의 상기 저장 디스크에 할당하는 단계
    를 포함하고,
    상기 분할 후 획득된 파티션의 총량 S 및 상기 저장 디스크의 총량 M+N 사이의 수학적 관계는 미리 설정된 제2 조건을 만족하며, 상기 분할 후 획득된 파티션의 총량 S는 상기 클러스터에 의해 지원되는 최종 파티션의 총량 L보다 크지 않고, 상기 L 및 S 모두 1보다 큰 자연수이며, 상기 M, N, 및 T는 모두 자연수인, 파티션 관리 방법.
  17. 제16항에 있어서,
    상기 현재 파티션의 총량 T 및 상기 저장 디스크의 총량 M+N 사이의 수학적 관계가 미리 설정된 제1 조건을 만족한다는 것은, T/(M+N)이 제1 임계치보다 작다는 것을 지칭하고,
    상기 제1 임계치는 자연수인, 파티션 관리 방법.
  18. 제17항에 있어서,
    상기 제1 임계치는 10보다 크고 20보다 작은, 파티션 관리 방법.
  19. 제16항에 있어서,
    상기 분할 후 획득된 파티션의 총량 S 및 상기 저장 디스크의 총량 M+N 사이의 수학적 관계가 미리 설정된 제2 조건을 만족한다는 것은, S/(M+N)이 제2 임계치보다 크다는 것을 지칭하고,
    상기 제2 임계치는 자연수인, 파티션 관리 방법.
  20. 제19항에 있어서,
    상기 제2 임계치는 25보다 크고 50보다 작은, 파티션 관리 방법.
  21. 제16항에 있어서,
    상기 현재 파티션의 ID는 0보다 크거나 같은 정수이고, 모든 상기 현재 파티션의 파티션 ID의 세트는 첫 번째 항이 0, 항수는 T이고, 공차(common difference)는 1인 등차수열이며,
    상기 분할 후 획득된 파티션의 파티션 ID는 0보다 크거나 같은 정수이고, 상기 분할 후 획득된 파티션 모두의 상기 파티션 ID의 세트는 첫 번째 항이 0, 항수는 S이고, 공차는 1인 등차수열인, 파티션 관리 방법.
  22. 파티션 관리 장치로서,
    상기 파티션 관리 장치는 클러스터 내의 저장 디스크에 파티션 관리를 수행하도록 구성되고, 상기 클러스터는 복수의 저장 디스크를 포함하며,
    상기 파티션 관리 장치는
    N개의 신규 저장디스크가 상기 클러스터에 추가된 것이 탐지되면, 상기 클러스터 내의 현재 저장 디스크의 수량 M 및 상기 클러스터의 현재 존재하는 파티션의 총량 T를 획득하도록 구성된 저장 디스크 탐지 모듈;
    현재 파티션의 총량 T 및 저장 디스크의 총량 M+N 사이의 수학적 관계가 미리 설정된 제1 조건을 만족하는지 결정하도록 구성된 미리 설정된 제1 조건 결정 모듈; 및
    상기 수학적 관계가 상기 미리 설정된 제1 조건을 만족하면, 분할 후 획득된 파티션의 총량은 S가 되도록, 상기 현재 파티션 중 적어도 하나를 분할하고, 상기 분할 후 획득된 파티션을 M+N개의 상기 저장 디스크에 할당하도록 구성된 파티션 분할 모듈
    을 포함하고,
    상기 분할 후 획득된 파티션의 총량 S 및 상기 저장 디스크의 총량 M+N 사이의 수학적 관계는, 상기 클러스터에 의해 지원되는 최종 파티션의 총량 L보다 크지 않고, 상기 L 및 S는 모두 1보다 큰 자연수이며, 상기 M, N, 및 T는 모두 자연수인, 파티션 관리 장치.
  23. 제22항에 있어서,
    상기 현재 파티션의 총량 T가 미리 설정된 제1 조건을 만족한다는 것은 T/(M+N)이 제1 임계치보다 작다는 것을 지칭하고,
    상기 제1 임계치는 자연수인, 파티션 관리 장치.
  24. 제23항에 있어서,
    상기 제1 임계치는 10보다 크고 20보다 작은, 파티션 관리 장치.
  25. 제22항에 있어서,
    상기 분할 후 획득된 파티션의 총량 S 및 상기 저장 디스크의 총량 M+N 사이의 수학적 관계가 미리 설정된 제2 조건을 만족한다는 것은, S/(M+N)이 제2 임계치보다 크다는 것을 지칭하고,
    상기 제2 임계치는 자연수인, 파티션 관리 장치.
  26. 제25항에 있어서,
    상기 제2 임계치는 25보다 크고 50보다 작은, 파티션 관리 장치.
  27. 제25항에 있어서,
    상기 현재 파티션의 ID는 0보다 크거나 같은 정수이고, 모든 상기 현재 파티션의 파티션 ID의 세트는 첫 번째 항이 0, 항수는 T, 공차는 1인 등차수열이며,
    상기 분할 후 획득된 파티션의 파티션 ID는 0보다 크거나 같은 정수이고, 상기 분할 후 획득된 파티션 모두의 상기 파티션 ID의 세트는 첫 번째 항이 0, 항수는 S, 공차는 1인 등차수열인, 파티션 관리 장치.
  28. 파티션 관리 장치로서,
    상기 파티션 관리 장치는 클러스터에 연결되어 있고, 상기 클러스터 내의 저장 디스크에 파티션 관리를 수행하도록 구성되며, 상기 클러스터는 복수의 저장 디스크를 포함하고,
    상기 파티션 관리 장치는
    파티션 뷰(partition view)를 저장하도록 구성된 메모리;
    외부 인터페이스를 제공하도록 구성된 인터페이스;
    컴퓨터 프로그램을 저장하도록 구성된 컴퓨터 판독 가능한 매체; 및
    상기 메모리, 상기 인터페이스, 및 상기 컴퓨터 판독 가능한 매체에 연결되고, 상기 프로그램을 실행하여, 이하의 단계;
    상기 인터페이스를 사용하여, N개의 신규 저장 디스크가 상기 클러스터에 추가된 것이 탐지되면, 상기 클러스터 내의 현재 저장 디스크의 수량 M 및 상기 클러스터의 현재 존재하는 파티션의 총량 T를 획득하는 단계;
    상기 현재 파티션의 총량 T 및 저장 디스크의 총량 M+N 사이의 수학적 관계가 미리 설정된 제1 조건을 만족하는지 결정하는 단계; 및
    상기 수학적 관계가 상기 미리 설정된 제1 조건을 만족하면, 분할 후 획득된 파티션의 총량이 S가 되도록, 상기 현재 파티션 중 적어도 하나를 분할하고, 상기 분할 후 획득된 파티션을 M+N개의 상기 저장 디스크에 할당하는 단계
    를 실행하도록 구성된 프로세서를 포함하고,
    상기 파티션 뷰는 현재 파티션의 ID와 저장 디스크의 어드레스 사이의 대응 관계를 기록하고, 상기 M, N, 및 T는 모두 자연수이며, 상기 분할 후 획득된 파티션의 총량 S 및 상기 저장 디스크의 총량 M+N은 미리 설정된 제2 조건을 만족하고, 상기 분할 후 획득된 파티션의 총량은 상기 클러스터에 의해 지원되는 최종 파티션의 총량 L보다 크지 않으며, 상기 L 및 S는 모두 1보다 큰 자연수인, 파티션 관리 장치.
  29. 제28항에 있어서,
    상기 현재 파티션의 총량 T가 미리 설정된 제1 조건을 만족한다는 것은, T/(M+N)이 제1 임계치보다 작다는 것을 지칭하고,
    상기 제1 임계치는 자연수인, 파티션 관리 장치.
  30. 제9항에 있어서,
    상기 제1 임계치는 10보다 크고 20보다 작은, 파티션 관리 장치.
  31. 제28항에 있어서,
    상기 분할 후 획득된 파티션의 총량 S와 상기 저장 디스크의 총량 M+N 사이의 수학적 관계가 미리 설정된 제2 조건을 만족한다 것은, S/(M+N)이 제2 임계치보다 크다는 것을 지칭하고,
    상기 제2 임계치는 자연수인, 파티션 관리 장치.
  32. 제31항에 있어서,
    상기 제2 임계치는 25보다 크고 50보다 작은, 파티션 관리 장치.
KR1020167026230A 2014-11-05 2014-11-05 데이터 처리 방법 및 장치 KR101912728B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/090299 WO2016070341A1 (zh) 2014-11-05 2014-11-05 数据处理方法和装置

Publications (2)

Publication Number Publication Date
KR20160124885A true KR20160124885A (ko) 2016-10-28
KR101912728B1 KR101912728B1 (ko) 2018-10-29

Family

ID=55908360

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167026230A KR101912728B1 (ko) 2014-11-05 2014-11-05 데이터 처리 방법 및 장치

Country Status (8)

Country Link
US (2) US9952778B2 (ko)
EP (1) EP3128716B1 (ko)
JP (1) JP6288596B2 (ko)
KR (1) KR101912728B1 (ko)
CN (3) CN109918021B (ko)
AU (1) AU2014410705B2 (ko)
CA (1) CA2941163C (ko)
WO (1) WO2016070341A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6288596B2 (ja) * 2014-11-05 2018-03-07 華為技術有限公司Huawei Technologies Co.,Ltd. データ処理方法および装置
US10698628B2 (en) 2015-06-09 2020-06-30 Ultrata, Llc Infinite memory fabric hardware implementation with memory
CN109783002B (zh) * 2017-11-14 2021-02-26 华为技术有限公司 数据读写方法、管理设备、客户端和存储系统
EP3803587A1 (en) * 2018-05-29 2021-04-14 Telefonaktiebolaget LM Ericsson (publ) Improved performance of function as a service
TWI723410B (zh) * 2019-05-31 2021-04-01 伊雲谷數位科技股份有限公司 雲端資源管理系統、雲端資源管理方法以及非暫態電腦可讀取記錄媒體
CN116997894A (zh) * 2021-03-31 2023-11-03 株式会社富士 数据保存系统
CN113468187B (zh) * 2021-09-02 2021-11-23 太平金融科技服务(上海)有限公司深圳分公司 多方数据整合方法、装置、计算机设备和存储介质

Family Cites Families (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5675769A (en) 1995-02-23 1997-10-07 Powerquest Corporation Method for manipulating disk partitions
JP4206586B2 (ja) * 1999-11-12 2009-01-14 株式会社日立製作所 データベース管理方法および装置並びにデータベース管理プログラムを記録した記憶媒体
US7036126B2 (en) * 2000-12-11 2006-04-25 International Business Machines Corporation Method and an apparatus for logical volume manager plug-ins
CN100476812C (zh) * 2004-04-15 2009-04-08 美国博通公司 利用至少一个数据存储器实现存储容量分配及管理方法和系统
US7395402B2 (en) * 2004-04-15 2008-07-01 Broadcom Corporation Method and system of data storage capacity allocation and management using one or more data storage drives
CN100372299C (zh) * 2004-08-13 2008-02-27 华为技术有限公司 一种支持分布式管理信息树的网络管理方法
JP2006079495A (ja) * 2004-09-13 2006-03-23 Hitachi Ltd ストレージシステム及び論理区画の設定方法
US7809763B2 (en) * 2004-10-15 2010-10-05 Oracle International Corporation Method(s) for updating database object metadata
US7469241B2 (en) * 2004-11-30 2008-12-23 Oracle International Corporation Efficient data aggregation operations using hash tables
US20060168398A1 (en) * 2005-01-24 2006-07-27 Paul Cadaret Distributed processing RAID system
US7685398B2 (en) * 2006-05-18 2010-03-23 Dell Products L.P. Intelligent system for determination of optimal partition size in a build to order environment
EP2055051A1 (en) * 2006-08-25 2009-05-06 University Of Florida Research Foundation, Inc. Recursively partioned static ip router tables
CN101201796B (zh) * 2006-12-14 2010-05-19 英业达股份有限公司 自动调整快照设备的写入同步复制磁盘空间大小的方法
CN101515254B (zh) * 2008-02-18 2010-12-08 鸿富锦精密工业(深圳)有限公司 存储空间管理系统和方法
CN101639835A (zh) * 2008-07-30 2010-02-03 国际商业机器公司 多租户场景中应用数据库分区的方法和装置
SE532996C2 (sv) * 2008-10-03 2010-06-08 Oricane Ab Metod, anordning och datorprogramsprodukt för att representera den del av n-bitars intervall hörande till d-bitars data i ett datakommunikationsnät
US9996572B2 (en) * 2008-10-24 2018-06-12 Microsoft Technology Licensing, Llc Partition management in a partitioned, scalable, and available structured storage
US8886796B2 (en) 2008-10-24 2014-11-11 Microsoft Corporation Load balancing when replicating account data
US8078825B2 (en) * 2009-03-11 2011-12-13 Oracle America, Inc. Composite hash and list partitioning of database tables
US8510538B1 (en) * 2009-04-13 2013-08-13 Google Inc. System and method for limiting the impact of stragglers in large-scale parallel data processing
EP2443574A4 (en) * 2009-06-19 2014-05-07 Blekko Inc EVOLVING CLUSTER DATABASE
US8156304B2 (en) * 2009-12-04 2012-04-10 Oracle International Corporation Dynamic data storage repartitioning
US9401967B2 (en) * 2010-06-09 2016-07-26 Brocade Communications Systems, Inc. Inline wire speed deduplication system
CN102486798A (zh) * 2010-12-03 2012-06-06 腾讯科技(深圳)有限公司 数据加载的方法及装置
JP5600573B2 (ja) * 2010-12-07 2014-10-01 日本放送協会 負荷分散装置及びプログラム
US8560584B2 (en) * 2010-12-15 2013-10-15 Teradata Us, Inc. Database partition management
US10055480B2 (en) * 2015-05-29 2018-08-21 Sap Se Aggregating database entries by hashing
CN102681899B (zh) * 2011-03-14 2015-06-10 金剑 云计算服务平台的虚拟计算资源动态管理方法
US9002871B2 (en) * 2011-04-26 2015-04-07 Brian J. Bulkowski Method and system of mapreduce implementations on indexed datasets in a distributed database environment
CN102833294B (zh) 2011-06-17 2015-05-20 阿里巴巴集团控股有限公司 基于云存储的文件处理方法、系统及服务器集群系统
CN102841894A (zh) * 2011-06-22 2012-12-26 比亚迪股份有限公司 一种文件分配表的数据存储方法
CN102244685B (zh) * 2011-08-11 2013-09-18 中国科学院软件研究所 一种支持负载均衡的分布式缓存动态伸缩方法及系统
CN102567464B (zh) * 2011-11-29 2015-08-05 西安交通大学 基于扩展主题图的知识资源组织方法
US9235396B2 (en) * 2011-12-13 2016-01-12 Microsoft Technology Licensing, Llc Optimizing data partitioning for data-parallel computing
US20130159365A1 (en) * 2011-12-16 2013-06-20 Microsoft Corporation Using Distributed Source Control in a Centralized Source Control Environment
US8880565B2 (en) * 2011-12-23 2014-11-04 Sap Se Table creation for partitioned tables
US8762378B2 (en) * 2011-12-23 2014-06-24 Sap Ag Independent table nodes in parallelized database environments
US8880510B2 (en) 2011-12-23 2014-11-04 Sap Se Unique value calculation in partitioned tables
US9852010B2 (en) * 2012-02-03 2017-12-26 Microsoft Technology Licensing, Llc Decoupling partitioning for scalability
EP2784675B1 (en) * 2012-02-09 2016-12-28 Huawei Technologies Co., Ltd. Method, device and system for data reconstruction
US9218630B2 (en) * 2012-03-22 2015-12-22 Microsoft Technology Licensing, Llc Identifying influential users of a social networking service
US8996464B2 (en) * 2012-06-11 2015-03-31 Microsoft Technology Licensing, Llc Efficient partitioning techniques for massively distributed computation
GB201210702D0 (en) * 2012-06-15 2012-08-01 Qatar Foundation A system and method to store video fingerprints on distributed nodes in cloud systems
CN102799628B (zh) * 2012-06-21 2015-10-07 新浪网技术(中国)有限公司 在key-value数据库中进行数据分区的方法和装置
US9015212B2 (en) * 2012-10-16 2015-04-21 Rackspace Us, Inc. System and method for exposing cloud stored data to a content delivery network
US8775464B2 (en) * 2012-10-17 2014-07-08 Brian J. Bulkowski Method and system of mapreduce implementations on indexed datasets in a distributed database environment
EP2725491B1 (en) * 2012-10-26 2019-01-02 Western Digital Technologies, Inc. A distributed object storage system comprising performance optimizations
US9009421B2 (en) * 2012-11-13 2015-04-14 International Business Machines Corporation Dynamically improving memory affinity of logical partitions
CN102968503B (zh) * 2012-12-10 2015-10-07 曙光信息产业(北京)有限公司 数据库系统的数据处理方法以及数据库系统
CN103064890B (zh) * 2012-12-11 2015-12-23 泉州豪杰信息科技发展有限公司 一种gps海量数据处理方法
WO2014101070A1 (zh) * 2012-12-27 2014-07-03 华为技术有限公司 一种分区扩展方法及装置
CN103503414B (zh) * 2012-12-31 2016-03-09 华为技术有限公司 一种计算存储融合的集群系统
CN103797770B (zh) * 2012-12-31 2015-12-02 华为技术有限公司 一种共享存储资源的方法和系统
US9298398B2 (en) * 2013-04-16 2016-03-29 International Business Machines Corporation Fine-grained control of data placement
US8688718B1 (en) * 2013-07-31 2014-04-01 Linkedin Corporation Management of data segments for analytics queries
KR20150030332A (ko) * 2013-09-12 2015-03-20 삼성전자주식회사 데이터 분산 처리 시스템 및 이의 동작 방법
JP6281225B2 (ja) * 2013-09-30 2018-02-21 日本電気株式会社 情報処理装置
IN2013MU03836A (ko) * 2013-12-06 2015-07-31 Tata Consultancy Services Ltd
CN103744975A (zh) * 2014-01-13 2014-04-23 锐达互动科技股份有限公司 基于分布式文件的高效缓存服务器
CN103812934B (zh) * 2014-01-28 2017-02-15 浙江大学 基于云存储系统的遥感数据发布方法
CN103929500A (zh) * 2014-05-06 2014-07-16 刘跃 一种分布式存储系统的数据分片方法
US9721021B2 (en) * 2014-05-27 2017-08-01 Quixey, Inc. Personalized search results
US10210171B2 (en) * 2014-06-18 2019-02-19 Microsoft Technology Licensing, Llc Scalable eventual consistency system using logical document journaling
US10002148B2 (en) * 2014-07-22 2018-06-19 Oracle International Corporation Memory-aware joins based in a database cluster
US20160092493A1 (en) * 2014-09-29 2016-03-31 International Business Machines Corporation Executing map-reduce jobs with named data
US9875263B2 (en) * 2014-10-21 2018-01-23 Microsoft Technology Licensing, Llc Composite partition functions
JP6288596B2 (ja) * 2014-11-05 2018-03-07 華為技術有限公司Huawei Technologies Co.,Ltd. データ処理方法および装置
US9934871B2 (en) * 2015-04-17 2018-04-03 Western Digital Technologies, Inc. Verification of storage media upon deployment
US10482076B2 (en) * 2015-08-14 2019-11-19 Sap Se Single level, multi-dimension, hash-based table partitioning
US10977212B2 (en) * 2018-05-03 2021-04-13 Sap Se Data partitioning based on estimated growth

Also Published As

Publication number Publication date
EP3128716A1 (en) 2017-02-08
US10628050B2 (en) 2020-04-21
EP3128716B1 (en) 2019-09-04
US20170235501A1 (en) 2017-08-17
CN107357522B (zh) 2019-11-15
AU2014410705B2 (en) 2017-05-11
JP6288596B2 (ja) 2018-03-07
CN107357522A (zh) 2017-11-17
US9952778B2 (en) 2018-04-24
CA2941163C (en) 2019-04-16
CN106063226A (zh) 2016-10-26
CN106063226B (zh) 2019-03-08
AU2014410705A1 (en) 2016-09-15
CN109918021A (zh) 2019-06-21
CA2941163A1 (en) 2016-05-12
WO2016070341A1 (zh) 2016-05-12
JP2017514217A (ja) 2017-06-01
CN109918021B (zh) 2022-01-07
KR101912728B1 (ko) 2018-10-29
US20180225048A1 (en) 2018-08-09
EP3128716A4 (en) 2017-08-02

Similar Documents

Publication Publication Date Title
KR101912728B1 (ko) 데이터 처리 방법 및 장치
CN108810041B (zh) 一种分布式缓存系统的数据写入及扩容方法、装置
US10013317B1 (en) Restoring a volume in a storage system
WO2019144553A1 (zh) 数据存储方法、装置及存储介质
EP3905054B1 (en) File management method, distributed storage system, and management node
EP2863310B1 (en) Data processing method and apparatus, and shared storage device
KR20170068564A (ko) 데이터 처리 방법, 장치 및 시스템
US9031906B2 (en) Method of managing data in asymmetric cluster file system
US10320905B2 (en) Highly available network filer super cluster
EP3059670B1 (en) Data storage method and storage server
JP2020506444A (ja) 期限切れバックアップ処理方法及びバックアップサーバ
CN105183399A (zh) 一种基于弹性块存储的数据写、读方法及装置
CN105187502A (zh) 一种基于分布式弹性块存储的方法和系统
CN110798541A (zh) 接口共享、报文转发方法、装置、电子设备及存储介质
CN105718209A (zh) 一种多路径设备的命名方法、装置、主机及通信系统
WO2017020757A1 (en) Rebalancing and elastic storage scheme with elastic named distributed circular buffers
CN111858188A (zh) 存储管理的方法、设备和计算机程序产品
CN111125011A (zh) 一种文件处理方法、系统及相关设备
US11327844B1 (en) Automated cloud recovery to provide a full usable application image
CN113377787A (zh) 存储管理方法、系统、存储管理装置及存储介质
JP2017182664A (ja) 分散ファイル管理装置、分散ファイル管理方法、及びプログラム

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