WO2012111905A2 - 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법 - Google Patents

맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법 Download PDF

Info

Publication number
WO2012111905A2
WO2012111905A2 PCT/KR2011/008578 KR2011008578W WO2012111905A2 WO 2012111905 A2 WO2012111905 A2 WO 2012111905A2 KR 2011008578 W KR2011008578 W KR 2011008578W WO 2012111905 A2 WO2012111905 A2 WO 2012111905A2
Authority
WO
WIPO (PCT)
Prior art keywords
divided
storage
memory cluster
rack
storage area
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
PCT/KR2011/008578
Other languages
English (en)
French (fr)
Other versions
WO2012111905A3 (ko
Inventor
정기영
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KT Corp
Original Assignee
KT Corp
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 KT Corp filed Critical KT Corp
Publication of WO2012111905A2 publication Critical patent/WO2012111905A2/ko
Publication of WO2012111905A3 publication Critical patent/WO2012111905A3/ko
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning

Definitions

  • the present invention relates to an apparatus and method for controlling distributed memory clusters using map reduce, and more particularly, to an apparatus and method for controlling distributed memory cluster using map reduce of large data distribution processing such as cloud computing system.
  • Distributed memory cluster devices are devices that improve read / write speed by storing information in distributed memory-based storage.
  • Examples of distributed memory cluster devices include devices such as a memory virtualization device, a memory DB, and a memory cache.
  • information storage may be concentrated on a specific node of the cluster, thereby degrading the overall information processing performance.
  • FIG. 1 is a diagram illustrating a large data distribution process using a conventional map reduce.
  • Map Reduce refers to the parallel processing of information in each distributed node and the integration of the results processed by Map.
  • Map Reduce is a software framework developed by Google. This framework was developed to support parallel processing in large clusters of petabytes of large data in untrusted computers.
  • Map and Reduce This framework consists primarily of a functional base called Map and Reduce, which is commonly used in functional programming.
  • a mapper 140 that splits input data into a plurality of files and processes each divided file stores information on a specific node by randomly storing an intermediate result file in a storage node of the memory cluster 130. Storage can be concentrated, and thus the processing speed of the reducer for parallel processing of intermediate result files is also slowed down.
  • An embodiment of the present invention is to solve the problem that the intermediate information generated in the above distributed processing is concentrated on a specific node of the memory cluster, and mapReduce based distributed for processing large data
  • An efficient distributed memory cluster control apparatus and method for storing information generated in the middle of a process in a virtual memory are provided.
  • the distributed memory cluster control apparatus using map reduce allocates the number of divided storage area to store the input data divided into a plurality of files, to the partition storage area
  • a memory cluster manager configured to set the number of reducers for merging the stored files to generate output data equal to the number of the divided storage areas
  • the first rule and the memory cluster control a mapper for dividing the input data into a plurality of files, and converting the divided files into standardized format data to determine the location of the divided storage area to store the standardized format data.
  • a control unit which designates based on the shape information and designates a position of the reducer based on a second rule and the memory cluster shape information; And a memory cluster shape storage unit which stores the memory cluster shape information.
  • the memory cluster shape information includes a plurality of rack identification information and at least one storage node identification information including at least one storage node, the divided storage area identification information included in the storage node, and a plurality of mappers ( Mapper) identification information, characterized in that it comprises a plurality of reducer (reducer) identification information.
  • Mapper mappers
  • the first rule designates a rack unit location based on the rack identification information, and then designates a location of the divided storage area based on a storage capacity of the storage node and the divided storage area. Characterized in that.
  • said second rule specifies the location of said reducer in accordance with the amount of said formatted formal data stored in said partitioned storage area.
  • the rack unit location is performed in a round robin manner, and the location of the partitioned storage area designates a storage node and a partitioned storage area having an idle storage capacity greater than or equal to a reference value. do.
  • the position of the reducer is characterized by designating a rack of a storage node including the divided storage area storing the standardized format data of a reference value or more.
  • the position of the reducer is specified in the order of increasing amount of the standardized format data stored in the divided storage area.
  • a distributed memory cluster control method using map reduce wherein input data is divided into a plurality of files and the divided files are converted into standardized format data.
  • the memory cluster shape information divides identification information of a plurality of racks and identification information of at least one or more storage nodes, identification information of a plurality of divided storage areas, and input data into a plurality of files. And a plurality of the mapper identification information and the reducer identification information.
  • the number of files of the input data divided by the mapper and the number of the divided storage areas are allocated equally, and the number of the reducers is set equal to the number of the divided storage areas. It is characterized by.
  • the first rule designates a rack unit location based on the rack identification information, and then designates a location of the divided storage area based on a storage capacity of the storage node and the divided storage area. Characterized in that.
  • said second rule specifies the location of said reducer in accordance with the amount of said formatted formal data stored in said partitioned storage area.
  • the rack unit location is performed in a round robin manner, and the location of the partitioned storage area designates a storage node and a partitioned storage area having an idle storage capacity greater than or equal to a reference value. do.
  • the position of the reducer is characterized by designating a rack of a storage node including the divided storage area storing the standardized format data of a reference value or more.
  • the partitioned storage area included in the storage node is a virtual memory.
  • the apparatus and method for controlling distributed memory cluster using map reduce according to the present invention, it is possible to efficiently distribute load and memory usage among lower nodes constituting virtual memory by providing an efficient storage method in a method of storing in virtual memory.
  • an advantage that can efficiently manage the network bandwidth when storing or reading information in the virtual memory from the outside, there is an advantage that can efficiently manage the network bandwidth.
  • FIG. 1 is a diagram illustrating a large data distribution process using a conventional map reduce.
  • FIG. 2 is a block diagram illustrating a configuration of a distributed memory cluster control apparatus using map reduce according to the present invention.
  • FIG. 3 is a diagram illustrating a large data distribution processing process using map reduce of the present invention.
  • FIG. 4 is a diagram illustrating a detailed operation of a distributed memory cluster control apparatus using MapReduce according to the present invention.
  • FIG. 5 is a flowchart illustrating a distributed memory cluster control method using MapReduce according to the present invention.
  • the distributed memory cluster control apparatus using map reduce allocates the number of divided storage area to store the input data divided into a plurality of files, to the partition storage area
  • a memory cluster manager configured to set the number of reducers for merging the stored files to generate output data equal to the number of the divided storage areas
  • the first rule and the memory cluster control a mapper for dividing the input data into a plurality of files, and converting the divided files into standardized format data to determine the location of the divided storage area to store the standardized format data.
  • a control unit which designates based on the shape information and designates a position of the reducer based on a second rule and the memory cluster shape information; And a memory cluster shape storage unit which stores the memory cluster shape information.
  • the present invention provides a lower node constituting virtual memory by providing an efficient storage method in a method of storing information generated in the middle of a MapReduce-based distributed process for processing a large amount of data in a virtual memory instead of a file.
  • the purpose of the present invention is to provide a control device and a control method for efficiently distributing load and memory usage between the two devices and efficiently managing network bandwidth when storing or reading information in virtual memory from the outside.
  • the present invention is based on the map reduce (MapReduce) technology in the process of distributing a large amount of data in the process (Map) processing the data (Map) in the distributed memory cluster to store the intermediate information generated in the distributed memory cluster based on the information to be stored in the cluster Full distributed processing including reducing network congestion by specifying the detailed location of the included storage node and reducing the location of reduce operations to read the contents stored in virtual memory during reduce. It characterized in that it comprises an integrated control device and method for efficiently performing.
  • the present invention relates to a method of using a distributed memory cluster to store intermediate information in a distributed processing environment. More particularly, the present invention relates to a method of rapidly storing and reducing intermediate information generated in a Map job processing data when performing MapReduce-based distributed processing.
  • the device configuration information is stored so that the location can be effectively selected and stored when storing the intermediate information generated in the Map operation, which is the front end of the distributed processing, and the characteristics of the information when the information is recorded.
  • FIG. 2 is a block diagram illustrating a configuration of a distributed memory cluster control apparatus using map reduce according to the present invention.
  • the distributed memory cluster control apparatus 200 of the present invention includes a memory cluster manager 210, a controller 220, and a memory cluster shape storage 230.
  • the distributed memory cluster control apparatus 200 effectively selects a storage location of intermediate information output by a mapper and collects data to efficiently transmit intermediate information stored in a memory node. Is for efficient positioning.
  • a mapper (320 of FIG. 3) in a large-scale data processing using Mapreduce performs a function of splitting the input data into a plurality of files and converting the divided files into standardized format data.
  • Input data in large data processing has an unstructured format, but is converted into a formal format by a mapper.
  • the memory cluster manager 210 allocates the number of divided storage areas to store input data divided into a plurality of files by a mapper, and merges the files stored in the divided storage areas to generate output data.
  • the number of reducers is set equal to the number of divided storage areas.
  • the partitioned storage area is included in at least one memory storage node included in a rack and is virtual memory.
  • the present invention allocates partition storage areas to memory nodes as many as the number of input data divided by a mapper for efficient storage of intermediate information, and sets the number of reducers equal to the number of allocated partition storage areas. It is characterized by.
  • the controller 220 controls a mapper (320 of FIG. 3) to designate a location of the divided storage area to store the formatted data based on a first rule and memory cluster shape information, and a second rule and The position of the reducer is specified based on the memory cluster shape information.
  • a mapper (320 of FIG. 3) to designate a location of the divided storage area to store the formatted data based on a first rule and memory cluster shape information, and a second rule and The position of the reducer is specified based on the memory cluster shape information.
  • the present invention is characterized in that it is possible to designate a location to store the intermediate information and a reducer to perform the aggregation operation in order to prevent the intermediate information from being concentrated on a specific memory node and a bottleneck in data processing. .
  • the memory cluster shape storage unit 230 stores the memory cluster shape information for specifying the intermediate information storage location and the location of the reducer.
  • the memory cluster shape information stored in the memory cluster shape storage unit 230 includes a plurality of rack identification information including at least one storage node, the storage node identification information, and the divided storage area identification information included in the storage node. And a plurality of the mapper identification information and a plurality of the reducer identification information.
  • the memory cluster shape information further includes information of a plurality of rack switches or a tangential switch interworking with the plurality of rack switches.
  • the first rule required for designating the intermediate information storage location is a partition, which is a virtual memory area included in the memory storage node and the memory storage node, after the rack unit location is specified based on the rack identification information.
  • the location of the divided storage area is specified based on the storage capacity of the storage area.
  • the present invention primarily distributes the intermediate information data in a standardized format in units of racks for the efficient storage of the intermediate information generated by the mapper.
  • the rack unit location is performed in a round robin manner, and the location of the partitioned storage area is characterized by designating a storage node and a partitioned storage area having an idle storage capacity equal to or greater than a reference value.
  • the partition 1 intermediate information is stored in the rack 1
  • Partition 2 intermediate information is stored in Rack 2
  • Partition 3 intermediate information is stored in Rack 1.
  • Positioning of the memory storage node after positioning of the rack prioritizes the memory storage node having more than a reference value of idle storage capacity.
  • the location of the partitioned storage area allocated by the memory cluster manager 210 equal to the number of partitioned input data is required.
  • the location of the divided storage area included in the memory storage node also selects a storage area having an idle storage capacity larger than a reference value.
  • the second rule necessary for designating the position of the reducer in the present invention is made according to the amount of the formalized data stored in the divided storage area.
  • the position of the reducer is assigned to a rack of a storage node including a partitioned storage area storing standardized format data of more than a reference value.
  • the position of the reducer is specified at a position such that the amount of the formatted data stored in the divided storage area has a short path to the memory storage node having more than a reference value.
  • the position of the reducer is disposed at a short distance from the position of the memory storage node to perform parallel processing. .
  • the movement path of the data information should be shortened.
  • the position of the reducer is designated in the same rack as the memory node having a large amount of storing intermediate information.
  • the reducer is kept short through the same rack switch by placing a reducer in a rack to which a memory node having a large amount of intermediate information is stored.
  • the reducer is placed in a rack different from the rack to which the memory node belongs, the reducer is routed through the switches belonging to the rack and the distance is increased by the number of switches.
  • Reducer positioning may also include physical distances, network configurations, and congestion weights from the memory storage node with a large amount of the formatted data stored in the partitioned storage area.
  • short path distances are measured first, and long distance reducers that share the paths are given a larger congestion weight than reducers located in the short path distances.
  • the method is exemplified in one embodiment.
  • FIG. 3 is a diagram illustrating a large data distribution processing process using map reduce of the present invention.
  • the distributed memory cluster control apparatus using map reduce of the present invention controls a mapper through a control unit to designate a location of a specific memory storage node to store an intermediate information file, and to determine a location of a reducer. Placement at close distance to a specific node enables efficient mass data distribution.
  • the memory cluster manager 210 of the distributed memory cluster control apparatus using map reduce divides and allocates a plurality of divided storage regions to a memory storage node, and makes the number of reducers equal to the number of the divided storage regions. Set it.
  • partition storage area of the memory storage node is virtual memory, reallocation is possible according to the number of input data partition files.
  • the positioning of the memory storage node and the partition storage area and the reducer to store the intermediate information in the present invention are made based on the memory cluster shape information.
  • the memory cluster shape information includes a plurality of rack identification information and at least one storage node identification information including at least one storage node, the divided storage area identification information included in the storage node, and a plurality of mapper identification information. It includes a plurality of said reducer (reducer) identification information, and may further include a tangential switch or rack switch information for interlocking the rack (Rack).
  • FIG 3 illustrates an embodiment in which a plurality of memory storage nodes are included in one rack of the distributed memory cluster 330 using the distributed memory cluster control apparatus.
  • the partition storage area is allocated to a plurality of memory storage nodes by the number N of input data divided by the mapper 320.
  • the formatted format intermediate information data output by the mapper is distributed and stored.
  • the memory storage node 331 including two partition storage areas stores the intermediate result 1 in the partition storage area 1 and the intermediate result 2 in the partition storage area 2, and the two partition storage areas have one memory storage node ( 331).
  • the memory storage node 332 including the intermediate result N includes one partitioned storage area.
  • a feature of the present invention is a method of storing information in a specific node of a distributed memory cluster and a partition predicted in advance based on partition file information generated in a map operation in a map reduction-based distributed processing apparatus.
  • the memory storage nodes constituting the memory cluster are internally bundled and managed by the corresponding number, and the internal bundle is configured through the hash value of information to be stored when storing the information later.
  • the memory storage node When receiving the information storage request from the MapReduce-based distributed processing device, the total number of partitions included, the partition information of the information to be stored, and the information to be stored are received, and when storing them, the memory storage node is converted into virtual internal blocks equal to the total number of partitions. Tied up and manage.
  • the internal block corresponding to the partition information is identified and the information is stored in the memory storage node.
  • a method of selecting a node to store may generate a hash value, etc. based on the information to be stored, and select the node based on this value to store the information. .
  • shape information including internal block configuration information constituting the memory cluster and physical location information of nodes belonging to the block is provided when requested externally.
  • the physical location information may include memory storage node identification information, physical rack identification information to which the memory storage node belongs, and network switch identification information.
  • the distributed memory cluster device queries the distributed memory cluster device for the shape information containing the information to read.
  • the location of the node to perform the reduce operation is located at a short distance from the location of the memory storage node included in the distributed memory cluster device and the node configuring the same.
  • the reducers for collecting the intermediate information data are arranged in the same rack so that the intermediate information data storage amount has a short path distance to the memory storage node and the partitioned storage area having a large amount.
  • FIG. 4 is a diagram illustrating a detailed operation of a distributed memory cluster control apparatus using MapReduce according to the present invention.
  • FIG. 4 shows an embodiment in which a distributed memory cluster device is composed of two racks.
  • the mappers 411 and 421 process input data as standardized data at arbitrary nodes, and store intermediate information into M partitions.
  • the memory storage nodes 413 and 423 are composed of a plurality of memory storage nodes, and each node includes a plurality of divided storage areas.
  • the storage location designation of the memory storage node of the divided intermediate information data by the mapper is primarily performed in a rack unit designation, and the allocation of the memory storage node and the partitioned storage area is performed.
  • Mapper gets the memory cluster shape information to specify the location to store the intermediate information.
  • Rack unit positioning is done by round robin.
  • the intermediate partition # 1 information is stored in the memory storage node 413 of the rack # 1
  • the intermediate partition # 2 information is stored in the memory storage node 423 of the rack # 2.
  • the rack is first selected and then the memory storage node whose idle storage capacity is greater than or equal to the reference value.
  • the reducer is placed in a rack in which the divided intermediate storage information stored in the memory storage node is larger than the reference value.
  • a reducer is set in an idle server of the rack, and if there is no idle server, a reducer is set in an arbitrary server of all racks.
  • FIG. 5 is a flowchart illustrating a distributed memory cluster control method using MapReduce according to the present invention.
  • a position of a reducer for generating output data by merging the formatted data is specified (S520).
  • Memory cluster shape information necessary for designating a location of a memory storage node and a reducer includes identification information of a plurality of racks, identification information of at least one or more storage nodes, and identification information of a plurality of divided storage areas. And dividing the input data into a plurality of files, and include a plurality of the mapper identification information and the reducer identification information.
  • the memory cluster shape information further includes information of a plurality of rack switches or a tangential switch interworking with the plurality of rack switches.
  • the number of files of the input data divided by the mapper and the number of the divided storage areas are allocated equally, and the number of the reducers is set equal to the number of the divided storage areas.
  • the memory cluster manager allocates the divided storage area that is the virtual memory equal to the number of divided input data and sets the same number of reducers to prevent the intermediate information data from being biased in some memory storage areas.
  • the first rule designates a rack unit location based on the rack identification information, and then designates a location of the divided storage area based on a storage capacity of the storage node and the divided storage area.
  • Rack unit location is performed in a round robin manner, and intermediate information data is first stored in a storage node and a partitioned storage area having a large idle storage capacity.
  • the second rule required for positioning the reducer is the amount of the formatted data stored in the partitioned storage area.
  • a method for controlling distributed memory clusters characterized in that the positions of the reducers are specified in an order of increasing amount of the standardized format data stored in the divided storage area.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)

