WO2016199955A1 - 코드 분산 해쉬테이블 기반의 맵리듀스 시스템 및 방법 - Google Patents

코드 분산 해쉬테이블 기반의 맵리듀스 시스템 및 방법 Download PDF

Info

Publication number
WO2016199955A1
WO2016199955A1 PCT/KR2015/005851 KR2015005851W WO2016199955A1 WO 2016199955 A1 WO2016199955 A1 WO 2016199955A1 KR 2015005851 W KR2015005851 W KR 2015005851W WO 2016199955 A1 WO2016199955 A1 WO 2016199955A1
Authority
WO
WIPO (PCT)
Prior art keywords
server
data
hash
memory cache
file
Prior art date
Application number
PCT/KR2015/005851
Other languages
English (en)
French (fr)
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 울산과학기술원
Priority to US15/516,878 priority Critical patent/US10394782B2/en
Priority to PCT/KR2015/005851 priority patent/WO2016199955A1/ko
Priority to KR1020187003102A priority patent/KR101928529B1/ko
Publication of WO2016199955A1 publication Critical patent/WO2016199955A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks

Definitions

  • the present invention relates to a distributed file system, and more particularly, to manage data in a file system layer based on a code distributed hash table and a double-layered ring structure of an in-memory cache layer. After predicting the probability distribution of the data access request, adjust the hash key range of the chord distributed hash table of the in-memory cache layer and perform tasks based on the predicted probability distribution.
  • the present invention relates to a map reduction system and method based on a code distributed hash table capable of load balancing and increasing a cache hit rate by scheduling.
  • Cloud computing refers to the concept of delegating a computer to a cloud, which is a collection of computers, rather than entrusting the storage or operation of data to individual computers. It means. Cloud computing has been used in many fields, and the biggest use area is the big data field.
  • Such big data refers to data having a size of petabytes or more beyond a large number of terabytes, and since cloud computing cannot be processed by a single computer, cloud computing is the basis of big data processing. It is considered a platform.
  • Apache's Hadoop system which is a multi-computer cloud environment based on the Java language.
  • This Hadoop includes the Hadoop Distributed File System (HDFS), which allows you to divide and process incoming data.
  • Distributed data is a map reduce developed for high-speed parallel processing of large data in a cluster environment. Is processed by the process.
  • HDFS Hadoop Distributed File System
  • the Hadoop distributed file system applied in Hadoop is a central file system, and there is a manager that manages the directory in the center, and the manager who manages the directory performs all the management of what data is in each server. There is a problem of poor performance in managing a lot of data.
  • the Hadoop distributed file system does not consider what is in the file at all and divides the file appropriately so that it is distributed and stored on several servers. Maybe not at all.
  • the present invention manages data in a ring structure of a dual layer of a file system layer and an in-memory cache layer based on a code distribution hash table, predicts a probability distribution of a data access request according to a user's data access request frequency, and then predicts the data. Based on the probability distribution, load balancing is possible by adjusting the hash distribution range of the code distribution hash table of the in-memory cache layer and scheduling the task, and the map reduction system based on the code distribution hash table that can increase the cache hit rate; To provide a method.
  • the above-described present invention is a code reduction hash table based map reduce system, comprising: a plurality of servers including a file system and an in-memory cache storing data based on the code distributed hash table, and stored in the file system and the in-memory cache.
  • the data management is managed in a dual layer ring structure, and when a data access request for a specific file is received from the outside, the map reduce task is allocated to a server that stores the data access requested files among the plurality of servers. And a task scheduler that outputs the result of the execution in response to the data access request.
  • the task scheduler when receiving the data access request, retrieves the hash through the name of the file and checks the hash range assigned to the in-memory cache of each server to search the server that stores the file; And receiving the metadata about the file from the searched server and assigning the map reduce task to the servers in which the file is stored.
  • the task scheduler may receive a data block structure of the file and information of a server in which data blocks are distributed and stored as the metadata, and allocate the map reduce task to servers in which each data block is stored. It is done.
  • the in-memory cache stores hashes corresponding to data using the code distribution hash table, and the hashes corresponding to hashed ranges allocated to the in-memory caches are stored in the hashed storage. And stores data corresponding to the hash.
  • the task scheduler may be configured to dynamically change and set the hash range of the in-memory cache of each server for each server according to the frequency of data access requests for each server.
  • the task scheduler may store an intermediate calculation result generated in the map reduce task process for each data block of the file in the file system.
  • the intermediate calculation result may be generated to have different solutions according to the data blocks, and may be distributed to different servers.
  • the intermediate calculation result may be stored in an intermediate result reuse cache area of the in-memory cache.
  • system is linked with the task scheduler, characterized in that it further comprises a resource manager for managing the addition, removal, recovery of the new server or upload of the file.
  • the present invention also provides a method for performing a map reduce task in a map distributed system based on a code distributed hash table including a plurality of servers having a file system and an in-memory cache and a job scheduler for allocating a map reduce task to the server.
  • the file system and the in-memory cache may store the data based on a code distribution hash table.
  • the in-memory cache stores hashes corresponding to data using the code distribution hash table, and receives a hash range corresponding to a hash range corresponding to the hash range and the corresponding hash. It is characterized in that the data corresponding to the.
  • the hashing range may be dynamically changed and set for each server according to a data access request frequency for each server.
  • the map reduce task may be processed in servers in which the respective data blocks are stored, and an intermediate calculation result generated in the process of processing the map reduce task may be stored in the file system.
  • the intermediate calculation result may be generated to have different solutions according to the data blocks, and may be distributed to different servers.
  • the intermediate calculation result may be stored in an intermediate result reuse cache area of the in-memory cache.
  • the data is managed by a ring structure of a file system layer based on a code distribution hash table and a dual layer of an in-memory layer, and the probability distribution of the data access request is predicted according to the frequency of the user's data access request. Based on the probability distribution, load balancing is possible by adjusting the hash distribution range of the code distribution hash table of the in-memory layer and scheduling the task, and there is an advantage of increasing the cache hit rate.
  • a code distributed file system is used instead of a centrally controlled distributed file system, and in the code distributed file system, each server manages code routing tables and manages metadata centrally. Extensibility is guaranteed because you can access remote files directly, rather than through them.
  • in-memory cache that actively utilizes the distributed memory environment, indexes key value data using code distributed hash tables, and not only input data but also intermediate calculation results generated as a result of map tasks.
  • the cache hit rate can be increased by storing in the.
  • indexing of the in-memory cache is managed independently of the code distribution hash table that manages the file system, so that the range of hashing can be flexibly adjusted according to the frequency of data requests, so that even data access can be made for each server.
  • the task scheduler by applying a local recognition pair scheduling algorithm, based on the range that the task scheduler distributes, it checks which data is stored in the in-memory cache of the server and schedules the data to be reused. If you are biased in, there is an advantage that the data access is evenly distributed to all servers by adjusting the hash range.
  • FIG. 1 is an operation conceptual diagram of a code distributed file system according to an embodiment of the present invention
  • FIG. 2 is a conceptual diagram illustrating data management using a code distribution hash table based file system and an in-memory dual layer ring structure according to an embodiment of the present invention
  • 3 to 5 are diagrams illustrating a data access probability distribution graph according to an embodiment of the present invention.
  • FIG. 6 is an exemplary diagram of a cumulative probability distribution graph according to an embodiment of the present invention.
  • FIG. 7 is a conceptual diagram illustrating a MapReduce task performing operation in a MapReduce system based on a code distribution hash table according to an embodiment of the present invention.
  • a code distributed file system is used instead of a conventional centralized distributed file system such as Hadoop.
  • each server manages code routing tables and can directly access remote files without using centrally managed metadata, thereby ensuring scalability.
  • FIG. 1 illustrates a concept of a file system applied to a code distributed hash table (DHT) based map reduce system according to an embodiment of the present invention.
  • DHT code distributed hash table
  • the central directory stores all the information about the data of each node, while the code distributed file system of the present invention is implemented to have information about neighbor nodes in each node.
  • each node may be implemented to have information about neighboring nodes immediately adjacent to each other indicated by arrows and neighboring nodes multiplied by two again from the adjacent nodes as shown in FIG. 1.
  • the neighboring node immediately next to the node with hash number 0 (100) is node 102 with hash number 1, node 104 with hash number 2, node 106 with hash number 4, hash Information about node 114 having a key of 8 is known.
  • the node 100 having hashing of 0 if a user request message for data corresponding to hashing 7, for example, is received by the node 100 having hashing of 0, the node with hashing is 0. Since the node 100 does not know information about the node 112 having the hashed 7, the node 102 having the hashed 1 connected to the arrow as shown in FIG. 1 is known. The user request message is transmitted to the node 104 having 2, the node 106 having 4, and the node 114 having 8 having a hash.
  • the node 100 having a hash value of 0 has a user request message to the node 106 having the largest hash value 4 among the hash values less than 7 because the hash value 8 exceeds 7 of the hash values known to him. Will be sent.
  • the node 106 having the hashing 4 the node 108 having the hashing 5, the node 110 having the hashing 6, and the node 114 having the hashing 8 are connected to the arrows known to each other.
  • the node 106 whose hashing is 4 has a user request to the node 110 which stores the largest hashing 6 among the hashings smaller than 7 since the hashing 12 of the hashing 12 is greater than 7. It will send a message.
  • the node 110 having the hash request 6 receiving the user request message again searches for a node to transmit the user request message among nodes known to the user.
  • the node request 6 has a user request. Since the node 112 storing the hashed 7 corresponding to the message is known, the user request message is transmitted to the node 112 storing the hashed 7.
  • data can be read from the node 100 storing the hashed zero which first receives the user request message requesting the data corresponding to the hashed seven.
  • FIG. 2 illustrates a concept of managing data in a dual-layer ring structure of a code distribution hash table based file system and an in-memory cache according to an embodiment of the present invention.
  • each server manages files only with information about its peers. Not only applied to the file system, but also applied to the in-memory cache, which is a cache memory interworking with the file system, to manage files in a dual layer ring structure.
  • the distributed file system managed by each server includes file systems 202, 206, 210, 214, 218, and 222 and in memory 200, 204, 208, and 212, as shown in FIG. , 216, and 220).
  • the file system of the plurality of servers and the in-memory cache may be connected in a dual layer ring structure to process a data access request from a user.
  • such a file system may refer to a mass storage device such as a hard disk
  • the in-memory cache may refer to a cache memory or the like, but is not limited thereto.
  • a hash key range is allocated to each server's file system and in-memory cache, and information about the hash is managed by a job scheduler described later. You can handle the data access request message for a specific file.
  • Each server can be configured with a range of hashes it manages to store, which can be set in both the file system and in-memory cache.
  • the file system 202 of server A may have a hash range set to store hashes corresponding to a hash range of 56 to 5, and the in-memory cache 200 may have a hash range of 57 to 5. It can be set to have.
  • file system 206 of server B has a hash range of 5-15, and in-memory cache 204 may be set to have a hash range of 5-11.
  • the file system 210 of the C server may have a hash range of 15-26, and the in-memory cache 208 may be set to have a hash range of 11-18.
  • file system 214 of server D may have a hash range of 26-39, and in-memory cache 212 may be set to have a hash range of 18-39.
  • file system 218 of the E server may have a hash range of 39 to 47, and the in-memory cache 216 may be set to have a hash range of 39 to 48.
  • file system 222 of the F server may have a hash range of 47 to 56, and the in-memory cache 220 may be set to have a hash range of 48 to 57.
  • the range of the hash can be changed based on the number of data access requests from the user to each server. For example, in the case of the B server, the hashing range of the file system 206 is 5 to 15, while the hashing range of the in-memory cache 204 is set to 5 to 11.
  • the reason for changing the hash range of the in-memory cache is that the overhead of the move to the file system of the other server in the file system is large. This is because the overhead is relatively low when moving to the in-memory cache of another server, and if the data is not found in the in-memory cache, it is not a big problem because the data is found in the file system.
  • the hashing range allocated to the in-memory cache is changed and set based on the number of data access requests from the user, thereby improving data search efficiency.
  • FIG. 5 illustrates a graph in which the conventional histogram of FIG. 3 and the most recent histogram of FIG. 4 are combined using a moving average formula according to a distribution approaching hashing, and the graph shown in FIG. It can represent the probability distribution that data access occurs.
  • a graph of the cumulative probability distribution as shown in FIG. 6 may be calculated using the probability distribution as shown in FIG. 5.
  • the intervals of the respective servers may be displayed to have the same probability distribution in the cumulative probability distribution, and in this case, the server having data having relatively many accesses (server 2, The range of hashing of server4) is reduced, and the range of hashing of servers (server 1, server 3, server 5) with relatively less accessible data can be widened. Accordingly, based on the above hashed range, the hashed range allocated in the in-memory cache of each server may be changed to the hashed range according to data access of each server.
  • the hashing range of the in-memory cache can be changed dynamically according to the probability distribution that data access occurs per server differently from the hashing range allocated to the original file system. Load balance can be balanced to increase file system performance.
  • the in-memory cache 212 of the D server since the in-memory cache 212 of the D server does not have much data access, the in-memory cache 212 of the D server has a wide range to be harmed.
  • in-memory cache 204 of server B has a relatively large amount of data access, so the server in-memory cache 204 of server B has a narrow hash range. You can manage hashes that are smaller than the file system's hash range.
  • a portion of the load that the server B is responsible for is reduced by reducing the hash range allocated to the in-memory cache 204 of the server B.
  • the rest is to allow the server to run on the C server so that the load is balanced between servers to increase performance.
  • FIG. 7 illustrates a concept of performing a MapReduce task in a MapReduce system based on a code distribution hash table according to an embodiment of the present invention.
  • the code distribution hash table-based MapReduce system includes files of a plurality of servers connected by a job scheduler 702 and a resource manager 704 in a dual layer ring structure.
  • the job scheduler 702 manages data in a ring structure of a dual layer of a file system layer based on a code distributed hash table and an in-memory cache layer, and assigns map reduce tasks to each server.
  • the resource manager 704 manages the addition, removal, recovery, etc. of new servers, and also manages upload of files.
  • each server accesses the data blocks of the distributed hash table file system in a distributed manner.
  • the centrally-operated task scheduler 702 and the resource manager 704 may be implemented to have a minimum function for scalability of the system.
  • the task scheduler 702 determines the hashing of each data block by using a hash function, and determines which server to store each data block through the hashing.
  • each server can store and manage up to m servers in a distributed hash table.
  • the value of m can be selected by the administrator of the system, and the value of m is 2 when S is the total number of servers. m -1> S must be satisfied.
  • the cluster configuration of the present invention is relatively static, so storing a large number of servers in a hash table does not significantly affect scalability. This has the effect of improving data access performance.
  • the distributed hash table which holds all the server information, allows direct access to files in consideration of the key range of each file, and has excellent scalability compared to conventional systems such as centralized Hadoop.
  • the hash table stored in each server does not store metadata of all files, but stores only hash ranges which are in charge of the servers, so that the capacity of the hash table is very small and there is little overhead.
  • a server when a data access request, it checks whether the data destruction is within its scope, and if it is in scope, provides data access from the server's file directory. To be passed to the server.
  • the distributed hash table updates the information of other servers only when server addition or removal occurs, and detects a server failure by periodically sending and receiving heartbeat messages. If one server malfunctions, the resource manager 704 may cause the lost file blocks to recover from replicated blocks of the other server.
  • the replication of these file blocks is replicated by k different hash functions through k different hash functions and stored on different servers, and the k value can be adjusted by the system administrator.
  • the cache hierarchy of the in-memory cache (200, 204, 208, 212, 216, 220) can be divided into two partitions, dCache and iCache, where dCache is the partition where the input data block is stored and iCache is the intermediate
  • dCache is the partition where the input data block is stored
  • iCache is the intermediate
  • the load balancing imbalance problem can be solved by providing access to the cache of another server even when the input data blocks are not
  • the present invention may configure and manage metadata to distinguish the intermediate calculation result such as an application ID, an input data block, and an application parameter. Therefore, when a new job comes in, this metadata is searched to determine whether the intermediate calculation results can be reused, and if metadata that can be reused is found, the stored intermediate calculation results can be directly processed during the reduction process without remapping. To be handled.
  • the input data block is determined in dCache and the input data is accessed from the cache as soon as it is available. If the input data block is not available in dCache, the input data can be accessed through the distributed hash table filesystem layer.
  • the centralized work scheduler 702 manages the hashed range of the in-memory cache and allocates the hashed area for each server after division.
  • the hashing range allocated to each server is dynamically adjusted, in case of input data with a large number of access requests, it is stored in multiple servers.
  • the task scheduler processes the input data in a plurality of servers by allowing the input data to be replicated to multiple servers through locality-aware fair scheduling. Do it. This ensures load balancing while maximizing the cache utilization of successive operations.
  • the task scheduler 702 allocates a hash range of the in-memory caches 200, 204, 208, 212, 216, and 220 of each server as shown in FIG. Information on the extent of the hashing range of the systems 202, 206, 210, 214, 218, and 222 is managed.
  • a data access request from a user for a specific file may be received through the specific data access application 700.
  • the task scheduler 702 allocates a MapReduce task to servers that store files for which data is requested by a user among a plurality of servers, and accesses the result value of the result of the MapReduce task. Can be output in response to a request.
  • the task scheduler 702 may first obtain a hash corresponding to the requested data by returning a hash function with the name of a file requested for data access from the user.
  • the task scheduler 702 stores between 26 and 39 for hashing by referencing the hashing range information allocated for the file system. It is found that the server is stored in the D server, and accesses the file system 214 of the D server in order to obtain information about the file corresponding to No. 38 (S1).
  • the file corresponding to No. 38 may be a single file or the file may be divided into several files and distributed to multiple servers. However, even if the file corresponding to hashed number 38 is divided and distributed, the server D has all the information about the file corresponding to number 38.
  • the server D calculates the metadata information of the file in the task scheduler. It provides to 702 (S2).
  • the task scheduler 702 finds that the file corresponding to No. 38 to be decomposed using metadata information is divided into two data blocks and distributed to other servers. Check the server that corresponds to the in-memory cache that has hashed range of 56.
  • the task scheduler 702 uses the hashing range information table 703 assigned to the in-memory cache for each server. We will check the in-memory cache corresponding to hashish 5 and hashish 56.
  • the in-memory cache 204 of the B server has 5 hashes
  • the in-memory cache 220 of the F server has 56 hashes.
  • the task scheduler 702 can know that the file for which data access is requested is divided into two data blocks and distributed to different servers, and that two mappers must be executed on the B server and the F server, respectively. (map task schedule) is performed (S3).
  • the server performing map reduction receives the map task schedule information from the job scheduler 702 and executes the map function on the server B and the server F in which the data blocks of the file for which access is requested are distributed and stored. Generate data.
  • the job scheduler 702 reads data from the in-memory cache 204 of the B server and the in-memory cache 220 of the F server when the 5 and the 56 data of the hash are read directly from the corresponding in-memory cache, However, if there are no data 5 and 56 data in the in-memory cache, data can be read from the file system.
  • the data of No. 56 is stored in the F server on the in-memory cache 220 but stored in the file system of the A server on the file system 202, and a cache miss may occur.
  • the task scheduler 702 reads 56 times of data from the file system 202 of the server A (S4).
  • a hash is generated from the file system 206 of the server B that stores the data to be hashed five times.
  • the data of key 5 is read.
  • the hashing ranges allocated to the in-memory cache 204 and the file system 206 are similar to each other, so that they may be read from the file system of the same server.
  • the intermediate calculation results are generated, and these intermediate calculation results can be derived with different solutions according to data blocks.
  • the task scheduler 702 may check how many hashes are output as the intermediate calculation result output during the map task process and store them in the in-memory cache of the server having the corresponding hash range. At this time, for example, hashes corresponding to two output values are mapped to hashed ranges managed by the in-memory cache 216 of the E server, and hashes managed by the in-memory cache 208 of the C server. If it is mapped to the key range, the task scheduler 702 stores the result value in the in-memory cache 216 of the E server and the in-memory cache 208 of the C server, respectively (S5).
  • the job scheduler 702 informs the server that the intermediate calculation result of executing the map task is stored on the E server and the C server, so that a reduce job must be executed on the E server and the C server, respectively.
  • Reduce task scheduling is performed (S6).
  • the E server and the C server return the reduce function to generate an output file for the final result, that is, a data access request, and provide the same to the user.
  • a MapReduce system based on a code distributed hash table data management is performed by a file structure layer based on a code distributed hash table and a ring structure of a dual layer of an in-memory cache layer to access a user's data.
  • load balancing is possible by adjusting the hashing range of the code distribution hash table of the in-memory cache layer and scheduling the task based on the predicted probability distribution.
  • the hit ratio can be increased.

