WO2017073841A1 - 분산 처리를 위한 대용량 파일의 블록화 방법 및 그 장치 - Google Patents

분산 처리를 위한 대용량 파일의 블록화 방법 및 그 장치 Download PDF

Info

Publication number
WO2017073841A1
WO2017073841A1 PCT/KR2015/014136 KR2015014136W WO2017073841A1 WO 2017073841 A1 WO2017073841 A1 WO 2017073841A1 KR 2015014136 W KR2015014136 W KR 2015014136W WO 2017073841 A1 WO2017073841 A1 WO 2017073841A1
Authority
WO
WIPO (PCT)
Prior art keywords
blocks
area
size
block
work
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/KR2015/014136
Other languages
English (en)
French (fr)
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.)
Samsung SDS Co Ltd
Original Assignee
Samsung SDS Co Ltd
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 Samsung SDS Co Ltd filed Critical Samsung SDS Co Ltd
Publication of WO2017073841A1 publication Critical patent/WO2017073841A1/ko
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/113Details of archiving
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1727Details of free space management performed by the file system
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1031Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Definitions

  • the present invention relates to a method and apparatus for blocking a large file for distributed processing. More specifically, the present invention relates to a method and an apparatus for blocking a large file so that working nodes distributing the blocked large file can process the large file substantially simultaneously.
  • a technology for distributing large amounts of data is provided.
  • a technique for distributing and storing a file including a large amount of data through different computing devices is provided.
  • HDFS Hadoop Distributed File System
  • large data is divided into blocks and distributed in clustered data nodes.
  • meta information of each distributed and stored block is stored in a name node.
  • the meta information may include, for example, storage location information of each block.
  • Table 1 below shows an increase in the size of meta information associated with distributed storage of a file according to the file size.
  • Meta Information Size (unit, MB) (150K bytes per block) 1 GB 16 0.00 10 GB 160 0.02 100 GB 1,600 0.23 1 TB 16,384 2.34 10 TB 163,840 23.44 100 TB 1,638,400 234.38 1PB 16,777,216 2,400.00
  • a file having a size of 1 PB is divided into 16,777,216 blocks and stored, and accordingly, only meta information size reaches 2400 MB (2.34 GB). Because meta information must be accessed frequently, it must be loaded into memory. It is quite a burden to load and operate about 2.34GB of data in memory. In addition to the burden on the meta information operation due to distributed storage, the burden on the generation and operation of each block processing task due to distributed processing will also occur. This is because each task processing history must be managed.
  • blocking refers to dividing a file into blocks.
  • the present invention has been made in an effort to provide an efficient file blocking method and apparatus capable of suppressing a level in which the number of blocks increases as the file size increases while maintaining the effect of work distribution.
  • Another technical problem to be solved by the present invention is distributed processing so that each work node completes the processing of the allocated blocks at the same time as possible, while distributing the large data divided into fewer blocks than the prior art. It is to provide a method and apparatus for managing the same.
  • Another technical problem to be solved by the present invention by automatically reflecting the work environment of the distributed processing system in the blocking process of large files for distributed processing, so that the processing of the blocks allocated to each work node at the same time as possible.
  • a method of blocking a file distributed by a plurality of work nodes belonging to a distributed processing system may include the file later than the first area and the data of the first area. Dividing the first region into blocks of various sizes, and dividing the second region into blocks of fixed size.
  • the first region includes M blocks of each size.
  • dividing the first area into blocks of various sizes may include forming M blocks of the first size from the beginning of the file (M is the job). Number of nodes), and forming M blocks of each second size smaller than the first size in the region where the block is not formed, and in the region where the block is not formed, the size smaller than the size of the previous forming block.
  • the step of forming M blocks may be repeated, provided that the small size is larger than the fixed size.
  • the size of the second region is set smaller as the number of the work nodes and / or the number of parallel processes for data distribution processing executed in each work node and / or the performance of each work node are the same. Alternatively, it may be determined by reflecting a job distribution effect parameter that is set smaller as the operation cost of each work node is lower.
  • the method for blocking a file distributed by a plurality of work nodes belonging to the distributed processing system may include: dividing the file only when the size of the file is larger than the determined size of the second region.
  • the method may further include dividing the first region into blocks of various sizes, and dividing the second region into blocks of the same size.
  • the block of the first region is a block to be processed by the initially assigned work node
  • the block of the second region is a block to which the initially assigned work node may migrate to another work node.
  • some of the blocks of the first region are blocks that must be processed by an initially assigned work node while others are blocks that the initially assigned work node can migrate to another work node.
  • the block of the second area is a block in which the initially assigned work node may migrate to another work node.
  • a distributed processing method of a large file the first area being divided into blocks of various sizes and the blocks having a fixed size and later than the data of the first area.
  • the performing of the load rebalancing operation may include targeting only a block of the second area to the load rebalancing target.
  • An apparatus for managing distributed processing of a large file includes at least one processor, a memory loaded with a computer program executed by the processor, and a distributed processing system It may include a network interface connected to a plurality of work nodes belonging to.
  • the computer program may further include an operation of dividing a file distributed by the plurality of work nodes into a first area and a second area to be processed later than the data of the first area, and the first area in various sizes.
  • the computer program may include dividing a file distributed by a plurality of work nodes belonging to a distributed processing system into a first area and a second area to be processed after the data in the first area, and separating the first area into various types.
  • the step of dividing into blocks of size and the step of dividing the second area into blocks of fixed size are performed respectively.
  • the computer program may, in some embodiments, transmit the blocks of the first region and the blocks of the second region evenly to the plurality of working nodes via the network interface, and block processing of the working nodes.
  • the monitoring of the current state may further include performing a load rebalancing operation for the block of the second area according to the unprocessed block state of each work node.
  • FIG. 1 is a block diagram of a distributed processing system of a large file according to an embodiment of the present invention.
  • FIG. 2 is a flowchart illustrating a method for blocking a large file according to another embodiment of the present invention.
  • FIG. 3 is a conceptual diagram illustrating a method of determining a size of a second area when dividing a first area and a second area of a large file considered in some embodiments of the present invention.
  • FIG. 4 is a conceptual diagram illustrating first and second areas of a large file considered in some embodiments of the present invention.
  • FIG. 5A illustrates an example in which a first region of a file is blocked according to the blocking method of the large file of FIG. 2.
  • FIG. 5B is an exemplary diagram of blocking a second area of a file according to the blocking method of the large file of FIG. 2.
  • FIG. 6 is a conceptual diagram illustrating a result of each block being assigned to a plurality of work nodes after blocking illustrated in FIGS. 5A and 5B.
  • FIG. 7 is a conceptual diagram showing a result of allocation of data blocks according to the prior art, compared with FIG. 6.
  • FIG. 8 is a detailed flowchart for explaining some operations of FIG. 2 in more detail.
  • FIG. 9 is a detailed flowchart for describing some operations of FIG. 8 in more detail.
  • FIG. 10 is a flowchart illustrating a method for distributing a large file according to another embodiment of the present invention.
  • FIG. 11 is a block diagram of a distributed processing apparatus for large files according to another embodiment of the present invention.
  • the distributed processing system may include a distributed processing management apparatus 100 and a work node cluster 200 composed of a plurality of work nodes 202.
  • the distributed processing management apparatus 100 may block a large file provided from the large file generation system 300 and allocate each block formed as a result of the block to each work node 202. Each work node 202 performs predefined processing logic on the assigned block.
  • the large file generation system 300 refers to a system having various functions of generating a large file by collecting a large amount of data.
  • the large file generation system 300 may be a system for aggregating credit card transaction details, a system for aggregating user activity details on a social network system, a system for collecting location information of each terminal device, and the like.
  • FIG. 1 illustrates that the distributed processing management apparatus 100 and the large file generation system 300 are physically separated from each other, in some embodiments, the distributed processing management apparatus 100 may be configured in the large file generation system 300. It may also be configured as a module of.
  • the distributed processing management apparatus 100 blocks the large file.
  • the large file may be divided into a first area and a second area.
  • the second area is an area that is processed later than the data of the first area when processed by each work node 202.
  • the distributed processing management apparatus 100 blocks the first area and the second area in different ways.
  • the distributed processing management apparatus 100 divides the first area into blocks of various sizes.
  • the distributed processing management apparatus 100 divides the second area into blocks of fixed size.
  • the distributed processing management apparatus 100 forms a smaller number of blocks as compared with blocking the entire large file into blocks of the fixed size.
  • the second area which is an area to be processed later, is divided into fixed sized blocks, the fixed size being determined according to a fixed system setting or a user setting.
  • the fixed size is set within a range not exceeding a predetermined data size so as to be a unit of load re-balancing such as 64 MB (MEGA BYTE) or 128 MB.
  • the distributed processing management apparatus 100 blocks the initial blocks of large files that do not require load rebalancing into large blocks, and the latter blocks of large files that may require load rebalancing into small fixed size blocks. do.
  • the novel blocking method proposed in the present invention enables the same work distribution to be effected with a smaller number of blocks as compared to the fixed size blocking according to the prior art. The blocking method performed by the distributed processing management apparatus 100 will be described in more detail with reference to some embodiments.
  • the distributed processing management device 100 can block the large file in accordance with HDFS.
  • each block may be distributed and stored in the work node 202, and meta information about the location of each block may be stored in the distributed processing management apparatus 100.
  • the work node 202 is a data node of HDFS and the distributed processing management apparatus 100 is a name node of HDFS.
  • the distributed processing management apparatus 100 may further perform a role of a task scheduler in distributed processing. That is, the distributed processing management apparatus 100 performs an operation of allocating a task by providing blocks to be processed and stored in each work node 202, and applies processing logic to blocks allocated by each work node 202. By monitoring the status of the execution, load rebalancing may be performed according to the progress of processing of each work node 202.
  • the load rebalancing task aims to complete processing for blocks that each task node 202 has been allocated at substantially the same time. Completing the processing at substantially the same time means that the gap between the processing completion expected times does not exceed the predetermined time.
  • the load rebalancing operation includes reassigning the blocks allocated to the work node 202 having many raw blocks to the work node 202 having fewer raw blocks.
  • the method for blocking a large file according to the present embodiment may be performed by a computing device.
  • the method for blocking a large file according to the present embodiment may be performed by the distributed processing management apparatus 100 shown in FIG. 1.
  • the subject of the operation may be omitted for convenience of understanding.
  • the size of the file to be divided is larger than the size of the second area (S10).
  • the second area is, as already mentioned, the area to be processed later in the file.
  • the second area should have a suitable size to achieve the effect of load balancing. A method of obtaining the size of the second region will be described with reference to FIG. 3.
  • blocks of a fixed size are formed in the second region. Assume that the size of the basic block is 64MB.
  • the basic blocks formed in the second area will be equally divided and allocated to each work node 202. For example, if 100 basic blocks are formed in the second area and 20 work nodes, each work node 202 will be allocated 5 basic blocks (100/20).
  • Each work node 202 may have an environment in which a plurality of parallel processes are executed.
  • the parallel process is executed in parallel at the same time on each work node 202 using a multi-tasking technique.
  • Each parallel process must be allocated at least one basic block. Therefore, in one embodiment, the size of the second area may be calculated using a value obtained by multiplying the number of work nodes by the number of parallel processes for data distribution processing.
  • the basic block serves as a buffer in that it can be used as an object of load rebalancing. Therefore, as each work node 202 has more basic blocks, there is a higher likelihood that the load rebalancing can equally time the block processing of each work node to end.
  • the number of basic blocks allocated to each of the parallel processes of each work node 202 is referred to as a work distribution effect parameter.
  • the work distribution effect parameter may be understood to be one or more natural numbers that are set to a larger value as each work node needs to complete the file processing at the same time.
  • the size of the second area is automatically calculated by multiplying the fixed size, the number of work nodes belonging to the distributed processing system, the number of parallel processes for data distribution processing, and the work dispersion effect parameter. do.
  • the administrator of the distributed processing system can set the work dispersion effect parameter to a higher value as the need for each of the work nodes to complete the file processing at the same time increases.
  • the number of blocks also increases as the work dispersion effect parameter increases, it is necessary to avoid setting the work dispersion effect parameter to a large value.
  • the work distribution effect parameter may be automatically set to reflect the performance difference between the work nodes 202.
  • the data on the performance difference between the work nodes 202 may be collected in advance through a method of automatically collecting a result of a calculation test performed periodically or triggered by a specific event occurrence for each work node 202. Can be secured.
  • the work distribution effect parameter may be set smaller as the performance between the work nodes 202 is the same, and set as the performance difference between the work nodes 202 is larger.
  • the work dispersion effect parameter may be automatically set by reflecting an operation cost of each work node 202 previously input.
  • the reason why each work node 202 performs load rebalancing to finish processing for each block substantially simultaneously is until some work node 202 finishes work first and the other work nodes 202 finish work. This is to prevent waiting in idle state. Therefore, as the operating cost per hour of each work node 202 is higher, it is desirable to increase the work dispersion effect parameter in order to minimize the probability of occurrence of an idle state.
  • the lower the hourly operating cost of each work node 202 the lower the number of block partitions may be a relative benefit, even if the probability of occurrence of an idle state is somewhat higher (reducing the size of the meta-information on block partitions Further benefit), it is desirable to lower the work dispersion effect parameter.
  • the work distribution effect parameter may be automatically set by using a programming complexity of logic applied to a file distributed through each work node.
  • the programming complexity is one of the software metrics that indicates how much interaction there will be between multiple entities within the software.
  • the logic applied to each block is the same, but since the input data is different, the higher the programming complexity of the logic is, the more likely the computational load required for processing is different. Therefore, as the programming complexity of the logic increases, it is desirable to increase the workload distribution effect parameter so as to further enhance the load rebalancing capability against the change in the block processing speed of each work node.
  • the programming complexity may refer to, for example, a Cyclomatic Complexity value (hereinafter referred to as “CcCabe's Cyclomatic Complexity”) defined in 1976 by Thomas J. McCabe, Sr. McCabe's Cyclomatic Complexity is a value indicating the number of independent execution paths of program source code.
  • CcCabe's Cyclomatic Complexity a Cyclomatic Complexity value defined in 1976 by Thomas J. McCabe
  • Sr. McCabe's Cyclomatic Complexity is a value indicating the number of independent execution paths of program source code.
  • the work distribution effect parameter may be automatically set to a larger value as the performance difference between work nodes increases, the higher the operating cost per hour of the work nodes, and the larger the McCabe Cyclomatic Complexity of the processing logic.
  • each work node 202 executes three parallel processes simultaneously, and the work distribution effect parameter is set to four.
  • the size of the second region 404 is 75 GB, and the second region is located at the back 75 GB region of the file.
  • the file 400 is processed in order from the front to the back, the frontmost data is the data of the file offset is 0, the rearmost data will be the data of the file offset (FILE_SIZE-1). .
  • the method of classifying a file divides the file into two consecutive regions based on a reference offset (file size-second region size), and determines a first region 402 to be processed first, and then processes the later region. The rear region is determined as the second region 404.
  • the file has a size larger than the second area size (see FIG. 3 for a method of obtaining the second area size) (S10), the file is divided into a first area and a second area ( 4, the first region is divided into blocks of various sizes (S14).
  • the first region may include M blocks of each size (M is the number of working nodes). This is for each work node to be allocated one block of each size.
  • FIG. 5A illustrates that two blocks 420a and 420b having a size of 256MB and two blocks 421a and 421b having a size of 128MB are formed in a first area when there are two working nodes.
  • the second area is divided into fixed size blocks, that is, basic blocks (S15).
  • 5B illustrates that six (2 * 1 * 3) basic blocks are formed in a second region when two work nodes, one parallel process number per work node, and the work distribution effect parameter are set to three. Shows that.
  • FIG. 6 shows how each of the two working nodes is allocated a block when the file is blocked as shown in FIGS. 5A and 5B.
  • Work node # 1 processes each block in the order of 256MB block 420a, 128MB block 421a, and basic blocks 440a, 440c, and 440e.
  • Work node # 2 processes each block in the order of 256MB block 420b, 128MB block 421b, and basic blocks 440b, 440d, and 440f.
  • blocks 420a, 420b, 421a, and 421b of various sizes of the first region 402 are equally allocated to the work node # 1 and the work node # 2.
  • six basic blocks 440a, 440b, 440c, 440d, 440e, and 440f of the second region 404 are equally allocated to the work node # 1 and the work node # 2, respectively.
  • FIG. 7 illustrates that the same number of basic blocks are allocated to each of the work node # 1 and the work node # 2 when all files are blocked only with basic blocks.
  • the file is blocked in a total of 10 blocks, whereas in the prior art, the file is blocked in a total of 18 blocks.
  • each work node performs an initial operation on a block having a large size, whereas in a later operation, a block having a small size is targeted, so that there is no great burden on load rebalancing when necessary. Therefore, in the present invention, the effect of load balancing can be achieved even with a smaller number of blocks.
  • a second area having a size corresponding to the working environment of the distributed processing system is disposed behind the large file, thereby providing a block arrangement suitable for performing a load rebalancing operation in the distributed processing system.
  • FIG. 8 is a detailed flowchart of the first region blocking step S14 shown in FIG. 2.
  • the block unformed area size F of the first area is larger than a value obtained by multiplying the fixed size b of the basic block by the number M of working nodes (S140).
  • the size of the block to be formed is F * i / M It is determined (S142).
  • i is a variable partitioning parameter having a value between 0 and 1. And once i is determined, its value does not change and remains constant. If the block size is determined, M blocks are formed in sequence from the front of the block unformed region (S144).
  • variable partitioning parameter 0.6
  • dividing 60% of the block unformed areas of the first area by the number of working nodes determines the size of blocks to be formed.
  • the size of the block to be formed in the next round is determined by dividing 60% of the remaining block unformed area by the number of working nodes. Therefore, as time passes, the size of the formed block becomes small.
  • the size of a block to be formed is smaller than the fixed size of the basic block, the remaining area is divided by the number of working nodes to form blocks of the same size last, and then the blocking of the first area is completed.
  • the formation of the block is performed from the front of the block unformed area (that is, the side where the offset of the file is small).
  • blocking of the first region means that blocks of the first to nth sizes (n is a natural number of two or more) are sequentially formed from the front of the pile.
  • the front and back of the file is a concept indicating the processing order of each data included in the file. That is, the fact that the first offset region of the file is before the second offset region means that the first offset region is processed before the second offset region.
  • the blocking of the first area includes forming M blocks of the first size from the beginning of the file (M is the number of working nodes), and forming the blocks in the area where the blocks are not formed than the first size. Forming M small blocks of a second size. Of course, if the size of the file is large enough, forming M blocks of a third size smaller than the second size in an area where blocks have not yet been formed, and smaller than the third size in an area where no blocks are yet formed. Forming M blocks of the fourth size may be further performed.
  • the first size is preferably larger than the fixed size of the basic block (exemplified several times in 64MB).
  • the number of blocks formed in the first region will decrease.
  • the value of the variable partitioning parameter approaches 0
  • the number of blocks formed in the first region is decreased. It will increase.
  • it may be considered to form the entire first region as one block by setting the value of the variable partitioning parameter to 1.
  • FIG. if the entire first region is formed as one block, an abnormal situation may occur at a specific work node, and thus the work speed may be extremely slow.
  • only blocks of the second region may be subjected to load rebalancing.
  • not only the blocks of the second region but also the blocks of the first region may have a predetermined size.
  • Blocks having the following sizes may be included as targets of load rebalancing.
  • variable split parameter value i may be set manually by an administrator, but may be automatically set by a system.
  • variable division parameter value i is automatically set will be described in detail with reference to FIG. 9.
  • variable partition parameter value may be automatically set. Since each work node that distributes files has the same performance, the same processing speed for each block can be expected, thereby reducing the number of blocks to be formed in the first region. Therefore, as the performance of each work node becomes more uniform, the variable partition parameter can be automatically set to a higher value.
  • the performance uniformity of each work node can be measured from hardware spec information. This is because the hardware specification information is reliable information for estimating the processing speed of the block when the working environment is an ideal environment in which many processes other than the process for processing the block are not executed.
  • the specification (spec) information is inquired from the resource management information of the distributed processing system (S1420).
  • the specification of each work node is scored (S1422).
  • a plurality of criteria may be applied. For example, if the logic that needs to be applied to the file is a logic that requires a lot of computation, a high weighted criterion is applied to the CPU performance and the logic that needs to be applied to the file requires a lot of memory.
  • the performance uniformity can be measured by calculating a distribution value Var_node (or a standard deviation value) with respect to the specification score of each work node calculated as a result of the scoring S1422 (S1424).
  • Var_node or a standard deviation value
  • the performance uniformity has a higher value as the dispersion value (or standard deviation value) is lower.
  • the hardware specification information may not accurately reflect the work environment of each work node.
  • the processing speed of the block may be predicted by using the benchmarking test result for the actual operation speed.
  • Performance uniformity may be measured.
  • the variable partitioning parameter value may be automatically set using programming complexity of logic applied to a file distributed through each work node.
  • the logic applied to each block is the same, but since the input data is different, the higher the programming complexity of the logic, the more likely the computational load required for processing. Therefore, it is preferable that the higher the programming complexity of the logic, the lower the variable partitioning parameter to further increase the load rebalancing capability against the change in the block processing speed of each work node.
  • the programming complexity may refer to McCabe's Cyclomatic Complexity.
  • the automatic programming of the variable partitioning parameter value utilized for the blocking of the first region may include the programming complexity. May not be applied in duplicate.
  • the programming complexity may be applied in duplicate.
  • the programming complexity if the programming complexity has a value less than or equal to a preset limit, block the first region if the programming complexity is already reflected in the form of a work distribution effect parameter when obtaining the size of the second region.
  • the programming complexity is not applied to the automatic setting of the variable division parameter value to be used in a redundant manner, and when the programming complexity has a value greater than or equal to the threshold, the size of the second area is calculated in the form of a work dispersion effect parameter.
  • the programming complexity may be applied to the automatic setting of the variable partition parameter value used for the blocking of the first region.
  • variable partitioning parameter value i may be inversely proportional to the distribution value Var_node and the programming complexity PC of the spec score of each work node.
  • is a coefficient that can be adaptively set during the test process.
  • the distributed processing management method according to the present embodiment may be performed by a computing device.
  • the distributed processing management method according to the present embodiment may be performed by the distributed processing management apparatus 100 shown in FIG. 1.
  • the subject of the operation may be omitted for ease of understanding.
  • the file blocking operation illustrated in FIG. 2 is performed (S10, S12, S13, S14, and S15).
  • the file blocking related embodiments of the present invention described with reference to FIGS. 3 to 9 may be applied.
  • each block is equally allocated to each work node (S16).
  • “Evenly allocated” means that blocks of a certain size are allocated so that they are not biased to a particular work node. For example, if the first work node has M blocks having the first size, this means that the other work nodes also allocate the blocks such that M blocks have the first size. Of course, if the number of blocks is insufficient to allocate to all work nodes, some work nodes may not be allocated blocks allocated to other work nodes. The meaning of “evenly allocated” refers to the description associated with FIG. 6.
  • Block processing refers to applying the processing logic of a blocked file to the data contained in the allocated block for each work node.
  • the distributed processing management apparatus 100 performs load rebalancing on a block of the second area (S18). For example, a first work node has one unprocessed block of eight second area blocks allocated to the first work node, but a second work node has eight second areas allocated to the second work node. When there are seven unprocessed blocks among the blocks, the distributed processing management apparatus 100 determines that the load rebalancing is necessary, and at least some of the second area blocks allocated to the second work node are transferred to the first work node. Can be reassigned.
  • the distributed processing management device 100 is a case that the top and bottom deviation of the unprocessed block among the blocks of the second area becomes severe enough to exceed a predetermined criterion (for example, the difference between the highest and lowest raw block retention, When 50% of the number of second area blocks allocated to each work node is exceeded), load rebalancing may be performed.
  • a predetermined criterion for example, the difference between the highest and lowest raw block retention, When 50% of the number of second area blocks allocated to each work node is exceeded.
  • the distributed processing management apparatus 100 manages each of the work nodes to process all allocated blocks at substantially the same time (S19).
  • a block in which load rebalancing is performed is a block having a size smaller than a predetermined size.
  • the methods according to the embodiments of the present invention described above with reference to FIGS. 1 to 10 may be performed by executing a computer program implemented in computer readable code.
  • the computer program may be transmitted to and installed on the second computing device from the first computing device via a network such as the Internet, and thus may be used in the second computing device.
  • the first computing device and the second computing device include both a server device, a physical server belonging to a server pool for cloud services, and a stationary computing device such as a desktop PC.
  • the computer program may be stored in a recording medium such as a DVD-ROM or a flash memory device.
  • the apparatus 100 for managing distributed processing of large files may include at least one processor 106 and a work node cluster 200 including a plurality of work nodes belonging to a distributed processing system.
  • the computer program executed by the connected network interface 102, the storage 104, and the processor 106 may include a memory (RAM) 108 loaded.
  • the processor 106, the network interface 102, the storage 104, and the memory 108 transmit and receive data via the system bus 110.
  • the storage 104 may temporarily store the large file 400 received from the large data generation system through the network interface 102.
  • the computer program includes file blocking software 180.
  • the file blocking software 180 divides the large-capacity file 400 into a first area and a second area which is processed after the data of the first area, and the first area into blocks of various sizes. And dividing the second area into blocks of fixed size.
  • the file blocking method has already been described in detail with reference to FIGS. 1 to 9.
  • the file blocking software 180 records the blocking result of the large file 400 as the block dividing information 184 on the memory 108.
  • the block division information 184 may include an offset range of each block.
  • Distributed processing management software 182 includes operations responsible for task scheduling.
  • the distributed processing management software 182 refers to the block partitioning information 184 and evenly transmits the blocks of the first area and the blocks of the second area to the plurality of working nodes through the network interface 102. And an operation of monitoring a block processing state of the work nodes and performing a load rebalancing operation on the block of the second area according to the unprocessed block state of each of the work nodes.
  • the initial blocks of the large file that do not require load rebalancing are large blocks, and the latter blocks of the large file that may require load rebalancing are small fixed.
  • Each block is block of size. Therefore, the distributed processing management apparatus 100 can enjoy the effect of the same work distribution with a smaller number of blocks as compared to the fixed size block according to the prior art.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

분산 처리 시스템에 속한 복수의 작업 노드에 의하여 분산 처리 되는 파일의 블록화 방법이 제공된다. 본 발명의 일 실시예에 따른 대용량 파일의 블록화 방법은, 상기 파일을 제1 영역 및 상기 제1 영역의 데이터보다 나중에 처리되는 제2 영역으로 구분하는 단계, 상기 제1 영역을 다양한 사이즈의 블록들로 분할하는 단계, 및 상기 제2 영역을 고정 사이즈의 블록들로 분할하는 단계를 포함한다.

Description

분산 처리를 위한 대용량 파일의 블록화 방법 및 그 장치
본 발명은 분산 처리를 위한 대용량 파일의 블록화 방법 및 그 장치에 관한 것이다. 보다 자세하게는, 블록화 된 대용량 파일을 분산 처리 하는 작업 노드들이, 상기 대용량 파일을 실질적으로 동시에 처리 완료 할 수 있도록 대용량 파일을 블록화 하는 방법 및 그 장치에 관한 것이다.
대용량 데이터를 분산 처리하는 기술이 제공되고 있다. 또한, 대용량 데이터를 포함하는 파일을 서로 다른 컴퓨팅 장치를 통하여 분산 저장하는 기술이 제공되고 있다.
예를 들어, 널리 알려진 대용량 데이터 처리 플랫폼인 하둡(hadoop)의 분산 파일 처리 시스템인 HDFS(Hadoop Distributed File System)에서는, 대용량 데이터가 블록 단위로 분할되어 클러스터링 된 데이터 노드(data node)에 분산 저장된다. 또한, 분산 저장된 각 블록의 메타 정보가 네임 노드(name node)에 저장된다. 상기 메타 정보는, 예를 들어, 각 블록의 저장 위치 정보를 포함할 수 있다. 고정 사이즈로 블록을 형성하는 경우, 데이터 사이즈가 증가할 수록 블록의 개수도 늘어나고 그에 따라 메타 정보의 사이즈도 늘어날 것이다. 아래의 표 1은 파일 사이즈에 따라 파일의 분산 저장에 수반되는 메타 정보 사이즈의 증가를 표시한다.
파일 사이즈 블록 개수(블록 당 64MB) 메타 정보 사이즈 (단위, MB)(블록 당 150K 바이트)
1GB 16 0.00
10GB 160 0.02
100GB 1,600 0.23
1TB 16,384 2.34
10TB 163,840 23.44
100TB 1,638,400 234.38
1PB 16,777,216 2,400.00
상기 표 1에 표시된 바와 같이, 예를 들어 1 PB 사이즈의 파일이라면, 16,777,216개의 블록으로 나누어 저장되고, 그에 따라 메타 정보 사이즈만 2400MB(2.34GB)에 달하는 것을 알 수 있다. 메타 정보는 빈번하게 억세스 되어야 하므로, 메모리 상에 로드 되어야 한다. 약 2.34GB에 달하는 데이터를 메모리에 로드 해두고 운용하는 것은 상당히 부담이 되는 일이다. 분산 저장에 따른 메타 정보 운용상의 부담뿐만 아니라, 분산 처리에 따른 각 블록 처리 태스크(task)의 생성 및 운용상의 부담도 발생할 것이다. 각각의 태스크 처리 이력이 관리되어야 하기 때문이다.
그렇다고 하여, 블록 사이즈를 무작정 늘릴 수도 없는 일이다. 분산 처리에 따른 작업 분산의 효과가 떨어지기 때문이다.
따라서, 작업 분산의 효과를 유지하면서도, 파일 사이즈가 증가할수록 블록의 개수가 증가하는 수준을 억제할 수 있는 효율적인 파일 블록화 방법 및 그 방법을 활용하는 대용량 파일의 분산 처리 관리 방법의 제공이 요청된다. 본 명세서에서, 블록화(blocking)는 파일을 블록 단위로 분할하는 것을 가리킨다.
본 발명이 해결하고자 하는 기술적 과제는, 작업 분산의 효과를 유지하면서도, 파일 사이즈가 증가할수록 블록의 개수가 증가하는 수준을 억제할 수 있는 효율적인 파일 블록화 방법 및 그 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는, 종래 기술에 비하여 더 적은 개수의 블록으로 분할된 대용량 데이터를 분산 처리하면서도, 각 작업 노드가 할당된 블록에 대한 처리(processing)를 최대한 동시에 완료하도록 분산 처리를 관리하는 방법 및 그 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 또 다른 기술적 과제는, 분산 처리를 위한 대용량 파일의 블록화 과정에 분산 처리 시스템의 작업 환경을 자동으로 반영함으로써, 각 작업 노드가 할당된 블록에 대한 처리(processing)를 최대한 동시에 완료하도록 분산 처리를 관리하는 방법 및 그 장치를 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명의 기술분야에서의 통상의 기술자에게 명확하게 이해 될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한 본 발명의 일 실시예에 따른 분산 처리 시스템에 속한 복수의 작업 노드에 의하여 분산 처리 되는 파일의 블록화 방법은, 상기 파일을 제1 영역 및 상기 제1 영역의 데이터보다 나중에 처리되는 제2 영역으로 구분하는 단계와, 상기 제1 영역을 다양한 사이즈의 블록들로 분할하는 단계와, 상기 제2 영역을 고정 사이즈의 블록들로 분할하는 단계를 포함한다.
몇몇 실시예들에서, 상기 제1 영역은 각 사이즈의 블록을 M개씩 포함한다. (M은 상기 작업 노드의 개수) 이 때, 제1 영역을 다양한 사이즈의 블록들로 분할하는 단계는, 상기 파일의 제일 앞에서부터, 제1 사이즈의 블록을 M개씩 형성하는 단계(M은 상기 작업 노드의 개수)와, 블록이 형성되지 않은 영역에, 상기 제1 사이즈보다 작은 제2 사이즈의 블록을 M개씩 형성하는 단계와, 블록이 형성되지 않은 영역에, 직전 형성 블록의 사이즈보다 작은 사이즈의 블록을 M개씩 형성하는 단계를, 상기 작은 사이즈가 상기 고정 사이즈보다 큰 것을 조건으로 반복하는 단계를 포함할 수 있다.
몇몇 실시예들에서, 상기 제2 영역의 사이즈는, 상기 작업 노드의 개수 및/또는 각 작업 노드에서 실행되는 데이터 분산 처리용 병렬 프로세스의 개수 및/또는 각 작업 노드의 성능이 동일할 수록 작게 설정되거나, 각 작업 노드의 운영 비용이 낮을수록 작게 설정되는 작업 분산 효과 파라미터를 반영하여 결정될 수 있다.
일 실시예에서, 상기 분산 처리 시스템에 속한 복수의 작업 노드에 의하여 분산 처리 되는 파일의 블록화 방법은, 상기 파일의 사이즈가 상기 결정된 제2 영역의 사이즈 보다 큰 경우에 한하여, 상기 구분하는 단계, 상기 제1 영역을 다양한 사이즈의 블록들로 분할하는 단계, 및 상기 제2 영역을 동일 사이즈의 블록들로 분할하는 단계를 수행하는 단계를 더 포함할 수 있다.
몇몇 실시예들에서, 상기 제1 영역의 블록은 최초 할당 받은 작업 노드에 의하여 처리되어야 하는 블록이고, 상기 제2 영역의 블록은 최초 할당 받은 작업 노드가 다른 작업 노드에게 이관할 수도 있는 블록이다.
다른 몇몇 실시예들에서는, 상기 제1 영역의 블록 중 일부는 최초 할당 받은 작업 노드에 의하여 처리되어야 하는 블록인 반면 다른 일부는 최초 할당 받은 작업 노드가 다른 작업 노드에게 이관할 수 있는 블록이고, 상기 제2 영역의 블록은 최초 할당 받은 작업 노드가 다른 작업 노드에게 이관할 수도 있는 블록이다.
상기 기술적 과제를 해결하기 위한 본 발명의 다른 실시예에 따른 대용량 파일의 분산 처리 방법은, 다양한 사이즈의 블록들로 분할된 제1 영역 및 상기 제1 영역의 데이터보다 나중에 처리되고 고정 사이즈의 블록들로 분할된 제2 영역을 가지는 파일을 제공받는 단계와, 제1 영역의 블록들 및 제2 영역의 블록들을 분산 처리 시스템에 속한 복수의 작업 노드들에 균등하게 나누어 할당하는 단계와, 상기 작업 노드들의 블록 처리 현황을 모니터링 하여, 각 작업 노드들의 미처리 블록 현황에 따라 부하 리밸런싱 작업을 수행하는 단계를 포함한다. 몇몇 실시예들에서, 상기 부하 리밸런싱 작업을 수행하는 단계는, 상기 제2 영역의 블록 만을 상기 부하 리밸런싱 대상으로 하는 단계를 포함할 수 있다.
상기 기술적 과제를 해결하기 위한 본 발명의 또 다른 실시예에 따른 대용량 파일의 분산 처리 관리 장치는, 하나 이상의 프로세서와, 상기 프로세서에 의하여 수행 되는 컴퓨터 프로그램이 로드(load)된 메모리와, 분산 처리 시스템에 속한 복수의 작업 노드에 연결된 네트워크 인터페이스를 포함할 수 있다. 이 때, 상기 컴퓨터 프로그램은, 상기 복수의 작업 노드에 의하여 분산 처리되는 파일을 제1 영역 및 상기 제1 영역의 데이터보다 나중에 처리되는 제2 영역으로 구분하는 오퍼레이션과, 상기 제1 영역을 다양한 사이즈의 블록들로 분할하는 오퍼레이션과, 상기 제2 영역을 고정 사이즈의 블록들로 분할하는 오퍼레이션과, 제1 영역의 블록들 및 제2 영역의 블록들을 상기 복수의 작업 노드들에 상기 네트워크 인터페이스를 통하여 균등하게 나누어 송신하는 오퍼레이션을 포함할 수 있다.
상기 기술적 과제를 해결하기 위한 본 발명의 또 다른 실시예에 따른 컴퓨터 프로그램이 제공된다. 상기 컴퓨터 프로그램은, 분산 처리 시스템에 속한 복수의 작업 노드에 의하여 분산 처리 되는 파일을 제1 영역 및 상기 제1 영역의 데이터보다 나중에 처리되는 제2 영역으로 구분하는 단계와, 상기 제1 영역을 다양한 사이즈의 블록들로 분할하는 단계와, 상기 제2 영역을 고정 사이즈의 블록들로 분할하는 단계를 각각 수행한다. 상기 컴퓨터 프로그램은, 몇몇 실시예들에서, 제1 영역의 블록들 및 제2 영역의 블록들을 상기 복수의 작업 노드들에 상기 네트워크 인터페이스를 통하여 균등하게 나누어 송신하는 단계와, 상기 작업 노드들의 블록 처리 현황을 모니터링 하여, 각 작업 노드들의 미처리 블록 현황에 따라 상기 제2 영역의 블록을 대상으로 한 부하 리밸런싱 작업을 수행하는 단계를 더 수행할 수 있다.
상기와 같은 본 발명에 따르면, 작업 분산의 효과를 유지하면서도, 파일 사이즈가 증가할수록 블록의 개수가 증가하는 수준을 억제하여 파일 블록화를 효율적으로 수행할 수 있다.
본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해 될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 대용량 파일의 분산 처리 시스템 구성도이다.
도 2는 본 발명의 다른 실시예에 따른 대용량 파일의 블록화 방법의 순서도이다.
도 3은 본 발명의 몇몇 실시예들에서 고려되는 대용량 파일의 제1, 2 영역 구분 시, 제2 영역의 사이즈를 결정하는 방법을 설명하기 위한 개념도이다.
도 4는 본 발명의 몇몇 실시예들에서 고려되는 대용량 파일의 제1, 2 영역을 설명하기 위한 개념도이다.
도 5a는 도 2의 대용량 파일의 블록화 방법에 따라 파일의 제1 영역이 블록화 되는 것의 예시도이다.
도 5b는 도 2의 대용량 파일의 블록화 방법에 따라 파일의 제2 영역이 블록화 되는 것의 예시도이다.
도 6은 도 5a 및 도 5b에 예시된 블록화 이후, 각 블록이 복수의 작업 노드에 할당된 결과를 설명하기 위한 개념도이다.
도 7은, 도 6과 비교되는, 종래기술에 따른 데이터 블록의 할당 결과를 나타내는 개념도이다.
도 8은 도 2의 일부 동작을 보다 자세히 설명하기 위한 상세 순서도이다.
도 9는 도 8의 일부 동작을 보다 자세히 설명하기 위한 상세 순서도이다.
도 10은 본 발명의 또 다른 실시예에 따른 대용량 파일의 분산 처리 방법의 순서도이다.
도 11은 본 발명의 또 다른 실시예에 따른 대용량 파일의 분산 처리 장치의 구성도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 게시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 게시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
대용량 파일의 분산 처리 시스템
이하, 도 1을 참조하여, 본 발명의 일 실시예에 따른 대용량 파일의 분산 처리 시스템의 구성 및 동작을 설명한다. 본 실시예에 따른 분산 처리 시스템은 분산 처리 관리 장치(100) 및 복수의 작업 노드(202)들로 구성된 작업 노드 클러스터(200)를 포함할 수 있다.
분산 처리 관리 장치(100)는, 대용량 파일 생성 시스템(300)으로부터 제공된 대용량 파일을 블록화하여, 블록화의 결과 형성된 각각의 블록을 각 작업 노드(202)에 할당할 수 있다. 각각의 작업 노드(202)는 할당 된 블록에 대하여 사전 정의된 처리 로직을 수행한다. 대용량 파일 생성 시스템(300)은 대용량 데이터를 수집하여 대용량 파일을 생성하는 다양한 기능의 시스템을 지칭한다. 예를 들어, 대용량 파일 생성 시스템(300)은 신용카드 거래 내역을 집계하는 시스템, 소셜 네트워크 시스템 상의 사용자 활동 내역을 집계하는 시스템, 각 단말 장치의 위치 정보를 수집하는 시스템 등 일 수 있다.
도 1에는 분산 처리 관리 장치(100)와 대용량 파일 생성 시스템(300)이 서로 물리적으로 분리 된 것으로 도시되어 있으나, 몇몇 실시예에서는, 분산 처리 관리 장치(100)가 대용량 파일 생성 시스템(300) 내부의 한 모듈로서 구성될 수도 있다.
이미 언급한 바와 같이, 분산 처리 관리 장치(100)는 상기 대용량 파일을 블록화 한다. 상기 대용량 파일은 제1 영역 및 제2 영역으로 나누어질 수 있다. 상기 제2 영역은, 각각의 작업 노드(202)에 의하여 처리 될 때, 상기 제1 영역의 데이터보다 나중에 처리되는 영역이다. 분산 처리 관리 장치(100)는 상기 제1 영역과 상기 제2 영역을 서로 다른 방식으로 블록화 한다. 분산 처리 관리 장치(100)는 상기 제1 영역을 다양한 사이즈의 블록들로 분할한다. 또한, 분산 처리 관리 장치(100)는 상기 제2 영역을 고정 사이즈의 블록들로 분할한다.
상기 제1 영역에 형성된 대부분의 블록들은 상기 고정 사이즈의 블록들보다 더 큰 블록 사이즈를 갖는다. 따라서, 분산 처리 관리 장치(100)는 상기 대용량 파일 전체를 상기 고정 사이즈의 블록으로 블록화하는 것에 비하여, 더 작은 수의 블록을 형성한다.
또한, 나중에 처리되는 영역인 상기 제2 영역은 고정 사이즈의 블록들로 분할되는데, 상기 고정 사이즈는 고정된 시스템 설정 또는 사용자 설정에 따라 결정된다. 상기 고정 사이즈는, 예를 들어 64MB(MEGA BYTE) 또는 128MB 등 부하 리밸런싱(load re-balancing)의 단위가 될 수 있도록, 기 지정된 데이터 사이즈를 초과하지 않는 범위에서 설정된다.
요컨대, 분산 처리 관리 장치(100)는 부하 리밸런싱이 필요하지 않은 대용량 파일의 초반부 블록들은 큰 사이즈의 블록으로, 부하 리밸런싱이 필요할 수 있는 대용량 파일의 후반부 블록들은 작은 고정 사이즈의 블록으로 각각 블록화한다. 본 발명에서 제시되는 신규의 블록화 방법은, 종래기술에 따른 고정 사이즈 블록화에 비하여 더 작은 수의 블록으로 동일한 작업 분산의 효과를 누릴 수 있도록 한다. 분산 처리 관리 장치(100)가 수행하는 블록화 방법에 대하여는 몇몇 실시예들을 통하여 보다 자세히 설명될 것이다.
분산 처리 관리 장치(100)는, HDFS에 따라 상기 대용량 파일을 블록화 할 수 있다. 이 때, 각각의 블록은 작업 노드(202)에 분산하여 저장되고, 각 블록의 위치 등에 대한 메타 정보는 분산 처리 관리 장치(100)에 저장될 수 있다. 즉, 이 때에는 작업 노드(202)가 HDFS의 데이터 노드이고, 분산 처리 관리 장치(100)가 HDFS의 네임 노드인 것으로 이해될 수 있을 것이다.
분산 처리 관리 장치(100)는 분산 처리에 있어서 태스크 스케줄러의 역할을 추가로 수행할 수 있다. 즉, 분산 처리 관리 장치(100)는 각 작업 노드(202)에 처리 및 저장 대상인 블록들을 제공함으로써 태스크를 할당하는 동작을 수행하고, 각 작업 노드(202)이 할당 받은 블록들에 대하여 처리 로직을 수행하는 상황을 모니터링 함으로써, 각 작업 노드(202)의 처리 진척 상황에 따라 부하 리밸런싱 작업을 수행할 수 있다.
본 발명의 몇몇 실시예들에서, 상기 부하 리밸런싱 작업은 각각의 작업 노드(202)가 실질적으로 동일한 시간에 할당 받은 블록들에 대하여 처리를 완료하는 것을 목표로 한다. 실질적으로 동일한 시간에 처리를 완료하는 것은, 처리 완료 예상 시간 사이의 격차가, 기 지정된 시간을 초과하지 않는 것을 의미한다. 따라서, 상기 부하 리밸런싱 작업은, 많은 미처리 블록을 가지는 작업 노드(202)에 할당된 블록들을, 적은 미처리 블록을 가지는 작업 노드(202)로 재할당하는 작업을 포함한다. 분산 처리 관리 장치(100)가 수행하는 부하 리밸런싱 방법에 대하여도, 몇몇 실시예들을 통하여 보다 자세히 설명될 것이다.
대용량 파일의 블록화
이하, 도 2를 참조하여, 본 발명의 다른 실시예에 따른 대용량 파일의 블록화 방법을 설명한다. 본 실시예에 따른 대용량 파일의 블록화 방법은 컴퓨팅 장치에 의하여 수행될 수 있다. 예를 들어, 본 실시예에 따른 대용량 파일의 블록화 방법은 도 1에 도시된 분산 처리 관리 장치(100)에 의하여 수행 될 수 있다. 이하, 도 2와 관련된 설명에 있어서는, 이해의 편의를 돕기 위하여 동작의 주체가 생략될 수 있음을 유의한다.
도 2에 도시된 바와 같이, 블록화 대상인 파일의 사이즈가 제2 영역의 사이즈보다 큰 경우에 한하여, 제1 영역 및 제2 영역에 대하여 서로 다른 방식의 블록화가 적용된다(S14, S15). 즉, 도 2에는 블록화 대상인 파일의 사이즈가 제2 영역의 사이즈보다 작거나 같은 경우, 전체 파일에 대하여 기 지정된 고정 사이즈의 블록들로 블록화가 수행(S12)되는 것으로 도시되어 있다. 본 발명의 블록화 방법은 도 2에 도시된 것으로 한정되지 않는다. 본 발명은, 도 2에 도시된 것과는 달리, 블록화 대상인 파일의 사이즈에 무관하게 항상 제1 영역 및 제2 영역에 대하여 서로 다른 방식의 블록화가 적용되는 실시도 포함하는 점을 유의한다.
다시 도 2에 도시된 실시예를 설명하면, 먼저, 분할 대상인 파일의 사이즈가 제2 영역의 사이즈보다 큰지 판단한다(S10). 상기 제2 영역은, 이미 언급된 바와 같이, 상기 파일에서 나중에 처리 되는 영역이다. 제2 영역은 부하 분산의 효과를 달성하기 위하여 적정한 사이즈를 가져야 한다. 제2 영역의 사이즈를 구하는 방법에 대하여 도 3을 참조하여 설명한다.
이미 언급된 바와 같이, 제2 영역에는 고정 사이즈의 블록(이하, ‘기본 블록’이라 함)이 형성된다. 상기 기본 블록의 사이즈가 64MB인 것으로 가정하자. 제2 영역에 형성된 기본 블록은 각 작업 노드(202)에 균등하게 나누어 할당될 것이다. 예를 들어, 제2 영역에 기본 블록이 100개 형성되고, 작업 노드가 20개라면, 각 작업 노드(202)는 기본 블록을 5개씩( 100 / 20 ) 할당 받을 것이다.
각각의 작업 노드(202)는 복수개의 병렬 프로세스가 실행 되는 환경을 가질 수 있다. 상기 병렬 프로세스는, 멀티 태스킹(multi-tasking) 기술을 이용하여, 각 작업 노드(202)에서 동시에 병렬적으로 실행된다. 각각의 병렬 프로세스는, 적어도 하나의 기본 블록을 할당 받아야 한다. 따라서, 일 실시예에서, 상기 제2 영역의 사이즈는, 작업 노드의 개수와 데이터 분산 처리용 병렬 프로세스의 개수를 곱한 값을 이용하여 연산될 수 있다.
상기 기본 블록은, 부하 리밸런싱의 대상으로 사용될 수 있는 점에서, 일종의 버퍼 역할을 한다. 따라서, 각 작업 노드(202)가 기본 블록을 많이 가질수록, 상기 부하 리밸런싱을 이용하여 각 작업 노드의 블록 처리가 종료되는 시간을 동일하게 맞출 수 있는 가능성이 높아진다. 각 작업 노드(202)의 각각의 상기 병렬 프로세스에 할당되는 기본 블록의 개수를 작업 분산 효과 파라미터라고 지칭한다. 상기 작업 분산 효과 파라미터는 각각의 상기 작업 노드가 동시에 상기 파일 처리를 완료해야 할 필요성이 높을 수록 큰 값으로 설정되는 1이상의 자연수인 것으로 이해할 수 있다. 이 때, 상기 제2 영역의 사이즈는, 상기 고정 사이즈와, 상기 분산 처리 시스템에 속한 작업 노드의 개수와, 상기 데이터 분산 처리용 병렬 프로세스의 개수와, 작업 분산 효과 파라미터를 모두 곱한 값으로 자동 연산된다.
분산 처리 시스템의 관리자는, 각각의 상기 작업 노드가 동시에 상기 파일 처리를 완료해야 할 필요성이 높을 수록 상기 작업 분산 효과 파라미터를 높은 값으로 설정할 수 있다. 그러나, 상기 작업 분산 효과 파라미터가 커질수록 블록의 개수도 많아지기 때문에, 상기 작업 분산 효과 파라미터를 무작정 큰 값으로 설정하는 것은 피해야 한다. 이하, 분산 처리 시스템의 컴퓨팅 환경에 따라, 분산 처리 시스템이 상기 작업 분산 효과 파라미터를 자동으로 설정하는 실시예에 대하여 설명한다.
상기 작업 분산 효과 파라미터는, 각 작업 노드(202)간 성능 차이를 반영하여 자동으로 설정될 수 있다. 각 작업 노드(202)간 성능 차이에 대한 데이터는, 각 작업 노드(202)에 대하여 주기적으로 수행되거나 특정 이벤트 발생에 트리거 되어 수행된 연산 속도 테스트 수행 결과를 자동으로 수집하는 방식 등을 통하여 사전에 확보 될 수 있다. 상기 작업 분산 효과 파라미터는, 각 작업 노드(202)간 성능이 동일할수록 작게 설정되고, 각 작업 노드(202)간 성능 차이가 클수록 크게 설정될 수 있다.
상기 작업 분산 효과 파라미터는, 기 입력된 각 작업 노드(202)의 운영 비용을 반영하여 자동으로 설정될 수도 있다. 각 작업 노드(202)가 각 블록에 대한 처리를 실질적으로 동시에 마치도록 부하 리밸런싱을 수행하는 이유는, 일부 작업 노드(202)가 먼저 작업을 마치고 다른 작업 노드(202)들이 작업을 마칠 때까지 유휴 상태로 대기하는 것을 방지하기 위함이다. 따라서, 각 작업 노드(202)의 시간당 운영비용이 높을수록, 유휴 상태의 발생 확률을 최소화하기 위하여 상기 작업 분산 효과 파라미터를 높이는 것이 바람직하다. 반대로, 각 작업 노드(202)의 시간당 운영비용이 낮을수록, 유휴 상태의 발생 확률이 어느 정도 높아지더라도 블록 분할 개수를 낮추는 것이 오히려 상대적으로 이익일 수도 있으므로(블록 분할에 관한 메타 정보의 사이즈를 낮추는 것이 더 이익), 상기 작업 분산 효과 파라미터를 낮추는 것이 바람직하다.
상기 작업 분산 효과 파라미터는, 각 작업 노드를 통하여 분산 처리되는 파일에 적용되는 로직의 프로그래밍 복잡도(programming complexity)를 이용하여 자동 설정될 수도 있다. 상기 프로그래밍 복잡도는 소프트웨어 메트릭(software metric) 중 하나로, 소프트웨어 내부의 복수 엔터티 간의 인터랙션이 어느 정도 존재할 것인지를 가리킨다. 각각의 블록에 적용되는 로직이 동일하지만, 입력 되는 데이터가 서로 다르기 때문에, 상기 로직의 상기 프로그래밍 복잡도가 높을수록 처리에 소요되는 연산 부하가 서로 다를 가능성이 높다. 따라서, 상기 로직의 프로그래밍 복잡도가 높을수록 상기 작업 분산 효과 파라미터를 높여서, 각 작업 노드의 블록 처리 속도가 달라지는 것에 대비하여 부하 리밸런싱 역량을 좀더 증강하는 것이 바람직하다.
상기 프로그래밍 복잡도는, 예를 들어, Thomas J. McCabe, Sr.에 의하여 1976년 정의된 Cyclomatic Complexity 값(이하, “McCabe의 Cyclomatic Complexity”라 함)을 가리킬 수 있다. 상기 McCabe의 Cyclomatic Complexity는 프로그램 소스 코드의 독립적인 실행 경로의 개수를 가리키는 값이다. 상기 McCabe의 Cyclomatic Complexity를 구하는 방법에 대하여는, 제1 문헌: McCabe (December 1976). "A Complexity Measure". IEEE Transactions on Software Engineering: 308-320과, 제2 문헌: Arthur H. Watson and Thomas J. McCabe (1996). "Structured Testing: A Testing Methodology Using the Cyclomatic Complexity Metric" (PDF). NIST Special Publication 500-235 등의 널리 알려진 문헌들을 참조할 수 있다.
상기 로직에 대한 McCabe의 Cyclomatic Complexity를 구하기 위하여, 제3 문헌: A small C/C++ source code analyzer using the cyclometric complexity metric(https://sites.google.com/site/maltapplication/) 등의 널리 알려진 소스 코드 분석기를 활용할 수 있다.
요컨대, 상기 작업 분산 효과 파라미터는, 작업 노드 간 성능 차이가 클수록, 작업 노드의 시간당 운영비용이 높을수록, 처리 로직의 McCabe의 Cyclomatic Complexity가 클 수록, 더 큰 값으로 자동 설정될 수 있다.
도 3에 도시된 상황의 경우, 각 작업 노드(202)는 3개의 병렬 프로세스를 동시에 실행하고, 작업 분산 효과 파라미터는 4로 설정되어 있다. 또한, 기본 블록의 사이즈는 64MB이다. 따라서, 작업 노드의 개수를 n이라 하면, 제2 영역의 사이즈는 (768*n)MB로 자동으로 연산된다. 예를 들어, 작업 노드의 개수가 100개라면, 제2 영역의 사이즈는 76800MB=75GB가 된다.
도 4를 참조하면, 제2 영역(404)의 사이즈가 75GB이고, 제2 영역은 파일의 뒤쪽 75GB 영역에 위치한다. 본 명세서에서, 파일(400)은 앞쪽에서 뒤쪽의 순서로 처리(processing) 되며, 가장 앞쪽은 파일의 오프셋이 0인 데이터이고, 가장 뒤쪽은 파일의 오프셋이 (FILE_SIZE - 1)인 데이터가 될 것이다. 파일의 구분 방법은, 파일을 기준 오프셋( 파일 사이즈 - 제2 영역 사이즈 )을 기준으로 2개의 연속된 영역으로 나누되, 먼저 처리 되는 앞쪽 영역을 제1 영역(402)으로 결정하고, 나중에 처리 되는 뒤쪽 영역을 제2 영역(404)으로 결정한다.
다시 도 2로 돌아와서 설명하면, 파일이 제2 영역 사이즈(제2 영역 사이즈 구하는 방법은 도 3 참조)보다 더 큰 사이즈를 가지면(S10), 상기 파일을 제1 영역 및 제2 영역으로 구분하고(구분 방법은 도 4 참조)(S13), 제1 영역은 다양한 사이즈의 블록들로 분할한다(S14).
일 실시예에서, 제1 영역은 각 사이즈의 블록을 M개씩 포함할 수 있다(M은 작업 노드의 개수). 이는, 각 작업 노드가 각 사이즈의 블록을 1개씩 할당 받도록 하기 위함이다. 도 5a는, 작업 노드가 2개인 경우, 제1 영역에 256MB 사이즈의 블록 2개(420a, 420b)와 128MB 사이즈의 블록 2개(421a, 421b)가 형성되는 것을 도시한다.
제2 영역은 고정 사이즈의 블록들, 즉 기본 블록들로 분할한다(S15). 도 5b는 작업 노드가 2개, 각 작업 노드 당 병렬 프로세스 개수가 1개, 상기 작업 분산 효과 파라미터가 3으로 설정된 경우, 제2 영역에 6개(2 * 1 * 3)의 기본 블록이 형성되는 것을 도시한다.
도 6은, 도 5a 및 도 5b에 도시된 것과 같이 파일이 블록화 된 경우, 2개의 작업 노드 각각이 블록을 어떻게 할당 받는지 도시한다. 작업 노드#1은 256MB의 블록(420a), 128MB의 블록(421a) 및 기본 블록(440a, 440c, 440e)의 순서로 각 블록을 처리한다. 작업 노드#2는 256MB의 블록(420b), 128MB의 블록(421b) 및 기본 블록(440b, 440d, 440f)의 순서로 각 블록을 처리한다. 제1 영역(402)의 다양한 사이즈의 블록들(420a, 420b, 421a, 421b)이 작업 노드#1, 작업 노드#2에 균등하게 할당된 것을 확인할 수 있다. 또한, 제2 영역(404)의 6개의 기본 블록들(440a, 440b, 440c, 440d, 440e, 440f)도 작업 노드#1, 작업 노드#2에 3개씩 균등하게 할당된 것을 확인할 수 있다.
도 7은, 종래 기술에 따라, 전체 파일을 모두 기본 블록들로만 블록화 한 경우, 작업 노드#1, 작업 노드#2각 상기 기본 블록을 같은 개수 할당 받은 것을 도시한다. 본 발명에 따르면, 파일이 총 10개의 블록으로 블록화 되는 반면, 종래 기술에서는 파일이 총 18개의 블록으로 블록화 된다. 본 발명에서는 각각의 작업 노드가 큰 사이즈를 가지는 블록을 대상으로 초기 작업을 수행하는 반면, 후기 작업에서는 작은 사이즈를 가지는 블록을 대상으로 하므로, 필요 시에 부하 리밸런싱에 큰 부담이 없다. 따라서, 본 발명에서는 더 작은 개수의 블록으로도 부하 분산의 효과를 달성할 수 있는 효과가 있다. 또한, 본 발명에서는 분산 처리 시스템의 작업 환경에 대응 되는 사이즈를 가진 제2 영역이 대용량 파일의 뒤쪽에 배치됨으로써, 상기 분산 처리 시스템에서 부하 리밸런싱 작업이 수행되기에 적합한 블록 배치를 제공한다.
이하, 도 8 내지 도 9를 참조하여, 제1 영역을 다양한 사이즈의 블록들로 분할하는 방법에 대하여 보다 상세하게 설명한다.
도 8은 도 2에 도시된 제1 영역 블록화 단계(S14)의 상세 순서도이다.
먼저, 제1 영역의 블록 미형성 영역 사이즈(F)가 기본 블록의 고정 사이즈(b)와 작업 노드의 개수(M)을 곱한 값보다 큰지 여부가 판단된다(S140). 이 판단 동작은, 블록을 형성해 줄 수 있는 영역이 각 작업 노드에 대하여 b를 초과하는 사이즈의 블록을 형성해 줄 수 있을 정도의 크기를 가지는 지 여부를 결정하기 위한 것으로 이해 될 수 있다. 예를 들어, b=64MB이고, M=10인 경우, 제1 영역의 블록 미형성 영역이 640MB 미만이면(500MB라고 가정하자), 상기 블록 미형성 영역의 사이즈(F)를 10으로 나눈 크기(50MB)를 블록 사이즈로 결정한다(S146). 다음으로, 블록 미형성 영역의 앞에서부터 50MB의 블록을 10개 형성해 주는 것으로 제1 영역에 대한 블록 형성을 마무리 한다(S148).
제1 영역의 블록 미형성 영역 사이즈(F)가 기본 블록의 고정 사이즈(b)와 작업 노드의 개수(M)을 곱한 값보다 큰 경우(S140), 형성해 줄 블록의 사이즈는 F*i/M 으로 결정된다(S142). i는 0과 1사이의 값을 갖는 가변 분할 파라미터이다. 그리고, i는 한번 정해지면 그 값이 변하지 않고 일정하게 유지된다. 블록 사이즈가 결정되면, 그 사이즈의 블록을 블록 미형성 영역의 앞에서부터 M개 순차로 형성한다(S144).
예를 들어, 가변 분할 파라미터가 0.6이라면, 제1 영역의 블록 미형성 영역 중 60%의 영역을 작업 노드의 개수로 나누면, 형성해 줄 블록의 사이즈가 결정된다. 다음 회차에 형성해 줄 블록의 사이즈는, 남은 블록 미형성 영역의 60% 영역을 작업 노드의 개수로 나누어 결정된다. 따라서, 시간이 지날수록 형성되는 블록의 사이즈는 작아지게 된다. 형성되는 블록의 사이즈가 상기 기본 블록의 고정 사이즈보다 작아지는 경우, 남은 영역을 작업 노드의 개수로 나누어 동일 크기의 블록을 마지막으로 형성해 준 후, 제1 영역에 대한 블록화를 마무리한다.
또한, 블록의 형성은, 블록 미형성 영역의 앞쪽(즉, 파일의 오프셋이 작은 쪽)에서부터 수행된다.
따라서, 제1 영역에 대한 블록화는, 제1 내지 제n 사이즈의 블록(n은 2이상의 자연수)이 파일의 앞에서부터 순차로 형성되는 것을 의미한다. 파일의 앞, 뒤는 파일에 포함된 각 데이터의 처리 순서를 가리키는 개념이다. 즉, 파일의 제1 오프셋 영역이 제2 오프셋 영역보다 앞에 있다는 것은, 제1 오프셋 영역이 제2 오프셋 영역보다 더 먼저 처리되는 것을 의미한다.
요컨대, 상기 제1 영역의 블록화는, 상기 파일의 제일 앞에서부터 제1 사이즈의 블록을 M개씩 형성하는 단계(M은 상기 작업 노드의 개수)와, 블록이 형성되지 않은 영역에 상기 제1 사이즈보다 작은 제2 사이즈의 블록을 M개씩 형성하는 단계를 포함한다. 물론, 파일의 사이즈가 충분히 큰 경우, 아직 블록이 형성되지 않은 영역에 상기 제2 사이즈보다 작은 제3 사이즈의 블록을 M개씩 형성하는 단계, 아직 블록이 형성되지 않은 영역에 상기 제3 사이즈보다 작은 제4 사이즈의 블록을 M개씩 형성하는 단계 등이 추가로 수행 될 수 있을 것이다.
본 발명의 블록 개수 감소 효과를 달성하기 위하여, 적어도 상기 제1 사이즈는 상기 기본 블록의 고정 사이즈(64MB으로 수 차례 예시됨)보다 큰 것이 바람직하다. 따라서, 상기 가변 분할 파라미터(i)의 값은 0과 1사이의 실수 값으로 설정되되, 제1 사이즈(즉, 제1 영역 내에 최초로 형성되는 블록의 사이즈)는 상기 기본 블록의 고정 사이즈보다 큰 값을 가질 수 있도록, 가변 분할 파라미터(i) 값의 최소 값을 제약하는 것이 바람직하다. 예를 들어, 제1 영역의 사이즈가 6400MB이고, M=10, 기본 블록의 고정 사이즈=64MB인 경우, 6400 * 0.1 / 10 = 64MB 이므로, 상기 가변 분할 파라미터 값은 적어도 0.1 이상의 값이 되어야 한다. 즉, 상기 가변 분할 파라미터(i) 값의 최소 값은, 제1 영역의 사이즈, 작업 노드의 개수, 기본 블록의 고정 사이즈를 이용하여 자동으로 연산될 수 있다.
상기 가변 분할 파라미터의 값이 1에 가까워질수록, 제1 영역에 형성되는 블록의 개수는 감소할 것이고, 반대로 가변 분할 파라미터의 값이 0에 가까워질수록, 제1 영역에 형성되는 블록의 개수는 증가할 것이다. 본 발명의 블록 감소 효과를 극대화하기 위하여는, 상기 가변 분할 파라미터의 값을 1으로 설정하여 제1 영역 전체를 하나의 블록으로 형성하는 것도 고려할 수 있을 것이다. 다만, 이렇게 제1 영역 전체를 하나의 블록으로 형성하면, 특정 작업 노드에서 비정상 상황이 발생되어 작업 속도가 극단적으로 느려진 경우에 적절히 대응할 수 없다. 이미 설명된 몇몇 실시예에서는 제2 영역의 블록들만 부하 리밸런싱의 대상이 될 수 있으나, 본 발명의 또 다른 몇몇 실시예에서는 제2 영역의 블록들뿐만 아니라 제1 영역의 블록들 중 기 지정된 사이즈 이하의 사이즈를 갖는 블록들은 부하 리밸런싱의 대상으로 포함시킬 수 있다. 이러한 실시예를 고려하면, 제1 영역에도 부하 리밸런싱이 진행 되어야 하는 상황을 고려하여, 한 작은 사이즈의 블록들을 형성시킬 필요가 있다. 따라서, 상기 가변 분할 파라미터 값은, 1 미만의 값으로 설정하는 것이 바람직하다.
상기 가변 분할 파라미터 값(i)은, 관리자에 의하여 수동으로 설정 될 수도 있으나, 시스템에 의하여 최적화된 값이 자동 설정될 수도 있다. 이하, 상기 가변 분할 파라미터 값(i)이 자동 설정되는 실시예에 대하여, 도 9를 참조하여 자세히 설명한다.
각 작업 노드의 성능 균일도를 이용하여, 상기 가변 분할 파라미터 값이 자동 설정 될 수 있다. 파일을 분산 처리하는 각각의 작업 노드가 동일한 성능을 가질수록 각 블록에 대한 동일한 처리 속도를 기대할 수 있기 때문에, 제1 영역에 형성되어야 하는 블록의 개수를 줄일 수 있다. 따라서, 각 작업 노드의 성능이 균일할수록 상기 가변 분할 파라미터는 높은 값으로 자동 설정될 수 있다.
각 작업 노드의 성능 균일도는 하드웨어 스펙(spec.) 정보로부터 측정될 수 있다. 각 작업 노드에 상기 블록의 처리를 위한 프로세스 이외의 다른 프로세스가 많이 실행되지 않는 이상적인 환경인 경우, 상기 하드웨어 스펙 정보는 상기 블록의 처리 속도를 예측하기 위한 신뢰할 수 있는 정보이기 때문이다.
도 9를 참조하여 하드웨어 스펙 정보로부터 각 작업 노드의 성능 균일도를 측정하는 방법을 설명한다. 먼저, 스펙(spec) 정보를 분산 처리 시스템의 자원 관리 정보에서 조회한다(S1420). 다음으로, 각 작업 노드의 스펙을 스코어링(scoring) 한다(S1422). 상기 스코어링 과정에서 복수의 기준이 적용될 수 있다. 예를 들어, 상기 파일에 적용되어야 하는 로직이 많은 연산을 요하는 로직인 경우, CPU 성능에 높은 가중치가 부여된 기준이 스코어링 과정에 적용되고, 상기 파일에 적용되어야 하는 로직이 많은 메모리를 요하는 로직인 경우, 메모리 용량에 높은 가중치가 부여된 기준이 스코어링 과정에 적용되고, 상기 파일에 적용되어야 하는 로직이 많은 I/O(스토리지에 대한 입출력 작업)를 요하는 것인 경우, 스토리지 용량 및 스토리지 속도에 높은 가중치가 부여된 기준이 스코어링 과정에 적용될 수 있다. 다음으로, 스코어링(S1422)의 결과 연산된 각 작업 노드의 스펙 스코어에 대하여 분산 값(Var_node)(또는, 표준 편차 값)을 연산함으로써, 상기 성능 균일도를 측정할 수 있다(S1424). 상기 성능 균일도는 상기 분산 값(또는, 표준 편차 값)이 낮을수록 높은 값을 가진다.
각 작업 노드에 상기 블록의 처리를 위한 프로세스 이외의 다른 다양한 프로세스가 실행되고 있는 상황이라면, 상기 하드웨어 스펙 정보는 각 작업 노드의 작업 환경을 정확하게 반영하지 못한다. 이때에는 실제 연산 속도에 대한 벤치마킹 테스트 결과를 활용하여 상기 블록의 처리 속도를 예측할 수 있다. 이때에는, 각 작업 노드에서 주기적으로, 또는 비주기적으로 실시되는 연산 속도 테스트 수행 결과를 자동으로 수집한 후, 상기 테스트 수행 결과에 따라 매겨진 스코어의 분산 값(또는 표준 편차 값)을 연산함으로써, 상기 성능 균일도를 측정할 수도 있을 것이다.
각 작업 노드를 통하여 분산 처리되는 파일에 적용되는 로직의 프로그래밍 복잡도를 이용하여 상기 가변 분할 파라미터 값을 자동 설정할 수도 있다. 이미 언급한 바와 같이, 각각의 블록에 적용되는 로직이 동일하지만, 입력 되는 데이터가 서로 다르기 때문에, 상기 로직의 상기 프로그래밍 복잡도가 높을수록 처리에 소요되는 연산 부하가 서로 다를 가능성이 높다. 따라서, 상기 로직의 프로그래밍 복잡도가 높을수록 상기 가변 분할 파라미터를 낮춰서, 각 작업 노드의 블록 처리 속도가 달라지는 것에 대비하여 부하 리밸런싱 역량을 좀더 증강하는 것이 바람직하다. 상기 프로그래밍 복잡도는 McCabe의 Cyclomatic Complexity를 가리킬 수 있다.
일 실시예에서, 상기 프로그래밍 복잡도가 상기 제2 영역의 사이즈를 구할 때 작업 분산 효과 파라미터의 형태로 이미 반영되었다면, 상기 제1 영역의 블록화에 활용되는 상기 가변 분할 파라미터 값의 자동 설정에는 상기 프로그래밍 복잡도를 중복하여 적용하지 않을 수 있다.
반면에, 다른 실시예에서는, 상기 프로그래밍 복잡도가 상기 제2 영역의 사이즈를 구할 때 작업 분산 효과 파라미터의 형태로 이미 반영되었더라도, 상기 제1 영역의 블록화에 활용되는 상기 가변 분할 파라미터 값의 자동 설정에 상기 프로그래밍 복잡도를 중복하여 적용할 수 있다.
또 다른 실시예에서, 상기 프로그래밍 복잡도가 기 설정된 한계치 이하의 값을 가지는 경우에는 상기 프로그래밍 복잡도가 상기 제2 영역의 사이즈를 구할 때 작업 분산 효과 파라미터의 형태로 이미 반영되었다면, 상기 제1 영역의 블록화에 활용되는 상기 가변 분할 파라미터 값의 자동 설정에는 상기 프로그래밍 복잡도를 중복하여 적용하지 않고, 상기 프로그래밍 복잡도가 상기 한계치 이상의 값을 가지는 경우에는 상기 제2 영역의 사이즈를 구할 때 작업 분산 효과 파라미터의 형태로 이미 반영되었더라도, 상기 제1 영역의 블록화에 활용되는 상기 가변 분할 파라미터 값의 자동 설정에 상기 프로그래밍 복잡도를 중복하여 적용할 수 있다.
상기 가변 분할 파라미터 값(i)을 설정하는데, 상기 프로그래밍 복잡도 및 상기 성능 균일도가 모두 반영될 수 있는 것은 물론이다(S1428). 이 때, 상기 가변 분할 파라미터 값(i)은 각 작업 노드의 스펙 스코어의 분산 값(Var_node) 및 프로그래밍 복잡도(PC)에 반비례할 수 있다. 도 9에 도시 된 수식에서 α는 테스트 과정에서 적응적으로 설정될 수 있는 계수이다.
분산 처리에 대한 관리(태스크 스케줄링)
이하, 도 10을 참조하여, 본 발명의 또 다른 실시예에 따른 분산 처리 관리 방법을 설명한다. 본 실시예에 따른 분산 처리 관리 방법은 컴퓨팅 장치에 의하여 수행 될 수 있다. 예를 들어, 본 실시예에 따른 분산 처리 관리 방법은 도 1에 도시된 분산 처리 관리 장치(100)에 의하여 수행 될 수 있다. 이하, 본 실시예와 관련된 설명에 있어서는, 이해의 편의를 돕기 위하여 동작의 주체가 생략될 수 있음을 유의한다.
먼저, 도 2에 도시된 파일 블록화 동작이 수행된다(S10, S12, S13, S14, S15). 이 때, 도 3 내지 도 9를 참조하여 설명한 본 발명의 파일 블록화 관련 실시예들이 적용될 수 있음은 물론이다.
파일 블록화가 완료된 후, 각각의 블록이 각 작업 노드에 균등하게 할당된다(S16). “균등하게 할당”되는 것은, 특정 사이즈의 블록이 특정 작업 노드에 편중되지 않도록 할당하는 것을 의미한다. 예를 들어, 제1 작업 노드가 제1 사이즈를 가진 블록을 M개 가졌다면, 다른 작업 노드들도 상기 제1 사이즈를 가진 블록을 M개 가지도록 블록을 할당하는 것을 의미한다. 물론, 블록의 개수가 모든 작업 노드에 할당하기에 모자라는 경우, 일부 작업 노드는 다른 작업 노드에 할당된 블록을 할당 받지 못하는 경우가 생길 수도 있다. “균등하게 할당”되는 것의 의미는 도 6과 관련된 설명을 참조한다.
블록 할당이 마무리 된 후, 각 작업 노드의 블록 처리 현황을 모니터링 한다(S17). 상기 모니터링은, 예를 들어, 각 작업 노드가 기록한 로그(LOG)를 확인하거나, 각 작업 노드가 블록 처리 완료 시 보고 메시지를 송신하는 등의 방식에 의하여 수행될 수 있을 것이다. 블록 처리(block processing)는, 각 작업 노드가 할당 된 블록에 포함된 데이터에, 블록화 된 파일의 처리 로직을 적용하는 것을 가리킨다.
상기 모니터링의 결과, 부하 리밸런싱이 필요한 상황으로 판단 된 경우, 분산 처리 관리 장치(100)는 제2 영역의 블록을 대상으로 부하 리밸런싱을 수행한다(S18). 예를 들어, 제1 작업 노드는 상기 제1 작업 노드에 할당된 8개의 제2 영역 블록 중 1개의 미처리 블록이 존재하나, 제2 작업 노드는 상기 제2 작업 노드에 할당된 8개의 제2 영역 블록 중 7개의 미처리 블록이 존재하는 경우, 분산 처리 관리 장치(100)는 부하 리밸런싱이 필요한 상황으로 판단하고, 제2 작업 노드에 할당된 제2 영역 블록 중 적어도 일부를 상기 제1 작업 노드로 재할당할 수 있다.
일 실시예에서, 분산 처리 관리 장치(100)는 제2 영역의 블록 중 미처리 블록의 상하위 편차가 기 지정된 기준을 초과할 정도로 심각해진 경우(예를 들어, 최상위와 최하위의 미처리 블록 보유 차이가, 각 작업 노드에 할당된 제2 영역 블록의 개수의 50%를 초과한 경우), 부하 리밸런싱을 수행할 수 있다.
분산 처리 관리 장치(100)는 상기 부하 리밸런싱을 수행하는 것에 의하여, 각 작업 노드가 실질적으로 동일한 시간에 할당된 블록을 모두 처리할 수 있도록 관리한다(S19).
지금까지 도 10 및 관련된 설명에서, 제2 영역의 블록 만이 부하 리밸런싱의 대상이 되는 것으로 설명하였으나, 몇몇 실시예들에서는, 제2 영역의 블록뿐만 아니라, 제1 영역의 블록 중 일부 블록에 대하여도 부하 리밸런싱이 수행될 수 있는 점에 유의한다. 상기 제1 영역의 블록 중, 부하 리밸런싱이 수행되는 블록은, 기 지정 된 사이즈 보다 작은 사이즈를 가지는 블록이다.
지금까지 도 1 내지 도 10을 참조하여 설명된 본 발명의 실시예에 따른 방법들은 컴퓨터가 읽을 수 있는 코드로 구현된 컴퓨터프로그램의 실행에 의하여 수행될 수 있다. 상기 컴퓨터프로그램은 인터넷 등의 네트워크를 통하여 제1 컴퓨팅 장치로부터 제2 컴퓨팅 장치에 전송되어 상기 제2 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 제2 컴퓨팅 장치에서 사용될 수 있다. 상기 제1 컴퓨팅 장치 및 상기 제2 컴퓨팅 장치는, 서버 장치, 클라우드 서비스를 위한 서버 풀에 속한 물리 서버, 데스크탑 피씨와 같은 고정식 컴퓨팅 장치를 모두 포함한다.
상기 컴퓨터프로그램은 DVD-ROM, 플래시 메모리 장치 등의 기록매체에 저장된 것일 수도 있다.
이하, 도 11을 참조하여, 본 발명의 또 다른 실시예에 따른 대용량 파일의 분산 처리 관리 장치의 구성 및 동작을 설명한다.
도 11에 도시된 바와 같이, 본 실시예에 따른 대용량 파일의 분산 처리 관리 장치(100)는 하나 이상의 프로세서(106), 분산 처리 시스템에 속한 복수의 작업 노드를 포함하는 작업 노드 클러스터(200)에 연결된 네트워크 인터페이스(102), 스토리지(104), 및 프로세서(106)에 의하여 수행 되는 컴퓨터 프로그램이 로드(load)된 메모리(RAM)(108)를 포함할 수 있다. 프로세서(106), 네트워크 인터페이스(102), 스토리지(104) 및 메모리(108)는 시스템 버스(110)를 통하여 데이터를 송수신한다.
스토리지(104)는, 네트워크 인터페이스(102)를 통하여 대용량 데이터 생성 시스템으로부터 수신한 대용량 파일(400)을 일시적으로 저장할 수 있다.
상기 컴퓨터 프로그램은 파일 블록화 소프트웨어(180)를 포함한다.
파일 블록화 소프트웨어(180)는, 대용량 파일(400)을 제1 영역 및 상기 제1 영역의 데이터보다 나중에 처리되는 제2 영역으로 구분하는 오퍼레이션(operation), 상기 제1 영역을 다양한 사이즈의 블록들로 분할하는 오퍼레이션, 상기 제2 영역을 고정 사이즈의 블록들로 분할하는 오퍼레이션을 포함한다. 파일 블록화 방법은, 이미 도 1 내지 도 9를 참조하여 자세히 설명한 바 있다. 파일 블록화 소프트웨어(180)는 대용량 파일(400)의 블록화 결과를, 메모리(108) 상에 블록 분할 정보(184)로서 기록한다. 블록 분할 정보(184)는, 각 블록의 오프셋 레인지(offset range)를 포함할 수 있다.
분산 처리 관리 소프트웨어(182)는 태스크 스케줄링을 담당하는 오퍼레이션들을 포함한다. 분산 처리 관리 소프트웨어(182)는, 블록 분할 정보(184)를 참조하여, 제1 영역의 블록들 및 제2 영역의 블록들을 상기 복수의 작업 노드들에 네트워크 인터페이스(102)를 통하여 균등하게 나누어 송신하는 오퍼레이션과 상기 작업 노드들의 블록 처리 현황을 모니터링 하여, 각각의 상기 작업 노드들의 미처리 블록 현황에 따라 상기 제2 영역의 블록을 대상으로 한 부하 리밸런싱 작업을 수행하는 오퍼레이션을 포함할 수 있다.
본 실시예에 따른 대용량 파일의 분산 처리 관리 장치(100)는 부하 리밸런싱이 필요하지 않은 대용량 파일의 초반부 블록들은 큰 사이즈의 블록으로, 부하 리밸런싱이 필요할 수 있는 대용량 파일의 후반부 블록들은 작은 고정 사이즈의 블록으로 각각 블록화한다. 따라서, 분산 처리 관리 장치(100)는 종래기술에 따른 고정 사이즈 블록화에 비하여 더 작은 수의 블록으로 동일한 작업 분산의 효과를 누릴 수 있도록 한다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다.

Claims (23)

  1. 분산 처리 시스템에 속한 복수의 작업 노드에 의하여 분산 처리 되는 파일에 대한 블록화 방법에 있어서,
    상기 파일을 제1 영역 및 상기 제1 영역의 데이터보다 나중에 처리되는 제2 영역으로 구분하는 단계;
    상기 제1 영역을 다양한 사이즈의 블록들로 분할하는 단계; 및
    상기 제2 영역을 고정 사이즈의 블록들로 분할하는 단계를 포함하는,
    분산 처리를 위한 대용량 파일의 블록화 방법.
  2. 제1 항에 있어서,
    상기 제1 영역은 각 사이즈의 블록을 M개씩 포함하는(M은 상기 작업 노드의 개수),
    분산 처리를 위한 대용량 파일의 블록화 방법.
  3. 제2 항에 있어서,
    제1 영역을 다양한 사이즈의 블록들로 분할하는 단계는,
    상기 파일의 제일 앞에서부터, 제1 사이즈의 블록을 M개씩 형성하는 단계(M은 상기 작업 노드의 개수); 및
    블록이 형성되지 않은 영역에, 상기 제1 사이즈보다 작은 제2 사이즈의 블록을 M개씩 형성하는 단계를 포함하되,
    상기 파일은, 파일의 앞에서 뒤쪽 방향으로 처리되는,
    분산 처리를 위한 대용량 파일의 블록화 방법.
  4. 제3 항에 있어서,
    상기 제1 사이즈는 상기 고정 사이즈 보다 큰,
    파일 분할 방법.
  5. 제3 항에 있어서,
    상기 제1 영역을 다양한 사이즈의 블록들로 분할하는 단계는,
    블록이 형성되지 않은 영역에, 직전 형성 블록의 사이즈보다 작은 사이즈의 블록을 M개씩 형성하는 단계를, 상기 작은 사이즈가 상기 고정 사이즈보다 큰 것을 조건으로 반복하는 단계를 더 포함하는,
    분산 처리를 위한 대용량 파일의 블록화 방법.
  6. 제3 항에 있어서,
    상기 제2 사이즈는, ( F * i / M )의 사이즈를 가리키되,
    F = 블록이 형성되지 않은 영역의 사이즈,
    i = 가변 분할 파라미터, (0<i<1)
    M = 상기 작업 노드의 개수인,
    분산 처리를 위한 대용량 파일의 블록화 방법.
  7. 제6 항에 있어서,
    i는 각 작업 노드의 성능이 동일할 수록 높은 값으로 설정되는,
    분산 처리를 위한 대용량 파일의 블록화 방법.
  8. 제6 항에 있어서,
    i는 상기 파일을 처리하는 로직의 복잡도가 높을 수록 낮은 값으로 설정되고,
    상기 복잡도는, 프로그래밍 복잡도(programming complexity)에 의하여 결정되는,
    분산 처리를 위한 대용량 파일의 블록화 방법.
  9. 제1 항에 있어서,
    상기 제2 영역의 사이즈는, 상기 분산 처리 시스템에 속한 작업 노드의 개수를 이용하여 결정되는,
    분산 처리를 위한 대용량 파일의 블록화 방법.
  10. 제9 항에 있어서,
    상기 제2 영역의 사이즈는, 각각의 상기 작업 노드에서 실행되는 데이터 분산 처리용 병렬 프로세스의 개수를 더 이용하여 결정되는,
    분산 처리를 위한 대용량 파일의 블록화 방법.
  11. 제10 항에 있어서,
    상기 제2 영역의 사이즈는, 상기 고정 사이즈와, 상기 분산 처리 시스템에 속한 작업 노드의 개수와, 상기 데이터 분산 처리용 병렬 프로세스의 개수와, 작업 분산 효과 파라미터를 모두 곱한 값이고,
    상기 작업 분산 효과 파라미터는, 각각의 상기 작업 노드가 동시에 상기 파일 처리를 완료해야 할 필요성이 높을 수록 큰 값으로 설정되는 1이상의 자연수인,
    분산 처리를 위한 대용량 파일의 블록화 방법.
  12. 제1 항에 있어서,
    상기 제2 영역의 사이즈는, 각 작업 노드의 성능이 동일할 수록 작게 설정되는 작업 분산 효과 파라미터를 반영하여 결정되는,
    분산 처리를 위한 대용량 파일의 블록화 방법.
  13. 제1 항에 있어서,
    상기 제2 영역의 사이즈는, 각 작업 노드의 운영 비용이 낮을수록 작게 설정되는 작업 분산 효과 파라미터를 반영하여 결정되는,
    분산 처리를 위한 대용량 파일의 블록화 방법.
  14. 제1 항에 있어서,
    상기 제2 영역의 사이즈는, 상기 파일의 처리 로직의 프로그래밍 복잡도가 높을수록 크게 설정되는 작업 분산 효과 파라미터를 반영하여 결정되되,
    상기 프로그래밍 복잡도는, McCabe의 Cyclomatic Complexity 값을 가리키는,
    분산 처리를 위한 대용량 파일의 블록화 방법.
  15. 제9 내지 제14 항 중 어느 한 항에 있어서,
    상기 파일의 사이즈가 상기 결정된 제2 영역의 사이즈 보다 큰 경우에 한하여, 상기 구분하는 단계, 상기 제1 영역을 다양한 사이즈의 블록들로 분할하는 단계, 및 상기 제2 영역을 동일 사이즈의 블록들로 분할하는 단계를 수행하는 단계를 더 포함하는,
    분산 처리를 위한 대용량 파일의 블록화 방법.
  16. 제1 항에 있어서,
    상기 제1 영역의 블록은 최초 할당 받은 작업 노드에 의하여 처리되어야 하는 블록이고, 상기 제2 영역의 블록은 최초 할당 받은 작업 노드가 다른 작업 노드에게 이관할 수 있는 블록인,
    분산 처리를 위한 대용량 파일의 블록화 방법.
  17. 다양한 사이즈의 블록들로 분할된 제1 영역 및 상기 제1 영역의 데이터보다 나중에 처리되고 고정 사이즈의 블록들로 분할된 제2 영역을 가지는 파일을 제공받는 단계;
    제1 영역의 블록들 및 제2 영역의 블록들을 분산 처리 시스템에 속한 복수의 작업 노드들에 균등하게 나누어 할당하는 단계; 및
    상기 작업 노드들의 상기 블록들에 대한 처리 현황을 모니터링 하여, 각 작업 노드들의 미처리 블록 현황에 따라 부하 리밸런싱 작업을 수행하는 단계를 포함하는,
    대용량 파일의 분산 처리 방법.
  18. 제17 항에 있어서,
    상기 제1 영역의 블록들 중 적어도 일부 블록들의 사이즈는 상기 고정 사이즈보다 큰,
    대용량 파일의 분산 처리 방법.
  19. 제17 항에 있어서,
    상기 부하 리밸런싱 작업을 수행하는 단계는,
    상기 제2 영역의 블록 만을 상기 부하 리밸런싱 대상으로 하는 단계를 포함하는,
    대용량 파일의 분산 처리 방법.
  20. 제17 항에 있어서,
    상기 부하 리밸런싱 작업을 수행하는 단계는,
    상기 제2 영역의 블록 및 상기 제1 영역의 블록들 중, 기 지정된 사이즈 이하의 사이즈를 갖는 블록들 만을 상기 부하 리밸런싱 대상으로 하는 단계를 포함하는,
    대용량 파일의 분산 처리 방법.
  21. 하나 이상의 프로세서;
    상기 프로세서에 의하여 수행 되는 컴퓨터 프로그램이 로드(load)된 메모리; 및
    분산 처리 시스템에 속한 복수의 작업 노드에 연결된 네트워크 인터페이스를 포함하되,
    상기 컴퓨터 프로그램은,
    상기 복수의 작업 노드에 의하여 분산 처리되는 파일을 제1 영역 및 상기 제1 영역의 데이터보다 나중에 처리되는 제2 영역으로 구분하는 오퍼레이션;
    상기 제1 영역을 다양한 사이즈의 블록들로 분할하는 오퍼레이션;
    상기 제2 영역을 고정 사이즈의 블록들로 분할하는 오퍼레이션; 및
    제1 영역의 블록들 및 제2 영역의 블록들을 상기 복수의 작업 노드들에 상기 네트워크 인터페이스를 통하여 균등하게 나누어 송신하는 오퍼레이션을 포함하는,
    대용량 파일의 분산 처리 관리 장치.
  22. 제21 항에 있어서,
    상기 컴퓨터 프로그램은,
    상기 작업 노드들의 블록 처리 현황을 모니터링 하여, 각각의 상기 작업 노드들의 미처리 블록 현황에 따라 상기 제2 영역의 블록을 대상으로 한 부하 리밸런싱 작업을 수행하는 오퍼레이션을 더 포함하는,
    대용량 파일의 분산 처리 관리 장치.
  23. 컴퓨팅 장치와 결합하여,
    분산 처리 시스템에 속한 복수의 작업 노드에 의하여 분산 처리 되는 파일을 제1 영역 및 상기 제1 영역의 데이터보다 나중에 처리되는 제2 영역으로 구분하는 단계;
    상기 제1 영역을 다양한 사이즈의 블록들로 분할하는 단계; 및
    상기 제2 영역을 고정 사이즈의 블록들로 분할하는 단계를 실행시키기 위하여 기록 매체에 저장된,
    컴퓨터 프로그램.
PCT/KR2015/014136 2015-10-27 2015-12-23 분산 처리를 위한 대용량 파일의 블록화 방법 및 그 장치 Ceased WO2017073841A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2015-0149158 2015-10-27
KR1020150149158A KR20170048721A (ko) 2015-10-27 2015-10-27 분산 처리를 위한 대용량 파일의 블록화 방법 및 그 장치

Publications (1)

Publication Number Publication Date
WO2017073841A1 true WO2017073841A1 (ko) 2017-05-04

Family

ID=58558681

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2015/014136 Ceased WO2017073841A1 (ko) 2015-10-27 2015-12-23 분산 처리를 위한 대용량 파일의 블록화 방법 및 그 장치

Country Status (4)

Country Link
US (1) US10126955B2 (ko)
KR (1) KR20170048721A (ko)
CN (1) CN106611034A (ko)
WO (1) WO2017073841A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102277094B1 (ko) * 2019-10-28 2021-07-15 이화여자대학교 산학협력단 버퍼 캐시 관리 방법 및 상기 버퍼 캐시 관리 방법이 적용된 컴퓨팅 장치
US20220365811A1 (en) * 2021-12-09 2022-11-17 Intel Corporation Processing Units, Processing Device, Methods and Computer Programs
US12271615B2 (en) 2022-03-11 2025-04-08 Samsung Electronics Co., Ltd. Systems and methods for checking data alignment between applications, file systems, and computational storage devices
US12061586B2 (en) * 2022-05-06 2024-08-13 Databricks, Inc. K-D tree balanced splitting
KR102716820B1 (ko) * 2024-03-26 2024-10-15 한화시스템 주식회사 하둡(hdfs)에서의 데이터 보호 장치 및 그 방법

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060117071A1 (en) * 2004-11-29 2006-06-01 Samsung Electronics Co., Ltd. Recording apparatus including a plurality of data blocks having different sizes, file managing method using the recording apparatus, and printing apparatus including the recording apparatus
WO2011128257A1 (en) * 2010-04-14 2011-10-20 International Business Machines Corporation Optimizing a file system for different types of applications in a compute cluster using dynamic block size granularity
US20120078844A1 (en) * 2010-09-29 2012-03-29 Nhn Business Platform Corporation System and method for distributed processing of file volume
US20120278587A1 (en) * 2011-04-26 2012-11-01 International Business Machines Corporation Dynamic Data Partitioning For Optimal Resource Utilization In A Parallel Data Processing System
US20130117273A1 (en) * 2011-11-03 2013-05-09 Electronics And Telecommunications Research Institute Forensic index method and apparatus by distributed processing
US20140359126A1 (en) * 2013-06-03 2014-12-04 Advanced Micro Devices, Inc. Workload partitioning among heterogeneous processing nodes

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7487138B2 (en) * 2004-08-25 2009-02-03 Symantec Operating Corporation System and method for chunk-based indexing of file system content
US7992037B2 (en) * 2008-09-11 2011-08-02 Nec Laboratories America, Inc. Scalable secondary storage systems and methods
US9449014B2 (en) * 2011-11-29 2016-09-20 Dell Products L.P. Resynchronization of replicated data
US20140258672A1 (en) * 2013-03-08 2014-09-11 Microsoft Corporation Demand determination for data blocks

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060117071A1 (en) * 2004-11-29 2006-06-01 Samsung Electronics Co., Ltd. Recording apparatus including a plurality of data blocks having different sizes, file managing method using the recording apparatus, and printing apparatus including the recording apparatus
WO2011128257A1 (en) * 2010-04-14 2011-10-20 International Business Machines Corporation Optimizing a file system for different types of applications in a compute cluster using dynamic block size granularity
US20120078844A1 (en) * 2010-09-29 2012-03-29 Nhn Business Platform Corporation System and method for distributed processing of file volume
US20120278587A1 (en) * 2011-04-26 2012-11-01 International Business Machines Corporation Dynamic Data Partitioning For Optimal Resource Utilization In A Parallel Data Processing System
US20130117273A1 (en) * 2011-11-03 2013-05-09 Electronics And Telecommunications Research Institute Forensic index method and apparatus by distributed processing
US20140359126A1 (en) * 2013-06-03 2014-12-04 Advanced Micro Devices, Inc. Workload partitioning among heterogeneous processing nodes

Also Published As

Publication number Publication date
US20170115895A1 (en) 2017-04-27
US10126955B2 (en) 2018-11-13
CN106611034A (zh) 2017-05-03
KR20170048721A (ko) 2017-05-10

Similar Documents

Publication Publication Date Title
US10055262B1 (en) Distributed load balancing with imperfect workload information
US9143562B2 (en) Managing transfer of data from a source to a destination machine cluster
US8726290B2 (en) System and/or method for balancing allocation of data among reduce processes by reallocation
Hu et al. A time-series based precopy approach for live migration of virtual machines
US11163792B2 (en) Work assignment in parallelized database synchronization
WO2016199955A1 (ko) 코드 분산 해쉬테이블 기반의 맵리듀스 시스템 및 방법
US10523743B2 (en) Dynamic load-based merging
US10664458B2 (en) Database rebalancing method
US11563690B2 (en) Low latency queuing system
US9213753B2 (en) Computer system
CN119166592A (zh) 基于冷数据迁移的数据管理方法、装置、设备及存储介质
JP6519111B2 (ja) データ処理制御方法、データ処理制御プログラムおよびデータ処理制御装置
US11977513B2 (en) Data flow control in distributed computing systems
WO2013122338A1 (ko) 검색 시스템에서 시계열 데이터의 효율적 분석을 위한 분산 인덱싱 및 검색 방법
WO2021114848A1 (zh) 数据库的数据读写方法及装置
WO2022078347A1 (zh) 任务调度方法、装置、电子设备及存储介质
US10126955B2 (en) Method and apparatus for big size file blocking for distributed processing
WO2017082505A1 (ko) 멀티 운영시스템을 지닌 전자장치 및 이의 동적 메모리 관리 방법
US9305045B1 (en) Data-temperature-based compression in a database system
WO2013066124A1 (ko) 인터럽트 할당 방법 및 장치
CN113407108B (zh) 一种数据存储方法和系统
CN114253936B (zh) 分布式数据库的缩容方法、装置、设备和介质
WO2023182661A1 (ko) 빅데이터를 분석하는 전자 장치 및 그 동작 방법
CN120353799A (zh) 一种数据处理方法和装置
US11249952B1 (en) Distributed storage of data identifiers

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15907386

Country of ref document: EP

Kind code of ref document: A1