Abstract

본원 발명은 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법에 관한 것으로, 보다 상세하게는 클라우드 컴퓨팅 시스템와 같은 대용량 데이터 분산처리의 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법에 관한 것이다. 본원 발명은 분산처리 과정에서 생성되는 중간 정보가 메모리 클러스터의 특정 노드에 집중되는 문제점을 해결하기 위한 것으로, 대용량 데이터를 처리하기 위한 맵 리듀스(MapReduce) 기반 분산처리 과정에서 중간에 생성되는 정보를 가상 메모리에 저장하는 효율적인 분산 메모리 클러스터 제어 장치 및 방법을 제공하는 데 있다. 본 발명에 의한 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법에 의하면 가상 메모리에 저장하는 방식에 있어서 효율적인 저장 방법을 제공함으로써 가상 메모리를 구성하는 하부 노드들 간에 효율적으로 부하 및 메모리 사용량 분산을 가능하게 하고, 외부에서 가상 메모리에 정보를 저장하거나 읽는 경우 네트워크 대역폭을 효율적으로 관리할 수 있는 장점이 있다.

Description

맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법
본원 발명은 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법에 관한 것으로, 보다 상세하게는 클라우드 컴퓨팅 시스템와 같은 대용량 데이터 분산처리의 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법에 관한 것이다.
분산 메모리 클러스터 장치라 함은 정보를 분산된 메모리 기반 저장소에 저장함으로써 읽기 / 쓰기 속도를 향상시키는 장치를 말한다.
분산 메모리 클러스터 장치의 일 예로는 메모리 가상화 장치, 메모리 DB, 메모리 캐시 등의 장치를 들 수 있다.
그러나 해당 장치에 정보를 읽거나 쓰는 경우 클러스터에 속하는 특정 노드에 정보 저장이 집중될 수 있고, 이에 따라 전체 정보처리 성능이 저하된다.
도 1은 종래의 맵 리듀스(MapReduce)를 이용한 대용량 데이터 분산처리 과정을 보여주는 도면이다.
맵 리듀스(Map Reduce)란 각 분배된 노드에서 정보를 병렬처리를 하고 Map에 의하여 처리된 결과를 통합처리 하는 것을 말한다.
Map Reduce는 구글에서 개발한 소프트웨어 프레임 워크이다. 이 프레임워크는 페타바이트 이상의 대용량 데이터를 신뢰할 수 없는 컴퓨터로 구성된 클러스터 환경에서 병렬 처리를 지원하기 위해서 개발되었다.
이 프레임워크는 함수형 프로그래밍에서 일반적으로 사용되는 Map과 Reduce라는 함수 기반으로 주로 구성된다.
도 1에서 입력데이터를 복수개의 파일로 분할하고,분할한 각각의 파일을 처리한 맵퍼(Mapper)(140)는 중간 결과 파일을 메모리 클러스터(130)의 저장 노드에 무작위로 저장함으로써 특정 노드에 정보 저장이 집중될 수 있고, 그에 따른 중간 결과 파일의 병렬 처리를 위한 리듀셔(Reducer)의 처리속도 역시 느려지게 된다.
따라서, 분산처리 과정에서 생성되는 중간 정보를 효율적으로 메모리 가상화 장치에 저장하고 읽는 방법이 요구된다.
본 발명의 실시예가 이루고자 하는 기술적 과제는, 상기의 분산처리 과정에서 생성되는 중간 정보가 메모리 클러스터의 특정 노드에 집중되는 문제점을 해결하기 위한 것으로, 대용량 데이터를 처리하기 위한 맵리듀스(MapReduce) 기반 분산처리 과정에서 중간에 생성되는 정보를 가상 메모리에 저장하는 효율적인 분산 메모리 클러스터 제어 장치 및 방법을 제공하는 데 있다.
상기 기술적 과제를 달성하기 위한 본 발명의 실시예에 따른 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치는, 복수개의 파일로 분할된 입력데이터를 저장할 분할 저장영역의 개수를 할당하고, 상기 분할 저장영역에 저장된 파일을 병합(merge)하여 출력 데이터를 생성하는 리듀서(reducer) 개수를 상기 분할 저장영역의 개수와 동일하게 설정하는 메모리 클러스터 관리부; 상기 입력데이터를 복수개의 파일로 분할하고, 상기 분할된 파일을 정형화된 형식 데이터로 변환하는 맵퍼(Mapper)를 제어하여 상기 정형화된 형식 데이터를 저장할 상기 분할 저장영역의 위치를 제 1 규칙 및 메모리 클러스터 형상 정보를 기초로 지정하고, 제 2 규칙 및 상기 메모리 클러스터 형상 정보를 기초로 상기 리듀서(reducer)의 위치를 지정하는 제어부; 및 상기 메모리 클러스터 형상 정보를 저장하는 메모리 클러스터 형상 저장부;를 포함하는 것을 특징으로 한다.
바람직하게는 상기 메모리 클러스터 형상 정보는 적어도 하나 이상의 저장 노드를 포함하는 복수개의 랙(Rack) 식별정보 및 상기 저장 노드 식별정보, 상기 저장 노드에 포함되는 상기 분할 저장영역 식별정보, 복수개의 상기 맵퍼(Mapper) 식별정보, 복수개의 상기 리듀서(reducer) 식별정보를 포함하는 것을 특징으로 한다.
바람직하게는 상기 제 1 규칙은 상기 랙(Rack) 식별정보를 기초로 랙(Rack) 단위 위치를 지정한 후, 상기 저장 노드 및 상기 분할 저장영역의 저장용량을 기초로 상기 분할 저장영역의 위치를 지정하는 것을 특징으로 한다.
바람직하게는 상기 제 2 규칙은 상기 분할 저장 영역에 저장된 상기 정형화된 형식 데이터의 양에 따라 상기 리듀서(reducer)의 위치를 지정하는 것을 특징으로 한다.
바람직하게는 상기 랙(Rack) 단위 위치 지정은 라운드로빈(Round Robin)방식으로 수행되고, 상기 분할 저장영역의 위치를 지정은 유휴 저장 용량이 기준값 이상인 저장 노드 및 분할 저장영역을 지정하는 것을 특징으로 한다.
바람직하게는 상기 리듀서(reducer)의 위치를 지정은 기준값 이상의 상기 정형화된 형식 데이터를 저장한 상기 분할 저장 영역을 포함한 저장 노드의 랙(Rack)을 지정하는 것을 특징으로 한다.
바람직하게는 상기 분할 저장 영역에 저장된 상기 정형화된 형식 데이터의 양이 많은 순서대로 상기 리듀서(reducer)의 위치를 지정하는 것을 특징으로 한다.
상기 기술적 과제를 달성하기 위한 본 발명의 실시예에 따른 맵 리듀스를 이용한 분산 메모리 클러스터 제어 방법은,입력 데이터를 복수개의 파일로 분할하고 상기 분할된 파일을 정형화된 형식 데이터으로 변환하여 상기 정형화된 형식 데이터를 저장할 랙(Rack)의 위치, 저장 노드의 위치 및 상기 저장 노드에 포함된 분할 저장영역의 위치를 제 1 규칙 및 메모리 클러스터 형상 정보를 기초로 지정하는 메모리 노드 위치 지정 단계; 및 제 2 규칙 및 상기 메모리 클러스터 형상 정보를 기초로 상기 정형화된 형식 데이터를 병합(merge)하여 출력 데이터를 생성하는 리듀서(reducer)의 위치를 지정하는 리듀서(reducer)의 위치 지정 단계;를 포함하는 것을 특징으로 한다.
바람직하게는 상기 메모리 클러스터 형상 정보는 복수개의 상기 랙(Rack)의 식별정보 및 적어도 하나 이상의 상기 저장 노드의 식별정보, 복수개의 상기 분할 저장영역의 식별정보, 상기 입력 데이터를 복수개의 파일로 분할하고, 복수개의 상기 맵퍼 (Mapper) 식별정보, 상기 리듀서(reducer) 식별정보를 포함하는 것을 특징으로 한다.
바람직하게는 상기 맵퍼(Mapper)에 의해 분할된 상기 입력 데이터의 파일의 개수와 상기 분할 저장영역의 개수는 동일하게 할당하고, 상기 분할 저장영역의 개수와 동일하게 상기 리듀서(reducer) 개수를 설정하는 것을 특징으로 한다.
바람직하게는 상기 제 1 규칙은 상기 랙(Rack) 식별정보를 기초로 랙(Rack) 단위 위치를 지정한 후, 상기 저장 노드 및 상기 분할 저장영역의 저장용량을 기초로 상기 분할 저장영역의 위치를 지정하는 것을 특징으로 한다.
바람직하게는 상기 제 2 규칙은 상기 분할 저장 영역에 저장된 상기 정형화된 형식 데이터의 양에 따라 상기 리듀서(reducer)의 위치를 지정하는 것을 특징으로 한다.
바람직하게는 상기 랙(Rack) 단위 위치 지정은 라운드로빈(Round Robin)방식으로 수행되고, 상기 분할 저장영역의 위치를 지정은 유휴 저장 용량이 기준값 이상인 저장 노드 및 분할 저장영역을 지정하는 것을 특징으로 한다.
바람직하게는 상기 리듀서(reducer)의 위치를 지정은 기준값 이상의 상기 정형화된 형식 데이터를 저장한 상기 분할 저장 영역을 포함한 저장 노드의 랙(Rack)을 지정하는 것을 특징으로 한다.
바람직하게는 상기 저장 노드에 포함된 분할 저장영역은 가상 메모리인 것을 특징으로 한다.
본 발명에 의한 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법에 의하면 가상 메모리에 저장하는 방식에 있어서 효율적인 저장 방법을 제공함으로써 가상 메모리를 구성하는 하부 노드들 간에 효율적으로 부하 및 메모리 사용량 분산을 가능하게 하고, 외부에서 가상 메모리에 정보를 저장하거나 읽는 경우 네트워크 대역폭을 효율적으로 관리할 수 있는 장점이 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1 은 종래의 맵 리듀스(MapReduce)를 이용한 대용량 데이터 분산처리 과정을 보여주는 도면이다.
도 2 는 본원 발명의 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치의 구성 개요도를 보여주는 도면이다.
도 3 는 본원 발명의 맵 리듀스(MapReduce)를 이용한 대용량 데이터 분산처리 과정을 보여주는 도면이다.
도 4 는 본원 발명의 맵 리듀스(MapReduce)를 이용한 분산 메모리 클러스터 제어 장치의 세부 동작 과정을 보여주는 도면이다.
도 5 는 본원 발명의 맵 리듀스(MapReduce)를 이용한 분산 메모리 클러스터 제어 방법의 흐름도를 보여주는 도면이다.
상기 기술적 과제를 달성하기 위한 본 발명의 실시예에 따른 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치는, 복수개의 파일로 분할된 입력데이터를 저장할 분할 저장영역의 개수를 할당하고, 상기 분할 저장영역에 저장된 파일을 병합(merge)하여 출력 데이터를 생성하는 리듀서(reducer) 개수를 상기 분할 저장영역의 개수와 동일하게 설정하는 메모리 클러스터 관리부; 상기 입력데이터를 복수개의 파일로 분할하고, 상기 분할된 파일을 정형화된 형식 데이터로 변환하는 맵퍼(Mapper)를 제어하여 상기 정형화된 형식 데이터를 저장할 상기 분할 저장영역의 위치를 제 1 규칙 및 메모리 클러스터 형상 정보를 기초로 지정하고, 제 2 규칙 및 상기 메모리 클러스터 형상 정보를 기초로 상기 리듀서(reducer)의 위치를 지정하는 제어부; 및 상기 메모리 클러스터 형상 정보를 저장하는 메모리 클러스터 형상 저장부;를 포함하는 것을 특징으로 한다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
본원 발명은 대용량 데이터를 처리하기 위한 맵 리듀스(MapReduce) 기반 분산처리과정에서 중간에 생성되는 정보를 파일이 아닌 가상 메모리에 저장하는 방식에 있어서 효율적인 저장 방법을 제공함으로써 가상 메모리를 구성하는 하부 노드들 간에 효율적으로 부하 및 메모리 사용량 분산을 가능하게 하고, 외부에서 가상 메모리에 정보를 저장하거나 읽는 경우 네트워크 대역폭을 효율적으로 관리 하기 위한 제어 장치 및 제어 방벙을 제공하는데 목적이 있다.
본원 발명은 맵 리듀스(MapReduce) 기술을 기반으로 대용량 데이터를 분산처리하는 과정에서 데이터를 처리하는 맵(Map) 작업에서 생성되는 중간 정보를 분산 메모리 클러스터에 저장할때 저장하려는 정보를 기반으로 클러스터에 포함된 저장 노드의 세부 위치를 지정하는 과정과 리듀스(Reduce) 과정에서 가상 메모리에 저장된 내용을 읽기 위해 리듀스(Reduce) 작업의 위치를 지정함으로써 네트워크 혼잡을 줄이는 과정을 포함하여 전체 분산처리 기능을 효율적으로 수행하는 통합 제어 장치 및 방법을 포함하는 것을 특징으로 한다.
본원 발명은 분산처리 환경에서 중간 정보를 저장하기 위해 분산 메모리 클러스터를 이용하는 방법에 관한 것으로 더욱 상세하게는 MapReduce 기반 분산처리를 수행할 때 데이터를 처리하는 Map 작업에서 생성되는 중간 정보를 빠르게 저장하고 Reduce 작업을 수행하기 위해 중간 저장소로 분산 메모리 클러스터 장치를 이용하고, 분산 메모리 클러스터에 저장할 때 메모리 관리를 효율적으로 하고 이후 데이터를 수합하는 Reduce 작업으로 중간 정보를 전송할 때 네트워크 전송을 효율적으로 수행하기 위해 실제 물리 노드의 위치를 결정하는 방법에 관한 것이다.
본원 발명은 메모리 가상화 장치를 구성할 때 장치 구성 정보를 저장함으로써 분산처리 과정의 앞단인 Map 작업에서 발생하는 중간 정보를 저장할 때 그 위치를 효과적으로 선정해서 저장할 수 있으며, 정보를 기록할 때 정보의 특성에 따라 메모리 클러스터 장치에 속한 노드의 위치를 정할 수 있고 이로 인해 메모리 노드와 Reduce 작업 수행 노드간 통신이 특정 노드에 집중되거나 이로 인해 네트웍 혼잡이 발생되는 상황을 막는 방법을 제공하고 그 결과로 전체 분산처리 성능을 향상시키는데 그 목적이 있다.
도 2 는 본원 발명의 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치의 구성 개요도를 보여주는 도면이다.
본원 발명의 분산 메모리 클러스터 제어 장치(200)는 메모리 클러스터 관리부(210), 제어부(220) 및 메모리 클러스터 형상 저장부(230)를 포함하여 이루어진다.
본원 발명의 분산 메모리 클러스터 제어 장치(200)는 맵퍼(Mapper)에 의해 출력되는 중간 정보의 저장 위치를 효과적으로 선정하고, 메모리 노드에 저장된 중간 정보의 전송을 효율적으로 하기 위해 데이터를 수합하는 리듀서(Reducer)의 위치 선정을 효율적으로 하기 위한 것이다.
맵리듀스(Mapreduce)를 이용한 대용량 데이터 처리에서의 맵퍼(Mapper)(도3의 320)는 입력데이터를 복수개의 파일로 분할하고, 상기 분할된 파일을 정형화된 형식 데이터로 변환하는 기능을 수행한다.
대용량 데이터 처리에서의 입력데이터는 비정형화된 형식을 가지고 있으나 맵퍼(Mapper)에 의하여 정형화된 형식으로 변환된다.
메모리 클러스터 관리부(210)는 맵퍼(Mapper)에 의하여 복수개의 파일로 분할된 입력데이터를 저장할 분할 저장영역의 개수를 할당하고, 상기 분할 저장영역에 저장된 파일을 병합(merge)하여 출력 데이터를 생성하는 리듀서(reducer) 개수를 상기 분할 저장영역의 개수와 동일하게 설정한다.
분할 저장 영역은 랙(Rack)에 포함된 적어도 하나 이상의 메모리 저장 노드에 포함된 것으로 가상 메모리이다.
본원 발명은 중간 정보의 효율적 저장을 위해 맵퍼(Mapper)에 의해 분할된 입력 데이터의 개수만큼 메모리 노드에 분할 저장영역을 할당하고, 할당된 분할 저장영역의 개수와 동일하게 리듀서(reducer) 개수를 설정하는 것이 특징이다.
제어부(220)는 맵퍼(Mapper)(도3의 320)를 제어하여 상기 정형화된 형식 데이터를 저장할 상기 분할 저장영역의 위치를 제 1 규칙 및 메모리 클러스터 형상 정보를 기초로 지정하고, 제 2 규칙 및 상기 메모리 클러스터 형상 정보를 기초로 상기 리듀서(reducer)의 위치를 지정한다.
본원 발명은 중간 정보가 특정 메모리 노드에 집중되어 데이터 처리에서의 병목현상이 발생하는 것을 차단하기 위해 중간 정보를 저장할 위치 및 수합동작을 수행하는 리듀서(Reducer)의 위치를 지정하는 것이 가능한 것이 특징이다.
메모리 클러스터 형상 저장부(230)는 중간 정보 저장 위치의 지정과 리듀서(Reducer)의 위치를 지정을 위해 메모리 클러스터 형상 정보를 저장한다.
메모리 클러스터 형상 저장부(230)에 저장된 메모리 클러스터 형상 정보는 적어도 하나 이상의 저장 노드를 포함하는 복수개의 랙(Rack) 식별정보 및 상기 저장 노드 식별정보, 상기 저장 노드에 포함되는 상기 분할 저장영역 식별정보, 복수개의 상기 맵퍼(Mapper) 식별정보, 복수개의 상기 리듀서(reducer) 식별정보를 포포함한다.
세부적으로 메모리 클러스터 형상 정보에는 복수개의 랙(Rack) 스위치나 이를 연동하는 접선 스위치의 정보를 더 포함된다.
중간 정보 저장 위치의 지정을 위해 요구되는 제 1 규칙은 랙(Rack) 식별정보를 기초로 랙(Rack) 단위 위치를 지정한 후에 구체적으로 메모리 저장 노드 및 메모리 저장 노드에 포함된 가상메모리 영역인, 분할 저장영역의 저장용량을 기초로 상기 분할 저장영역의 위치를 지정한다.
즉, 본원발명은 맵퍼(Mapper)에 의해 생성된 중간 정보의 효율적 저장을 위해 정형화된 형식의 중간 정보 데이터를 일차적으로 랙(Rack)단위로 균등하게 분산한다.
따라서, 랙(Rack)1 부터 랙(Rack) 3으로 구성된 대용량 데이터 처리 장치에서 맵퍼(Mapper)에서 분할된 입력데이터의 개수가 3개라면 랙(Rack)1,랙(Rack)2, 랙(Rack) 3에 각각 하나씩 저장되는 것이다.
또한 랙(Rack) 단위 위치 지정은 라운드로빈(Round Robin)방식으로 수행되고, 분할 저장영역의 위치를 지정은 유휴 저장 용량이 기준값 이상인 저장 노드 및 분할 저장영역을 지정하는 것을 특징으로 한다.
즉, 랙(Rack)1 부터 랙(Rack) 2으로 구성된 대용량 데이터 처리 장치에서 맵퍼(Mapper)에서 분할된 입력데이터의 개수가 3개라면 랙(Rack)1에 분할 1번 중간정보를 저장하고, 랙(Rack)2에 분할 2번 중간정보를 저장하고, 분할 3번 중간정보는 랙(Rack)1에 저장되는 것이다.
랙(Rack)의 위치 지정이후에 메모리 저장 노드의 위치 지정은 유휴 저장 용량이 기준값 이상보다 많은 메모리 저장 노드를 최우선으로 선택하게 된다.
특정 노드에 중간 정보가 일방적으로 편중되어 저장되는 것을 방지하기 위함이다.
랙(Rack)의 위치 지정 및 메모리 저장 노드의 위치 지정이 이루어지고 난후에는 메모리 클러스터 관리부(210)에서 분할된 입력데이터의 개수와 동일하게 할당한 분할 저장 영역의 위치 지정이 요구된다.
메모리 저장 노드에 포함된 분할 저장 영역의 위치 지정 역시 유휴 저장 용량이 기준값 이상 보다 많은 저장 영역을 선택하게 된다.
본원 발명에서의 리듀서(reducer)의 위치를 지정을 위해 필요한 제 2 규칙은 상기 분할 저장 영역에 저장된 상기 정형화된 형식 데이터의 양에 따라 이루어진다.
정형화된 중간 정보 데이터의 네트워크 전송을 효율적으로 수행하기 위해 기준값 이상의 정형화된 형식 데이터를 저장한 분할 저장 영역을 포함한 저장 노드의 랙(Rack)에 리듀서(reducer)의 위치를 지정한다.
즉, 분할 저장 영역에 저장된 상기 정형화된 형식 데이터의 양이 기준값 보다 많은 메모리 저장 노드가 속한 랙(Rack)에 리듀서(reducer)의 위치시킴으로써 다른 랙(Rack)의 스위치를 경유함으로써 발생할 수 있는 병목현상을 최대한 줄이기 위한 것이다.
즉, 분할 저장 영역에 저장된 상기 정형화된 형식 데이터의 양이 기준값 보다 많은 메모리 저장 노드에 짧은 경로를 갖도록 하는 위치에 리듀서(reducer)의 위치를 지정한다.
본원 발명의 메모리 클러스터 형상 저장부(230)에 저장된 랙(Rack) 식별정보 및 스위치 식별정보등을 이용하여 리듀서(reducer)의 위치는 병렬 처리를 수행할 메모리 저장 노드의 위치와 짧은 거리에 배치한다.
네트워크 경로를 짧게 하고, 네트워크 병목을 줄일 수 있는 상태에서의 데이터 처리수행을 위해서는 데이터 정보의 이동 경로를 짧게 하여야 한다.
데이터 정보의 이동 경로를 짧게 하기 위해서는 중간 정보의 저장 양이 많은 메모리 노드와 동일 랙(Rack)에 리듀서(reducer)의 위치를 지정한다.
중간 정보의 저장 양이 많은 메모리 노드가 속한 랙(Rack)에 리듀서(reducer)를 위치시킴으로써 동일 랙(Rack) 스위치를 경유하면 짧게 유지한다.
만약 메모리 노드가 속한 랙(Rack)과 다른 랙(Rack)에 리듀서(reducer)를 위치시키면 랙(Rack)에 속한 스위치를 경유하게 되고 스위치 수만큼 경유 거리가 멀어진다.
또한 리듀서(Reducer) 위치 지정은 분할 저장 영역에 저장된 상기 정형화된 형식 데이터의 양이 많은 메모리 저장 노드로부터의 물리적 거리 및 네트워크 구성 형상,혼잡 가중치를 포함하여 이루어질 수 있다.
네트워크 병목을 줄이기 위해서 짧은 경로 거리를 먼저 측정한 이후 해당 경로를 공유하는 먼 거리의 리듀서(Reducer)에 대해서는 짧은 경로 거리에 위치한 리듀서(Reducer)보다 큰 값의 혼잡 가중치를 부여하여 경로 거리가 길게하는 방법을 일 실시예로 들 수 있다.
도 3 는 본원 발명의 맵 리듀스(MapReduce)를 이용한 대용량 데이터 분산처리 과정을 보여주는 도면이다.
본원 발명의 맵 리듀스(MapReduce)를 이용한 분산 메모리 클러스터 제어 장치는 제어부를 통하여 맵퍼(Mapper)를 제어하여 중간 정보 파일을 저장할 특정 메모리 저장 노드의 위치를 지정하게 되고, 리듀서(Reducer)의 위치를 특정 노드와 가까운 경로 거리에 배치함으로써 효율적인 대용량 데이터 분산처리가 가능하게 한다.
맵 리듀스(MapReduce)를 이용한 분산 메모리 클러스터 제어 장치의 메모리 클러스터 관리부(210)는 메모리 저장 노드에 복수개의 분할 저장영역을 분할 할당하고,리듀서(reducer) 개수를 상기 분할 저장영역의 개수와 동일하게 설정한다.
메모리 저장 노드의 분할 저장영역은 가상 메모리이므로 입력데이터 분할 파일의 개수에 따라 재할당이 가능하다.
본원발명에서의 중간 정보를 저장할 메모리 저장 노드 및 분할 저장영역의 위치 지정 및 리듀서(reducer)의 배치는 메모리 클러스터 형상 정보를 기초로 이루어진다.
메모리 클러스터 형상 정보는 적어도 하나 이상의 저장 노드를 포함하는 복수개의 랙(Rack) 식별정보 및 상기 저장 노드 식별정보, 상기 저장 노드에 포함되는 상기 분할 저장영역 식별정보, 복수개의 상기 맵퍼(Mapper) 식별정보, 복수개의 상기 리듀서(reducer) 식별정보를 포함하며, 추가적으로 랙(Rack)을 연동시키기 위한 접선 스위치나 랙 스위치 정보를 포함할 수 있다.
도 3에서 분산 메모리 클러스터 제어 장치를 이용하여 분산 메모리 클러스터(330)의 하나의 랙(Rack)에 복수개의 메모리 저장 노드가 포함된 일 실시예를 보여준다.
복수개의 메모리 저장 노드에 맵퍼(Mapper)(320)에 의해 분할된 입력 데이터의 개수(N)개만큼 분할 저장영역을 할당한 것을 도시하고 있다.
N개의 분할 저장영역에는 맵퍼(Mapper)에 의해 출력된 정형화된 형식 중간 정보 데이터를 분산 저장한다.
2개의 분할저장영역을 포함하는 메모리 저장 노드(331)는 분할저장영역 1에 중간결과1을 저장하고, 분할 저장영역2에 중간결과2를 저장하였으며 2개의 분할 저장 영역은 하나의 메모리 저장 노드(331)에 포함된다.
중간결과 N을 포함하는 메모리 저장 노드(332)는 하나의 분할저장영역을 포함하고 있다.
본원 발명의 특징은 맵리듀스(MapReduce) 기반 분산처리 장치에 있어서 Map 작업에서 생성되는 분할(Partition) 파일 정보를 기준으로 분산 메모리 클러스터의 특정 노드에 정보를 저장하는 방법과 미리 예측되는 분할(Partition) 파일 개수 정보 (이는 이후 Reduce 작업의 개수와 같음) 를 기준으로 메모리 클러스터를 구성하는 메모리 저장 노드를 해당 개수만큼 내부적으로 묶어서 관리하고 이후 정보 저장시 저장할 정보의 해쉬값 등을 통해 내부 묶음을 구성하는 메모리 저장 노드를 지정해 정보를 저장한다.
MapReduce 기반 분산처리장치로부터 정보 저장 요청을 받을 때 포함된 총 Partition 개수, 저장할 정보의 Partition 정보와 실제 저장할 정보를 수신받게 되고, 이를 저장할 때 메모리 저장 노드를 총 Partition 개수와 동일하게 가상의 내부 블록으로 묶어서 관리한다.
실제 정보 저장시 해당 Partition 정보에 대응하는 내부 블록을 식별해 이에 속한 메모리 저장 노드에 해당 정보를 저장한다.
하나의 랙(Rack)에 포함된 메모리 저장 노드가 여러 개 존재하는 경우 저장할 노드를 선택하는 방법은 저장할 정보를 기반으로 해쉬 값 등을 생성해서 이 값을 근거로 노드를 선택해서 정보를 저장할 수도 있다.
저장된 중간 정보를 외부에서 읽는 처리를 효과적으로 수행할 수 있도록, 외부에서 요청하는 경우 메모리 클러스터를 구성하는 내부 블록 구성정보와 블록에 속한 노드의 물리적 위치 정보를 포함한 형상정보를 제공한다.
물리적 위치 정보는 메모리 저장 노드 식별 정보, 메모리 저장 노드가 속한 물리적 랙(Rack) 식별 정보 및 네트워크 스위치 식별정보를 포함할 수 있다.
MapReduce 기반 분산처리장치가 중간 정보를 이용해 후반 Reduce 작업을 수행할 때는 분산 메모리 클러스터 장치에게 자신이 읽을 정보가 저장된 형상정보를 조회한다.
조회한 결과를 근거로, Reduce 작업을 수행할 노드의 위치를 분산 메모리 클러스터 장치에 포함된 메모리 저장 노드 및 이를 구성하는 노드의 위치와 짧은 거리에 배치한다.
중간정보 데이터의 수합처리를 위한 리듀서(reducer)의 배치는 중간 정보 데이터 저장 양이 많은 메모리 저장 노드 및 분할 저장 영역에 짧은 경로 거리를 갖도록 하기 위해서 동일 랙(Rack)에 배치한다.
도 4 는 본원 발명의 맵 리듀스(MapReduce)를 이용한 분산 메모리 클러스터 제어 장치의 세부 동작 과정을 보여주는 도면이다.
도 4는 분산 메모리 클러스터 장치는 2개의 랙으로 구성되어 있는 일 실시예를 보여준다.
맵퍼 (Mapper)(411,421)은 임의의 노드에서 입력 데이터를 정형화된 형식 데이터로 처리하고 중간정보를 M개의 파티션으로 분할하여 저장한다.
메모리 저장노드(413,423)는 여러개의 메모리 저장 노드로 구성되며, 각 노드는 복수개의 분할된 저장 영역을 포함한다.
맵퍼(Mapper)에 의한 분할된 중간 정보 데이터의 메모리 저장 노드의 저장 위치 지정은 랙(Rack)단위 지정을 일차적으로 수행하고, 메모리 저장 노드 및 분할 저장영역의 할당 순으로 이루어진다.
맵퍼(Mapper)는 중간 정보를 저장할 위치 지정을 위해 메모리 클러스터 형상 정보를 가져온다.
랙 단위의 위치 지정은 라운드 로빈(Round Robin)방식으로 이루어진다.
즉, 중간 파티션 1번 정보는 랙 1번의 메모리 저장소 노드(413)에 저장되고, 중간 파티션 2번 정보는 랙 2번의 메모리 저장소 노드(423)에 저장된다.
파티션 3번 정보는 랙 3 mod R = 1 즉,랙 1번 메모리 저장소 노드(413)에 저장된다.
동일 랙에 하나 이상의 메모리 저장소 노드가 존재하면, 랙을 먼저 선택하고 나서 유휴 저장 용량이 기준값 이상인 메모리 저장 노드를 지정한다.
특정 파티션 정보를 저장할 공간이 부족한 경우 i)동일 랙의 다른 메모리 저장 노드를 지정하고, ii)다음번 랙의 메모리 저장 노드 순으로 위치를 지정한다.
해당 랙에 유휴 저장 용량이 있는 메모리 저장 노드가 없으면 다음번 랙으로 위치 이동 후 위치 지정 수행한다.
메모리 저장 노드에 저장된 분할된 중간 저장 정보가 기준값보다 많은 랙에 리듀서(Reducer)를 배치한다.
해당 랙(Rack)의 유휴 서버에 리듀서(Reducer)를 설정하고,유휴 서버가 없을 경우 전체 랙 중 임의의 서버에 리듀서(Reducer)를 설정한다.
도 5 는 본원 발명의 맵 리듀스(MapReduce)를 이용한 분산 메모리 클러스터 제어 방법의 흐름도를 보여주는 도면이다.
입력 데이터를 복수개의 파일로 분할하고 상기 분할된 파일을 정형화된 형식 데이터으로 변환하여 상기 정형화된 형식 데이터를 저장할 랙(Rack)의 위치, 저장 노드의 위치 및 상기 저장 노드에 포함된 분할 저장영역의 위치를 제 1 규칙 및 메모리 클러스터 형상 정보를 기초로 지정한다(S510).
제 2 규칙 및 상기 메모리 클러스터 형상 정보를 기초로 상기 정형화된 형식 데이터를 병합(merge)하여 출력 데이터를 생성하는 리듀서(reducer)의 위치를 지정한다(S520).
메모리 저장 노드와 리듀서(reducer)의 위치를 지정을 위해 필요한 메모리 클러스터 형상 정보는 복수개의 상기 랙(Rack)의 식별정보 및 적어도 하나 이상의 상기 저장 노드의 식별정보, 복수개의 상기 분할 저장영역의 식별정보, 상기 입력 데이터를 복수개의 파일로 분할하고, 복수개의 상기 맵퍼 (Mapper) 식별정보, 상기 리듀서(reducer) 식별정보를 포함한다.
세부적으로 메모리 클러스터 형상 정보에는 복수개의 랙(Rack) 스위치나 이를 연동하는 접선 스위치의 정보를 더 포함된다.
맵퍼(Mapper)에 의해 분할된 상기 입력 데이터의 파일의 개수와 상기 분할 저장영역의 개수는 동일하게 할당하고, 상기 분할 저장영역의 개수와 동일하게 상기 리듀서(reducer) 개수를 설정한다.
메모리 클러스터 관리부에서 가상 메모리인 분할 저장영역을 분할된 입력 데이터의 개수와 동일하게 할당하고, 리듀서(Reducer) 개수와 이와 동일하게 설정함으로써 중간 정보 데이터가 일부 메모리 저장영역에 편중되는 것을 방지한다.
제 1 규칙은 상기 랙(Rack) 식별정보를 기초로 랙(Rack) 단위 위치를 지정한 후, 상기 저장 노드 및 상기 분할 저장영역의 저장용량을 기초로 상기 분할 저장영역의 위치를 지정한다.
랙(Rack) 단위 위치 지정은 라운드로빈(Round Robin)방식으로 수행되고, 유휴 저장 용량이 많은 저장 노드 및 분할 저장영역에 가장 먼저 중간 정보 데이터의 저장이 이루어지는 것이다.
리듀서(reducer)의 위치 지정에 필요한 제 2 규칙은 상기 분할 저장 영역에 저장된 상기 정형화된 형식 데이터의 양이다.
분할 저장 영역에 저장된 상기 정형화된 형식 데이터의 양이 많은 순서대로 상기 리듀서(reducer)의 위치를 지정하는 것을 특징으로 하는 분산 메모리 클러스터 제어 방법.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (14)

  1. 복수개의 파일로 분할된 입력데이터를 저장할 분할 저장영역의 개수를 할당하고, 상기 분할 저장영역에 저장된 파일을 병합(merge)하여 출력 데이터를 생성하는 리듀서(reducer) 개수를 상기 분할 저장영역의 개수와 동일하게 설정하는 메모리 클러스터 관리부;
    상기 입력데이터를 복수개의 파일로 분할하고, 상기 분할된 파일을 정형화된 형식 데이터로 변환하는 맵퍼(Mapper)를 제어하여 상기 정형화된 형식 데이터를 저장할 상기 분할 저장영역의 위치를 제 1 규칙 및 메모리 클러스터 형상 정보를 기초로 지정하고, 제 2 규칙 및 상기 메모리 클러스터 형상 정보를 기초로 상기 리듀서(reducer)의 위치를 지정하는 제어부; 및
    상기 메모리 클러스터 형상 정보를 저장하는 메모리 클러스터 형상 저장부;를 포함하는 것을 특징으로 하는 분산 메모리 클러스터 제어 장치.
  2. 제 1 항에 있어서, 상기 메모리 클러스터 형상 정보는
    적어도 하나 이상의 저장 노드를 포함하는 복수개의 랙(Rack) 식별정보 및 상기 저장 노드 식별정보, 상기 저장 노드에 포함되는 상기 분할 저장영역 식별정보, 복수개의 상기 맵퍼(Mapper) 식별정보, 복수개의 상기 리듀서(reducer) 식별정보를 포함하는 것을 특징으로 하는 분산 메모리 클러스터 제어 장치.
  3. 제 2 항에 있어서,
    상기 제 1 규칙은 상기 랙(Rack) 식별정보를 기초로 랙(Rack) 단위 위치를 지정한 후, 상기 저장 노드 및 상기 분할 저장영역의 저장용량을 기초로 상기 분할 저장영역의 위치를 지정하는 것을 특징으로 하는 분산 메모리 클러스터 제어 장치.
  4. 제 2 항에 있어서,
    상기 제 2 규칙은 상기 분할 저장 영역에 저장된 상기 정형화된 형식 데이터의 양에 따라 상기 리듀서(reducer)의 위치를 지정하는 것을 특징으로 하는 분산 메모리 클러스터 제어 장치.
  5. 제 3 항에 있어서,
    상기 랙(Rack) 단위 위치 지정은 라운드로빈(Round Robin)방식으로 수행되고, 상기 분할 저장영역의 위치를 지정은 유휴 저장 용량이 기준값 이상인 저장 노드 및 분할 저장영역을 지정하는 것을 특징으로 하는 분산 메모리 클러스터 제어 장치.
  6. 제 4 항에 있어서,
    상기 리듀서(reducer)의 위치를 지정은 기준값 이상의 상기 정형화된 형식 데이터를 저장한 상기 분할 저장 영역을 포함한 저장 노드의 랙(Rack)을 지정하는 것을 특징으로 하는 분산 메모리 클러스터 제어 장치.
  7. 입력 데이터를 복수개의 파일로 분할하고 상기 분할된 파일을 정형화된 형식 데이터로 변환하여 상기 정형화된 형식 데이터를 저장할 랙(Rack)의 위치, 저장 노드의 위치 및 상기 저장 노드에 포함된 분할 저장영역의 위치를 제 1 규칙 및 메모리 클러스터 형상 정보를 기초로 지정하는 메모리 노드 위치 지정 단계; 및
    제 2 규칙 및 상기 메모리 클러스터 형상 정보를 기초로 상기 정형화된 형식 데이터를 병합(merge)하여 출력 데이터를 생성하는 리듀서(reducer)의 위치를 지정하는 리듀서(reducer)의 위치 지정 단계;를 포함하는 것을 특징으로 하는 분산 메모리 클러스터 제어 방법.
  8. 제 7 항에 있어서,
    상기 메모리 클러스터 형상 정보는 복수개의 상기 랙(Rack)의 식별정보 및 적어도 하나 이상의 상기 저장 노드의 식별정보, 복수개의 상기 분할 저장영역의 식별정보, 상기 입력 데이터를 복수개의 파일로 분할하고, 복수개의 상기 맵퍼 (Mapper) 식별정보, 상기 리듀서(reducer) 식별정보를 포함하는 것을 특징으로 하는 분산 메모리 클러스터 제어 방법.
  9. 제 8 항에 있어서,
    상기 맵퍼(Mapper)에 의해 분할된 상기 입력 데이터의 파일의 개수와 상기 분할 저장영역의 개수는 동일하게 할당하고, 상기 분할 저장영역의 개수와 동일하게 상기 리듀서(reducer) 개수를 설정하는 것을 특징으로 하는 분산 메모리 클러스터 제어 방법.
  10. 제 8 항에 있어서,
    상기 제 1 규칙은 상기 랙(Rack) 식별정보를 기초로 랙(Rack) 단위 위치를 지정한 후, 상기 저장 노드 및 상기 분할 저장영역의 저장용량을 기초로 상기 분할 저장영역의 위치를 지정하는 것을 특징으로 하는 분산 메모리 클러스터 제어 방법.
  11. 제 8 항에 있어서,
    상기 제 2 규칙은 상기 분할 저장 영역에 저장된 상기 정형화된 형식 데이터의 양에 따라 상기 리듀서(reducer)의 위치를 지정하는 것을 특징으로 하는 분산 메모리 클러스터 제어 방법.
  12. 제 10 항에 있어서,
    상기 랙(Rack) 단위 위치 지정은 라운드로빈(Round Robin)방식으로 수행되고, 상기 분할 저장영역의 위치를 지정은 유휴 저장 용량이 기준값 이상인 저장 노드 및 분할 저장영역을 지정하는 것을 특징으로 하는 분산 메모리 클러스터 제어 방법.
  13. 제 11 항에 있어서,
    상기 리듀서(reducer)의 위치를 지정은 기준값 이상의 상기 정형화된 형식 데이터를 저장한 상기 분할 저장 영역을 포함한 저장 노드의 랙(Rack)을 지정하는 것을 특징으로 하는 분산 메모리 클러스터 제어 방법.
  14. 제 8 항에 있어서,
    상기 저장 노드에 포함된 분할 저장영역은 가상 메모리인 것을 특징으로 하는 분산 메모리 클러스터 제어 방법.