Abstract

본 발명에 따르면, 코드 분산 해쉬테이블 기반의 맵리듀스 시스템에서, 코드 분산 해시테이블 기반의 파일 시스템 계층과 인메모리 캐시 계층의 이중계층의 링구조로 데이터를 관리하고 사용자의 데이터 접근 요청 빈도에 따라 데이터 접근 요청의 확률분포를 예측한 후, 예측된 확률분포를 기반으로 인메모리 캐시 계층의 코드 분산해시테이블의 해시키 범위를 조정하고 테스크를 스케줄링함으로써 로드 밸런싱이 가능하며, 캐시 히트율을 높일 수 있다.

Description

코드 분산 해쉬테이블 기반의 맵리듀스 시스템 및 방법
본 발명은 분산 파일 시스템에 관한 것으로, 특히 코드 분산 해시테이블 기반의 파일 시스템 계층과 인메모리 캐시 계층의 이중계층 링구조(double-layered ring structure)로 데이터를 관리하고 사용자의 데이터 접근 요청 빈도에 따라 데이터 접근 요청의 확률분포를 예측한 후, 예측된 확률분포를 기반으로 인메모리 캐시 계층의 코드 분산해시테이블(chord distributed hash table)의 해시키 범위(hash key range)를 조정하고 테스크(task)를 스케줄링함으로써 로드 밸런싱(load balancing)이 가능하며, 캐시 히트율을 높일 수 있는 코드 분산 해시테이블 기반의 맵리듀스 시스템 및 방법에 관한 것이다.
클라우드 컴퓨팅(cloud computing)이란 다수의 컴퓨터를 하나의 집합체로 묶어 가상의 연산집단인 클라우드를 구성하는 것으로, 데이터의 저장이나 연산을 개개의 컴퓨터에게 맡기는 것이 아니라 컴퓨터들의 집합체인 클라우드에게 위임하는 개념을 뜻한다. 클라우드 컴퓨팅은 여러 분야에서 활용되고 있으며 최근 가장 큰 쓰임새로 주목 받고 있는 분야는 '빅데이터' 분야이다.
이러한, 빅데이터는 대량의 테라바이트(Tera Byte)를 넘어 페타바이트(Peta Byte)나 그 이상의 크기를 가지는 데이터를 의미하는 것으로, 단일 컴퓨터로 처리하는 것이 불가능하기 때문에 클라우드 컴퓨팅은 빅데이터 처리의 기본 플랫폼으로 여겨지고 있다.
한편, 빅데이터를 위한 클라우드 컴퓨팅 환경 중 대표적으로 Java 언어를 기반으로 한 다중 컴퓨터 클라우드 환경인 아파치(Apache)의 하둡(Hadoop) 시스템 등이 있다.
이러한 하둡은 입력되는 데이터를 나누어 처리할 수 있도록 하는 하둡 분산 파일 시스템(Hadoop Distributed File System : HDFS)을 포함하며, 분산 저장된 데이터들은 대용량 데이터를 클러스터 환경에서 고속 병렬 처리하기 위해 개발된 맵리듀스(mapreduce)과정에 의해 처리된다.
그러나, 하둡에서 적용되고 있는 하둡 분산 파일 시스템은 중앙 파일 시스템으로써 중앙에 디렉토리를 관리하는 매니저가 있으며, 디렉토리를 관리하는 매니저가 각 서버에서 어떠한 데이터를 가지고 있는지에 대한 모든 관리를 수행하도록 하고 있어 너무 많은 데이터를 관리함에 따라 성능이 떨어지는 문제점이 있다.
또한, 하둡 분산 파일 시스템에서는 파일안에 어떠한 내용이 있는지는 전혀 고려하지 않고 파일을 적당히 분할하여 여러 개의 서버에 분산 저장하도록 하고 있어 특정 서버에만 필요한 데이터가 몰려서 저장되어 있을 수 있고, 어떤 서버는 저장된 데이터가 아예 없을 수도 있다.
따라서, 하둡에서 맵리듀스 작업 요청이 수신되는 경우 맵리듀스 작업 요청 처리에 필요한 특정 데이터가 많이 몰려 있는 서버에서만 맵이라는 함수가 여러개 돌아가게 되어 로드 밸런스가 맞지 않게 됨으로써 성능이 저하되는 문제점이 있다.
따라서, 본 발명에서는 코드 분산 해시테이블 기반의 파일 시스템 계층과 인메모리 캐시 계층의 이중계층의 링구조로 데이터를 관리하고 사용자의 데이터 접근 요청 빈도에 따라 데이터 접근 요청의 확률분포를 예측한 후, 예측된 확률분포를 기반으로 인메모리 캐시 계층의 코드 분산해시테이블의 해시키 범위를 조정하고 테스크를 스케줄링함으로써 로드 밸런싱이 가능하며, 캐시 히트율을 높일 수 있는 코드 분산 해시테이블 기반의 맵리듀스 시스템 및 방법을 제공하고자 한다.
상술한 본 발명은 코드 분산 해시테이블 기반의 맵리듀스 시스템으로서, 코드 분산 해시테이블을 기반으로 데이터를 저장하는 파일 시스템과 인메모리 캐시를 구비하는 다수의 서버와, 상기 파일 시스템과 인메모리 캐시에 저장된 데이터를 이중계층의 링구조로 관리하며, 외부로부터 특정 파일에 대한 데이터 접근 요청 수신 시 상기 다수의 서버 중 상기 데이터 접근 요청된 파일을 저장하고 있는 서버들로 맵리듀스 테스크를 할당하여 상기 맵리듀스 테스크 수행된 결과값을 상기 데이터 접근 요청에 대한 응답으로 출력하는 작업 스케줄러를 포함한다.
또한, 상기 작업 스케줄러는, 상기 데이터 접근 요청 수신 시, 상기 파일의 이름을 통해 해시키를 추출하고 각 서버의 인메모리 캐시에 할당된 해시키 범위를 확인하여 상기 파일을 저장하고 있는 서버를 검색하며, 상기 검색된 서버로부터 상기 파일에 대한 메타데이터를 수신하여 상기 파일이 저장된 서버들로 상기 맵리듀스 테스크를 할당하는 것을 특징으로 한다.
또한, 상기 작업 스케줄러는, 상기 파일에 대한 데이터 블록 구조와 각 데이터 블록이 분산 저장된 서버의 정보를 상기 메타데이터로 수신하며, 상기 각 데이터 블록이 저장된 서버들로 상기 맵리듀스 테스크를 할당하는 것을 특징으로 한다.
또한, 상기 인메모리 캐시는, 상기 코드 분산 해시테이블을 이용하여 데이터에 대응되는 해시키를 저장하고 있으며, 상기 해시키의 저장에 있어서 상기 인메모리 캐시에 할당된 해시키 범위에 해당하는 해시키와 상기 해당 해시키에 대응하는 데이터를 저장하고 있는 것을 특징으로 한다.
또한, 상기 작업 스케줄러는, 각 서버의 상기 인메모리 캐시의 해시키 범위를 각 서버에 대한 데이터 접근 요청 빈도에 따라 서버별로 동적으로 변경 설정하는 것을 특징으로 한다.
또한, 상기 작업 스케줄러는, 상기 파일의 각 데이터 블록에 대한 상기 맵리듀스 테스크 처리 과정에서 발생하는 중간계산결과를 상기 파일 시스템에 저장하는 것을 특징으로 한다.
또한, 상기 중간계산결과는, 상기 각 데이터 블록에 따라 서로 다른 해시키를 가지도록 생성되며, 각각 다른 서버로 분산되는 것을 특징으로 한다.
또한, 상기 중간계산결과는, 상기 인메모리 캐시의 중간 결과물 재사용 캐시 영역에 저장되는 것을 특징으로 한다.
또한, 상기 시스템은, 상기 작업 스케줄러와 연동되며, 새로운 서버의 추가, 제거, 복구를 관리하거나 파일의 업로드를 관리하는 리소스 매니저를 더 포함하는 것을 특징으로 한다.
또한, 본 발명은 파일 시스템과 인메모리 캐시를 구비하는 다수의 서버와 상기 서버로 맵리듀스 테스크를 할당하는 작업 스케줄러를 포함하는 코드 분산 해시테이블 기반의 맵리듀스 시스템에서 맵리듀스 테스크 수행방법에 있어서, 상기 작업 스케줄러에서 상기 파일 시스템과 인메모리 캐시에 저장된 데이터를 이중계층의 링구조로 관리하는 단계와, 외부로부터 특정 파일에 대한 데이터 접근 요청을 수신하는 단계와, 상기 파일에 대한 해시키를 추출하여 상기 파일을 저장하고 있는 파일 시스템의 서버를 검색하는 단계와, 상기 검색된 서버로부터 상기 파일에 대한 데이터 블록 구조와 각 데이터 블록의 분산 저장된 서버의 정보를 메타데이터로 수신하는 단계와, 상기 각 데이터 블록이 저장된 서버들로 맵리듀스 테스크를 할당하는 단계와, 상기 맵리듀스 테스크 수행된 결과값을 상기 작업 요청에 대한 응답으로 출력하는 단계를 포함한다.
또한, 상기 파일 시스템과 인메모리 캐시는, 코드 분산 해시테이블을 기반으로 상기 데이터를 저장하는 것을 특징으로 한다.
또한, 상기 인메모리 캐시는, 상기 코드 분산 해시테이블을 이용하여 데이터에 대응되는 해시키를 저장하고 있으며, 기설정된 해시키 범위를 할당받아, 상기 해시키 범위에 해당하는 해시키와 상기 해당 해시키에 대응하는 데이터를 저장하고 있는 것을 특징으로 한다.
또한, 상기 해시키 범위는, 각 서버에 대한 데이터 접근 요청 빈도에 따라 서버별로 동적으로 변경 설정되는 것을 특징으로 한다.
또한, 상기 맵리듀스 테스크는, 상기 각 데이터 블록이 저장된 서버들에서 처리되며, 상기 맵리듀스 테스크의 처리 과정에서 발생하는 중간계산결과가 상기 파일 시스템에 저장되는 것을 특징으로 한다.
또한, 상기 중간계산결과는, 상기 각 데이터 블록에 따라 서로 다른 해시키를 가지도록 생성되며, 각각 다른 서버로 분산되는 것을 특징으로 한다.
또한, 상기 중간계산결과는, 상기 인메모리 캐시의 중간 결과물 재사용 캐시 영역에 저장되는 것을 특징으로 한다.
본 발명에 따르면, 코드 분산 해시테이블 기반의 파일 시스템 계층과 인메모리 계층의 이중계층의 링구조로 데이터를 관리하고 사용자의 데이터 접근 요청 빈도에 따라 데이터 접근 요청의 확률분포를 예측한 후, 예측된 확률분포를 기반으로 인메모리 계층의 코드 분산해시테이블의 해시키 범위를 조정하고 테스크를 스케줄링함으로써 로드 밸런싱이 가능하며, 캐시 히트율을 높일 수 있는 이점이 있다.
또한, 본 발명에 따르면, 중앙제어식 분산파일시스템 대신에 코드 분산파일시스템(Chord distributed file system)을 사용하고, 코드 분산파일시스템에서 각 서버는 코드 라우팅 테이블을 관리하면서 중앙에서 관리되는 메타데이터(metadata)를 통하지 않고 바로 원격(remote)의 파일에 접근할 수 있기 때문에 확장성이 보장되는 이점이 있다.
또한, 분산메모리 환경을 적극적으로 활용하는 인메모리 캐시를 사용하고, 코드 분산해시테이블을 이용하여 키밸류 데이터를 인덱싱하며, 입력 데이터뿐만 아니라 맵테스크의 결과로써 생성된 중간계산결과도 인메모리 캐시에 저장함으로써 캐시 히트율을 높일 수 있다.
또한, 인메모리 캐시의 인덱싱은 파일 시스템을 관리하는 코드 분산해시테이블과 독립적으로 관리되어, 해시키 범위를 데이터 요청의 빈도에 따라 유동적으로 조절함으로써 서버마다 고른 데이터 접근이 이루어질 수 있도록 할 수 있는 이점이 있다.
또한, 지역성인식 페어 스케줄링 알고리즘을 적용하여 작업 스케줄러가 분산 해시키 범위를 토대로 어떤 서버의 인메모리 캐시에 필요한 데이터가 저장되어 있을지를 확인하여 데이터들을 재사용할 수 있도록 스케줄링하고, 만약 데이터 요청이 특정 데이터에 편향되어 있는 경우, 해시키 범위를 조절함으로써 모든 서버에 데이터 접근이 고루 이루어질 수 있도록 하는 이점이 있다.
도 1은 본 발명의 실시예에 따른 코드 분산 파일 시스템의 동작 개념도,
도 2는 본 발명의 실시예에 따른 코드 분산 해시테이블 기반의 파일 시스템과 인메모리의 이중계층 링구조로 데이터를 관리하는 개념도,
도 3 내지 도 5는 본 발명의 실시예에 따른 데이터 접근 확률 분포 그래프 예시도,
도 6은 본 발명의 실시예에 따른 누적 확률분포 그래프 예시도,
도 7은 본 발명의 실시예에 따른 코드 분산 해시테이블 기반의 맵리듀스 시스템에서 맵리듀스 테스크 수행 동작 개념도.
이하, 첨부된 도면을 참조하여 본 발명의 동작 원리를 상세히 설명한다. 하기에서 본 발명을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
먼저, 본 발명에서는 하둡 등과 같은 종래 중앙제어식 분산 파일 시스템 대신에 코드 분산 파일 시스템(chord distributed file system)을 사용하였다. 이러한 코드 분산 파일 시스템에서 각 서버는 코드 라우팅 테이블을 관리하면서 중앙에서 관리되는 메타데이터(metadata)를 통하지 않고 바로 원격의 파일에 접근할 수 있기 때문에 확장성이 보장될 수 있다.
도 1은 본 발명의 실시예에 따른 코드 분산 해시테이블(chord distributed hash table : DHT) 기반의 맵리듀스(mapreduce) 시스템에 적용된 파일 시스템의 개념을 도시한 것이다.
이하, 위 도 1을 참조하여 본 발명의 코드 분산 파일 시스템에서의 동작을 보다 상세히 설명하기로 한다.
종래 중앙 제어식 분산파일 시스템에서는 중앙 디렉토리에 각각의 노드에서 가지고 있는 데이터에 대한 정보를 모두 저장하고 있는 반면에 본 발명의 코드 분산 파일 시스템에서는 각각의 노드에서 이웃 노드에 대한 정보를 가지도록 구현된다.
즉, 각각의 노드는 도 1에 도시된 바와 같이 화살표로 표시된 바로 옆의 인접 노드와 인접 노드로부터 다시 2씩 곱한 이웃 노드들에 대한 정보를 가지도록 구현될 수 있다. 예를 들어 해시키가 0번(100)인 노드 바로 옆의 이웃 노드인 해시키가 1인 노드(102)와 해시키가 2인 노드(104), 해시키가 4인 노드(106), 해시키가 8인 노드(114)에 대한 정보를 알 수 있다.
이때, 위와 같이 구현되는 본 발명의 코드 분산 파일 시스템에서 해시키가 0인 노드(100)로 예를 들어 해시키 7에 대응되는 데이터에 대한 사용자 요청 메시지가 수신되는 경우, 해시키가 0인 노드(100)에서는 해시키 7를 가지고 있는 노드(112)에 대한 정보를 알지 못하므로, 자신이 알고 있는 도 1에서 도시된 바와 같은 화살표로 연결되어 있는 해시키가 1인 노드(102), 해시키가 2인 노드(104), 해시키가 4인 노드(106), 해시키가 8인 노드(114) 중, 해시키가 4인 노드(106)로 사용자 요구 메시지를 전송한다. 이때, 해시키가 0인 노드(100)는 자신이 알고 있는 해시키 중 해시키 8은 7을 넘어버리므로 7보다 작은 해시키 중 가장 큰 해시키 4를 가지고 있는 노드(106)로 사용자 요구 메시지를 전송하게 되는 것이다.
그러면, 해시키가 4인 노드(106)에서는 다시 자신이 알고 있는 화살표로 연결되어 있는 해시키가 5인 노드(108), 해시키가 6인 노드(110), 해시키가 8인 노드(114), 해시키가 12인 노드(116) 중 해시키가 6인 노드(110)로 사용자 요구 메시지를 전송한다. 이때, 해시키가 4인 노드(106)는 자신이 알고 있는 해시키중 해시키 12는 7을 넘어버리므로 7보다 작은 해시키 중 가장 큰 해시키 6을 저장하고 있는 노드(110)로 사용자 요구 메시지를 전송하게 되는 것이다.
이어, 다시 사용자 요구 메시지를 수신한 해시키가 6인 노드(110)에서도 자신이 알고 있는 노드 중 사용자 요구 메시지를 전송할 노드를 검색하게 되는데, 이때, 해시키가 6인 노드(110)에서는 사용자 요구 메시지에 대응되는 해시키 7을 저장하고 있는 노드(112)를 알고 있으므로, 해시키 7을 저장하고 있는 노드(112)로 사용자 요구 메시지를 전송하게 된다.
위와 같은 방식을 통해 해시키 7에 대응되는 데이터를 요구하는 사용자 요구 메시지를 최초로 수신한 해시키 0을 저장하고 있는 노드(100)에서 데이터를 읽어올 수 있게 되는 것이다.
도 2는 본 발명의 실시예에 따른 코드 분산 해시테이블 기반의 파일 시스템과 인메모리 캐시의 이중계층 링구조로 데이터를 관리하는 개념을 도시한 것이다.
위 도 2를 참조하면, 본 발명에서는 하둡 등에서와 같은 중앙 디렉토리가 존재하지 않으며, 각각의 서버에서 자신의 피어(peer)들에 대한 정보만 가지고서 파일 관리를 하게 되며, 이러한 파일 관리 기법을 파일 시스템에만 적용한 것이 아니라 파일 시스템과 연동되는 캐시메모리인 인메모리 캐시에도 적용하여 이중계층의 링구조로 파일을 관리하게 된다.
이하, 도 2를 참조하여 코드 분산 해시테이블 기반의 코드 분산 파일 시스템에서의 동작을 보다 상세히 설명하기로 한다.
먼저, 각각의 서버에서 관리하는 분산 파일 시스템은 도 2에서 보여지는 바와 같이 파일 시스템(202, 206, 210, 214, 218, 222)과 인메모리 캐시(in memory)(200, 204, 208, 212, 216, 220)로 구성될 수 있으며, 본 발명에서는 이러한 다수의 서버의 파일 시스템과 인메모리 캐시를 이중계층의 링구조로 연결하여 사용자로부터의 데이터 접근(access) 요청을 처리할 수 있다. 이때, 이러한 파일 시스템은 하드 디스크(hard disk)의 등의 대용량 저장장치를 말할 수 있으며, 인메모리 캐시는 캐시 메모리(cache memory) 등을 말할 수 있으나, 이에 한정되는 것은 아니다.
또한, 본 발명에서는 각 서버의 파일 시스템과 인메모리 캐시상에 해시키 범위(hash key range)를 할당하고, 이러한 해시키에 대한 정보를 후술하는 작업 스케줄러(job scheduler)에서 관리하도록 하여 사용자로부터의 특정 파일에 대한 데이터 접근 요청 메시지를 처리하도록 할 수 있다.
각각의 서버는 자신이 저장하는 관리하는 해시키의 범위가 설정될 수 있으며, 이러한 해시키의 범위는 파일 시스템과 인메모리 캐시에 모두 설정될 수 있다.
예를 들어 A 서버의 파일 시스템(202)은 56∼5의 해시키 범위에 해당하는 해시키를 저장하도록 해시키 범위가 설정될 수 있으며, 인메모리 캐시(200)는 57∼5의 해시키 범위를 가지도록 설정될 수 있다. 또한, B 서버의 파일 시스템(206)은 5∼15의 해시키 범위를 가지며, 인메모리 캐시(204)는 5∼11의 해시키 범위를 가지도록 설정될 수 있다. 또한, C 서버의 파일 시스템(210)은 15∼26의 해시키 범위를 가지며, 인메모리 캐시(208)는 11∼18의 해시키 범위를 가지도록 설정될 수 있다. 또한, D 서버의 파일 시스템(214)은 26∼39의 해시키 범위를 가지며, 인메모리 캐시(212)는 18∼39의 해시키 범위를 가지도록 설정될 수 있다. 또한, E 서버의 파일 시스템(218)은 39∼47의 해시키 범위를 가지며, 인메모리 캐시(216)는 39∼48의 해시키 범위를 가지도록 설정될 수 있다. 또한, F 서버의 파일 시스템(222)은 47∼56의 해시키 범위를 가지며, 인메모리 캐시(220)는 48∼57의 해시키 범위를 가지도록 설정될 수 있다.
이때, 본 발명에서는 파일 시스템과 달리 인메모리 캐시의 해시키 범위 설정에 있어서 사용자로부터의 각 서버에 대한 데이터 접근(data access) 요청의 회수를 기반으로 해시키 범위를 변경시킬 수 있도록 한다. 예를 들어 B 서버의 경우 파일 시스템(206)의 해시키 범위는 5∼15인 반면에 인메모리 캐시(204)의 해시키 범위는 5∼11로 변경하여 설정할 수 있다.
이와 같이 인메모리 캐시의 해시키 범위를 변경 설정하는 이유는 파일 시스템에 존재하는 해시키는 다른 서버의 파일 시스템으로 이동하는 경우 오버헤드(over head)가 크게 되지만, 인메모리 캐시에 존재하는 해시키는 다른 서버의 인메모리 캐시로 이동하는 경우 상대적으로 오버헤드가 크지 않기 때문이며, 인메모리 캐시에서 데이터를 못 찾는 경우 파일 시스템에서 해당 데이터를 찾으면 되므로 크게 문제가 되지 않기 때문이다.
따라서, 본 발명에서는 인메모리 캐시에 할당되는 해시키 범위를 사용자로부터의 데이터 접근 요청 회수를 기반으로 변경 설정시킴으로 데이터 검색 효율을 높일 수 있도록 한다.
이때, 위와 같이 인메모리 캐시에 할당되는 해시키 범위를 변경 설정에 대해 좀더 자세히 설명하기로 한다.
먼저, 각각의 서버에서 관리되고 있는 데이터에 대해 최근에 n개의 맵리듀스 테스크(mareduce task)들이 해시키에 접근한 분포가 도 3에서 보여지는 히스토그램(histogram)과 같다면, 도 3에서와 같은 히스토그램을 올드 히스토리(old history)로 관리하고, 그 다음 n개의 맵리듀스 테스크들이 들어왔을 때 해시키에 접근한 분포에 대해 도 4에서와 같은 히스토그램을 산출한 후, 무빙 에버리지(moving average) 공식을 이용하여 합친다.
도 5는 해시키에 접근한 분포에 따른 도 3의 기존 히스토그램과 도 4의 가장 최근의 히스토그램을 무빙 에버리지 공식을 이용하여 합친 그래프를 도시한 것이며, 이러한 도 5에 도시된 그래프는 해시키 범위에서 데이터 접근이 발생하는 확률분포를 나타낼 수 있다.
이어, 다시 위 도 5에서와 같은 확률분포를 이용하여 도 6에서와 같은 누적 확률분포에 대한 그래프를 산출할 수 있다.
이때, 위 도 6에서와 같이 누적 확률 분포상에서 각 서버의 구간들이 같은 확률분포를 갖도록 표시할 수 있고, 이렇게 표시하는 경우 상대적으로 많은 접근(access)이 발생하는 데이터를 가지고 있는 서버(server 2, server4)의 해시키 범위는 줄어들고, 상대적으로 적게 접근되는 데이터를 가지고 있는 서버(server 1, server 3, server 5)의 해시키 범위는 넓어질 수 있다. 이에 따라 위와 같은 해시키 범위를 기반으로 각 서버의 인메모리 캐시상 할당되는 해시키 범위를 각 서버의 데이터 접근에 따른 해시키 범위로 변경 설정할 수 있는 것이다.
위와 같이 해시키 범위를 변경하는 경우 원래 파일 시스템에 할당된 해시키 범위와 다르게 서버별로 데이터 접근이 발생하는 확률 분포에 따라서 인메모리 캐시의 해시키 범위를 동적으로 변화시킬 수 있고, 이렇게 함으로써 서버별 로드 밸런스(load balance)를 맞출 수 있어 파일 시스템의 성능을 높일 수 있다.
다시 도 2를 참조하면, 예를 들어 D 서버의 경우 D 서버의 인메모리 캐시(212)는 상대적으로 많이 데이터 접근이 이루어지지 않으므로 D 서버의 인메모리 캐시(212)에는 해시키 범위를 넓게 설정하여 많은 해시키를 관리하도록 할 수 있고, B 서버의 경우 B 서버의 인메모리 캐시(204)는 상대적으로 많이 데이터 접근이 이루어지고 있으므로 B 서버의 인메모리 캐시(204)에는 해시키 범위를 좁게 설정하여 파일 시스템의 해시키 범위보다 적은 해시키를 관리하도록 할 수 있다.
즉, 종래의 하둡 등과 같은 파일 시스템에서는 예를 들어 해시키 5에서 15 사이에 들어오는 데이터 접근 요청에 대해 모두 다 B 서버에서 수행하도록 되어 있어서 5부터 15까지 데이터 접근 요청이 굉장히 많이 발생하는 경우 B 서버만 바쁘게 되고 나머지 서버는 여유 자원이 있음에도 불구하고 활용되지 않게 되어 성능이 나빠지게 된다.
반면에 본 발명에서는 도 2에서 보여지는 바와 같이 상대적으로 데이터 접근 요청이 많은 B 서버에 대해서는 B 서버의 인메모리 캐시(204)에 할당되는 해시키 범위를 줄여줌으로써 B 서버가 담당하는 로드를 일정 부분 줄여주고, 나머지 부분은 C 서버에서 동작이 이루어지도록 함으로써 서버간 로드 밸런스가 맞춰져서 성능을 높일 수 있게 되는 것이다.
도 7은 본 발명의 실시예에 따른 코드 분산 해시테이블 기반의 맵리듀스 시스템에서 맵리듀스 테스크 수행 동작 개념을 도시한 것이다.
위 도 7을 참조하면, 코드 분산 해시테이블 기반의 맵리듀스 시스템은 작업 스케줄러(job scheduler)(702)와 리소스 매니저(resource manager)(704)와 이중계층의 링구조로 연결되는 다수의 서버의 파일 시스템(202, 206, 210, 214, 218, 222)과 인메모리 캐시(in memory cache)(200, 204, 208, 212, 216, 220) 등을 포함할 수 있다.
먼저, 작업 스케줄러(702)는 코드 분산해시테이블 기반의 파일 시스템 계층과 인메모리 캐시 계층의 이중계층의 링구조로 데이터를 관리하며, 맵리듀스 테스크들을 각 서버에 할당하는 역할을 수행한다. 리소스 매니저(704)는 새로운 서버의 추가, 제거, 복구 등을 관리하며, 파일의 업로드도 관리한다.
작업 스케줄러(702)에서 맵리듀스 테스크를 각 서버에 할당하면, 각 서버는 분산된 방법으로 분산 해시테이블 파일 시스템의 데이터 블록에 접근한다. 이때, 중앙에서 동작하는 작업 스케줄러(702)와 리소스 매니저(704)는 시스템의 확장성을 위하여 최소한의 기능만 하도록 구현될 수 있다.
또한, 작업 스케줄러(702)에서는 해시함수에 의해 각 데이터 블록들의 해시키를 결정하며, 이 해시키를 통해 각 데이터 블록을 어느 서버에 저장할지 결정한다.
또한, 각 서버는 최대 m 개의 서버를 분산해시테이블에 저장하여 관리할 수 있으며, m 의 값은 시스템의 관리자가 선택할 수 있고, 이때 m 의 값은 S 를 전체 서버의 개수라고 했을 때, 2m - 1 > S 를 충족해야한다.
이때, 클러스터의 전체 서버 개수가 천 개 이상이 되지 않는다면, m 을 서버의 개수와 같게 하여 한 번 만에 데이터에 접근할 수 있게 한다. 또한, 서버의 추가, 제거가 많은 동적인 종래 peer-to-peer 시스템과 달리 본 발명의 클러스터 구성은 상대적으로 정적이기 때문에 많은 개수의 서버를 해시테이블에 저장하는 것이 확장성에 크게 지장을 주지 않으며, 데이터 접근 성능을 높이는 효과가 있다.
이러한 모든 서버의 정보를 가지고 있는 분산해시테이블을 통해 각 파일의 키 범위를 고려하여 파일에 바로 접근할 수 있으며 중앙제어식인 하둡 등의 종래 시스템과 비교하여 확장성이 우수하다. 특히 각 서버에 저장되는 해시테이블은 모든 파일들의 메타데이터를 저장하는 것이 아니라 서버들이 담당하는 해시키 범위만을 저장하도록 함으로써 해시테이블이 차지하는 용량은 매우 작고 오버헤드가 거의 없도록 할 수 있다.
예를 들어 한 서버가 데이터 접근 요청을 받으면 데이터의 해시키가 해당 서버의 해시키 범위 안에 있는지 체크한 후, 범위 안에 있으면 해당 서버의 파일 디렉토리에서 데이터 접근을 제공하며, 다른 서버의 범위 안에 있으면 요청을 해당 서버로 전달하도록 하는 것이다.
또한, 분산해시테이블은 다른 서버들의 정보를 서버의 추가, 제거 등이 일어날 때만 업데이트하며, 하트비트(heartbeat) 메시지를 주기적으로 주고 받으면서 서버의 오작동(failure)을 감지한다. 만약 한 서버가 오작동하게 되면 리소스 매니저(704)가 상실된 파일 블록들을 다른 서버의 복제된 블록들로부터 복구하도록 할 수 있다. 한편 이러한 파일 블록들의 복제는 서로 다른 k 개의 해시 함수를 통해 k 개만큼 복제되어 서로 다른 서버에 저장되며, k 값은 시스템 관리자에 의해 조절될 수 있다.
또한, 인메모리 캐시(200, 204, 208, 212, 216, 220)의 캐시 계층은 dCache 와 iCache 의 두 개 파티션으로 나뉘어 관리될 수 있으며, dCache 는 입력 데이터 블록이 저장되는 파티션이고, iCache 는 중간 결과물을 재사용하는 캐시 영역으로 구분되는 파티션으로, 맵테스크의 결과인 중간계산결과의 데이터가 저장될 수 있다. 즉, 본 발명의 코드 분산해시테이블 인메모리 캐시에서는 작업의 중간계산결과까지 저장하여 재사용할 수 있도록 하며, 또한 memcached 와 같이 다른 서버의 캐시에 저장되어 있는 데이터도 읽어올 수 있게 하여 재사용도를 더욱 높일 수 있다. 이때, 특히 코드 분산해시테이블의 해시키를 이용하여 다른 서버에 저장되어 있는 데이터를 찾기 때문에 효율적일 수 있다. 또한 입력 데이터 블록들이 고루 분산되지 않은 상황에서도 다른 서버의 캐시에 접근할 수 있도록 함으로써 로드 밸런싱의 불균형 문제도 해결될 수 있다.
일반적으로 계산중심의 작업들은 같은 어플리케이션(application)이 같은 입력 데이터를 요청하는 경우가 많다. 데이터베이스의 질의(query)들이 같은 테이블을 여러 번 참조하는 것이 그 예에 해당한다. 몇몇 연구에서 맵리듀스 작업의 30% 이상이 반복적으로 수행되고 있음이 알려짐에 따라 중간계산결과를 캐시에 저장하는 본 발명의 인메모리 캐시를 통해 불필요한 중복 계산 과정을 대폭 줄여줄 수 있다.
이때, iCache에서 중간계산결과를 검색하기 위하여, 본 발명에서는 어플리케이션 ID, 입력 데이터 블록, 어플리케이션 매개변수 등의 해당 중간계산결과를 구분할 수 있도록 메타데이터를 구성하여 관리할 수 있다. 따라서, 새로운 작업이 들어오면 이러한 메타데이터를 탐색하여 중간계산결과를 재사용할 수 있는지 여부를 판단하고, 재사용할 수 있는 메타데이터가 발견되면 맵 과정을 거치지 않고 저장된 중간계산결과를 리듀스 과정에서 바로 처리할 수 있도록 한다. 또한, iCache에서 중간계산결과를 재사용할 수 없는 경우, dCache에서 입력 데이터 블록의 사용 가능여부를 판단하여 사용 가능하면 바로 캐시에서 입력 데이터에 접근한다. dCache 에서도 입력 데이터 블록을 사용할 수 없는 경우, 분산해시테이블 파일시스템 계층을 통해 입력 데이터에 접근하도록 할 수 있다.
또한, 전술한 바와 같이 파일시스템 계층과 다르게, 인메모리 캐시의 해시키 범위에 대해서는 중앙의 작업 스케줄러(702)가 관리하면서 해시키 영역을 각 서버마다 분할 후 할당한다. 이때 각 서버마다 할당하는 해시키 범위는 동적으로 조절되기 때문에 접근 요청이 많은 입력 데이터의 경우 다수의 서버에 저장되게 된다. 예를 들어 많은 작업들이 하나의 입력 데이터에 접근 요청을 하는 경우, 본 발명에서는 작업 스케줄러가 지역성 인식 페어(fair) 스케줄링을 통해서 해당 입력 데이터가 여러 서버로 복제되도록 함으로서 다수의 서버에서 입력 데이터를 처리할 수 있도록 한다. 따라서 연속된 작업들의 캐시 사용률을 극대화하면서 로드 밸런싱을 보장할 수 있게 된다.
이하에서는 다시 위 도 7을 참조하여 코드 분산 해시테이블 기반의 맵리듀스 시스템에서 맵리듀스 테스크를 수행하는 동작에 대해 보다 상세히 설명하기로 한다.
도 7을 참조하면, 먼저 작업 스케줄러(702)는 도 2에 도시된 바와 같이 각 서버의 인메모리 캐시(200, 204, 208, 212, 216, 220)의 해시키 범위를 할당하고, 서버별 파일 시스템(202, 206, 210, 214, 218, 222)의 해시키 범위의 정보를 관리하고 있다.
이러한 상태에서 특정 데이터 접근 어플리케이션(application)(700)을 통해 특정 파일에 대한 사용자로부터의 데이터 접근 요청이 수신될 수 있다.
이와 같이 데이터 접근 요청이 수신되는 경우 작업 스케줄러(702)는 다수의 서버 중 사용자에 의해 데이터 접근 요청된 파일을 저장하고 있는 서버들로 맵리듀스 테스크를 할당하여 맵리듀스 테스크 수행된 결과값을 데이터 접근 요청에 대한 응답으로 출력할 수 있다.
즉, 작업 스케줄러(702)는 먼저 사용자로부터 데이터 접근 요청된 파일의 이름을 가지고 해시 함수를 돌려서 요청된 데이터에 해당하는 해시키를 얻을 수 있다.
이때 만일, 요청된 데이터의 해시키가 38번이라고 가정하는 경우 작업 스케줄러(702)는 파일 시스템에 대해 할당된 해시키 범위 정보를 참조하여 해시키 38번이 해시키 26번과 39번 사이를 저장하고 있는 D 서버에 저장되어 있는 것을 알게 되고, 해시키 38번에 해당하는 파일에 대한 정보를 얻기 위해 D 서버의 파일 시스템(214)에 접근한다(S1).
여기서, 해시키 38번에 해당하는 파일은 하나의 파일이나 이 파일은 여러개로 쪼개져서 여러개의 서버에 분산되어 있을 수 있다. 그러나 해시키 38번에 해당하는 파일이 여러개로 쪼개져서 분산되어 있는 경우라 하더라도 D 서버는 해시키 38번에 해당하는 파일에 대한 모든 정보를 가지고 있게 된다.
이때, 이러한 해시키 38번에 해당하는 파일이 예를 들어 두 개의 데이터 블록으로 나누어져 분산되어 있고 각 데이터 블록의 해시키가 5번과 56번인 경우 D 서버는 이러한 파일의 메타데이터 정보를 작업 스케줄러(702)에게 제공한다(S2).
그러면, 작업 스케줄러(702)는 메타데이터 정보를 이용하여 해시키 38번에 해당하는 파일이 두 개의 데이터 블록으로 분리되어 다른 서버에 분산되어 있음을 알게 되고, 각각의 데이터 블록에 대한 해시키 5번과 해시키 56번에 해당되는 해시키 범위를 가지는 인메모리 캐시에 해당하는 서버를 확인한다.
이때, 디스크 파일 시스템에 할당된 해시키 범위와 인메모리 캐시에 할당된 해시키 범위가 서로 다를 수 있으므로 작업 스케줄러(702)는 서버별 인메모리 캐시에 할당된 해시키 범위 정보 테이블(703)를 이용하여 해시키 5번과 해시키 56번에 해당하는 인메모리 캐시를 확인하게 된다.
여기서, 다시 도 7을 참조하면, B 서버의 인메모리 캐시(204)가 해시키 5번을 가지고 있고, F 서버의 인메모리 캐시(220)가 해시키 56번을 가지고 있음을 알 수 있다.
따라서, 작업 스케줄러(702)는 데이터 접근 요청된 파일이 두 개의 데이터 블록으로 쪼개져 서로 다른 서버에 분산 저장되어 알 수 있고, 두 개의 맵퍼가 각각 B 서버와 F 서버에서 실행되어야 하는 등과 같은 맵테스크 스케줄링(map task schedule)을 수행하게 된다(S3).
이에 따라 맵리듀스를 수행하는 해당 서버는 작업 스케줄러(702)로부터 맵테스크 스케줄 정보를 수신하여 액세스 요청된 파일의 데이터 블록이 분산 저장되어 있는 B 서버와 F 서버에서 각각 맵함수를 실행시켜 키, 값 데이터를 생성하게 된다.
한편, 작업 스케줄러(702)는 해시키 5번과 해시키 56번의 데이터가 B 서버의 인메모리 캐시(204)와 F 서버의 인메모리 캐시(220)에 존재하는 경우 해당 인메모리 캐시에서 바로 읽어오면 되나, 만약에 해당 인메모리 캐시에 해시키 5번과 해시키 56번의 데이터가 존재하지 않는 경우에는 파일 시스템에서 데이터를 읽어올 수 있다.
이때, 도 7에서 보여지는 바와 같이 해시키 56번의 데이터는 인메모리 캐시(220)상에서는 F 서버이지만 파일 시스템(202)상에서는 A 서버의 파일 시스템에 저장되어 있으므로 캐시 미스(cache miss)가 발생할 수 있으며, 캐시 미스가 발생하는 경우 작업 스케줄러(702)는 A 서버의 파일 시스템(202)으로부터 해시키 56번의 데이터를 읽어오게 된다(S4).
또한, 마찬가지로 해시키 5번의 데이터에 대해서도 B 서버의 인메모리 캐시(204)상에 존재하지 않아 캐시 미스가 발생하는 경우, 해시키 5번의 데이터를 저장하고 있는 B 서버의 파일 시스템(206)으로부터 해시키 5번의 데이터를 읽어오게 된다. 해시키 5번의 경우에는 서로 비슷하게 인메모리 캐시(204)와 파일 시스템(206)에 할당된 해시키 범위가 비슷하게 맞아서 동일한 서버의 파일 시스템에서 읽어오는 케이스가 될 수 있다.
이어, 해당 서버에서 위와 같이 B 서버와 F 서버에 대해서 맵함수를 실행하고 나면, 그 중간계산결과가 나오게 되며, 이러한 중간계산결과는 다시 데이터 블록에 따라 서로 다른 해시키로 도출될 수 있다.
따라서, 작업 스케줄러(702)는 맵테스크 과정에서 출력된 중간계산결과로서 출력된 해시키가 몇 번인지를 확인하고 해당하는 해시키 범위를 가지는 서버의 인메모리 캐시에 저장할 수 있다. 이때, 예를 들어 두 개의 출력값에 해당하는 해시키가 각각 E 서버의 인메모리 캐시(216)에서 관리하는 해시키 범위에 매핑(mapping)되고, C 서버의 인메모리 캐시(208)에서 관리하는 해시키 범위에 매핑이 된다라고 하면, 작업 스케줄러(702)는 해당 결과값의 해시키를 각각 E 서버의 인메모리 캐시(216)와 C 서버의 인메모리 캐시(208)에 저장하게 된다(S5).
이어, 작업 스케줄러(702)는 해당 서버로 맵테스크가 실행된 중간계산결과값이 E 서버와 C 서버상에 저장되어 있음을 알려 주어 리듀스 작업이 각각 E 서버와 C 서버에서 실행되어야 하는 등과 같은 리듀스 테스크 스케줄링(reduce task schedule)을 해주게 된다(S6).
이에 따라, E 서버와 C 서버에서 리듀스 함수를 돌려 최종 결과물 즉 데이터 액세스 요청에 대한 출력 파일을 생성하고 이를 사용자에게 제공하게 된다.
상기한 바와 같이, 본 발명에 따르면, 코드 분산 해쉬테이블 기반의 맵리듀스 시스템에서, 코드 분산 해시테이블 기반의 파일 시스템 계층과 인메모리 캐시 계층의 이중계층의 링구조로 데이터를 관리하고 사용자의 데이터 접근 요청 빈도에 따라 데이터 접근 요청의 확률분포를 예측한 후, 예측된 확률분포를 기반으로 인메모리 캐시 계층의 코드 분산해시테이블의 해시키 범위를 조정하고 테스크를 스케줄링함으로써 로드 밸런싱이 가능하며, 캐시 히트율을 높일 수 있다.
한편 상술한 본 발명의 설명에서는 구체적인 실시예에 관해 설명하였으나, 여러 가지 변형이 본 발명의 범위에서 벗어나지 않고 실시될 수 있다. 따라서 발명의 범위는 설명된 실시 예에 의하여 정할 것이 아니고 특허청구범위에 의해 정하여져야 한다.

