WO2016080569A1 - 일정 수 이상의 파일 조각으로 원본 파일을 복원하는 파일 관리 장치 및 그것의 파일 관리 방법 - Google Patents
일정 수 이상의 파일 조각으로 원본 파일을 복원하는 파일 관리 장치 및 그것의 파일 관리 방법 Download PDFInfo
- Publication number
- WO2016080569A1 WO2016080569A1 PCT/KR2014/011151 KR2014011151W WO2016080569A1 WO 2016080569 A1 WO2016080569 A1 WO 2016080569A1 KR 2014011151 W KR2014011151 W KR 2014011151W WO 2016080569 A1 WO2016080569 A1 WO 2016080569A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- file
- storage devices
- received
- fragments
- segments
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
Definitions
- the present invention relates to a file management apparatus for restoring an original file from file fragments distributed and stored in a plurality of storage devices and a file management method thereof, and more particularly to download file fragments in consideration of a communication speed of the plurality of storage devices.
- the present invention relates to a file management apparatus and a file management method thereof, thereby minimizing restoration time of an original file.
- the secret dispersion method uses a plurality of share information SH (1),... From secret information MSK. , SH (N) are generated, and these are distributed and managed in a plurality of distributed management apparatuses PA (1), ..., PA (N), and these distributed information SH (1), ..., SH (N) Only when a predetermined number or more of information can be obtained, the secret information MSK can be restored.
- the secret distribution method has been applied to many distributed storage devices due to the advantage of ensuring the confidentiality, availability, and integrity of stored values.
- the stored file F is divided into small units (F [1], F [2],..., F [s], where s is the number of values constituting the file), and then each value F [i].
- the plurality of share information f [i, 1], f [i, 2],... , f [i, n] (where n is the number of storage devices) and share information f (s) f [1, m]
- Distributed storage devices with the traditional secret distribution method can provide the confidentiality of stored files because less than a certain number of file fragments are not known to the contents of the entire file, and even if less than a certain number of file fragments are lost or damaged, The ability to restore files ensured availability.
- Korean Patent Application No. 10-2013-0424811 has been proposed.
- this prior patent is applied to a distributed storage system, duplicate file blocks may be transmitted from multiple distributed storage devices, and in this case, the amount of data received by the file distribution management device to restore a file may be very large. There was a problem that could be.
- One aspect of the present invention can provide a file distribution management apparatus and method for minimizing restoration time by considering a communication speed with a storage device when restoring an original file from distributedly stored file fragments.
- Another aspect of the present invention can provide a file distribution management apparatus and method for minimizing restoration time and required traffic and reducing communication costs by preventing duplicate blocks from being received when restoring original files from distributedly stored file fragments. have.
- Another aspect of the present invention can improve the security and confidentiality of the file distribution management apparatus and method by allowing the original file to be restored only when obtaining a predetermined number or more of file fragments among distributed file fragments.
- the file management method of the present invention includes selecting a storage device to receive a file fragment among a plurality of storage devices; Determining scheduling information indicative of file fragments to be received from the selected storage devices according to communication speeds between a file management device and the selected storage devices; Receiving file fragments from each of the selected storage devices with reference to the determined scheduling information; And generating a restore file from the received file fragments, wherein the restore file is composed of n C k-1 segments, each of the plurality of storage devices being the n C k-1 segments.
- n C k-1 is the number of selected storage devices.
- 'C' means a combination.
- n C k-1 is the number of cases where k-1 is selected without considering the order among n different pieces.
- each of the plurality of storage devices each include the C k n-1 segments of the n-1 C k-1 segments.
- the received file fragments include all of the n C k-1 segments constituting the restoration file, and the received file fragments are selected from among the n file fragments stored in the plurality of storage devices. K arbitrary file fragments.
- fewer than k of the n file fragments may contain at least some of the n C k-1 segments.
- each of the received file fragments does not include a block overlapping each other.
- the determining of the scheduling information may include: determining a priority of the received files for allocation of the n C k-1 segments with reference to the communication rates; And exclusively assigning each of the n C k-1 segments to the received file fragments according to the determined priority.
- the determining of the scheduling information may include determining a ratio of the number of blocks allocated to each file fragment among the file fragments to be received based on the ratio of the communication speeds.
- the determining of the ratio of the number of blocks allocated to each file fragment among the file fragments to be received based on the ratio of the communication speeds may include determining the ratio of the number of blocks allocated to each file fragment.
- r p1 : r p2:. : r pk denotes p1, p2,... is a proportional expression representing the communication speed ratio with the pkth storage device.
- the determining of the ratio of the number of blocks allocated to each file fragment among the file fragments to be received based on the ratio of the communication speeds may include: at least one file fragment among the file fragments to be received. Determining whether the number of blocks allocated to the one file fragment is over or under the communication speed corresponding to the one file fragment; And reallocating at least some of the blocks included in the pieces of the file to be received according to a result of the determination as to whether the information is excessive or excessive.
- the reallocating at least a part may include: blocks included in the one file fragment if the number of blocks allocated to the one file fragment is excessive compared to a communication speed corresponding to the one file fragment. Reallocating at least a portion of the file to another one of the file pieces to be received.
- reassigning at least a portion of the at least one portion may further include: if the number of blocks allocated to the one file fragment is less than a communication speed corresponding to the one file fragment, another file among the file fragments to be received. Reallocating at least some of the blocks contained in the fragment to the one file fragment.
- the reallocating at least a part may refer to a popularity function that indicates how many of the file pieces to be received are segments included in the file pieces to be received. Reallocate at least some of the blocks contained in the received file fragments.
- the popularity function is
- W is a value representing the number of segments included in the file fragments to be received
- pj is a value indicating the number of storage devices providing the file fragments to be received
- r pj is a value corresponding to the pj th storage device of the total number of blocks included in the received file fragment to be proportional to the communication speed of the selected storage devices
- X pj is the value of the received file fragments The number of blocks allocated to the file fragment to be received from the pj th storage device
- S pj is a set of numbers indicating the segments constituting the file fragment corresponding to the pj th storage device.
- the step of reallocating at least a part includes each of the received file fragments in the received file fragments such that each of the received file fragments includes a larger number of blocks as the corresponding one of the communication rates is faster. Reallocate at least some of the blocks.
- the restoration file is successfully created only when the number of the selected storage devices is more than a predetermined number.
- the file management apparatus comprises: a scheduler for determining scheduling information indicating file pieces to be received from the selected storage devices according to communication speeds between selected storage devices and a file management device among a plurality of storage devices; A communication unit for communicating with the selected storage devices or providing an interface for communicating with the selected storage devices; And a controller configured to control the file management apparatus to receive file fragments from each of the selected storage devices through the communication unit with reference to the scheduling information, and to generate a restore file from the received file fragments.
- n C k-1 segments storing the plurality of storage devices each of said n C k-1 of segments of the n-1 C k-1 segments in segments, and wherein the received
- Each of the plurality of stored file fragments includes all or part of the at least some segments stored in a corresponding one of the plurality of storage devices, n is the number of the plurality of storage devices, and k is a selected storage device. The number of things.
- the controller selects the selected storage devices from among the plurality of storage devices.
- the scheduler is the n C k-1 segments in order of priority to determine the priority of the files to be received, and the determined for the assignment of the n C k-1 segment with reference to the communication speed Each of them is exclusively assigned to the received file fragments.
- the scheduler determines whether the number of blocks allocated to the one file fragment is excessive or less than the communication speed corresponding to the one file fragment for at least one file fragment of the received file fragments. And reassign at least some of the blocks included in the received file fragments according to the result of the determination as to whether the information is excessive or excessive.
- the scheduler refers to a popularity function that indicates how many of the file fragments are included in the received file fragments, by referring to a popularity function. Reallocate at least some of the blocks contained in the.
- the scheduler may include at least some of the blocks included in the file fragments to be received such that each of the file fragments to be received includes a larger number of blocks as the corresponding one of the communication rates is faster.
- the restoration file is successfully created only when the number of the selected storage devices is more than a predetermined number.
- the computer-readable recording medium comprises the steps of selecting storage devices to receive a file fragment among a plurality of storage devices, according to communication speeds between the file management device and the selected storage devices, the selected storage devices. Determining scheduling information indicative of file fragments to be received from the computer, receiving file fragments from each of the selected storage devices with reference to the determined scheduling information, and generating a restoration file from the received file fragments.
- the restoration file may include n C k-1 segments, and each of the plurality of storage devices stores segments of at least some of the n C k-1 segments in units of segments and receives the received data. Each of the stored file fragments is stored in a corresponding one of the plurality of storage devices.
- the restoration time when restoring an original file from distributedly stored file fragments, the restoration time may be minimized by considering the communication speed with the storage device.
- restoration time and required communication amount can be minimized and communication cost can be reduced.
- the security and confidentiality of the file distribution management apparatus and method can be improved by allowing the original file to be restored only when obtaining a predetermined number of file fragments among distributed file fragments.
- FIG. 1 is a block diagram illustrating a file management system according to an exemplary embodiment of the present invention.
- FIG. 2 is a conceptual diagram illustrating a method of restoring an original file from file fragments stored in storage devices according to an exemplary embodiment of the present invention.
- FIG. 3 is a block diagram specifically illustrating a file management apparatus illustrated in FIG. 1.
- 5 and 6 are matrix diagrams showing DT and PT corresponding to the rearranged file F ′ shown in FIG. 4.
- FIG. 7 is a diagram illustrating file fragments stored in respective storage devices according to the exemplary embodiment of FIGS. 4 to 6.
- FIGS. 8 through 10 are matrix diagrams sequentially illustrating a method of determining a scheduling table ST, according to an exemplary embodiment.
- FIG. 11 is a flowchart illustrating a file management method according to an embodiment of the present invention.
- FIG. 12 is a conceptual diagram illustrating a method of recovering an original file by receiving file fragments from storage devices with reference to a scheduling table, according to an embodiment of the present invention.
- Korean Patent Application No. 10-2013-0424811 of the present invention may be incorporated herein by reference in its entirety.
- the contents of Korean Patent Application No. 10-2013-0424811 may be borrowed for those not described in the present invention.
- file fragments stored in the storage devices according to the present invention may be generated by the method described in Korean Patent Application No. 10-2013-0424811.
- the file management system 1000 includes a file management device 1100 and n storage devices 1200.
- the file management system 1000 distributes and stores the plurality of file fragments generated from the original file in n storage devices 1200. And, in order for the file management system 1000 to restore the original file from the distributed file fragments, k stored in arbitrary k storage units (k is an integer less than n greater than 0) of the storage devices 1200 are stored. File fragments must be obtained. That is, when the file management system 1000 acquires k file fragments, the original file may be completely restored. However, when the file management system 1000 acquires only fewer than k file fragments, the original file may not be completely restored. A detailed description of the dispersion and restoration principle in this regard is described in detail in Korean Patent Application No. 10-2013-0424811.
- the storage devices 1200 may include n storage devices 1200_1, 1200_2,..., 1200_n. Each of the storage devices 1200 stores a file fragment generated from an original file. In an embodiment, the file fragments generated by the method described in Korean Patent Application No. 10-2013-0016390 may be distributed and stored in the storage devices 1200.
- the original file (or rearranged file to be described later) is composed of n C k-1 segments, and each of the n storage devices 1200_1, 1200_2,..., 1200_n is the n C k ⁇ . in the one segment of at least some of the segments (e. g., n-1 C k-1 segments) can be stored in segments. Where k is the minimum number of storage devices needed to restore the original file.
- the storage devices 1200 may provide the file management device 1100 with a part or all of the stored file fragments in response to a control of the file management device 1100 or a request from the file management device 1100.
- the file management apparatus 1100 may perform a scheduling operation for determining file pieces to be received from the storage devices 1200 in consideration of the communication speed of each of the storage devices 1200.
- Each 1200 may transmit all or part of the stored file fragments to the file management apparatus 1100 according to a result of the scheduling operation.
- the storage devices 1200 may be configured as a device capable of separately storing each piece of file even without a special function.
- the storage devices 1200 are represented in a physically separated form, but are not limited thereto.
- the storage devices 1200 may be logically separated from one physical device.
- each of the storage devices 1200 may include a separate communication unit or a communication interface for communicating with the file management device 1100.
- the file management apparatus 1100 receives file fragments from storage devices and restores an original file using the received file fragments. A more detailed description of the file management apparatus 1100 will be described later with reference to FIG. 3 below.
- FIG. 2 is a conceptual diagram illustrating a method of restoring an original file from file fragments stored in storage devices according to an exemplary embodiment of the present invention.
- the file management system 2000 includes a file management apparatus 2100 and a plurality of storage devices 2201, 2202, 2203, and 2204. Details of the file management apparatus 2100 and the plurality of storage devices 2201, 2202, 2203, and 2204 are substantially the same as the file management apparatus 1100 and the storage devices 1200 of FIG. 1.
- the original file 100 is composed of six segments (a, b, c, d, e, f), and each segment (a, b, c, d, e, f) It is distributedly stored in four storage devices 2201, 2202, 2203, and 2204.
- each segment (a, in order to restore the original file with only three storage devices (for example, 2201, 2202, 2204) among four storage devices 2201, 2202, 2203, and 2204 can be restored.
- b, c, d, e, f may be stored in duplicate in one or more storage devices.
- the first storage device 2201 stores a file piece 110 including segments a, b, and c
- the second storage device 2202 includes segments a, d, and e.
- the file fragment 120 is stored
- the file fragment 130 including segments b, d, and f is stored in the third storage device 2203
- the segment c Assume that a file fragment 140 containing e, f) is stored.
- any of the four storage devices 2201, 2202, 2203, and 2204 may be selected, and the selected storage devices may include all segments (a, b, c, d, e, f) of the original file. This includes.
- the file management system 2000 may receive file fragments stored on any three storage devices (eg, 2201, 2202, 2204) to completely restore the original file.
- the file management system 2000 receives the fragments stored in the file and restores the original file.
- the file management apparatus 2100 may communicate with the storage devices 2201, 2202, 2203, and 2204 and the respective file fragments 110 and 120 in order to minimize the time and communication cost for restoring the original file.
- File fragments are received in consideration of redundancy (130, 140).
- the file fragment that the file management apparatus 2100 receives from a storage device to restore the original file may be part or all of the file fragment of the original file stored in the storage device. That is, the file management apparatus 2100 may receive only a part of a file fragment stored in a storage device and use the same to restore an original file. Therefore, the file fragment stored in the storage device and the file fragment received by the file management apparatus 2100 from the storage device may be different from each other.
- the file management apparatus 2100 of the present invention schedules file fragments so that overlapping segments are not received.
- scheduling of a file fragment means determining which segment (or part of a segment) is to be included in a file fragment to be received from which storage device, and the file management apparatus 2100 determines that the file fragment is to be included in the scheduling result.
- File pieces consisting of at least some segments are received from each storage device.
- the file fragments configured according to the scheduling result may include address or size information of at least some segments included in the file fragment.
- the file management apparatus 2100 when receiving file fragments from k (here, three) storage devices without any action, receives a large file fragment from a storage device having a low communication speed, May receive a small piece of file from a high storage device. In this case, the time required to receive the entire file fragments in the file management apparatus 2100 may be very large. Accordingly, the file management apparatus 2100 of the present invention schedules a relatively large file fragment for a storage device having a high communication speed and a relative storage device for a slow communication speed according to a communication speed with each storage device. Schedules small file fragments.
- the file management system 2000 may use any of three storage devices 2201, 2202, 2202, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, to restore an original file. 2204).
- the file management system 2000 may select each of the storage devices selected in proportion to the communication speeds of the storage devices 2201, 2202, and 2204. Control the size of file fragments sent from 2201, 2202, and 2204.
- the file management system 3000 is controlled such that the size of file fragments received (or downloaded) by the file management apparatus 2100 is proportional to the communication speed of corresponding storage devices. That is, the file fragment 111 having the largest size is received from the first storage device 2201, the file fragment 121 having the next size is received from the second storage device 2202, and the fourth storage device ( From 2204, the smallest file fragment 141 is received. As such, by allowing the size of the received file fragment to be proportional to the corresponding communication speed, the time required for the file management apparatus 2100 to receive the file fragments 111, 121, and 141 may be reduced.
- the file management system 2000 may receive the received file fragments 111 such that the file fragments 111, 121, and 141 received from the storage devices 2201, 2202, and 2203 do not include portions overlapping each other. , 121, 141).
- the file fragments 111, 121, and 141 may not be included in the other file fragments 121 and 141.
- Schedule when the first file piece 121 includes a portion a 'of the segments a, the other file pieces 111 and 141 may have a portion (a') excluding the portion a 'of the segments a.
- the communication amount and time used by the file management apparatus 2100 to receive the file fragments 111, 121, and 141 are further reduced. Can be.
- the file management apparatus 1100 may include a communication unit 1110, a controller 1120, a scheduler 1130, and a storage unit 1140, but is not limited thereto.
- the communication unit 1110 performs a communication between the file management apparatus 1100 and an external object.
- the file management device 1100 may communicate with the storage devices 1200 (see FIG. 1) through the communication unit 1110.
- the communication unit 1110 may include any communication means capable of networking or communicating with the outside, and may include a communication interface accompanying the communication means.
- the communication interface or communication method used by the communication unit 1110 may include wired communication, wireless communication, 3G, 4G, or various other communication interfaces or communication methods.
- the communication unit 1110 may include a communication state manager 1110 that manages communication state information between the file management device 1100 and an external object.
- the communication state information may include information indicating a channel state or a communication speed between the file management apparatus 1100 and an external object.
- the communication state manager 1111 may also detect a channel state or a communication speed with an external object to generate new communication state information or update existing communication state information. .
- the communication state manager 1111 has been described as being included in the communication unit 1110, but is not limited thereto.
- the communication state manager 1111 may be disposed at any position of the file management device 1100, and even It may be arranged as a separate module separate from the file management device 1100.
- the controller 1120 controls the overall operations of the file management device 1100 and other modules 1110, 1130, and 1140 constituting the file management device. For example, the controller 1120 may select k storage devices to receive file fragments for restoring the original file among the n storage devices 1200. The controller 1120 may function as a central processing unit that performs operations required for driving the file management apparatus 1100.
- the scheduler 1130 generates and manages a list of segments or file fragments that the file management device 1100 will receive from the storage devices 1200.
- the controller 1120 or the communication unit 1110 provides necessary information so that at least some segments or file fragments can be received from the storage devices 1200 according to the generated file lists. A detailed method of generating and managing a file fragment list by the scheduler 1130 will be described in more detail with reference to FIG. 3.
- the storage unit 1140 stores the data received by the file management device 1100 or data processed by the file management device 1100.
- the storage 1140 may store data obtained in the process of performing a function of the communication state manager 1111, the controller 1120, or the scheduler 1130.
- n number of storage devices included in the file management system 1000
- k The minimum number of storage devices that the file management system 1000 needs to successfully restore the original files. Or, the minimum number of file fragments needed to successfully restore the original file. However, k is an integer greater than 0 and less than or equal to n.
- M 1 , M 2 , M 3 ,. , M n n storage devices
- F ⁇ A rearranged file with a rearrangement that shuffles the order of the file (original file or modified file) in blocks
- the modified file (F ⁇ ) is an integer of the block size (b) by adding a dummy area to the original file (F) when the size of the original file (F) is not an integer multiple of the block size (b)
- the rearranged file (F ') is a file arbitrarily rearranged using the rearrangement key (e) in the block order of the modified file (F') or the original file (F).
- the size of the block may be one byte or two or more bytes.
- the rearrangement of the block order of the modification file (F ⁇ ) or the original file (F) is an optional step.
- F ⁇ is a modification file, respectively. (F ⁇ ) or the same file as the original file (F).
- B '[i] The i'th block of the correction file F' (that is, F 'is represented by B' [1] ⁇ B '[2] ⁇ ... ⁇ B' [s]).
- ‘ ⁇ ’ means a parallel connection.
- X A ⁇ B means that X is composed of B next to A.
- f 1 , f 2 ,. , f n n file fragments each stored in n storage devices (M 1 , M 2 ,..., M n )
- p1, p2,... , p k Number of k storage devices selected for restoring the original file among n storage devices
- r p1 , r p2 ,... , r pk Communication speed ratio between k storage devices (M 1 , M 2 ,..., M k ) selected for restoring the original file and the file management device 1100.
- M 1 , M 2 ,..., M k k storage devices
- the DT is a table indicating which segment of each file includes a segment of a file (original file, modified file, or rearranged file).
- DT i (d 1 , d 2 ,..., d x ) ( where x is n-1 C k-1 ) and the file fragment f i is stored in the i th storage device (M i ).
- PT (i, j) Is defined as That is, if the file fragment f i contains a segment S [j], the value of PT (i, j) is the number of blocks contained in S [j], and if it does not contain PT (i, j ) Has a value of 0.
- a storage device M i
- S [d 2] h 2 blocks in, ... , S [d y ] means that the scheduling table is configured to download h y blocks.
- N ⁇ 1, 2, 3,... , n ⁇
- T set of all subsets with n-k + 1 elements of N
- the file management apparatus receives k file fragments from k storage devices M 1 , M 2 ,..., M k of n to restore the original file, but the received file fragments Do not include duplicate file blocks.
- the file management apparatus may remove all the file fragments. Minimize the time it takes to receive.
- the reception time of the file fragment may be the least.
- the file management device 1100 may include the DT, PT, and ST defined above.
- the file management apparatus 1100 may receive DT, PT, and ST from n storage devices M 1 , M 2 , M 3 ,..., M n or a separate storage medium.
- How the file management apparatus 1100 determines or schedules the file fragments to be received from each of the storage devices 1200 is determined by the following algorithm.
- Input values number p1, p2,... Of k storage devices providing file fragments. , pk. Provided that r p1? R p2 ? ⁇ r pk .
- r p1 , r p2 ,... it is assumed that the sum of r pk is equal to the total number of blocks included in the original file (or the modified file).
- the file management apparatus determines or schedules file fragments to receive according to the algorithm described above, and determines the determined or scheduled file fragments in k distributed storage devices (eg, For example, the file fragments are received from 1200_1, 1200_2, ..., 1200_k of FIG. 1, where k is an integer greater than 0 and less than n).
- the scheduling table ST representing the file fragments to be received from the plurality of storage devices 1200_1, 1200_2,..., 1200_k is outputted, wherein the file fragments determined according to the scheduling table (
- the ratio of the number of blocks allocated to f 1 , f 2 ,..., f k is the communication rate ratio (r p1 , r) between the file management device 1100 and the distributed storage devices 1200_1, 1200_2,..., 1200_k. p2 ,..., r pk ).
- the size ratio of the file fragments f 1 , f 2 ,..., F k determined according to the scheduling table is between the file management device 1100 and the distributed storage devices 1200_1, 1200_2,..., 1200_k. Is equal to or close to the communication speed ratio r p1 , r p2 ,..., R pk .
- the ratio of the number of blocks allocated to the file fragments f 1 , f 2 ,..., F k determined according to the scheduling table is equal to the communication rate ratio r p1 , r p2 ,..., R pk .
- the ratio is expressed by the formula X p1 : X p2 :...
- X pk r p1 : r p2 :... : r pk , defined as X p1 , X p2 ,... , X pk is p1, p2,... The number of blocks allocated to the file fragment to be received from the pk-th storage device.
- 5 and 6 are matrix diagrams showing DT and PT corresponding to the rearranged file F ′ shown in FIG. 4.
- the upper letter S [i] indicates the number or name of a segment, and the lower number indicates the number of blocks constituting the segment.
- the rearranged file F ' is composed of a plurality of segments sequentially arranged from the first segment S [1] to the twentieth segment S [20], each of which is a corresponding segment. It consists of the number of blocks described at the bottom of the column (for example, S [1] is composed of 100 blocks), and the rearranged file F 'is composed of a total of 1200 blocks.
- a distribution table (DT) for distributing a rearranged file F ′ consisting of 20 segments to n (here six) storage devices is shown.
- DT indicates the segments to be included in the distributed file fragments.
- the distributed file fragments herein refer to file fragments stored in a corresponding storage device as file fragments including at least a portion of the rearranged file F ′.
- each row of the DT indicates segments to be included in each distributed file fragment among the segments constituting the rearranged file F ′.
- the first file fragment is one of the segments of the rearranged file F ⁇ , 2, 3, 4, 5, 6, 7, 8, 9, 10th segments (ie S [1], S [2], S [3], S [4], S [5], S [ 6], S [7], S [8], S [9], and S [10]).
- the first file fragment is stored in any one of six storage devices M 1 , M 2 , M 3 , M 4 , M 5 , and M 6 (eg, M 1 ).
- the elements of the second row are 1, 2, 3, 4, 11, 12, 13, 14, 15, 16, the second file fragment is 1, 2 of the segments of the rearranged file F ⁇ .
- the second file fragment is stored in any one of the six storage devices other than the storage device in which the first file fragment is stored (for example, M 2 ).
- the six storage devices M 1 , M 2 , M 3 , M 4 , M 5 , M 6 store the segments of the rearranged file F ⁇ and store any four of them.
- the device is stored to include all segments of the rearranged file F '.
- the DT indicates a configuration of file pieces distributed and stored in a plurality of storage devices, and may be referred to to know which segment of the original file (or rearranged file) is stored in each storage device.
- PT represents a segment included in a file fragment stored in six storage devices M 1 , M 2 , M 3 , M 4 , M 5 , and M 6 , and the number of blocks included in the segments.
- each line of PT represents the composition of each file fragment, where a nonzero element of each line means that each file fragment contains a corresponding segment, and an element of zero represents a corresponding segment of each file fragment. It does not include.
- the number which each element represents means the block contained in the corresponding segment.
- the elements in the first row represent the configuration of the first file fragment
- the element in the first row 1 column is 100 means that the first file fragment contains the first segment and the first segment contains 100 blocks. It means to include.
- an element of 0 in the first row 20 columns means that the first file fragment does not include the 20th segment.
- FIG. 7 is a diagram illustrating file fragments stored in respective storage devices according to the exemplary embodiment of FIGS. 4 to 6.
- each file fragment contains 10 segments.
- the letters in a separate box (or box) of each file fragment indicate the number or name of the segment that each file fragment contains.
- the first file piece f 1 comprises a first segment S [1] through a tenth segment S [10].
- the file management device determines any four storage devices that will receive file pieces of the six storage devices M 1 , M 2 , M 3 , M 4 , M 5 , M 6 .
- the first, second, fourth, and sixth storage devices M 1 , M 2 , M 4 , M 6 are selected.
- the communication speed ratio of each of the file management apparatus and the selected four storage devices M 1 , M 2 , M 4 , and M 6 is 5: 9: 2: 4.
- the file management device may receive 300, 540, 120, and 240 blocks that do not overlap each other from four storage devices M 1 , M 2 , M 6 , and M 4 . By determining this, original files can be restored with only a minimum amount of time and a minimum amount of communication.
- the ST is first initialized.
- the initialization of the ST is performed by an initialization loop (steps 3 to 8 of the scheduling method) of the scheduling method.
- each row of the ST is sequentially filled in a range not overlapping.
- filling in a non-overlapping range means that each row of the ST is exclusively filled so that it does not contain segments that overlap each other. In a matrix, only one row for one column (exclusively for another row) has zeros. It means not having a value.
- the second row of the ST stores the number of blocks to receive from D p1 (ie, D 2 ).
- the set W ' is updated to ⁇ 5, 6, 7, 8, 9, 10, 17, 18, 19, 20 ⁇ , which is the subtracted D 2
- the first row is filled.
- D 1 ⁇ W ⁇ ⁇ 5, 6, 7, 8, 9, 10 ⁇
- S [5, S [6] only for the 5th, 6th, 7th, 8th, 9th and 10th elements of the first row, respectively.
- S [7], S [8], S [9], S [10] the number of blocks is filled.
- X i is determined as follows according to the initialized ST,
- the scheduling method of the present invention reallocates the blocks of the file fragment to which more blocks are allocated relative to the speed of the corresponding storage device to other file fragments.
- the file fragment to be reallocated may be a file fragment (in this case, the first file fragment) in which the block is excessively allocated relatively to the speed of the corresponding storage device.
- the reallocated file fragment may be a file fragment in which the block is least allocated relative to the speed of the corresponding storage device (here, the sixth file fragment).
- ( ⁇ 1 , ⁇ 2 , ⁇ 3 ) are determined to be (7, 10, 9), respectively.
- the scheduling method may reallocate blocks in order of decreasing popularity.
- the reassignment step is performed using the iterations of steps 17 to 22 of the scheduling method.
- the excessive block of the first file fragment is reassigned to the next lowest file fragment (the file fragment determined to be the second least-significantly allocated blocks in the tenth step, here the fourth file fragment).
- the first file fragment does not have an excessive block and does not satisfy the condition of the fifteenth step. Therefore, the repetition statement (hereinafter, referred to as 'sub-repetition statement') of steps 15 to 23 ends.
- steps 24 to 26 specify the termination condition of the main loop (steps 9 to 27). If the ST does not change even after performing the sub-loop, no further reallocation is required. ST The decision was made to complete.
- the second loop also uses the popularity function to reallocate the blocks.
- the real blocks of the second file fragment are reallocated to the next smallest file fragment (here, the sixth file fragment).
- the popularity function is
- the scheduling method re-determines whether the file fragments are over or under distributed in blocks.
- the file management device 1100 schedules the file pieces to be received in consideration of the communication speed with the storage device. Then, the file is received and the original file is restored according to the scheduling result. As a result, since more blocks (or larger file fragments) are received from the storage device having a faster communication speed, the time required for the file management apparatus 1100 to restore the original file can be minimized.
- the file management apparatus 1100 schedules file fragments to be received such that the file fragments received from the storage devices do not include blocks that overlap each other. Therefore, the amount of communication used by the file management apparatus 1100 to restore the original file can be minimized.
- FIG. 11 is a flowchart illustrating a file management method according to an embodiment of the present invention.
- the file management method includes steps S110 to S130.
- the file management apparatus 1100 measures a communication speed between the file management apparatus 1100 and storage devices. In an embodiment, instead of measuring the communication speed, the file management apparatus 1100 may receive a pre-measured communication speed from storage devices or other storage media.
- the file management apparatus 1100 determines whether the file management apparatus 1100 receives which segment of blocks from which storage device according to a communication speed between the file management apparatus 1100 and the storage devices. . Specifically, the file management device 1100 schedules file pieces to be received from each storage device with reference to the measured or provided communication speed. Each of the scheduled file fragments includes at least some of the file fragments of the original file stored on the corresponding storage device. At this point, the file fragments are scheduled to include more blocks (or to have a larger file size) in proportion to the communication speed of the corresponding storage device. In addition, file fragments are scheduled to not contain blocks that overlap each other.
- each of the file fragments includes at least some of the blocks of the original file, and the blocks included in one file fragment may constitute all or part of a specific segment of the original file.
- each file fragment may include address or size information of at least some segments included therein.
- the file management apparatus 1100 restores the original file from the received file fragments.
- the order of restoring the original file by the file management apparatus 1100 may be the reverse order of distributing the original file into file fragments.
- the file management apparatus 1100 divides the received file pieces into segments by referring to address information or size information of the segments.
- the file management apparatus 1100 restores the rearranged file F 'by arranging the separated segments or segment pieces in order.
- the file management apparatus 1100 restores the modified file F 'from the rearranged file F' through the rearrangement method using the rearrangement key e.
- the rearrangement method may rearrange the rearranged file F ′ in block units to restore the modified file F ′.
- the rearrangement method used herein may use a randomization method well known in the art.
- the file (F ⁇ ) obtained by sorting the segment pieces in order is not a rearranged file
- the file (F ⁇ ) obtained by sorting is a modified file (F ⁇ ), and thus the rearrangement using the rearrangement key (e) May be omitted.
- FIG. 12 is a conceptual diagram illustrating a method of recovering an original file by receiving file fragments from storage devices with reference to a scheduling table, according to an embodiment of the present invention.
- the file management apparatus 3100 determines file fragments 211, 221, and 223 to be received from four storage devices with reference to a scheduling table 300 to restore an original file. (Or schedule).
- the ST 300 does not include blocks in which the file fragments 211, 221, and 223 overlap each other, and the storage device corresponding to the number of blocks included in each file fragment 211, 221, and 223 corresponds. Is proportional to the communication speed.
- the i th row of the ST 300 indicates a segment configuration (or block configuration) of the i th file fragment.
- the first row of the ST 300 is (800, 800, 550, 0, 0, 0)
- the first file piece 211 is 800 blocks of the first segment (a), the second segment. 800 blocks in the track (b) and 550 blocks in the third segment (c).
- the first file piece 211 includes some blocks a 'and c' of the first segment a and a third segment c, and all the blocks of the second segment b ( b), while blocks of the fourth to sixth segments d, e, and f are not included at all.
- the file management apparatus 3100 receives the file fragments 211, 221, and 231. You can restore the original file completely.
- the amount of communication used to restore the original file may be minimized.
- the size of each of the file fragments 211, 221, and 231 is proportional to the communication speed of the corresponding storage device. Can be minimized.
- Embodiments of the present invention may be applied to a data sharing system such as a cloud, a distributed storage device, a home network, a cloud storage device, and the like.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명은 복수의 저장 장치들로부터 원본 파일을 복원하는 파일 관리 장치에 있어서, 원본 파일을 복원하는 데 소요되는 시간 및 통신량을 최소화하는 기술을 제공한다. 본 발명이 파일 관리 방법은 복수의 저장 장치들 중 파일 조각을 수신할 저장 장치들을 선택하는 단계, 파일 관리 장치와 선택된 저장 장치들 사이의 통신 속도들에 따라, 선택된 저장 장치들로부터 수신할 파일 조각들을 나타내는 스케쥴링 정보를 결정하는 단계, 결정된 스케쥴링 정보를 참조하여, 상기 선택된 저장 장치들 각각으로부터 파일 조각들을 수신하는 단계 및 수신된 파일 조각들로부터 복원 파일을 생성하는 단계를 포함한다.
Description
본 발명은 복수의 저장 장치에 분산 저장된 파일 조각들로부터 원본 파일을 복원하는 파일 관리 장치 및 그것의 파일 관리 방법에 관한 것으로서, 더욱 구체적으로는 복수의 저장 장치의 통신 속도를 고려하여 파일 조각들을 다운로드함으로써 원본 파일의 복원 시간을 최소화하는 파일 관리 장치 및 그것의 파일 관리 방법에 관한 것이다.
비밀 정보를 보관하는 경우, 비밀 정보가 분실되거나, 파괴될 리스크는 항상 존재한다. 이와 동시에 비밀정보가 도난될 수 있는 리스크 역시 존재한다. 분실 또는 파괴의 리스크는 비밀 정보를 복수 곳의 장소에 보관해 둠으로써 줄일 수 있지만, 이 경우 도난의 리스크가 증가하는 단점이 있다. 이들 리스크를 함께 해결하는 방법의 하나로서 비밀 분산법(Secret Sharing)이 제시되었다.
비밀 분산법은 비밀 정보 MSK로부터 복수의 쉐어 정보 SH(1), … , SH(N)를 생성하고, 이들을 복수의 분산 관리장치 PA(1) ,...,PA(N)에 분산하여 관리시키고, 이들 분산 정보 SH(1) ,...,SH(N) 중 소정 수 이상의 정보를 얻을 수 있었던 경우에만, 비밀 정보 MSK를 복원할 수 있는 방식이다.
비밀 분산법은 저장되는 값의 기밀성, 가용성, 무결성을 모두 보장해줄 수 있다는 장점 덕분에 많은 분산 저장 장치에 적용되어 왔다. 저장된 파일(F)을 작은 단위인 값(F[1], F[2], …, F[s], 단, s는 파일을 이루는 값의 개수)으로 쪼갠 뒤, 각각의 값 F[i]들을 비밀 분산법을 이용하여 복수의 쉐어정보 f[i,1], f[i,2], …, f[i,n] (단, n은 저장 장치의 개수)을 만들어 내고, 쉐어정보를 f(s) = f[1,m] || f[2,m] || … || f[s,m] (단, m=1,2,…,n) 과 같이 연결하여 n개의 파일 조각 f(1), f(2), …, f(n)을 만들어 낸다.
기존 비밀 분산법이 적용된 분산 저장 장치는 일정 수 미만의 파일 조각으로 전체 파일의 내용을 알 수 없으므로 저장된 파일의 기밀성을 제공할 수 있었고, 일정 수 미만의 파일 조각이 없어지거나 손상되더라도 나머지 파일 조각으로 파일을 복원할 수 있기 때문에 가용성을 보장해줄 수 있었다.
하지만, 최근 들어 저장되는 파일의 크기가 커지면서 연산량이 많은 기존 비밀 분산법을 직접적으로 적용하기에는 무리가 있으며, 또한 파일 조각의 크기가 원래의 파일의 크기와 동일하므로 저장 공간 및 통신 비용의 낭비가 커질 가능성이 있다.
이러한 문제점을 해결하기 위해 선행 특허 한국특허출원 제 10-2013-0424811 호가 제안되었다. 하지만, 이 선행 특허를 분산 저장 시스템에 적용할 경우, 여러 분산된 저장 장치로부터 중복된 파일 블록들이 전송될 수 있으며, 이 경우 파일 분산 관리 장치가 파일을 복원하기 위해 수신하는 데이터의 양이 매우 커질 수 있는 문제점이 있었다.
본 발명의 일 측면은 분산 저장된 파일 조각들로부터 원본 파일을 복원할 때, 저장 장치와의 통신 속도를 고려함으로써 복원 시간을 최소화하는 파일 분산 관리 장치 및 방법을 제공할 수 있다.
본 발명의 다른 측면은 분산 저장된 파일 조각들로부터 원본 파일을 복원할 때 중복되는 블록이 수신되지 않도록 함으로써, 복원 시간 및 필요 통신량을 최소화하고 통신 비용을 절감시키는 파일 분산 관리 장치 및 방법을 제공할 수 있다.
본 발명의 다른 측면은 분산 저장된 파일 조각들 중 일정 수 이상의 파일 조각을 획득할 때만 원본 파일이 복원되도록 함으로써, 파일 분산 관리 장치 및 방법의 보안성과 기밀성을 향상시킬 수 있다.
본 발명의 파일 관리 방법은 복수의 저장 장치들 중 파일 조각을 수신할 저장 장치들을 선택하는 단계; 파일 관리 장치와 상기 선택된 저장 장치들 사이의 통신 속도들에 따라, 상기 선택된 저장 장치들로부터 수신할 파일 조각들을 나타내는 스케쥴링 정보를 결정하는 단계; 상기 결정된 스케쥴링 정보를 참조하여, 상기 선택된 저장 장치들 각각으로부터 파일 조각들을 수신하는 단계; 및 상기 수신된 파일 조각들로부터 복원 파일을 생성하는 단계를 포함하되, 상기 복원 파일은 nCk-1개의 세그먼트들로 구성되고, 상기 복수의 저장 장치들 각각은 상기 nCk-1개의 세그먼트들 중 적어도 일부의 세그먼트들을 세그먼트 단위로 저장하고, 상기 수신된 파일 조각들 각각은 상기 복수의 저장 장치들 중 대응하는 저장 장치에 저장된 상기 적어도 일부의 세그먼트들을 전부 또는 부분적으로 포함하고, 상기 n은 상기 복수의 저장 장치들의 개수이고, 상기 k는 선택된 저장 장치들의 개수이다. 상기 nCk-1에서, 'C'란 조합(Combination)을 의미한다. 즉, nCk-1 란 서로 다른 n개에서 순서를 생각하지 않고 k-1개를 뽑는 경우의 수이다.
실시 예로서, 상기 복수의 저장 장치들 각각은 상기 nCk-1개의 세그먼트들 중 n-1Ck-1개의 세그먼트들을 각각 포함한다.
실시 예로서, 상기 수신된 파일 조각들은 상기 복원 파일을 구성하는 상기 nCk-1개의 세그먼트들을 모두 포함하고, 상기 수신된 파일 조각들은 상기 복수의 저장 장치들에 저장된 상기 n개의 파일 조각들 중 상기 k개의 임의의 파일 조각들이다.
실시 예로서, 상기 n개의 파일 조각들 중 상기 k개보다 적은 수의 임의의 파일 조각들은 상기 nCk-1개의 세그먼트들 중 적어도 일부를 불포함한다.
실시 예로서, 상기 수신된 파일 조각들 각각은 서로 중복되는 블록을 포함하지 않는다.
실시 예로서, 상기 스케쥴링 정보를 결정하는 단계는, 상기 통신 속도들을 참조하여, 상기 nCk-1개의 세그먼트들의 할당을 위한 상기 수신할 파일들의 우선 순위를 결정하는 단계; 및 상기 결정된 우선 순위에 따라, 상기 nCk-1개의 세그먼트들 각각을 상기 수신할 파일 조각들에 배타적으로 할당하는 단계를 포함한다.
실시 예로서, 상기 스케쥴링 정보를 결정하는 단계는, 상기 수신할 파일 조각들 중, 각각의 파일 조각에 할당된 블록들의 개수의 비율을 상기 통신 속도들의 비율에 기초하여 결정하는 단계를 포함한다.
실시 예로서, 상기 수신할 파일 조각들 중, 각각의 파일 조각에 할당된 블록들의 개수의 비율을 상기 통신 속도들의 비율에 기초하여 결정하는 단계는, 상기 각각의 파일 조각에 할당된 블록들의 개수의 비율과 상기 통신 속도들의 비율을 동일하게 결정하며, 상기 비율은 수학식 Xp1:Xp2: … : Xpk = rp1:rp2: … :rpk과 같이 정의되며, 상기 p1, p2, …, pk는 상기 수신할 파일 조각들을 제공하는 저장 장치들의 번호를 나타내는 값이고, 상기 Xp1, Xp2, … , Xpk 는 상기 수신할 파일 조각들 중 상기 p1, p2, …, pk번째 저장 장치로부터 수신할 파일 조각에 할당된 블록들의 개수이고, 상기 rp1:rp2: … :rpk 는 상기 p1, p2, …, pk번째 저장 장치와의 통신 속도 비율을 나타낸 비례식이다.
실시 예로서, 상기 수신할 파일 조각들 중, 각각의 파일 조각에 할당된 블록들의 개수의 비율을 상기 통신 속도들의 비율에 기초하여 결정하는 단계는, 상기 수신할 파일 조각들 중 적어도 하나의 파일 조각에 대해서, 상기 하나의 파일 조각에 할당된 블록들의 개수가 상기 하나의 파일 조각과 대응하는 통신 속도에 비해 과다인지 또는 과소인지 결정하는 단계; 및 상기 과다인지 또는 과소인지 결정한 결과에 따라, 상기 수신할 파일 조각들에 포함된 블록들 중 적어도 일부를 재할당하는 단계를 더 포함한다.
실시 예로서, 상기 적어도 일부를 재할당하는 단계는, 상기 하나의 파일 조각에 할당된 블록들의 개수가 상기 하나의 파일 조각과 대응하는 통신 속도에 비해 과다이면, 상기 하나의 파일 조각에 포함된 블록들의 적어도 일부를 상기 수신할 파일 조각들 중 다른 파일 조각에 재할당하는 단계를 포함한다.
실시 예로서, 상기 적어도 일부를 재할당하는 단계는, 상기 하나의 파일 조각에 할당된 블록들의 개수가 상기 하나의 파일 조각과 대응하는 통신 속도에 비해 과소이면, 상기 수신할 파일 조각들 중 다른 파일 조각에 포함된 블록들의 적어도 일부를 상기 하나의 파일 조각에 재할당하는 단계를 포함한다.
실시 예로서, 상기 적어도 일부를 재할당하는 단계는 상기 수신할 파일 조각들에 포함된 세그먼트들이 상기 수신할 파일 조각들 중 얼마나 많은 파일 조각들에 공통적으로 저장되어 있는지를 나타내는 인기도 함수를 참조하여, 상기 수신할 파일 조각들에 포함된 블록들 중 적어도 일부를 재할당한다.
실시 예로서, 상기 인기도 함수는
의 수학식으로 정의되고, 상기 w는 상기 수신할 파일 조각들에 포함된 상기 세그먼트들의 번호를 나타내는 값이고, 상기 pj는 상기 수신할 파일 조각들을 제공하는 저장 장치들의 번호를 나타내는 값이고, 상기 rpj는 상기 선택된 저장 장치들의 통신 속도에 비례하도록 상기 수신할 파일 조각에 포함된 블록들의 전체 개수를 나눈 값들 중 pj번째 저장 장치에 대응되는 값이고, 상기 Xpj는 상기 수신할 파일 조각들 중 상기 pj번째 저장 장치로부터 수신할 파일 조각에 할당된 블록들의 개수이고, 상기 Spj는 상기 pj번째 저장 장치에 대응되는 파일 조각을 구성하는 세그먼트들을 지시하는 번호들의 집합이다.
실시 예로서, 상기 적어도 일부를 재할당하는 단계는 상기 수신할 파일 조각들 각각이 상기 통신 속도들 중 대응되는 통신 속도가 빠를수록 더 많은 수의 블록들을 포함하도록, 상기 수신할 파일 조각들에 포함된 블록들 중 적어도 일부를 재할당한다.
실시 예로서, 상기 복원 파일은, 상기 선택된 저장 장치들의 개수가 소정의 수 이상일 때만 성공적으로 생성된다.
본 발명에 따른 파일 관리 장치는 복수의 저장 장치들 중 선택된 저장 장치들과 상기 파일 관리 장치 사이의 통신 속도들에 따라, 상기 선택된 저장 장치들로부터 수신할 파일 조각들을 나타내는 스케쥴링 정보를 결정하는 스케쥴러; 상기 선택된 저장 장치들과의 통신을 수행하거나 상기 선택된 저장 장치들과의 통신을 위한 인터페이스를 제공하는 통신부; 및 상기 스케쥴링 정보를 참조하여 상기 통신부를 통해 상기 선택된 저장 장치들 각각으로부터 파일 조각들을 수신하고, 상기 수신된 파일 조각들로부터 복원 파일을 생성하도록 상기 파일 관리 장치를 제어하는 컨트롤러를 포함하되, 상기 복원 파일은 nCk-1개의 세그먼트들로 구성되고, 상기 복수의 저장 장치들 각각은 상기 nCk-1개의 세그먼트들 중 n-1Ck-1개의 세그먼트들을 세그먼트 단위로 저장하고, 상기 수신된 파일 조각들 각각은 상기 복수의 저장 장치들 중 대응하는 저장 장치에 저장된 상기 적어도 일부의 세그먼트들을 전부 또는 부분적으로 포함하고, 상기 n은 상기 복수의 저장 장치들의 개수이고, 상기 k는 선택된 저장 장치들의 개수이다.
실시 예로서, 상기 컨트롤러는 상기 선택된 저장 장치들을 상기 복수의 저장 장치들 중에서 선택한다.
실시 예로서, 상기 스케쥴러는 상기 통신 속도들을 참조하여 상기 nCk-1개의 세그먼트들의 할당을 위한 상기 수신할 파일들의 우선 순위를 결정하고, 상기 결정된 우선 순위에 따라 상기 nCk-1개의 세그먼트들 각각을 상기 수신할 파일 조각들에 배타적으로 할당한다.
실시 예로서, 상기 스케쥴러는 상기 수신할 파일 조각들 중 적어도 하나의 파일 조각에 대해서, 상기 하나의 파일 조각에 할당된 블록들의 개수가 상기 하나의 파일 조각과 대응하는 통신 속도에 비해 과다인지 또는 과소인지 결정하고, 상기 과다인지 또는 과소인지 결정한 결과에 따라 상기 수신할 파일 조각들에 포함된 블록들 중 적어도 일부를 재할당한다.
실시 예로서, 상기 스케쥴러는 상기 수신할 파일 조각들에 포함된 세그먼트들이 상기 수신할 파일 조각들 중 얼마나 많은 파일 조각들에 공통적으로 저장되어 있는지를 나타내는 인기도 함수를 참조하여, 상기 수신할 파일 조각들에 포함된 블록들 중 적어도 일부를 재할당한다.
실시 예로서, 상기 스케쥴러는 상기 수신할 파일 조각들 각각이 상기 통신 속도들 중 대응되는 통신 속도가 빠를수록 더 많은 수의 블록들을 포함하도록, 상기 수신할 파일 조각들에 포함된 블록들 중 적어도 일부를 재할당한다.
실시 예로서, 상기 복원 파일은, 상기 선택된 저장 장치들의 개수가 소정의 수 이상일 때만 성공적으로 생성된다.
본 발명에 따른 컴퓨터 판독 가능한 기록 매체는 복수의 저장 장치들 중 파일 조각을 수신할 저장 장치들을 선택하는 단계, 파일 관리 장치와 상기 선택된 저장 장치들 사이의 통신 속도들에 따라, 상기 선택된 저장 장치들로부터 수신할 파일 조각들을 나타내는 스케쥴링 정보를 결정하는 단계, 상기 결정된 스케쥴링 정보를 참조하여, 상기 선택된 저장 장치들 각각으로부터 파일 조각들을 수신하는 단계 및 상기 수신된 파일 조각들로부터 복원 파일을 생성하는 단계를 포함하되, 상기 복원 파일은 nCk-1개의 세그먼트들로 구성되고, 상기 복수의 저장 장치들 각각은 상기 nCk-1개의 세그먼트들 중 적어도 일부의 세그먼트들을 세그먼트 단위로 저장하고, 상기 수신된 파일 조각들 각각은 상기 복수의 저장 장치들 중 대응하는 저장 장치에 저장된 상기 적어도 일부의 세그먼트들을 전부 또는 부분적으로 포함하고,상기 n은 상기 복수의 저장 장치들의 개수이고, 상기 k는 선택된 저장 장치들의 개수인, 파일 관리 방법을 실행하기 위한 컴퓨터 프로그램을 기록한다.
본 발명의 일 측면에 따르면 분산 저장된 파일 조각들로부터 원본 파일을 복원할 때, 저장 장치와의 통신 속도를 고려함으로써 복원 시간이 최소화될 수 있다.
또한, 분산 저장된 파일 조각들로부터 원본 파일을 복원할 때 중복되는 블록이 수신되지 않도록 함으로써, 복원 시간 및 필요 통신량이 최소화되고 통신 비용이 절감될 수 있다.
또한, 분산 저장된 파일 조각들 중 일정 수 이상의 파일 조각을 획득할 때만 원본 파일이 복원되도록 함으로써, 파일 분산 관리 장치 및 방법의 보안성과 기밀성이 향상될 수 있다.
도 1은 본 발명의 실시 예에 따른, 파일 관리 시스템을 나타내는 블록도이다.
도 2는 본 발명의 실시 예에 따른, 파일 관리 시스템이 저장 장치들에 저장된 파일 조각들로부터 원본 파일을 복원하는 방법을 예시적으로 나타내는 개념도이다.
도 3은 도 1에 도시된 파일 관리 장치를 구체적으로 나타내는 블록도이다.
도 4는 본 발명의 실시 예에 따른, k=4, n=6인 경우의 재배열된 파일(F˝)을 예시적으로 나타내는 도면이다.
도 5 및 도 6은 도 4에 도시된 재배열된 파일(F˝)에 대응되는 DT 및 PT를 나타내는 행렬도이다.
도 7은 도 4 내지 도 6의 실시 예에 있어서, 각 저장 장치들에 저장되는 파일 조각들을 나타내는 도면이다.
도 8 내지 도 10은 본 발명의 실시 예에 따른, 스케쥴링 테이블(ST)을 결정하는 방법을 순차적으로 나타내는 행렬도이다.
도 11은 본 발명의 실시 예에 따른, 파일 관리 방법을 나타내는 순서도이다.
도 12는 본 발명의 실시 예에 따른, 파일 관리 장치가 스케쥴링 테이블(ST)을 참조하여 저장 장치들로부터 파일 조각들을 전송받아 원본 파일을 복원하는 방법을 나타내는 개념도이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
한편, 본 발명의 선행 특허 한국특허출원 제 10-2013-0424811 호는 여기서 그 전체가 참조로서 인용될 수 있다. 또한, 파일의 분산 저장 및 복원에 있어서, 본 발명에서 설명되지 않은 것들에 대해서는 한국특허출원 제 10-2013-0424811 호의 내용이 차용될 수 있다. 예를 들어, 본 발명에 따른 저장 장치들에 저장된 파일 조각들은 한국특허출원 제 10-2013-0424811 호에 기재된 방법에 의해 생성된 것일 수 있다.
도 1은 본 발명의 일 실시 예에 따른, 파일 관리 시스템(1000)을 나타내는 도면이다. 파일 관리 시스템(1000)은 파일 관리 장치(1100) 및 n개의 저장 장치들(1200)로 구성된다.
파일 관리 시스템(1000)은 원본 파일로부터 생성한 복수의 파일 조각들을 n개의 저장 장치들(1200)에 분산하여 저장한다. 그리고, 파일 관리 시스템(1000)이 분산된 파일 조각들로부터 원본 파일을 복원하기 위해서는, 저장 장치들(1200) 중 임의의 k개(k는 0보다 큰 n이하의 정수) 저장 장치들에 저장된 k개의 파일 조각들을 획득하여야 한다. 즉, 파일 관리 시스템(1000)이 k개의 파일 조각들을 획득하는 경우 원본 파일이 완전히 복원될 수 있지만, k개보다 적은 수의 파일 조각들만을 획득하는 경우 원본 파일은 완전히 복원되지 않는다. 이와 관련된 분산 및 복원 원리에 관한 구체적인 설명은 한국특허출원 제 10-2013-0424811 호에 상세히 기재되어 있다.
저장 장치들(1200)은 n개의 저장 장치들(1200_1, 1200_2, …, 1200_n)을 포함할 수 있다. 저장 장치들(1200) 각각은 원본 파일로부터 생성된 파일 조각을 저장한다. 실시 예로서, 저장 장치들(1200)에는 한국특허출원 제 10-2013-0016390 호에 기재된 방법에 의해 생성된 파일 조각들이 분산 저장될 수 있다. 예를 들어, 원본 파일(또는, 후술할 재배열된 파일)은 nCk-1개의 세그먼트들로 구성되고, n개의 저장 장치들(1200_1, 1200_2, …, 1200_n) 각각은 상기 nCk-1개의 세그먼트들 중 적어도 일부의 세그먼트들(예를 들어, n-1Ck-1개의 세그먼트들)을 세그먼트 단위로 저장할 수 있다. 여기서, k는 원본 파일을 복원하기 위해 필요한 최소한의 저장 장치들의 수이다.
그리고, 저장 장치들(1200)은 파일 관리 장치(1100)의 제어 또는 파일 관리 장치(1100)로부터의 요청에 응답하여 저장된 파일 조각의 일부 또는 전부를 파일 관리 장치(1100)에 제공한다. 실시 예로서, 파일 관리 장치(1100)는 저장 장치들(1200) 각각의 통신 속도를 고려하여, 저장 장치들(1200)로부터 수신할 파일 조각들을 결정하는 스케쥴링 동작을 수행할 수 있고, 저장 장치들(1200) 각각은 스케쥴링 동작의 결과에 따라 저장된 파일 조각의 전부 또는 일부를 파일 관리 장치(1100)에 전송할 수 있다.
저장 장치들(1200)은 특별한 기능이 없더라도 각각의 파일 조각을 분리하여 저장할 수 있는 장치로서 구성되면 충분하다. 도 1에서, 저장 장치들(1200)은 물리적으로 분리된 형태로 표현되어 있지만, 이에 한정되는 것은 아니며, 저장 장치들(1200)은 1개의 물리적 장치에서 논리적으로 분리된 형태로도 가능할 수 있다.
일 실시예에서, 저장 장치들(1200) 각각은 파일 관리 장치(1100)와의 통신을 위한 별도의 통신부 또는 통신 인터페이스를 구비할 수 있다.
파일 관리 장치(1100)는 저장 장치들로부터 파일 조각들을 수신하고, 수신된 파일 조각들을 이용하여 원본 파일을 복원한다. 파일 관리 장치(1100)에 대한 더욱 상세한 설명은 아래의 도 3을 참조하여 후술된다.
도 2는 본 발명의 실시 예에 따른, 파일 관리 시스템이 저장 장치들에 저장된 파일 조각들로부터 원본 파일을 복원하는 방법을 예시적으로 나타내는 개념도이다.
도 2를 참조하면, 파일 관리 시스템(2000)은 파일 관리 장치(2100) 및 복수의 저장 장치들(2201, 2202, 2203, 2204)을 포함한다. 파일 관리 장치(2100) 및 복수의 저장 장치들(2201, 2202, 2203, 2204)에 관한 구체적인 내용은 도 1의 파일 관리 장치(1100) 및 저장 장치들(1200)과 실질적으로 동일하다. 파일 관리 시스템(2000)에서 원본 파일(100)은 6개의 세그먼트(a, b, c, d, e, f)로 구성되고, 각 세그먼트들(a, b, c, d, e, f)은 4개의 저장 장치들(2201, 2202, 2203, 2204)에 분산 저장된다. 이때, 4개의 저장 장치들(2201, 2202, 2203, 2204) 중 임의의 3개의 저장 장치들(예를 들어, 2201, 2202, 2204)만으로 원본 파일의 복원이 가능하도록, 각 세그먼트들(a, b, c, d, e, f)은 하나 이상의 저장 장치들에 중복하여 저장될 수 있다.
예를 들어, 제 1 저장 장치(2201)에는 세그먼트(a, b, c)를 포함하는 파일 조각(110)이 저장되고, 제 2 저장 장치(2202)에는 세그먼트(a, d, e)를 포함하는 파일 조각(120)이 저장되고, 제 3 저장 장치(2203)에는 세그먼트(b, d, f)를 포함하는 파일 조각(130)이 저장되고, 제 4 저장 장치(2204)에는 세그먼트(c, e, f)를 포함하는 파일 조각(140)이 저장된다고 가정한다. 이때, 4개의 저장 장치들(2201, 2202, 2203, 2204) 중 어떤 3개의 저장 장치들을 선택하여도 선택된 저장 장치들에는 원본 파일의 모든 세그먼트들(a, b, c, d, e, f)이 포함된다. 따라서, 파일 관리 시스템(2000)은 임의의 3 개의 저장 장치들(예를 들어, 2201, 2202, 2204)에 저장된 파일 조각들을 수신하여 원본 파일을 완전히 복원할 수 있다.
한편, 본 발명에서 파일 관리 시스템(2000)은 분산되어 저장된 파일 조각들을 수신하여 원본 파일을 복원한다. 이때, 파일 관리 장치(2100)는 원본 파일을 복원하는데 소요되는 시간 및 통신 비용을 최소화하기 위해, 저장 장치들(2201, 2202, 2203, 2204)과의 통신 속도 및 각 파일 조각들(110, 120, 130, 140)의 중복성을 고려하여 파일 조각들을 수신한다.
여기서, 파일 관리 장치(2100)가 원본 파일을 복원하기 위해 어떤 저장 장치로부터 수신하는 파일 조각은 해당 저장 장치에 저장된 원본 파일의 파일 조각의 일부 또는 전부일 수 있다. 즉, 파일 관리 장치(2100)는 어떤 저장 장치에 저장된 파일 조각의 일부만을 수신하여 원본 파일을 복원하는데 사용할 수 있다. 따라서, 저장 장치에 저장된 파일 조각과 그 저장 장치로부터 파일 관리 장치(2100)가 수신하는 파일 조각은 서로 다를 수 있다.
구체적으로, 원본 파일의 복원이 가능한 일정 수(여기서는, 3개)의 저장 장치들에 저장된 전체 파일 조각들(110, 120, 140)을 수신하면, 중복된 세그먼트들(예를 들어, a, c, e)이 수신될 수 있고 그에 따른 통신 비용도 증가하게 된다. 이에, 본 발명의 파일 관리 장치(2100)는 중복되는 세그먼트들이 수신되지 않도록, 파일 조각들을 스케쥴링한다. 여기서, 파일 조각을 스케쥴링하는 것의 의미는, 어떤 저장 장치로부터 수신할 파일 조각에 어떤 세그먼트(또는 세그먼트의 일부)들이 포함되도록 할지 결정하는 것을 의미하며, 파일 관리 장치(2100)는 스케쥴링의 결과에 따라 적어도 일부의 세그먼트들로 구성된 파일 조각들을 각 저장 장치들로부터 수신한다. 실시 예로서, 스케쥴링의 결과에 따라 구성된 파일 조각들은 파일 조각에 포함된 적어도 일부의 세그먼트들의 주소 또는 크기 정보가 포함될 수 있다.
또한, k개(여기서는, 3개)의 저장 장치들로부터 별다른 조치없이 파일 조각들을 수신하는 경우, 파일 관리 장치(2100)는 통신 속도가 낮은 저장 장치로부터 크기가 큰 파일 조각을 수신하고, 통신 속도가 높은 저장 장치로부터 크기가 작은 파일 조각을 수신하게 될 수 있다. 이러한 경우, 파일 관리 장치(2100)에서 전체 파일 조각들을 수신하는데 걸리는 시간이 매우 커질 수 있다. 따라서, 본 발명의 파일 관리 장치(2100)는 각 저장 장치와의 통신 속도에 따라, 통신 속도가 빠른 저장 장치에 대해서는 상대적으로 크기가 큰 파일 조각을 스케쥴링하고, 통신 속도가 느린 저장 장치에 대해서는 상대적으로 크기가 작은 파일 조각을 스케쥴링한다.
도 2를 참조하여 구체적인 예를 들면, 파일 관리 시스템(2000)은 원본 파일을 복원하기 위해 4개의 저장 장치들(2201, 2202, 2203, 2204) 중 임의의 3개의 저장 장치들(2201, 2202, 2204)을 선택한다. 그리고, 파일 관리 장치(2100)가 파일 조각을 수신하는 시간이 최소화되도록 하기 위해, 파일 관리 시스템(2000)은 각 저장 장치들(2201, 2202, 2204)의 통신 속도에 비례하여 선택된 각 저장 장치들(2201, 2202, 2204)로부터 전송되는 파일 조각들의 크기를 제어한다.
가령, 파일 관리 장치(2100)와의 통신 속도에 있어서, 제 1 저장 장치(2201)가 가장 빠르고, 제 2 저장 장치(2202)가 다음으로 빠르고, 제 4 저장 장치(2204)가 가장 느리다고 가정한다. 이때, 파일 관리 시스템(3000)은 파일 관리 장치(2100)가 수신(또는, 다운로드)하는 파일 조각들의 크기가 대응되는 저장 장치들의 통신 속도에 비례하도록 제어된다. 즉, 제 1 저장 장치(2201)로부터는 가장 큰 크기의 파일 조각(111)이 수신되고, 제 2 저장 장치(2202)로부터는 다음 크기의 파일 조각(121)이 수신되고, 제 4 저장 장치(2204)로부터는 가장 작은 크기의 파일 조각(141)이 수신된다. 이처럼, 수신되는 파일 조각의 크기가 대응되는 통신 속도에 비례하도록 함으로써, 파일 관리 장치(2100)가 파일 조각들(111, 121, 141)을 수신하는 데 걸리는 시간이 감소될 수 있다.
또한, 파일 관리 시스템(2000)은 각 저장 장치들(2201, 2202, 2203)로부터 수신되는 파일 조각들(111, 121, 141)이 서로 중복되는 부분을 포함하지 않도록, 수신되는 파일 조각들(111, 121, 141)을 결정한다. 예를 들어, 제 1 파일 조각(111)에 세그먼트(b)가 포함되는 경우, 다른 파일 조각들(121, 141)에는 세그먼트(b)가 포함되지 않도록 파일 조각들(111, 121, 141)을 스케쥴링한다. 또는, 제 1 파일 조각(121)에 세그먼트(a) 중 일부(a´) 포함되는 경우, 다른 파일 조각들(111, 141)에는 세그먼트(a) 중 일부(a´)를 제외한 나머지 일부(a˝)만이 포함되도록 파일 조각들(111, 121, 141)을 결정한다. 위와 같은 구성에 따르면, 파일 관리 장치(2100)는 중복되는 블록을 수신하지 않으므로, 파일 관리 장치(2100)가 파일 조각들(111, 121, 141)을 수신하는 데 사용되는 통신량 및 시간이 더욱 감소될 수 있다.
도 3은 도 1에 도시된 파일 관리 장치(1100)를 구체적으로 나타내는 블록도이다. 파일 관리 장치(1100)는 통신부(1110), 컨트롤러(1120), 스케쥴러(1130) 및 저장부(1140)를 포함할 수 있으나, 이에 제한되는 것은 아니다.
통신부(1110)는 파일 관리 장치(1100)와 외부 객체와의 통신을 수행하는 역할을 한다. 예를 들어, 파일 관리 장치(1100)는 통신부(1110)를 통해 저장 장치들(1200, 도 1 참조)과 통신할 수 있다. 통신부(1110)는 외부와 네트워킹 또는 통신이 가능한 모든 통신 수단을 포함할 수 있으며, 그러한 통신 수단에 수반되는 통신 인터페이스를 구비할 수 있다. 통신부(1110)가 이용하는 통신 인터페이스 또는 통신 방법은 유선 통신, 무선 통신, 3G, 4G, 또는 그 밖의 다양한 통신 인터페이스 또는 통신 방법을 포함할 수 있다.
실시 예로서, 통신부(1110)는 파일 관리 장치(1100)와 외부 객체 사이의 통신 상태 정보를 관리하는 통신 상태 관리자(1110)를 포함할 수 있다. 여기서, 통신 상태 정보는 파일 관리 장치(1100)와 외부 객체 사이의 채널 상태 또는 통신 속도를 나타내는 정보를 포함할 수 있다. 또한, 통신 상태 관리자(1111)는 단순히 통신 상태 정보를 관리 및 저장하는 것 이외에, 외부 객체와의 채널 상태 또는 통신 속도를 검출하여 새로운 통신 상태 정보를 생성하거나 기존의 통신 상태 정보를 갱신할 수도 있다.
여기서, 통신 상태 관리자(1111)는 통신부(1110)에 포함되는 것으로 설명되었으나, 이에 한정되는 것은 아니며, 통신 상태 관리자(1111)는 파일 관리 장치(1100)의 어느 위치에도 배치될 수 있고, 심지어는 파일 관리 장치(1100)와 분리된 별도의 모듈로서 배치될 수도 있다.
컨트롤러(1120)는 파일 관리 장치(1100) 및 파일 관리 장치를 구성하는 다른 모듈들(1110, 1130, 1140)의 전반적인 동작을 제어한다. 예를 들어, 컨트롤러(1120)는 n개 저장 장치들(1200) 중 원본 파일 복원을 위한 파일 조각들을 수신할 k개 저장 장치들을 선택할 수 있다. 그리고, 컨트롤러(1120)는 파일 관리 장치(1100)의 구동에 필요한 연산들을 수행하는 중앙 처리 장치로서 기능할 수 있다.
스케쥴러(1130)는 파일 관리 장치(1100)가 저장 장치들(1200)로부터 수신할 세그먼트들 또는 파일 조각들의 목록을 생성 및 관리한다. 그리고, 생성된 파일 목록들에 따라 저장 장치들(1200)로부터 적어도 일부의 세그먼트 또는 파일 조각들이 수신될 수 있도록 필요한 정보를 컨트롤러(1120) 또는 통신부(1110)에 제공한다. 스케쥴러(1130)가 파일 조각 목록을 생성 및 관리하는 구체적인 방법은 도 3 이하에서 더욱 상세히 설명될 것이다.
저장부(1140)는 파일 관리 장치(1100)에 수신된 데이터 또는 파일 관리 장치(1100)에서 처리한 데이터를 저장한다. 예를 들어, 저장부(1140)는 통신 상태 관리자(1111), 컨트롤러(1120) 또는 스케쥴러(1130)의 기능을 수행하는 과정에서 얻어진 데이터들을 저장할 수 있다.
도 4 이하에서는 본 발명에 따라 수신할 파일 조각 목록들을 스케쥴링하고, 스케쥴링된 파일 조각 목록에 따라 파일 조각들을 수신하는 방법이 설명될 것이다.
이후의 설명을 위해, 몇 가지 용어들이 아래와 같이 정의된다.
용어 정의
n: 파일 관리 시스템(1000)이 포함하는 저장 장치의 수
k: 파일 관리 시스템(1000)이 원본 파일을 성공적으로 복원하기 위해 필요한 최소의 저장 장치의 수. 또는, 원본 파일을 성공적으로 복원하기 위해 필요한 최소의 파일 조각의 수. 단, k는 0보다 크고 n이하인 정수이다.
M1, M2, M3, …, Mn : n개의 저장 장치들
F: 원본 파일
F´: 원본 파일에 더미 영역을 부가한 수정 파일
F˝: 블록 단위로 파일(원본 파일 또는 수정 파일)의 순서를 뒤섞는 재배열을 수행한 재배열된 파일
s: 원본 파일(F)을 구성하는 블록의 개수
b: 파일(원본 파일 또는 수정 파일)을 구성하는 블록의 크기(byte)
e: 파일(원본 파일 또는 수정 파일)의 재배열을 수행하기 위한 재배열 키
한편, 여기서 수정 파일(F´)은 원본 파일(F)의 크기가 블록 크기(b)의 정수 배가 아닌 경우, 원본 파일(F)에 더미 영역을 부가하여 전체 크기를 블록 크기(b)의 정수 배로 맞춘 파일이고, 재배열된 파일(F˝)은 수정 파일(F´) 또는 원본 파일(F)의 블록 순서를 재배열 키(e)를 이용하여 임의적으로 재배열한 파일이다. 이 때, 블록의 크기는 1 바이트일 수도 있고, 2 바이트 이상일 수도 있다. 또한, 수정 파일(F´) 또는 원본 파일(F)의 블록 순서의 재배열은 선택적인 단계로서, 수정 파일(F´) 또는 원본 파일(F)이 재배열되지 않을 경우 F˝은 각각 수정 파일(F´) 또는 원본 파일(F)와 동일한 파일이다.
B´[i]: 수정 파일(F´)의 i번째 블록(즉, F´는 B´[1]∥B´[2]∥…∥B´[s]로 나타내어진다). 이때, ‘∥’의 의미는 병렬 연결을 의미한다. 예를 들어, X = A∥B는 A 옆에 B가 위치한 형태로 X가 구성됨을 의미함.
B˝[i]: 재배열된 파일(F˝)의 i번째 블록 (즉, F˝는 B˝[1]∥B˝[2]∥…∥B˝[s]로 나타내어진다)
S[1], S[2], …, S[nCk-1]: 재배열된 파일(F˝)로부터 분할되는 세그멘트들(즉, F˝는 S[1]∥S[2]∥…∥S[nCk-1]로 나타내어질 수 있고, 각 세그멘트들은 복수의 블록으로 구성될 수 있다).
f1, f2, …, fn : n개의 저장 장치들(M1, M2, …, Mn)에 각각 저장된 n개의 파일 조각
p1, p2, …, pk : n개의 저장 장치들 중 원본 파일 복원을 위해 선택된 k개 저장 장치들의 번호
rp1, rp2, …, rpk: 원본 파일 복원을 위해 선택된 k개의 저장 장치(M1, M2, …, Mk)와 파일 관리 장치(1100) 사이의 통신 속도 비. 단, rp1 ≥ rp2 ≥ … ≥ rpk 이고, r1 + r2 + … + rk = s이다.
DT: Distribution Table (n×n-1Ck-1 행렬로 구성됨), 이며, DTi = (DT(i,1), DT(i,2), …, DT(i,x))이다(단, 여기서 x는 n-1Ck-1).
여기서, DT는 각각의 저장 장치가 파일(원본 파일, 수정 파일 또는 재배열된 파일)의 세그먼트 중 어떤 세그먼트를 포함하고 있는지 알려주는 테이블이다. 예를 들어, DTi=(d1, d2, …, dx)(단, x는 n-1Ck-1)는 i번째 저장 장치(Mi)에 저장되는 파일조각(fi)이 S[d1]∥S[d2]∥…∥S[dx](단, x는 n-1Ck-1)와 같은 세그먼트들로 구성됨을 의미한다.
Di:(DT(i,1), DT(i,2), …, DT(i,x))(단, x는 n-1Ck-1)
한편, 여기서 PT(i,j)= 로 정의된다. 즉, 파일 조각(fi)가 어떤 세그먼트 S[j]를 포함하고 있으면 PT(i,j)의 값은 S[j]에 포함된 블록의 개수가 되고, 포함하고 있지 않으면 PT(i,j)의 값은 0이 된다.
여기서, ST는 파일 관리 장치(1100)가 k개의 저장 장치 각각에 대해, 저장 장치에 저장된 세그먼트 중에서 몇 개의 블록을 수신할 것인지를 결정하는 테이블이다. 예를 들어, DTi=(d1, d2, …, dy)(단, y는 nCk-1)일 때 STi=(h1, h2, …, hy)는, 저장 장치(Mi)가 S[d1]∥S[d2]∥…∥S[dy]을 저장하고 있고 파일 관리 장치(1100)가 저장 장치(Mi)의 세그먼트 중 S[d1]에서 h1개의 블록을, S[d2]에서 h2개의 블록을, …, S[dy]에서 hy개의 블록을 다운받도록 스케쥴링 테이블이 구성됨을 의미한다.
한편, ST를 결정하기 위한 구체적인 방법에 대해서는 후술될 것이다.
Xi=ST(i,1) + ST(i,2) + … + ST(i,x)이다(단, 여기서 x는 n-1Ck-1)
Ai:j=1, 2, …, nCk-1에 대하여, ST(i,j)≠0 인 j의 집합. 즉, Ai={j│ST(i,j)≠0, 1≤j≤nCk-1}
N={1, 2, 3, …, n}
W={1, 2, 3, …, nCk-1}
T: N의 원소가 n-k+1개인 모든 부분집합의 집합
Qi={C∈T|i∈C}
본 발명에서 제안하는 기술은 파일 관리 장치가 n개 중 k개의 저장 장치(M1, M2, …, Mk)로부터 k개의 파일 조각들을 수신하여 원본 파일을 복원하되, 수신하는 파일 조각들이 서로 중복되는 파일 블록을 포함하지 않도록 한다. 또한, 파일 관리 장치와 저장 장치 사이의 통신 속도에 따라 각각의 저장 장치로부터 수신하는 파일 조각의 크기(또는, 파일 조각에 포함된 블록들의 전체 개수)를 조정함으로써, 파일 관리 장치가 파일 조각들을 모두 수신하는 데 걸리는 시간이 최소화되게 한다.
이 경우, 일반적으로 저장 장치들의 통신 속도의 비율과 각 저장 장치로부터 수신하는 파일 블록 개수의 비율이 같을 때 파일 조각의 수신 시간이 가장 적게 걸릴 수 있다.
이하에서는, 파일 관리 장치(1100)가 각 저장 장치들(1200)로부터 수신할 파일 조각들을 결정 또는 스케쥴링하는 방법이 설명된다.
이를 위해, 먼저 다음과 같은 인기도 함수 P:W→Z가 정의된다.
실시 예로서, 파일 관리 장치(1100)는 위에서 정의한 DT, PT 및 ST를 포함할 수 있다. 또는, 파일 관리 장치(1100)는 DT, PT, ST를 n개의 저장 장치들(M1, M2, M3, …, Mn) 또는 별도의 저장 매체로부터 제공받을 수도 있다.
파일 관리 장치(1100)가 각 저장 장치들(1200)로부터 수신할 파일 조각들을 결정 또는 스케쥴링하는 방법은 아래의 알고리즘에 의해 결정된다.
스케쥴링 방법
입력값: 파일 조각을 제공하는 k개 저장 장치들의 번호 p1, p2, …, pk. 단, rp1 ≥rp2 ≥… ≥rpk 이다.
1: ST의 원소를 모두 0으로 초기화한다.
2: W를 W´에 대입한다.
3: (반복문 시작) i=1 부터 k까지 반복
4: (반복문 시작) 모든 j ∈ Di ∩ W´에 대하여 다음을 반복
5: ST(pi,j)에 S[j]를 구성하는 블록들의 개수를 대입한다.
6: W´에 W´\Di를 대입한다.
7: (반복문 끝)
8: (반복문 끝)
9: (반복문 시작)
10: {p1, p2, …, pk}의 원소들의 순서를 재배열한 결과를 {q1, q2, …, qk}로 정의하되, {q1, q2, …, qk}는 아래 식을 만족하도록 정의된다.
Xq1- rq1 ≥ Xq2- rq2 ≥ … ≥ Xqk- rqk
11: (조건문 시작) 만일 Xq1 = rq1 이면,
12: ST를 반환하고 프로세스를 종료한다.
13: (조건문 끝)
14: t에 k를 대입하고, g에 Xq1 - rq1을 대입한다.
15: (반복문 시작) Xq1 > rq1 및 Xqt > rqt 인 동안 다음을 반복한다.
16: 집합 Aq1∩Dqt의 원소들을 순서를 재배열한 결과를 {π1, π2, …, πμ}로 정의하되, {π1, π2, …, πμ}는 아래 식을 만족하도록 정의된다.
μ=|Aq1∩Dqt|, P(π1)≤P(π2)≤…≤P(πμ)
17: (반복문 시작) m=1 부터 μ까지 반복
18: υ에 min{ST(q1,πm), Xq1 - rq1,rqt - Xqt}를 대입
19: ST(q1,πm)에 ST(q1,πm) - υ를 대입
20: ST(qt,πm)에 ST(qt,πm) + υ를 대입
21: (반복문 끝)
22: t에 t-1을 대입(t = t-1)
23: (반복문 끝)
24: (조건문 시작) 만일, g = Xq1 - rq1이면,
25: ST를 반환하고 프로세스를 종료
26: (조건문 끝)
27: (반복문 끝)
단, 여기서는 rp1, rp2, …, rpk의 합이 원본 파일(또는, 수정 파일)에 포함되는 전체 블록들의 개수와 동일한 것으로 가정하였다.
본 발명에 따른 파일 관리 장치(예를 들어, 도 1의 1100)는 위에서 설명된 알고리즘에 따라 수신할 파일 조각들을 결정 또는 스케쥴링하고, 결정 또는 스케쥴링된 파일 조각들을 k개의 분산 저장 장치들(예를 들어, 도 1의 1200_1, 1200_2, … ,1200_k, 단 k는 0보다 크고 n이하인 정수)로부터 파일 조각들을 수신한다.
위에서 설명된, 알고리즘에 따르면, 복수의 저장 장치들(1200_1, 1200_2, …, 1200_k)로부터 수신할 파일 조각들이 표현된 스케쥴링 테이블(ST)이 출력되고, 이때 스케쥴링 테이블에 따라 결정되는 파일 조각들(f1, f2, …, fk)에 할당된 블록들의 개수의 비율은 파일 관리 장치(1100)와 분산 저장 장치들(1200_1, 1200_2, …, 1200_k) 사이의 통신 속도 비(rp1, rp2, …, rpk)에 기초하여 결정된다. 예를 들면, 스케쥴링 테이블에 따라 결정되는 파일 조각들(f1, f2, …, fk)의 크기 비는 파일 관리 장치(1100)와 분산 저장 장치들(1200_1, 1200_2, …, 1200_k) 사이의 통신 속도 비(rp1, rp2, …, rpk)와 같거나, 그에 근접해진다. 스케쥴링 테이블에 따라 결정되는 파일 조각들(f1, f2, …, fk)에 할당된 블록들의 개수의 비율이 통신 속도 비(rp1, rp2, …, rpk)와 같을 경우, 상기 비율은 수학식 Xp1:Xp2: … : Xpk = rp1:rp2: … :rpk과 같이 정의되며, Xp1, Xp2, … , Xpk 는 p1, p2, …, pk번째 저장 장치로부터 수신할 파일 조각에 할당된 블록들의 개수이다.
도 4는 본 발명의 실시 예에 따른, k=4, n=6인 경우의 재배열된 파일(F˝)을 예시적으로 나타내는 도면이다. 그리고, 도 5 및 도 6은 도 4에 도시된 재배열된 파일(F˝)에 대응되는 DT 및 PT를 나타내는 행렬도이다.
도 4의 각 칸에서 위쪽 문자(S[i])는 세그먼트의 번호 또는 명칭을 나타내는 것이고, 아래쪽 숫자는 해당 세그먼트를 구성하는 블록의 개수를 나타낸다. 예를 들어, 재배열된 파일(F˝)은 제 1 세그먼트(S[1])부터 제 20 세그먼트(S[20])까지 순차적으로 배열된 복수의 세그먼트들로 구성되고, 각각의 세그먼트들은 해당 칸의 아래쪽에 기재된 숫자만큼의 블록들로 구성되며(예를 들어, S[1]은 100개의 블록으로 구성됨), 재배열된 파일(F˝)은 총 1200개의 블록으로 구성된다.
도 5를 참조하면, 20개의 세그먼트들로 구성된 재배열된 파일(F˝)을 n개(여기서는 6개)의 저장 장치에 분산하기 위한 분산 테이블(Distriution Table, DT)이 도시된다. DT는 분산 파일 조각들에 포함될 세그먼트들을 나타낸다. 여기서 분산 파일 조각들은 재배열된 파일(F˝)의 적어도 일부를 포함하는 파일 조각들로서 대응되는 저장 장치에 저장되는 파일 조각을 의미한다. 도 5에서, DT의 각 행은 재배열된 파일(F˝)을 구성하는 세그먼트들 중 각각의 분산 파일 조각에 포함될 세그먼트들을 나타낸다.
예를 들어, 제 1 행의 원소가 1, 2, 3, 4, 5, 6, 7, 8, 9, 10이면, 제 1 파일 조각은 재배열된 파일(F˝)의 세그먼트들 중 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 번째 세그먼트들(즉, S[1], S[2], S[3], S[4], S[5], S[6], S[7], S[8], S[9], S[10])을 포함하게 된다. 그리고, 제 1 파일 조각은 6개의 저장 장치들(M1, M2, M3, M4, M5, M6) 중 어느 하나(예를 들어, M1)에 저장된다. 유사하게, 제 2 행의 원소가 1, 2, 3, 4, 11, 12, 13, 14, 15, 16이면, 제 2 파일 조각은 재배열된 파일(F˝)의 세그먼트들 중 1, 2, 3, 4, 11, 12, 13, 14, 15, 16 번째 세그먼트들(즉, S[1], S[2], S[3], S[4], S[11], S[12], S[13], S[14], S[15], S[16])을 포함하게 된다. 그리고, 제 2 파일 조각은 6개의 저장 장치들 중 제 1 파일 조각이 저장된 저장 장치가 아닌 다른 어느 하나(예를 들어, M2)에 저장된다. 위와 같이, 6개의 저장 장치들(M1, M2, M3, M4, M5, M6)은 재배열된 파일(F˝)의 세그먼트들을 나누어 저장하고, 그 중 임의의 4개의 저장 장치가 재배열된 파일(F˝)의 모든 세그먼트들을 포함하도록 저장된다.
즉, DT는 복수의 저장 장치에 분산 저장되는 파일 조각들의 구성을 나타내며, 각 저장 장치에 원본 파일(또는, 재배열된 파일)의 어떠한 세그먼트가 저장되었는지를 알기 위해 참조될 수 있다.
도 6을 참조하면, 도 5에 도시된 DT에 따른 점유 테이블(Possesion Table, PT)이 도시된다. PT는 6개의 저장 장치들(M1, M2, M3, M4, M5, M6)에 저장되는 파일 조각이 포함하는 세그먼트와, 세그먼트들에 포함된 블록의 수를 나타낸다. 구체적으로, PT의 각 행은 각 파일 조각의 구성을 나타내며, 각 행의 0이 아닌 원소는 대응하는 세그먼트를 각 파일 조각이 포함함을 의미하며, 0인 원소는 대응하는 세그먼트를 각 파일 조각이 포함하지 않음을 의미한다. 한편, 각 원소가 나타내는 숫자는 대응하는 세그먼트에 포함된 블록을 의미한다. 예를 들면, 제 1 행의 원소들은 제 1 파일 조각의 구성을 나타내고, 제 1 행 1 열의 원소가 100이라는 것은 제 1 파일 조각이 제 1 세그먼트를 포함하는 동시에, 제 1 세그먼트가 100개의 블록을 포함함을 의미한다. 반면에, 제 1 행 20 열의 원소가 0이라는 것은 제 1 파일 조각이 제 20 세그먼트를 포함하지 않음을 의미한다.
도 7은 도 4 내지 도 6의 실시 예에 있어서, 각 저장 장치들에 저장되는 파일 조각들을 나타내는 도면이다.
도 7을 참조하면, 6개의 파일 조각들(f1, f2, f3, f4, f5, f6)이 6개의 저장 장치들(M1, M2, M3, M4, M5, M6)에 나누어 저장되며, 각 파일 조각들은 10개의 세그먼트들을 포함한다. 각 파일 조각들의 구분된 칸(또는 박스) 속에 기재된 문자는 각 파일 조각들이 포함하는 세그먼트의 번호 또는 명칭을 나타낸다. 예를 들어, 제 1 파일 조각(f1)은 제 1 세그먼트(S[1]) 내지 제 10 세그먼트(S[10])를 포함한다.
이하에서는, 파일 관리 시스템이 6개의 저장 장치들(M1, M2, M3, M4, M5, M6)에 저장된 파일 조각들로부터 원본 파일을 복원하는 방법에 대해서 앞서 설명된 알고리즘을 참조하여 설명한다.
먼저, 파일 관리 장치는 6개의 저장 장치들(M1, M2, M3, M4, M5, M6) 중 파일 조각들을 수신할 임의의 4개의 저장 장치를 결정한다. 여기서는, 제 1, 제 2, 제 4, 및 제 6 저장 장치(M1, M2, M4, M6)가 선택된 것으로 가정한다. 또한, 파일 관리 장치와 선택된 4개의 저장 장치(M1, M2, M4, M6)의 각각의 통신 속도 비는 5:9:2:4라고 가정한다. 파일 관리 장치와의 통신 속도가 M2, M1, M6, M4의 순서대로 빠르므로, 위에서 알고리즘을 참조하여 설명된 스케쥴링 방법(이하 ‘스케쥴링 방법’이라 한다)의 제 10 단계에 의해 (p1, p2, p3, p4 )=(2, 1, 6, 4)이 된다. 그리고, 재배열된 파일(F˝)을 이루는 파일 블록의 전체 개수가 1200이므로 앞서 용어 정의에서 설명된 내용에 따라 (rp1, rp2, rp3, rp4)=(r2, r1, r6, r4)=(540, 300, 240, 120)이 된다. 즉, 파일 관리 장치는 4개의 저장 장치 M1, M2, M6, M4 로부터 각각 서로 중복되지 않는 300개, 540개, 120개, 240개의 블록을 받아오도록 스케쥴링 테이블(Scheduling Tabel, ST)을 결정함으로써, 최소의 시간 및 최소의 통신량만으로 원본 파일을 복원할 수 있다.
다음으로, 본 발명의 스케쥴링 방법에 따라 스케쥴링 테이블(ST)을 결정하는 방법이 도 8 내지 도 10의 행렬도를 참조하여 설명된다.
본 발명의 스케쥴링 방법에서는 먼저 ST를 초기화한다. ST의 초기화는 스케쥴링 방법의 초기화 반복문(스케쥴링 방법의 3 단계 내지 8 단계)에 의해 수행된다. 이때, 저장 장치들의 통신 속도들에 따라, 할당 우선 순위가 결정된다. 예를 들어, 통신 속도 빠른 순서는 (p1, p2, p3, p4 )=(2, 1, 6, 4)이므로, ST의 2번째, 1번째, 6번째, 4번째 행의 순서대로 우선 순위가 결정된다. 그리고, 결정된 우선 순위에 따라 ST의 각 행이 중복되는 않는 범위에서 순차적으로 채워진다. 여기서 중복되지 않는 범위에서 채워진다는 것은 ST의 각 행이 서로 중복되는 세그먼트를 포함하지 않도록 배타적으로 채워진다는 것을 말하며, 행렬상으로는 하나의 열에 대해서 단 하나의 행만이(다른 행에 대해서 배타적으로) 0이 아닌 값을 갖는 것을 의미한다.
구체적으로, 그리고, ST의 두 번째 행에는 Dp1(즉, D2)로부터 수신할 블록들의 개수가 저장된다. 이때, 제 2 행은 먼저 채워지는 행이고 W´={1, 2, 3, 4, …, 20}, D2={1, 2, 3, 4, 11, 12, 13, 14, 15, 16} ⊂ W´이므로(D2∩W´= D2), 제 2 행의 1, 2, 3, 4, 11, 12, 13, 14, 15 및 16번째 원소에는 각각 S[1], S[2], S[3], S[4], S[11], S[12], S[13], S[14], S[15], S[16]의 블록의 개수가 온전하게 채워진다.
다음으로, 제 2 행과 다른 행들의 중복을 피하기 위해 집합 W´는 D2를 뺀 집합인 {5, 6, 7, 8, 9, 10, 17, 18, 19, 20}으로 업데이트되며, 이어서 제 1 행이 채워진다. 이때, D1 ∩ W´= {5, 6, 7, 8, 9, 10}이므로, 제 1 행의 5, 6, 7, 8, 9 및 10번째 원소에만 각각 S[5, S[6], S[7], S[8], S[9], S[10]의 블록의 개수가 채워진다.
그리고, 집합 W´는 행들의 중복을 피하기 위해 다시 D1을 뺀 집합인 {17, 18, 19, 20}으로 업데이트된다. 이어서, ST의 제 6 행이 채워진다. 이때, W´={17, 18, 19, 20}, D6∩W´={18, 19, 20}이므로, 제 6 행의 18, 19 및 20 번째 원소에만 각각 S[18], S[19], S[20]의 블록의 개수가 채워진다.
그리고 집합 W´는 행들의 중복을 피하기 위해 또 다시 D6를 뺀 집합인 {17}로 업데이트된다. 마찬가지 방법으로 ST의 제 4 행이 채워지며, 제 4 행의 17번째 원소에만 S[17]의 블록의 개수가 채워지고 나머지는 0이 채워진다.
위와 같은 과정에 따라 ST의 초기화가 완료되면, 스케쥴링 방법의 제 9 단계 내지 제 27 단계의 반복문(이하, ‘주 반복문’이라 함)이 시작된다.
i) 주 반복문의 제 1 루프
우선, 초기화된 ST에 따라 Xi가 다음과 같이 결정되고,
X1=425, X2=659, X4=35, X6=81
이어서, 어떤 파일 조각들에 블록들이 과다하게 또는 과소하게 할당되었는지 판단한다. 이때, (r2, r1, r6, r4 )=(540, 300, 240, 120)이므로, X1-r1 〉X2-r2〉0 〉X4-r4 〉X6-r6이다. 따라서, (q1, q2, q3, q4 )=(1, 2, 4, 6)이 되고, 이는 제 1 파일 조각, 제 2 파일 조각, 제 4 파일 조각 및 제 6 파일 조각 순으로 블록들이 과다하게(또는, 역순으로 블록들이 과소하게) 할당되었음을 의미한다. 이때, X1≠r1이므로 스케쥴링 방법의 제 11 단계 내지 제 13 단계의 조건문은 만족하지 않고, 이는 블록들이 과부족되게 할당된 파일 조각들이 존재함을 의미한다. 따라서, 본 발명의 스케쥴링 방법은 계속 진행하고, 제 14 단계의 과정에 의해 t=4, g=X1-r1=125가 설정된다.
a) t=4일 때,
본 발명의 스케쥴링 방법은 대응하는 저장 장치의 속도에 비해 상대적으로 더 많은 블록이 할당된 파일 조각의 블록들을 다른 파일 조각으로 재할당한다. 실시 예로서, 재할당하는 파일 조각은 대응하는 저장 장치의 속도에 비해 상대적으로 블록이 가장 과다하게 할당된 파일 조각(여기서는, 제 1 파일 조각)일 수 있다. 실시 예로서, 재할당받는 파일 조각은 대응하는 저장 장치의 속도에 비해 상대적으로 블록이 가장 과소하게 할당된 파일 조각(여기서는, 제 6 파일 조각)일 수 있다.
재할당을 위해 아래와 같이 인기도 함수를 이용할 수 있다.
위의 인기도 함수의 크기에 따라, (π1, π2, π3)는 각각 (7, 10, 9)로 결정된다. 실시 예로서, 스케쥴링 방법은 인기도 함수가 작은 순서로 블록들을 재할당할 수 있다. 재할당 단계는 스케쥴링 방법의 제 17 단계 내지 제 22 단계의 반복문을 이용하여 수행된다.
먼저, m=1일때, 인기도 함수가 가장 낮은 제 7 열의 블록들(즉, 7 번째 세그먼트의 블록들)을 대상으로 재할당이 수행된다. 이때, X1-r1=125, r6-X6=159, ST(1,7)=71이므로 υ=71이다. 제 1 파일 조각의 7 번째 세그먼트의 블록들이 제 1 파일 조각의 과다 블록 및 제 6 파일 조각의 과소 블록 수보다 적으므로, 제 1 파일 조각의 7 번째 세그먼트의 블록들은 전체가 제 6 파일 조각으로 재할당되고, ST(1,7)=71-71=0, ST(6,7)=0+71=71이 된다. 그리고, 재할당 결과에 따라 X1, X6이 각각 X1=354, X6=152로 바뀐다.
그리고, m=2일때, 인기도 함수가 다음으로 낮은 제 10 열의 블록들(즉, 10 번째 세그먼트의 블록들)을 대상으로 재할당이 수행된다. 이때, X1-r1=54, r6-X6=88, ST(1,10)=61이므로 υ=54이고, 제 1 파일 조각의 10 번째 세그먼트의 블록들은 제 1 파일 조각의 과다 블록의 수보다 더 많다. 따라서, 재할당에 의해 제 1 파일 조각의 블록들이 과소하게 되는 것을 피하기 위해, 제 1 파일 조각의 10 번째 세그먼트의 블록들은 일부만이(예를 들어, 제 1 파일 조각의 과다 블록의 수만큼) 제 6 파일 조각으로 재할당된다. 따라서, ST(1,10)=61-54=7, ST(6,10)=0+54=54와 같이 ST상에서 파일 블록들이 재할당 되고, 재할당 결과에 따라, X1, X6이 각각 X1=300, X6=206로 바뀐다.
다음으로, m=3일때, X1-r1=0이므로 υ=0이다. 따라서, 재할당은 수행되지 않고 ST는 변하지 않는다.
b) t=3일 때,
이때는, 제 1 파일 조각의 과다 블록을 차순위의 과소 파일 조각(제 10 단계에서 두 번째로 과소하게 블록들이 할당된 것으로 판단된 파일 조각, 여기서는 제 4 파일 조각)에 재할당한다. 그러나, X1=r1이므로 제 1 파일 조각은 과다 블록이 존재하지 않고, 제 15 단계의 조건을 만족하지 않는다. 따라서, 제 15 단계 내지 제 23 단계의 반복문(이하,‘부 반복문’이라 함)은 종료된다.
제 24 단계 내지 제 26 단계의 조건문은 주 반복문(제 9 단계 내지 제 27 단계)의 종료 조건을 지정한 것으로서, 부 반복문을 수행하여도 ST가 변화하지 않으면 더 이상의 재할당이 필요하지 않은 것으로 보고 ST 결정을 완료하도록 한 것이다.
한편, 주 반복문의 제 1 루프가 수행된 결과, ST는 도 9와 같이 바뀌게 되고, X1=300, X2=659, X4=35, X6=206이 된다.
그리고, 주 반복문의 제 2 루프가 수행된다.
ii) 주 반복문의 제 2 루프
주 반복문의 제 1 루프에 의해 ST가 변화하고 파일 조각의 블록들이 재할당되었으므로, 스케쥴링 방법은 파일 조각들이 블록들이 과다 또는 과소하게 분포되었는지 여부를 다시 판단한다. 이때, (r2, r1, r6, r4 )=(540, 300, 240, 120)이므로, X2-r2 〉X1-r1 = 0 〉X6-r6 〉X4-r4이다. 따라서, (q1, q2, q3, q4 )=(2, 1, 6, 4)가 된다. 이때, X2≠r2 이므로 스케쥴링 방법의 제 11 단계 내지 제 13 단계의 조건문을 만족하지 않고, 이는 블록들이 과부족되게 할당된 파일 조각들이 존재함을 의미한다. 따라서, 본 발명의 스케쥴링 방법은 계속 진행하고, 제 14 단계의 과정에 의해 t=4, g=X2-r2=119가 설정된다.
a) t=4일 때
제 2 루프에서도 앞서의 제 1 루프와 동일하게, 인기도 함수를 이용하여 블록들의 재할당을 수행한다.
따라서, (π1, π2, π3, π4)=(2, 11, 14, 15)이다.
먼저, m=1일때, X2-r2=119, r4-X4=85, ST(2,2)=96이므로 υ=85이다. 따라서, 재할당될 블록들의 수는 제 4 파일 조각의 과소 블록의 수에 의해 제한되고, 제 2 파일 조각의 2 번째 세그먼트의 블록들은 85개만이 제 4 파일 조각에 재할당된다. 그 결과, ST(2,2)=96-85=11, ST(4,2)=0+85=85가 되고, X2, X4는 각각 X2=574, X4=120로 바뀐다.
그리고, m=2, 3, 4일때, r4-X4=0이 되므로 υ=0이다. 따라서, 따라서, 재할당은 수행되지 않고 ST는 변하지 않는다.
b) t=3일 때,
여기서는, 제 2 파일 조각의 과다 블록들을 차순위 과소 파일 조각(여기서는, 제 6 파일 조각)으로 재할당한다. 유사하게, 인기도 함수를 구하면 아래와 같다.
따라서, (π1, π2, π3, π4)=(4, 13, 15, 16)이다.
먼저, m=1일때, X2-r2=34, r6-X6=34, ST(2,4)=88이므로 υ=34이다. 따라서, 재할당될 블록들의 수는 제 2 파일 조각의 과다 블록의 수 또는 제 6 파일 조각의 과소 블록의 수에 의해 제한되고, 제 2 파일 조각의 4 번째 세그먼트의 블록들은 34개만이 제 6 파일 조각에 재할당된다. 그 결과, ST(2,4)=88-34=54, ST(6,4)=0+34=34가 되고, X2, X6은 각각 X2=540, X6=240이 된다.
그리고, m=2, 3, 4일때, X2-r2=r6-X6=0이 되므로 υ=0이다. 따라서, 재할당은 수행되지 않고 ST는 변하지 않는다.
제 2 루프의 부 반복문에 의해 재할당이 ST가 변화하였으므로, 제 24 단계의 조건을 만족하지 않는다. 따라서, 제 24 단계 내지 제 26 단계의 조건문은 통과된다.
한편, 주 반복문의 제 2 루프가 수행된 결과, ST는 도 10과 같이 바뀌게 되고, X1=300, X2=540, X4=120, X6=240이 된다.
그리고, 주 반복문의 제 3 루프가 수행된다.
iii) 주 반복문의 제 3 루프
마찬가지로, 스케쥴링 방법은 파일 조각들이 블록들이 과다 또는 과소하게 분포되었는지 여부를 다시 판단한다.
이때, (r2, r1, r6, r4 )=(540, 300, 240, 120)이므로, X1-r1 = X2-r2 = X4-r4 = X6-r6이다. 이때, X1=r1 이므로 제 11 단계의 조건이 충족되고, 이는 블록들의 과부족 할당 상태가 해소되었음을 의미한다. 따라서, 제 11 단계 내지 제 13 단계의 조건문이 수행되어, ST를 출력하고 주 반복문을 종료한다.
상기와 같은 본 발명의 구성에 따르면, 파일 관리 장치(1100)는 저장 장치와의 통신 속도를 고려하여 수신할 파일 조각들을 스케쥴링한다. 그리고, 스케쥴링한 결과에 따라 파일 조각들을 수신하여 원본 파일을 복원한다. 그 결과, 통신 속도가 빠른 저장 장치로부터 더 많은 블록(또는, 더 큰 파일 조각)을 수신하므로, 파일 관리 장치(1100)가 원본 파일을 복원하는 데 걸리는 시간이 최소화될 수 있다.
또한, 파일 관리 장치(1100)는 저장 장치들로부터 수신하는 파일 조각들이 서로 중복되는 블록을 포함하지 않도록 수신할 파일 조각들을 스케쥴링한다. 따라서, 파일 관리 장치(1100)가 원본 파일을 복원하는데 사용되는 통신량이 최소화될 수 있다.
도 11은 본 발명의 실시 예에 따른, 파일 관리 방법을 나타내는 순서도이다. 도 11을 참조하면, 파일 관리 방법은 S110 단계 내지 S130 단계를 포함한다.
S110 단계에서, 파일 관리 장치(1100)는 파일 관리 장치(1100)와 저장 장치들 사이의 통신 속도를 측정한다. 실시 예로서, 통신 속도를 측정하는 대신, 파일 관리 장치(1100)는 미리 측정된 통신 속도를 저장 장치들 또는 다른 저장 매체로부터 제공받을 수 있다.
S120 단계에서, 파일 관리 장치(1100)는 파일 관리 장치(1100)와 저장 장치들 사이의 통신 속도에 따라, 파일 관리 장치(1100)가 어떤 저장 장치로부터 어떤 세그먼트의 블록들을 받아올지 여부를 결정한다. 구체적으로, 파일 관리 장치(1100)는 측정된 또는 제공된 통신 속도를 참조하여, 각 저장 장치로부터 수신할 파일 조각들을 스케쥴링한다. 스케쥴링된 파일 조각들 각각은 대응하는 저장 장치에 저장된 원본 파일의 파일 조각 중 적어도 일부를 포함한다. 이때, 파일 조각들은 대응하는 저장 장치의 통신 속도에 비례하여 더 많은 블록들을 포함하도록(또는, 더 큰 파일 크기를 갖도록) 스케쥴링된다. 또한, 파일 조각들은 서로 중복되는 블록을 포함하지 않도록 스케쥴링된다.
파일 관리 장치(1100)가 위와 같은 구성을 갖도록 파일 조각들을 스케쥴링하는 구체적인 방법은 도 4 내지 도 10과 관련하여 자세히 설명되었으므로, 여기서는 그에 대한 설명은 생략한다.
S130 단계에서, 파일 관리 장치(1100)는 스케쥴링된 결과에 따라, 각 저장 장치들로부터 파일 조각들을 수신한다. 이때, 각각의 파일 조각들은 원본 파일의 블록들 중 적어도 일부를 포함하며, 하나의 파일 조각에 포함된 블록들은 원본 파일의 특정 세그먼트의 전부 또는 일부를 구성할 수 있다.
실시 예로서, 각 파일 조각은 자신이 포함하는 적어도 일부의 세그먼트들의 주소 또는 크기 정보를 포함할 수 있다.
이어서, 파일 관리 장치(1100)는 수신한 파일 조각들로부터 원본 파일을 복원한다. 이때, 파일 관리 장치(1100)가 원본 파일을 복원하는 순서는 원본 파일을 파일 조각들로 분산하는 순서의 역순일 수 있다.
예를 들어, 파일 관리 장치(1100)는 세그먼트들의 주소 정보 또는 크기 정보를 참조하여 수신한 파일 조각들을 세그먼트 단위로 분리한다. 그리고, 파일 관리 장치(1100)는 분리된 세그먼트 또는 세그먼트 조각들을 순서대로 정렬하여 재배열된 파일(F˝)을 복원한다. 이어서, 파일 관리 장치(1100)는 재배열키(e)를 이용한 재배열 방법을 통해 재배열된 파일(F˝)로부터 수정 파일(F´)을 복원한다. 이때, 재배열 방법은 재배열된 파일(F˝)을 블록 단위로 재배열하여 수정 파일(F´)을 복원할 수 있다. 여기서 사용된 재배열 방법은 당해 기술 분야에 널리 알려진 랜덤화 방법을 이용할 수 있다. 한편, 세그먼트 조각들을 순서대로 정렬하여 얻은 파일(F˝)이 재배열되지 않은 파일이라면, 정렬하여 얻은 파일(F˝)이 수정 파일(F´)이므로, 재배열키(e)를 이용한 재배열은 생략될 수 있다.
도 12는 본 발명의 실시 예에 따른, 파일 관리 장치가 스케쥴링 테이블(ST)을 참조하여 저장 장치들로부터 파일 조각들을 전송받아 원본 파일을 복원하는 방법을 나타내는 개념도이다.
도 12를 참조하면, 파일 관리 장치(3100)는 원본 파일을 복원하기 위해 ST(Scheduling Table, 300)를 참조하여, 4개의 저장 장치들로부터 수신할 파일 조각들(211, 221, 223)을 결정(또는 스케쥴링)한다. 이때, ST(300)는 각 파일 조각들(211, 221, 223)이 서로 중복되는 블록을 포함하지 않도록, 그리고 각 파일 조각들(211, 221, 223)이 포함하는 블록들의 수가 대응하는 저장 장치의 통신 속도에 비례하도록 결정된다.
실시 예로서, ST(300)의 제 i 행은 제 i 파일 조각의 세그먼트 구성(또는 블록 구성)을 나타낸다. 예를 들어, ST(300)의 제 1 행이 (800, 800, 550, 0, 0, 0)이면, 제 1 파일 조각(211)이 제 1 세그먼트(a) 중 800개의 블록, 제 2 세그먼트트(b) 중 800개의 블록, 및 제 3 세그먼트(c) 중 550개의 블록을 포함함을 나타낸다. 이에 따르면, 제 1 파일 조각(211)은 제 1 세그먼트(a) 및 제 3 세그먼트(c)의 일부 블록들(a´, c´)을 포함하고, 제 2 세그먼트(b)의 모든 블록들(b)을 포함하는 반면에, 제 4 내지 제 6 세그먼트(d, e, f)의 블록들은 전혀 포함하지 않는다.
이와 같이 결정된 파일 조각들(211, 221, 223)에는 원본 파일(200)의 모든 세그먼트들 및 모든 블록들이 포함되므로, 파일 관리 장치(3100)는 파일 조각들(211, 221, 231)을 수신하여 원본 파일을 온전히 복원해 낼 수 있다. 또한, 각 파일 조각들(211, 221, 231)은 서로 중복되는 블록을 포함하지 않으므로, 원본 파일의 복원에 사용되는 통신량이 최소화될 수 있다. 또한, 각 파일 조각들(211, 221, 231)의 크기(또는, 각 파일 조각들에 포함된 블록들의 수)는 대응하는 저장 장치의 통신 속도에 비례하므로, 원본 파일을 복원하는데 소요되는 시간이 최소화될 수 있다.
본 발명의 상세한 설명에서는 구체적인 실시 예를 들어 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한 각 실시 예는 여러 가지 형태로 변형될 수 있다.
또한, 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허 청구범위뿐만 아니라 이 발명의 특허 청구범위와 균등한 것들에 의해 정해져야 한다.
본 발명의 실시예들은 클라우드(cloud) 등의 데이터 공유 시스템, 분산 저장 장치, 홈 네트워크, 클라우드 저장장치 등에 적용될 수 있다.
Claims (21)
- 복수의 저장 장치들 중 파일 조각을 수신할 저장 장치들을 선택하는 단계;파일 관리 장치와 상기 선택된 저장 장치들 사이의 통신 속도들에 따라, 상기 선택된 저장 장치들로부터 수신할 파일 조각들을 나타내는 스케쥴링 정보를 결정하는 단계;상기 결정된 스케쥴링 정보를 참조하여, 상기 선택된 저장 장치들 각각으로부터 파일 조각들을 수신하는 단계; 및상기 수신된 파일 조각들로부터 복원 파일을 생성하는 단계를 포함하되,상기 복원 파일은 nCk-1개의 세그먼트들로 구성되고,상기 복수의 저장 장치들 각각은 상기 nCk-1개의 세그먼트들 중 적어도 일부의 세그먼트들을 세그먼트 단위로 저장하고,상기 수신된 파일 조각들 각각은 상기 복수의 저장 장치들 중 대응하는 저장 장치에 저장된 상기 적어도 일부의 세그먼트들을 전부 또는 부분적으로 포함하고,상기 n은 상기 복수의 저장 장치들의 개수이고,상기 k는 선택된 저장 장치들의 개수인, 파일 관리 방법.
- 제 1 항에 있어서,상기 복수의 저장 장치들 각각은 상기 nCk-1개의 세그먼트들 중 n-1Ck-1개의 세그먼트들을 각각 포함하는, 파일 관리 방법.
- 제 1 항에 있어서,상기 수신된 파일 조각들은 상기 복원 파일을 구성하는 상기 nCk-1개의 세그먼트들을 모두 포함하는, 파일 관리 방법.
- 제 1 항에 있어서,상기 수신된 파일 조각들 각각은 서로 중복되는 블록을 포함하지 않는, 파일 관리 방법.
- 제 1 항에 있어서,상기 스케쥴링 정보를 결정하는 단계는,상기 통신 속도들을 참조하여, 상기 nCk-1개의 세그먼트들의 할당을 위한 상기 수신할 파일들의 우선 순위를 결정하는 단계; 및상기 결정된 우선 순위에 따라, 상기 nCk-1개의 세그먼트들 각각을 상기 수신할 파일 조각들에 배타적으로 할당하는 단계를 포함하는, 파일 관리 방법.
- 제 5 항에 있어서,상기 스케쥴링 정보를 결정하는 단계는,상기 수신할 파일 조각들 중, 각각의 파일 조각에 할당된 블록들의 개수의 비율을 상기 통신 속도들의 비율에 기초하여 결정하는 단계를 포함하는, 파일 관리 방법.
- 제 6 항에 있어서,상기 수신할 파일 조각들 중, 각각의 파일 조각에 할당된 블록들의 개수의 비율을 상기 통신 속도들의 비율에 기초하여 결정하는 단계는,상기 수신할 파일 조각들 중 적어도 하나의 파일 조각에 대해서, 상기 하나의 파일 조각에 할당된 블록들의 개수가 상기 하나의 파일 조각과 대응하는 통신 속도에 비해 과다인지 또는 과소인지 결정하는 단계; 및상기 과다인지 또는 과소인지 결정한 결과에 따라, 상기 수신할 파일 조각들에 포함된 블록들 중 적어도 일부를 재할당하는 단계를 더 포함하는, 파일 관리 방법.
- 제 7 항에 있어서,상기 적어도 일부를 재할당하는 단계는,상기 하나의 파일 조각에 할당된 블록들의 개수가 상기 하나의 파일 조각과 대응하는 통신 속도에 비해 과다이면, 상기 하나의 파일 조각에 포함된 블록들의 적어도 일부를 상기 수신할 파일 조각들 중 다른 파일 조각에 재할당하는 단계를 포함하는, 파일 관리 방법.
- 제 7 항에 있어서,상기 적어도 일부를 재할당하는 단계는,상기 하나의 파일 조각에 할당된 블록들의 개수가 상기 하나의 파일 조각과 대응하는 통신 속도에 비해 과소이면, 상기 수신할 파일 조각들 중 다른 파일 조각에 포함된 블록들의 적어도 일부를 상기 하나의 파일 조각에 재할당하는 단계를 포함하는, 파일 관리 방법.
- 제 7 항에 있어서,상기 적어도 일부를 재할당하는 단계는,상기 수신할 파일 조각들에 포함된 세그먼트들이 상기 수신할 파일 조각들 중 얼마나 많은 파일 조각들에 공통적으로 저장되어 있는지를 나타내는 인기도 함수를 참조하여, 상기 수신할 파일 조각들에 포함된 블록들 중 적어도 일부를 재할당하는, 파일 관리 방법.
- 제 10 항에 있어서,상기 w는 상기 수신할 파일 조각들에 포함된 상기 세그먼트들의 번호를 나타내는 값이고, 상기 pj는 상기 수신할 파일 조각들을 제공하는 저장 장치들의 번호를 나타내는 값이고,상기 rpj는 상기 선택된 저장 장치들의 통신 속도에 비례하도록 상기 수신할 파일 조각에 포함된 블록들의 전체 개수를 나눈 값들 중 pj번째 저장 장치에 대응되는 값이고,상기 Xpj는 상기 수신할 파일 조각들 중 상기 pj번째 저장 장치로부터 수신할 파일 조각에 할당된 블록들의 개수이고,상기 Spj는 상기 pj번째 저장 장치에 대응되는 파일 조각을 구성하는 세그먼트들을 지시하는 번호들의 집합인, 파일 관리 방법.
- 제 7 항에 있어서,상기 적어도 일부를 재할당하는 단계는,상기 수신할 파일 조각들 각각이 상기 통신 속도들 중 대응되는 통신 속도가 빠를수록 더 많은 수의 블록들을 포함하도록, 상기 수신할 파일 조각들에 포함된 블록들 중 적어도 일부를 재할당하는, 파일 관리 방법.
- 제 1 항에 있어서,상기 복원 파일은, 상기 선택된 저장 장치들의 개수가 소정의 수 이상일 때만 성공적으로 생성되는, 파일 관리 방법.
- 복수의 저장 장치들로부터 파일 조각들을 수신하는 파일 관리 장치에 있어서, 상기 복수의 저장 장치들 중 선택된 저장 장치들과 상기 파일 관리 장치 사이의 통신 속도들에 따라, 상기 선택된 저장 장치들로부터 수신할 파일 조각들을 나타내는 스케쥴링 정보를 결정하는 스케쥴러;상기 선택된 저장 장치들과의 통신을 수행하거나 상기 선택된 저장 장치들과의 통신을 위한 인터페이스를 제공하는 통신부; 및상기 스케쥴링 정보를 참조하여 상기 통신부를 통해 상기 선택된 저장 장치들 각각으로부터 파일 조각들을 수신하고, 상기 수신된 파일 조각들로부터 복원 파일을 생성하도록 상기 파일 관리 장치를 제어하는 컨트롤러를 포함하되,상기 복원 파일은 nCk-1개의 세그먼트들로 구성되고,상기 복수의 저장 장치들 각각은 상기 nCk-1개의 세그먼트들 중 n-1Ck-1개의 세그먼트들을 세그먼트 단위로 저장하고,상기 수신된 파일 조각들 각각은 상기 복수의 저장 장치들 중 대응하는 저장 장치에 저장된 상기 적어도 일부의 세그먼트들을 전부 또는 부분적으로 포함하고,상기 n은 상기 복수의 저장 장치들의 개수이고,상기 k는 선택된 저장 장치들의 개수인, 파일 관리 장치.
- 제 14 항에 있어서,상기 컨트롤러는 상기 선택된 저장 장치들을 상기 복수의 저장 장치들 중에서 선택하는, 파일 관리 장치.
- 제 14 항에 있어서,상기 스케쥴러는, 상기 통신 속도들을 참조하여 상기 nCk-1개의 세그먼트들의 할당을 위한 상기 수신할 파일들의 우선 순위를 결정하고, 상기 결정된 우선 순위에 따라 상기 nCk-1개의 세그먼트들 각각을 상기 수신할 파일 조각들에 배타적으로 할당하는, 파일 관리 장치.
- 제 16 항에 있어서,상기 스케쥴러는, 상기 수신할 파일 조각들 중 적어도 하나의 파일 조각에 대해서, 상기 하나의 파일 조각에 할당된 블록들의 개수가 상기 하나의 파일 조각과 대응하는 통신 속도에 비해 과다인지 또는 과소인지 결정하고, 상기 과다인지 또는 과소인지 결정한 결과에 따라 상기 수신할 파일 조각들에 포함된 블록들 중 적어도 일부를 재할당하는, 파일 관리 장치.
- 제 17 항에 있어서,상기 스케쥴러는, 상기 수신할 파일 조각들에 포함된 세그먼트들이 상기 수신할 파일 조각들 중 얼마나 많은 파일 조각들에 공통적으로 저장되어 있는지를 나타내는 인기도 함수를 참조하여, 상기 수신할 파일 조각들에 포함된 블록들 중 적어도 일부를 재할당하는, 파일 관리 장치.
- 제 17 항에 있어서,상기 스케쥴러는, 상기 수신할 파일 조각들 각각이 상기 통신 속도들 중 대응되는 통신 속도가 빠를수록 더 많은 수의 블록들을 포함하도록, 상기 수신할 파일 조각들에 포함된 블록들 중 적어도 일부를 재할당하는, 파일 관리 장치.
- 제 14 항에 있어서,상기 복원 파일은, 상기 선택된 저장 장치들의 개수가 소정의 수 이상일 때만 성공적으로 생성되는, 파일 관리 장치.
- 복수의 저장 장치들 중 파일 조각을 수신할 저장 장치들을 선택하는 단계, 파일 관리 장치와 상기 선택된 저장 장치들 사이의 통신 속도들에 따라, 상기 선택된 저장 장치들로부터 수신할 파일 조각들을 나타내는 스케쥴링 정보를 결정하는 단계, 상기 결정된 스케쥴링 정보를 참조하여, 상기 선택된 저장 장치들 각각으로부터 파일 조각들을 수신하는 단계 및 상기 수신된 파일 조각들로부터 복원 파일을 생성하는 단계를 포함하되, 상기 복원 파일은 nCk-1개의 세그먼트들로 구성되고, 상기 복수의 저장 장치들 각각은 상기 nCk-1개의 세그먼트들 중 적어도 일부의 세그먼트들을 세그먼트 단위로 저장하고, 상기 수신된 파일 조각들 각각은 상기 복수의 저장 장치들 중 대응하는 저장 장치에 저장된 상기 적어도 일부의 세그먼트들을 전부 또는 부분적으로 포함하고,상기 n은 상기 복수의 저장 장치들의 개수이고, 상기 k는 선택된 저장 장치들의 개수인, 파일 관리 방법을 실행하기 위한 컴퓨터 프로그램을 기록하는 컴퓨터 판독 가능한 기록 매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/KR2014/011151 WO2016080569A1 (ko) | 2014-11-19 | 2014-11-19 | 일정 수 이상의 파일 조각으로 원본 파일을 복원하는 파일 관리 장치 및 그것의 파일 관리 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/KR2014/011151 WO2016080569A1 (ko) | 2014-11-19 | 2014-11-19 | 일정 수 이상의 파일 조각으로 원본 파일을 복원하는 파일 관리 장치 및 그것의 파일 관리 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2016080569A1 true WO2016080569A1 (ko) | 2016-05-26 |
Family
ID=56014096
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2014/011151 WO2016080569A1 (ko) | 2014-11-19 | 2014-11-19 | 일정 수 이상의 파일 조각으로 원본 파일을 복원하는 파일 관리 장치 및 그것의 파일 관리 방법 |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2016080569A1 (ko) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030084020A1 (en) * | 2000-12-22 | 2003-05-01 | Li Shu | Distributed fault tolerant and secure storage |
WO2007138166A1 (en) * | 2006-05-29 | 2007-12-06 | Teliasonera Ab | File archives in distributed file system architecture |
US20100199123A1 (en) * | 2009-02-03 | 2010-08-05 | Bittorrent, Inc. | Distributed Storage of Recoverable Data |
KR20120111403A (ko) * | 2011-03-31 | 2012-10-10 | 주식회사 케이티 | 클라우드 스토리지 시스템에서 리소스를 고려한 자료분배방법 및 장치 |
KR20140128685A (ko) * | 2013-04-29 | 2014-11-06 | 서울대학교산학협력단 | 일정 수 이상의 파일 조각으로 원본 파일을 복구하는 파일 관리 장치 및 방법 |
-
2014
- 2014-11-19 WO PCT/KR2014/011151 patent/WO2016080569A1/ko active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030084020A1 (en) * | 2000-12-22 | 2003-05-01 | Li Shu | Distributed fault tolerant and secure storage |
WO2007138166A1 (en) * | 2006-05-29 | 2007-12-06 | Teliasonera Ab | File archives in distributed file system architecture |
US20100199123A1 (en) * | 2009-02-03 | 2010-08-05 | Bittorrent, Inc. | Distributed Storage of Recoverable Data |
KR20120111403A (ko) * | 2011-03-31 | 2012-10-10 | 주식회사 케이티 | 클라우드 스토리지 시스템에서 리소스를 고려한 자료분배방법 및 장치 |
KR20140128685A (ko) * | 2013-04-29 | 2014-11-06 | 서울대학교산학협력단 | 일정 수 이상의 파일 조각으로 원본 파일을 복구하는 파일 관리 장치 및 방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020235797A1 (en) | Apparatus for processing modular multiply operation and methods thereof | |
WO2020145503A1 (en) | Apparatus for processing approximately encrypted messages and methods thereof | |
WO2017003243A1 (ko) | 랜덤하면서 유일한 코드를 생성하는 전자 장치 및 그 제어 방법 | |
WO2016171401A1 (ko) | 공동 편집 문서를 공유하는 방법 및 장치 | |
WO2016023148A1 (zh) | 报文的控制方法、交换机及控制器 | |
WO2018082484A1 (zh) | 一种电子设备的截屏方法、系统及电子设备 | |
EP2972966A1 (en) | Computing system with task transfer mechanism and method of operation thereof | |
WO2019168315A1 (en) | Trustzone graphic rendering method and display device using the same | |
WO2016036048A1 (en) | Method and device for data encrypting | |
WO2016056856A1 (ko) | 무결성 검증 데이터 생성 방법 및 시스템 | |
EP3909193A1 (en) | Apparatus for processing approximately encrypted messages and methods thereof | |
WO2019205272A1 (zh) | 虚拟机服务提供方法、装置、设备及计算机可读存储介质 | |
WO2018166098A1 (zh) | 数据稽核方法、装置、移动终端及计算机可读存储介质 | |
WO2021080385A1 (en) | Computing device and operating method thereof | |
WO2017084301A1 (zh) | 音频数据播放方法、装置及智能电视机 | |
WO2022265262A1 (ko) | 빅데이터 기반의 인공지능 학습용 데이터 추출 방법 및 이를 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램 | |
WO2018076872A1 (zh) | 数据备份方法、装置、存储介质及服务器 | |
WO2017219636A1 (zh) | 数据交互方法、云端服务器以及智能终端 | |
WO2020222347A1 (ko) | 가상 머신 배치 방법 및 이를 구현하는 가상 머신 배치 장치 | |
WO2016080569A1 (ko) | 일정 수 이상의 파일 조각으로 원본 파일을 복원하는 파일 관리 장치 및 그것의 파일 관리 방법 | |
WO2020091194A1 (ko) | 클라우드 기반의 버추얼 스마트폰 시스템 | |
WO2017035785A1 (zh) | 一种内存泄漏的定位方法和装置 | |
WO2021085714A1 (ko) | 블록체인 관리 시스템 및 그 방법 | |
WO2018010157A1 (zh) | Ip地址自动分配方法及装置 | |
WO2016006783A1 (ko) | P2p를 이용한 하이브리드 스토리지 시스템 및 이를 이용한 데이터 전송 방법 |
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: 14906373 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: 14906373 Country of ref document: EP Kind code of ref document: A1 |