PCT/KR2011/008578 2011-02-14 2011-11-10 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법 Ceased WO2012111905A2 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020110012867A KR101502896B1 (ko) 2011-02-14 2011-02-14 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법
KR10-2011-0012867 2011-02-14

Publications (2)

Publication Number Publication Date
WO2012111905A2 true WO2012111905A2 (ko) 2012-08-23
WO2012111905A3 WO2012111905A3 (ko) 2012-10-11

Family

ID=46637740

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2011/008578 Ceased WO2012111905A2 (ko) 2011-02-14 2011-11-10 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법

Country Status (3)

Country Link
US (1) US8984085B2 (ko)
KR (1) KR101502896B1 (ko)
WO (1) WO2012111905A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9582334B2 (en) 2013-01-31 2017-02-28 International Business Machines Corporation Resource management in MapReduce architecture and architectural system

Families Citing this family (203)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
US12008266B2 (en) 2010-09-15 2024-06-11 Pure Storage, Inc. Efficient read by reconstruction
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
CN102546782B (zh) * 2011-12-28 2015-04-29 北京奇虎科技有限公司 一种分布式系统及其数据操作方法
KR101480867B1 (ko) * 2013-05-31 2015-01-09 삼성에스디에스 주식회사 맵리듀스 연산 가속 시스템 및 방법
KR101411563B1 (ko) * 2013-11-01 2014-06-25 한국과학기술정보연구원 리소스 지역성에 기초한 분산 처리 시스템 및 분산 처리 방법
US9430547B2 (en) * 2013-12-02 2016-08-30 Qbase, LLC Implementation of clustered in-memory database
KR102193012B1 (ko) 2014-02-04 2020-12-18 삼성전자주식회사 분산 처리 시스템 및 이의 동작 방법
WO2015167486A1 (en) * 2014-04-30 2015-11-05 Hewlett-Packard Development Company, L.P. Reducing data in a network device
US9836234B2 (en) 2014-06-04 2017-12-05 Pure Storage, Inc. Storage cluster
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
US11960371B2 (en) 2014-06-04 2024-04-16 Pure Storage, Inc. Message persistence in a zoned system
US10574754B1 (en) 2014-06-04 2020-02-25 Pure Storage, Inc. Multi-chassis array with multi-level load balancing
US9213485B1 (en) 2014-06-04 2015-12-15 Pure Storage, Inc. Storage system architecture
US8850108B1 (en) 2014-06-04 2014-09-30 Pure Storage, Inc. Storage cluster
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
US11068363B1 (en) 2014-06-04 2021-07-20 Pure Storage, Inc. Proactively rebuilding data in a storage cluster
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US12341848B2 (en) 2014-06-04 2025-06-24 Pure Storage, Inc. Distributed protocol endpoint services for data storage systems
US11399063B2 (en) 2014-06-04 2022-07-26 Pure Storage, Inc. Network authentication for a storage system
US12137140B2 (en) 2014-06-04 2024-11-05 Pure Storage, Inc. Scale out storage platform having active failover
US9003144B1 (en) 2014-06-04 2015-04-07 Pure Storage, Inc. Mechanism for persisting messages in a storage system
US9836245B2 (en) 2014-07-02 2017-12-05 Pure Storage, Inc. Non-volatile RAM and flash memory in a non-volatile solid-state storage
US8868825B1 (en) 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US11886308B2 (en) 2014-07-02 2024-01-30 Pure Storage, Inc. Dual class of service for unified file and object messaging
US10114757B2 (en) 2014-07-02 2018-10-30 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US9747229B1 (en) 2014-07-03 2017-08-29 Pure Storage, Inc. Self-describing data format for DMA in a non-volatile solid-state storage
US8874836B1 (en) 2014-07-03 2014-10-28 Pure Storage, Inc. Scheduling policy for queues in a non-volatile solid-state storage
US10853311B1 (en) 2014-07-03 2020-12-01 Pure Storage, Inc. Administration through files in a storage system
US12182044B2 (en) 2014-07-03 2024-12-31 Pure Storage, Inc. Data storage in a zone drive
US12158814B2 (en) 2014-08-07 2024-12-03 Pure Storage, Inc. Granular voltage tuning
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
US9766972B2 (en) 2014-08-07 2017-09-19 Pure Storage, Inc. Masking defective bits in a storage array
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
US9483346B2 (en) 2014-08-07 2016-11-01 Pure Storage, Inc. Data rebuild on feedback from a queue in a non-volatile solid-state storage
US10079711B1 (en) 2014-08-20 2018-09-18 Pure Storage, Inc. Virtual file server with preserved MAC address
CN104462853B (zh) * 2014-12-29 2017-05-24 南通大学 用于电子病历特征提取的种群精英分布云协同均衡方法
CN104537682B (zh) * 2015-01-26 2018-09-07 四川众亿得科技有限责任公司 一种医学影像的分割与调度方法
KR20160098856A (ko) 2015-02-11 2016-08-19 영남대학교 산학협력단 맵리듀스 클러스터에서 에너지 효율적인 작업 할당 및 노드 활성화 방법
US9948615B1 (en) 2015-03-16 2018-04-17 Pure Storage, Inc. Increased storage unit encryption based on loss of trust
US11294893B2 (en) 2015-03-20 2022-04-05 Pure Storage, Inc. Aggregation of queries
US9940234B2 (en) 2015-03-26 2018-04-10 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
US10082985B2 (en) * 2015-03-27 2018-09-25 Pure Storage, Inc. Data striping across storage nodes that are assigned to multiple logical arrays
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US9672125B2 (en) 2015-04-10 2017-06-06 Pure Storage, Inc. Ability to partition an array into two or more logical arrays with independently running software
US12379854B2 (en) 2015-04-10 2025-08-05 Pure Storage, Inc. Two or more logical arrays having zoned drives
US10140149B1 (en) 2015-05-19 2018-11-27 Pure Storage, Inc. Transactional commits with hardware assists in remote memory
US9817576B2 (en) 2015-05-27 2017-11-14 Pure Storage, Inc. Parallel update to NVRAM
KR20160145250A (ko) 2015-06-09 2016-12-20 한국전자통신연구원 가상 머지를 지원하는 셔플 내장형 분산 스토리지 시스템 및 그 방법
US10846275B2 (en) 2015-06-26 2020-11-24 Pure Storage, Inc. Key management in a storage device
US10983732B2 (en) 2015-07-13 2021-04-20 Pure Storage, Inc. Method and system for accessing a file
US11232079B2 (en) 2015-07-16 2022-01-25 Pure Storage, Inc. Efficient distribution of large directories
US10310748B2 (en) 2015-08-26 2019-06-04 Pivotal Software, Inc. Determining data locality in a distributed system using aggregation of locality summaries
US10108355B2 (en) 2015-09-01 2018-10-23 Pure Storage, Inc. Erase block state detection
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US11269884B2 (en) 2015-09-04 2022-03-08 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
KR101710138B1 (ko) * 2015-09-21 2017-02-24 한국생명공학연구원 데이터 분산 처리 시스템 및 데이터 분산 처리 방법
US10762069B2 (en) 2015-09-30 2020-09-01 Pure Storage, Inc. Mechanism for a system where data and metadata are located closely together
US9768953B2 (en) 2015-09-30 2017-09-19 Pure Storage, Inc. Resharing of a split secret
US10853266B2 (en) 2015-09-30 2020-12-01 Pure Storage, Inc. Hardware assisted data lookup methods
US12271359B2 (en) 2015-09-30 2025-04-08 Pure Storage, Inc. Device host operations in a storage system
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
US10007457B2 (en) 2015-12-22 2018-06-26 Pure Storage, Inc. Distributed transactions with token-associated execution
KR101668397B1 (ko) * 2015-12-24 2016-10-21 한국과학기술정보연구원 대용량 과학 데이터 즉시 분석 방법 및 장치
US10133503B1 (en) 2016-05-02 2018-11-20 Pure Storage, Inc. Selecting a deduplication process based on a difference between performance metrics
US10261690B1 (en) 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system
US12235743B2 (en) 2016-06-03 2025-02-25 Pure Storage, Inc. Efficient partitioning for storage system resiliency groups
US12210476B2 (en) 2016-07-19 2025-01-28 Pure Storage, Inc. Disaggregated compute resources and storage resources in a storage system
US11861188B2 (en) 2016-07-19 2024-01-02 Pure Storage, Inc. System having modular accelerators
US12487884B1 (en) 2017-10-31 2025-12-02 Pure Storage, Inc. Writing parity data to a targeted wordline
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
US10768819B2 (en) 2016-07-22 2020-09-08 Pure Storage, Inc. Hardware support for non-disruptive upgrades
US11449232B1 (en) 2016-07-22 2022-09-20 Pure Storage, Inc. Optimal scheduling of flash operations
US10216420B1 (en) 2016-07-24 2019-02-26 Pure Storage, Inc. Calibration of flash channels in SSD
US11604690B2 (en) 2016-07-24 2023-03-14 Pure Storage, Inc. Online failure span determination
US11080155B2 (en) 2016-07-24 2021-08-03 Pure Storage, Inc. Identifying error types among flash memory
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US11797212B2 (en) 2016-07-26 2023-10-24 Pure Storage, Inc. Data migration for zoned drives
US10366004B2 (en) 2016-07-26 2019-07-30 Pure Storage, Inc. Storage system with elective garbage collection to reduce flash contention
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
US11734169B2 (en) 2016-07-26 2023-08-22 Pure Storage, Inc. Optimizing spool and memory space management
US11422719B2 (en) 2016-09-15 2022-08-23 Pure Storage, Inc. Distributed file deletion and truncation
US9747039B1 (en) 2016-10-04 2017-08-29 Pure Storage, Inc. Reservations over multiple paths on NVMe over fabrics
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
US20180095788A1 (en) 2016-10-04 2018-04-05 Pure Storage, Inc. Scheduling operations for a storage device
US12039165B2 (en) 2016-10-04 2024-07-16 Pure Storage, Inc. Utilizing allocation shares to improve parallelism in a zoned drive storage system
US10613974B2 (en) 2016-10-04 2020-04-07 Pure Storage, Inc. Peer-to-peer non-volatile random-access memory
US10481798B2 (en) 2016-10-28 2019-11-19 Pure Storage, Inc. Efficient flash management for multiple controllers
US10359942B2 (en) 2016-10-31 2019-07-23 Pure Storage, Inc. Deduplication aware scalable content placement
KR102742516B1 (ko) * 2016-11-01 2024-12-16 에스케이하이닉스 주식회사 데이터 처리 시스템 및 데이터 처리 방법
US10649996B2 (en) * 2016-12-09 2020-05-12 Futurewei Technologies, Inc. Dynamic computation node grouping with cost based optimization for massively parallel processing
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US11307998B2 (en) 2017-01-09 2022-04-19 Pure Storage, Inc. Storage efficiency of encrypted host system data
US11955187B2 (en) 2017-01-13 2024-04-09 Pure Storage, Inc. Refresh of differing capacity NAND
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US10979223B2 (en) 2017-01-31 2021-04-13 Pure Storage, Inc. Separate encryption for a solid-state drive
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US11016667B1 (en) 2017-04-05 2021-05-25 Pure Storage, Inc. Efficient mapping for LUNs in storage memory with holes in address space
US10516645B1 (en) 2017-04-27 2019-12-24 Pure Storage, Inc. Address resolution broadcasting in a networked device
US10141050B1 (en) 2017-04-27 2018-11-27 Pure Storage, Inc. Page writes for triple level cell flash memory
US10944671B2 (en) 2017-04-27 2021-03-09 Pure Storage, Inc. Efficient data forwarding in a networked device
US11467913B1 (en) 2017-06-07 2022-10-11 Pure Storage, Inc. Snapshots with crash consistency in a storage system
US11138103B1 (en) 2017-06-11 2021-10-05 Pure Storage, Inc. Resiliency groups
US11782625B2 (en) 2017-06-11 2023-10-10 Pure Storage, Inc. Heterogeneity supportive resiliency groups
US11947814B2 (en) 2017-06-11 2024-04-02 Pure Storage, Inc. Optimizing resiliency group formation stability
US10425473B1 (en) 2017-07-03 2019-09-24 Pure Storage, Inc. Stateful connection reset in a storage cluster with a stateless load balancer
CN107247564B (zh) * 2017-07-17 2021-02-02 苏州浪潮智能科技有限公司 一种数据处理的方法及系统
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US10831935B2 (en) 2017-08-31 2020-11-10 Pure Storage, Inc. Encryption management with host-side data reduction
US10210926B1 (en) 2017-09-15 2019-02-19 Pure Storage, Inc. Tracking of optimum read voltage thresholds in nand flash devices
US10877827B2 (en) 2017-09-15 2020-12-29 Pure Storage, Inc. Read voltage optimization
US10789211B1 (en) 2017-10-04 2020-09-29 Pure Storage, Inc. Feature-based deduplication
US10496330B1 (en) 2017-10-31 2019-12-03 Pure Storage, Inc. Using flash storage devices with different sized erase blocks
US12032848B2 (en) 2021-06-21 2024-07-09 Pure Storage, Inc. Intelligent block allocation in a heterogeneous storage system
US11024390B1 (en) 2017-10-31 2021-06-01 Pure Storage, Inc. Overlapping RAID groups
US12067274B2 (en) 2018-09-06 2024-08-20 Pure Storage, Inc. Writing segments and erase blocks based on ordering
US11520514B2 (en) 2018-09-06 2022-12-06 Pure Storage, Inc. Optimized relocation of data based on data characteristics
US10515701B1 (en) 2017-10-31 2019-12-24 Pure Storage, Inc. Overlapping raid groups
US10545687B1 (en) 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
US10884919B2 (en) 2017-10-31 2021-01-05 Pure Storage, Inc. Memory management in a storage system
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10990566B1 (en) 2017-11-20 2021-04-27 Pure Storage, Inc. Persistent file locks in a storage system
US10929053B2 (en) 2017-12-08 2021-02-23 Pure Storage, Inc. Safe destructive actions on drives
US10719265B1 (en) 2017-12-08 2020-07-21 Pure Storage, Inc. Centralized, quorum-aware handling of device reservation requests in a storage system
US10929031B2 (en) 2017-12-21 2021-02-23 Pure Storage, Inc. Maximizing data reduction in a partially encrypted volume
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US10733053B1 (en) 2018-01-31 2020-08-04 Pure Storage, Inc. Disaster recovery for high-bandwidth distributed archives
US10976948B1 (en) 2018-01-31 2021-04-13 Pure Storage, Inc. Cluster expansion mechanism
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US11494109B1 (en) 2018-02-22 2022-11-08 Pure Storage, Inc. Erase block trimming for heterogenous flash memory storage devices
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
US11847331B2 (en) 2019-12-12 2023-12-19 Pure Storage, Inc. Budgeting open blocks of a storage unit based on power loss prevention
US12393340B2 (en) 2019-01-16 2025-08-19 Pure Storage, Inc. Latency reduction of flash-based devices using programming interrupts
US12001688B2 (en) 2019-04-29 2024-06-04 Pure Storage, Inc. Utilizing data views to optimize secure data access in a storage system
US12175124B2 (en) 2018-04-25 2024-12-24 Pure Storage, Inc. Enhanced data access using composite data views
US11995336B2 (en) 2018-04-25 2024-05-28 Pure Storage, Inc. Bucket views
US10931450B1 (en) 2018-04-27 2021-02-23 Pure Storage, Inc. Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers
US12079494B2 (en) 2018-04-27 2024-09-03 Pure Storage, Inc. Optimizing storage system upgrades to preserve resources
US10853146B1 (en) 2018-04-27 2020-12-01 Pure Storage, Inc. Efficient data forwarding in a networked device
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US11436023B2 (en) 2018-05-31 2022-09-06 Pure Storage, Inc. Mechanism for updating host file system and flash translation layer based on underlying NAND technology
US11438279B2 (en) 2018-07-23 2022-09-06 Pure Storage, Inc. Non-disruptive conversion of a clustered service from single-chassis to multi-chassis
CN109117285B (zh) * 2018-07-27 2021-12-28 高新兴科技集团股份有限公司 支持高并发的分布式内存计算集群系统
US11868309B2 (en) 2018-09-06 2024-01-09 Pure Storage, Inc. Queue management for data relocation
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US10454498B1 (en) 2018-10-18 2019-10-22 Pure Storage, Inc. Fully pipelined hardware engine design for fast and efficient inline lossless data compression
US10976947B2 (en) 2018-10-26 2021-04-13 Pure Storage, Inc. Dynamically selecting segment heights in a heterogeneous RAID group
US11194473B1 (en) 2019-01-23 2021-12-07 Pure Storage, Inc. Programming frequently read data to low latency portions of a solid-state storage array
US11334254B2 (en) 2019-03-29 2022-05-17 Pure Storage, Inc. Reliability based flash page sizing
US12547317B2 (en) 2019-03-29 2026-02-10 Pure Storage, Inc. Managing voltage threshold shifts
US11775189B2 (en) 2019-04-03 2023-10-03 Pure Storage, Inc. Segment level heterogeneity
US12373340B2 (en) 2019-04-03 2025-07-29 Pure Storage, Inc. Intelligent subsegment formation in a heterogeneous storage system
US12087382B2 (en) 2019-04-11 2024-09-10 Pure Storage, Inc. Adaptive threshold for bad flash memory blocks
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US11487665B2 (en) 2019-06-05 2022-11-01 Pure Storage, Inc. Tiered caching of data in a storage system
US11269687B2 (en) 2019-06-11 2022-03-08 International Business Machines Corporation Map reduce using coordination namespace hardware acceleration
US11714572B2 (en) 2019-06-19 2023-08-01 Pure Storage, Inc. Optimized data resiliency in a modular storage system
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
US11893126B2 (en) 2019-10-14 2024-02-06 Pure Storage, Inc. Data deletion for a multi-tenant environment
US12475041B2 (en) 2019-10-15 2025-11-18 Pure Storage, Inc. Efficient data storage by grouping similar data within a zone
CN112751687B (zh) * 2019-10-30 2023-03-24 北京车和家信息技术有限公司 一种集群创建方法及装置
US11157179B2 (en) 2019-12-03 2021-10-26 Pure Storage, Inc. Dynamic allocation of blocks of a storage device based on power loss protection
US12001684B2 (en) 2019-12-12 2024-06-04 Pure Storage, Inc. Optimizing dynamic power loss protection adjustment in a storage system
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
US11188432B2 (en) 2020-02-28 2021-11-30 Pure Storage, Inc. Data resiliency by partially deallocating data blocks of a storage device
US12602364B2 (en) * 2020-03-19 2026-04-14 Red Hat, LLC Scalable object storage
US11507297B2 (en) 2020-04-15 2022-11-22 Pure Storage, Inc. Efficient management of optimal read levels for flash storage systems
US11256587B2 (en) 2020-04-17 2022-02-22 Pure Storage, Inc. Intelligent access to a storage device
US11416338B2 (en) 2020-04-24 2022-08-16 Pure Storage, Inc. Resiliency scheme to enhance storage performance
US12056365B2 (en) 2020-04-24 2024-08-06 Pure Storage, Inc. Resiliency for a storage system
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
US11768763B2 (en) 2020-07-08 2023-09-26 Pure Storage, Inc. Flash secure erase
US11513974B2 (en) 2020-09-08 2022-11-29 Pure Storage, Inc. Using nonce to control erasure of data blocks of a multi-controller storage system
US11681448B2 (en) 2020-09-08 2023-06-20 Pure Storage, Inc. Multiple device IDs in a multi-fabric module storage system
US12153818B2 (en) 2020-09-24 2024-11-26 Pure Storage, Inc. Bucket versioning snapshots
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US12093545B2 (en) 2020-12-31 2024-09-17 Pure Storage, Inc. Storage system with selectable write modes
US12229437B2 (en) 2020-12-31 2025-02-18 Pure Storage, Inc. Dynamic buffer for storage system
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
US12067282B2 (en) 2020-12-31 2024-08-20 Pure Storage, Inc. Write path selection
US12061814B2 (en) 2021-01-25 2024-08-13 Pure Storage, Inc. Using data similarity to select segments for garbage collection
US11630593B2 (en) 2021-03-12 2023-04-18 Pure Storage, Inc. Inline flash memory qualification in a storage system
US12099742B2 (en) 2021-03-15 2024-09-24 Pure Storage, Inc. Utilizing programming page size granularity to optimize data segment storage in a storage system
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective
US11832410B2 (en) 2021-09-14 2023-11-28 Pure Storage, Inc. Mechanical energy absorbing bracket apparatus
US11994723B2 (en) 2021-12-30 2024-05-28 Pure Storage, Inc. Ribbon cable alignment apparatus
CN116414796A (zh) * 2021-12-31 2023-07-11 戴尔产品有限公司 与分布式文件系统群集的节点相关联的存储装置之间的数据布局选择
CN114995992B (zh) * 2022-01-29 2025-06-03 中国华能集团清洁能源技术研究院有限公司 一种电池储能分布式计算控制系统及控制方法
CN114880272B (zh) * 2022-03-31 2024-06-07 深圳清华大学研究院 全局高度数顶点集合通信的优化方法及应用
US12439544B2 (en) 2022-04-20 2025-10-07 Pure Storage, Inc. Retractable pivoting trap door
US12314163B2 (en) 2022-04-21 2025-05-27 Pure Storage, Inc. Die-aware scheduler
US12481442B2 (en) 2023-02-28 2025-11-25 Pure Storage, Inc. Data storage system with managed flash
US12204788B1 (en) 2023-07-21 2025-01-21 Pure Storage, Inc. Dynamic plane selection in data storage system
US12572421B2 (en) 2024-03-13 2026-03-10 Pure Storage, Inc. Wear-efficient error correction in a storage system
US12487920B2 (en) 2024-04-30 2025-12-02 Pure Storage, Inc. Storage system with dynamic data management functions
US12524309B2 (en) 2024-04-30 2026-01-13 Pure Storage, Inc. Intelligently forming data stripes including multiple shards in a single failure domain

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6928459B1 (en) 2000-07-18 2005-08-09 International Business Machines Corporation Plurality of file systems using weighted allocation to allocate space on one or more storage devices
US7624118B2 (en) 2006-07-26 2009-11-24 Microsoft Corporation Data processing over very large databases
US20080114865A1 (en) * 2006-11-14 2008-05-15 Rothman Michael A Methods and apparatus to manage computing platforms
WO2009059377A1 (en) * 2007-11-09 2009-05-14 Manjrosoft Pty Ltd Software platform and system for grid computing
KR101013073B1 (ko) * 2007-12-17 2011-02-14 한국전자통신연구원 태스크 분배 및 병렬 처리 시스템과 그 방법
KR100946987B1 (ko) * 2007-12-18 2010-03-15 한국전자통신연구원 분산 병렬 처리 시스템의 다중 맵 태스크 중간 결과 정렬 및 결합 장치, 및 방법
US8996683B2 (en) * 2008-06-09 2015-03-31 Microsoft Technology Licensing, Llc Data center without structural bottlenecks
KR20100092850A (ko) 2009-02-13 2010-08-23 경희대학교 산학협력단 클라우드 컴퓨팅 환경에서의 리소스 분배 장치 및 그 방법
US8364923B2 (en) * 2009-03-30 2013-01-29 Oracle America, Inc. Data storage system manager and method for managing a data storage system
KR101033813B1 (ko) 2009-05-08 2011-05-13 주식회사 클루넷 클라우드 컴퓨팅 네트워크 시스템 및 그것의 파일 분산 방법
KR20100122197A (ko) 2009-05-12 2010-11-22 주식회사 클루넷 클라우드 컴퓨팅 네트워크 시스템 및 그것의 파일 분산 방법
US8572575B2 (en) * 2009-09-14 2013-10-29 Myspace Llc Debugging a map reduce application on a cluster
JP5929196B2 (ja) * 2009-12-18 2016-06-01 日本電気株式会社 分散処理管理サーバ、分散システム、分散処理管理プログラム及び分散処理管理方法
US20110161294A1 (en) * 2009-12-30 2011-06-30 Sun Microsystems, Inc. Method for determining whether to dynamically replicate data
US9001663B2 (en) * 2010-02-26 2015-04-07 Microsoft Corporation Communication transport optimized for data center environment
US8701113B2 (en) * 2010-05-27 2014-04-15 International Business Machines Corporation Switch-aware parallel file system
US8224825B2 (en) * 2010-05-31 2012-07-17 Microsoft Corporation Graph-processing techniques for a MapReduce engine
US9323775B2 (en) * 2010-06-19 2016-04-26 Mapr Technologies, Inc. Map-reduce ready distributed file system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9582334B2 (en) 2013-01-31 2017-02-28 International Business Machines Corporation Resource management in MapReduce architecture and architectural system
US9720740B2 (en) 2013-01-31 2017-08-01 International Business Machines Corporation Resource management in MapReduce architecture and architectural system