Claims (16)

  1. 코드 분산 해시테이블을 기반으로 데이터를 저장하는 파일 시스템과 인메모리 캐시를 구비하는 다수의 서버와,
    상기 파일 시스템과 인메모리 캐시에 저장된 데이터를 이중계층의 링구조로 관리하며, 외부로부터 특정 파일에 대한 데이터 접근 요청 수신 시 상기 다수의 서버 중 상기 데이터 접근 요청된 파일을 저장하고 있는 서버들로 맵리듀스 테스크를 할당하여 상기 맵리듀스 테스크 수행된 결과값을 상기 데이터 접근 요청에 대한 응답으로 출력하는 작업 스케줄러
    를 포함하는 코드 분산 해시테이블 기반의 맵리듀스 시스템.
  2. 제 1 항에 있어서,
    상기 작업 스케줄러는,
    상기 데이터 접근 요청 수신 시, 상기 파일의 이름을 통해 해시키를 추출하고 각 서버의 인메모리 캐시에 할당된 해시키 범위를 확인하여 상기 파일을 저장하고 있는 서버를 검색하며, 상기 검색된 서버로부터 상기 파일에 대한 메타데이터를 수신하여 상기 파일이 저장된 서버들로 상기 맵리듀스 테스크를 할당하는 것을 특징으로 하는 코드 분산 해시테이블 기반의 맵리듀스 시스템.
  3. 제 2 항에 있어서,
    상기 작업 스케줄러는,
    상기 파일에 대한 데이터 블록 구조와 각 데이터 블록이 분산 저장된 서버의 정보를 상기 메타데이터로 수신하며, 상기 각 데이터 블록이 저장된 서버들로 상기 맵리듀스 테스크를 할당하는 것을 특징으로 하는 코드 분산 해시테이블 기반의 맵리듀스 시스템.
  4. 제 1 항에 있어서,
    상기 인메모리 캐시는,
    상기 코드 분산 해시테이블을 이용하여 데이터에 대응되는 해시키를 저장하고 있으며, 상기 해시키의 저장에 있어서 상기 인메모리 캐시에 할당된 해시키 범위에 해당하는 해시키와 상기 해당 해시키에 대응하는 데이터를 저장하고 있는 것을 특징으로 하는 코드 분산 해시테이블 기반의 맵리듀스 시스템.
  5. 제 4 항에 있어서,
    상기 작업 스케줄러는,
    각 서버의 상기 인메모리 캐시의 해시키 범위를 각 서버에 대한 데이터 접근 요청 빈도에 따라 서버별로 동적으로 변경 설정하는 것을 특징으로 하는 코드 분산 해시테이블 기반의 맵리듀스 시스템.
  6. 제 1 항에 있어서,
    상기 작업 스케줄러는,
    상기 파일의 각 데이터 블록에 대한 상기 맵리듀스 테스크 처리 과정에서 발생하는 중간계산결과를 상기 파일 시스템에 저장하는 것을 특징으로 하는 코드 분산 해시테이블 기반의 맵리듀스 시스템.
  7. 제 6 항에 있어서,
    상기 중간계산결과는,
    상기 각 데이터 블록에 따라 서로 다른 해시키를 가지도록 생성되며, 각각 다른 서버로 분산되는 것을 특징으로 하는 코드 분산 해시테이블 기반의 맵리듀스 시스템.
  8. 제 6 항에 있어서,
    상기 중간계산결과는,
    상기 인메모리 캐시의 중간 결과물 재사용 캐시 영역에 저장되는 것을 특징으로 하는 코드 분산 해시테이블 기반의 맵리듀스 시스템.
  9. 제 1 항에 있어서,
    상기 시스템은,
    상기 작업 스케줄러와 연동되며, 새로운 서버의 추가, 제거, 복구를 관리하거나 파일의 업로드를 관리하는 리소스 매니저를 더 포함하는 것을 특징으로 하는 코드 분산 해시테이블 기반의 맵리듀스 시스템.
  10. 파일 시스템과 인메모리 캐시를 구비하는 다수의 서버와 상기 서버로 맵리듀스 테스크를 할당하는 작업 스케줄러를 포함하는 코드 분산 해시테이블 기반의 맵리듀스 시스템에서 맵리듀스 테스크 수행방법에 있어서,
    상기 작업 스케줄러에서 상기 파일 시스템과 인메모리 캐시에 저장된 데이터를 이중계층의 링구조로 관리하는 단계와,
    외부로부터 특정 파일에 대한 데이터 접근 요청을 수신하는 단계와,
    상기 파일에 대한 해시키를 추출하여 상기 파일을 저장하고 있는 파일 시스템의 서버를 검색하는 단계와,
    상기 검색된 서버로부터 상기 파일에 대한 데이터 블록 구조와 각 데이터 블록의 분산 저장된 서버의 정보를 메타데이터로 수신하는 단계와,
    상기 각 데이터 블록이 저장된 서버들로 맵리듀스 테스크를 할당하는 단계와,
    상기 맵리듀스 테스크 수행된 결과값을 상기 작업 요청에 대한 응답으로 출력하는 단계
    를 포함하는 방법.
  11. 제 10 항에 있어서,
    상기 파일 시스템과 인메모리 캐시는,
    코드 분산 해시테이블을 기반으로 상기 데이터를 저장하는 것을 특징으로 하는 방법.
  12. 제 10 항에 있어서,
    상기 인메모리 캐시는,
    상기 코드 분산 해시테이블을 이용하여 데이터에 대응되는 해시키를 저장하고 있으며, 기설정된 해시키 범위를 할당받아, 상기 해시키 범위에 해당하는 해시키와 상기 해당 해시키에 대응하는 데이터를 저장하고 있는 것을 특징으로 하는 방법.
  13. 제 12 항에 있어서,
    상기 해시키 범위는,
    각 서버에 대한 데이터 접근 요청 빈도에 따라 서버별로 동적으로 변경 설정되는 것을 특징으로 하는 방법.
  14. 제 10 항에 있어서,
    상기 맵리듀스 테스크는,
    상기 각 데이터 블록이 저장된 서버들에서 처리되며, 상기 맵리듀스 테스크의 처리 과정에서 발생하는 중간계산결과가 상기 파일 시스템에 저장되는 것을 특징으로 하는 방법.
  15. 제 14 항에 있어서,
    상기 중간계산결과는,
    상기 각 데이터 블록에 따라 서로 다른 해시키를 가지도록 생성되며, 각각 다른 서버로 분산되는 것을 특징으로 하는 방법.
  16. 제 14 항에 있어서,
    상기 중간계산결과는,
    상기 인메모리 캐시의 중간 결과물 재사용 캐시 영역에 저장되는 것을 특징으로 하는 방법.
PCT/KR2015/005851 2015-06-10 2015-06-10 코드 분산 해쉬테이블 기반의 맵리듀스 시스템 및 방법 WO2016199955A1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US15/516,878 US10394782B2 (en) 2015-06-10 2015-06-10 Chord distributed hash table-based map-reduce system and method
PCT/KR2015/005851 WO2016199955A1 (ko) 2015-06-10 2015-06-10 코드 분산 해쉬테이블 기반의 맵리듀스 시스템 및 방법
KR1020187003102A KR101928529B1 (ko) 2015-06-10 2015-06-10 코드 분산 해쉬테이블 기반의 맵리듀스 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/KR2015/005851 WO2016199955A1 (ko) 2015-06-10 2015-06-10 코드 분산 해쉬테이블 기반의 맵리듀스 시스템 및 방법

Publications (1)

Publication Number Publication Date
WO2016199955A1 true WO2016199955A1 (ko) 2016-12-15

Family

ID=57503874

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2015/005851 WO2016199955A1 (ko) 2015-06-10 2015-06-10 코드 분산 해쉬테이블 기반의 맵리듀스 시스템 및 방법

Country Status (3)

Country Link
US (1) US10394782B2 (ko)
KR (1) KR101928529B1 (ko)
WO (1) WO2016199955A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107463514A (zh) * 2017-08-16 2017-12-12 郑州云海信息技术有限公司 一种数据存储方法及装置
CN109885397A (zh) * 2019-01-15 2019-06-14 长安大学 一种边缘计算环境中时延优化的负载任务迁移算法
CN110392109A (zh) * 2019-07-23 2019-10-29 浪潮软件集团有限公司 基于cmsp流程编排的任务调度方法及系统

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10831552B1 (en) * 2017-08-15 2020-11-10 Roblox Corporation Using map-reduce to increase processing efficiency of small files
US10318176B2 (en) * 2017-09-06 2019-06-11 Western Digital Technologies Real-time, self-learning automated object classification and storage tier assignment
US10686816B1 (en) * 2017-09-28 2020-06-16 NortonLifeLock Inc. Insider threat detection under user-resource bi-partite graphs
US11080251B1 (en) 2017-10-23 2021-08-03 Comodo Security Solutions, Inc. Optimization of memory usage while creating hash table
CN109241298B (zh) * 2018-09-06 2020-09-15 绍兴无相智能科技有限公司 语义数据存储调度方法
CN109753593A (zh) * 2018-12-29 2019-05-14 广州极飞科技有限公司 喷洒作业任务调度方法及无人机
CN113407620B (zh) * 2020-03-17 2023-04-21 北京信息科技大学 基于异构Hadoop集群环境的数据块放置方法及系统
US11467834B2 (en) * 2020-04-01 2022-10-11 Samsung Electronics Co., Ltd. In-memory computing with cache coherent protocol
KR102500278B1 (ko) 2020-10-30 2023-02-16 충남대학교 산학협력단 대량의 lod 저장을 위한 맵리듀스 기반 데이터 변환 시스템 및 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080120314A1 (en) * 2006-11-16 2008-05-22 Yahoo! Inc. Map-reduce with merge to process multiple relational datasets
US20120278323A1 (en) * 2011-04-29 2012-11-01 Biswapesh Chattopadhyay Joining Tables in a Mapreduce Procedure
EP2634997A1 (en) * 2008-05-23 2013-09-04 Telefonaktiebolaget L M Ericsson AB (Publ) Maintaining distributed hash tables in an overlay network
KR20140096936A (ko) * 2013-01-29 2014-08-06 (주)소만사 Dlp 시스템의 빅데이터 처리 시스템 및 방법
KR20140119090A (ko) * 2012-02-03 2014-10-08 마이크로소프트 코포레이션 확장 가능한 환경에서의 동적 로드 밸런싱 기법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7707136B2 (en) * 2006-03-31 2010-04-27 Amazon Technologies, Inc. System and method for providing high availability data
US8249638B2 (en) * 2008-03-31 2012-08-21 Hong Kong Applied Science and Technology Research Institute Company Limited Device and method for participating in a peer-to-peer network
US9069761B2 (en) * 2012-05-25 2015-06-30 Cisco Technology, Inc. Service-aware distributed hash table routing
US9934147B1 (en) * 2015-06-26 2018-04-03 Emc Corporation Content-aware storage tiering techniques within a job scheduling system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080120314A1 (en) * 2006-11-16 2008-05-22 Yahoo! Inc. Map-reduce with merge to process multiple relational datasets
EP2634997A1 (en) * 2008-05-23 2013-09-04 Telefonaktiebolaget L M Ericsson AB (Publ) Maintaining distributed hash tables in an overlay network
US20120278323A1 (en) * 2011-04-29 2012-11-01 Biswapesh Chattopadhyay Joining Tables in a Mapreduce Procedure
KR20140119090A (ko) * 2012-02-03 2014-10-08 마이크로소프트 코포레이션 확장 가능한 환경에서의 동적 로드 밸런싱 기법
KR20140096936A (ko) * 2013-01-29 2014-08-06 (주)소만사 Dlp 시스템의 빅데이터 처리 시스템 및 방법

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107463514A (zh) * 2017-08-16 2017-12-12 郑州云海信息技术有限公司 一种数据存储方法及装置
CN107463514B (zh) * 2017-08-16 2021-06-29 郑州云海信息技术有限公司 一种数据存储方法及装置
CN109885397A (zh) * 2019-01-15 2019-06-14 长安大学 一种边缘计算环境中时延优化的负载任务迁移算法
CN110392109A (zh) * 2019-07-23 2019-10-29 浪潮软件集团有限公司 基于cmsp流程编排的任务调度方法及系统
CN110392109B (zh) * 2019-07-23 2021-09-07 浪潮软件股份有限公司 基于cmsp流程编排的任务调度方法及系统