Also Published As

Publication number Publication date
KR101502896B1 (ko) 2015-03-24
KR20120092930A (ko) 2012-08-22
US8984085B2 (en) 2015-03-17
WO2012111905A3 (ko) 2012-10-11
US20120209943A1 (en) 2012-08-16

Similar Documents

Publication Publication Date Title
WO2012111905A2 (ko) 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법
WO2016199955A1 (ko) 코드 분산 해쉬테이블 기반의 맵리듀스 시스템 및 방법
WO2020224249A1 (zh) 基于区块链的事务处理方法、装置、设备及存储介质
WO2019156309A1 (ko) 플래시 저장장치의 내부 병렬성을 이용하는 키 값 기반의 데이터 액세스 장치 및 방법
WO2012121482A2 (ko) 클라우드 스토리지 시스템의 데이터 암호화 처리 장치 및 방법
WO2014042415A1 (ko) 지능형 분산 스토리지 서비스 시스템 및 방법
WO2014142553A1 (ko) 워크 로드에 따라 동적 자원 할당 가능한 상호 연결 패브릭 스위칭 장치 및 방법
WO2014069827A1 (en) System and method for providing data analysis service in a cloud environment
CN103038755A (zh) 多节点系统中数据缓存的方法、装置及系统
WO2020138605A1 (ko) 사용자 특성을 반영한 클러스터 기반 가상 네트워크 기능의 자원 할당 방법
WO2012050293A1 (en) Method and apparatus for sharing contents using information of group change in content oriented network environment
WO2023096118A1 (ko) 스토리지 노드 기반의 키-값 스토어를 이용하는 데이터 입출력 방법
CN110162395B (zh) 一种内存分配的方法及装置
WO2013122338A1 (ko) 검색 시스템에서 시계열 데이터의 효율적 분석을 위한 분산 인덱싱 및 검색 방법
WO2017082505A1 (ko) 멀티 운영시스템을 지닌 전자장치 및 이의 동적 메모리 관리 방법
WO2013176431A1 (ko) 단말을 서버에 할당하고 단말로의 효율적인 메시징을 위한 시스템 및 방법
WO2017073841A1 (ko) 분산 처리를 위한 대용량 파일의 블록화 방법 및 그 장치
WO2013027922A1 (ko) 클라우드 컴퓨팅 시스템의 압축 이미지 파일 관리 장치 및 방법
WO2018194237A1 (ko) 하이브리드 트랜잭셔널 메모리 시스템에서의 트랜잭션 처리 방법 및 트랜잭션 처리 장치
WO2018117504A1 (ko) 다차원 데이터를 관리하기 위한 장치 및 그 방법
WO2010093084A1 (ko) 분산 스페이스를 이용하여 분산 프로그래밍 환경을 제공하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체
WO2011040765A2 (ko) 실시간으로 대용량 랭킹을 산정하기 위한 랭킹 데이터 시스템, 랭킹 질의 시스템 및 랭킹 산정 방법
WO2018043767A1 (ko) 데이터 에이전트 컨테이너를 이용한 데이터 수집 방법 및 이의 시스템
WO2022220523A1 (ko) 블록 체인 기반의 기업 네트워크를 이용하여 접근 가능한 정보를 관리하는 분산 저장 방법 및 장치
WO2017018701A1 (ko) 블랙박스의 데이터 단편화 방지 방법 및 장치

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11858683

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11858683

Country of ref document: EP

Kind code of ref document: A2