Also Published As

Publication number Publication date
US10394782B2 (en) 2019-08-27
US20170344546A1 (en) 2017-11-30
KR101928529B1 (ko) 2018-12-13
KR20180028461A (ko) 2018-03-16

Similar Documents

Publication Publication Date Title
WO2016199955A1 (ko) 코드 분산 해쉬테이블 기반의 맵리듀스 시스템 및 방법
US10055262B1 (en) Distributed load balancing with imperfect workload information
Rahman et al. Homr: A hybrid approach to exploit maximum overlapping in mapreduce over high performance interconnects
WO2012111905A2 (ko) 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법
Guo et al. Investigation of data locality and fairness in mapreduce
US20200409584A1 (en) Load balancing for scalable storage system
US11080207B2 (en) Caching framework for big-data engines in the cloud
WO2014142553A1 (ko) 워크 로드에 따라 동적 자원 할당 가능한 상호 연결 패브릭 스위칭 장치 및 방법
WO2014208909A1 (ko) 시뮬레이션 장치 및 분산 시뮬레이션 시스템
CN110109931B (zh) 一种用于防止rac实例间数据访问发生冲突的方法及系统
WO2010093084A1 (ko) 분산 스페이스를 이용하여 분산 프로그래밍 환경을 제공하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체
Orhean et al. Toward scalable indexing and search on distributed and unstructured data
Ranichandra et al. Architecture for distributed query processing using the RDF data in cloud environment
WO2019232933A1 (zh) 基于分布式数据库的数据存储方法及系统
CN110597809B (zh) 一种支持树状数据结构的一致性算法系统及其实现方法
Tan et al. Resa: realtime elastic streaming analytics in the cloud
Jeong et al. Async-LCAM: a lock contention aware messenger for Ceph distributed storage system
Espinosa et al. Analysis and improvement of map-reduce data distribution in read mapping applications
WO2019189962A1 (ko) 분산 데이터베이스에서의 복제본이 존재하는 데이터에 대한 질의 병렬화 방법
Singh et al. High scalability of HDFS using distributed namespace
WO2018216828A1 (ko) 에너지 빅데이터 관리 시스템 및 그 방법
WO2011136261A1 (ja) ストレージシステム、ストレージシステムの制御方法、及びコンピュータプログラム
KR20110111241A (ko) 고속 서열 분석을 위한 병렬 Intra-Query 라우팅 알고리즘
Ancy et al. Locality based data partitioning in Map reduce
EP4030311A1 (en) A distributed database system

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: 15895023

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 15516878

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 20187003102

Country of ref document: KR

Kind code of ref document: A

122 Ep: pct application non-entry in european phase

Ref document number: 15895023

Country of ref document: EP

Kind code of ref document: A1