WO2017069338A1 - 데이터 중복 제거의 딕셔너리 동기화 방법 - Google Patents

데이터 중복 제거의 딕셔너리 동기화 방법 Download PDF

Info

Publication number
WO2017069338A1
WO2017069338A1 PCT/KR2015/014163 KR2015014163W WO2017069338A1 WO 2017069338 A1 WO2017069338 A1 WO 2017069338A1 KR 2015014163 W KR2015014163 W KR 2015014163W WO 2017069338 A1 WO2017069338 A1 WO 2017069338A1
Authority
WO
WIPO (PCT)
Prior art keywords
dictionary
entry information
new chunk
server
flag value
Prior art date
Application number
PCT/KR2015/014163
Other languages
English (en)
French (fr)
Inventor
성기운
이규상
이재석
Original Assignee
삼성에스디에스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성에스디에스 주식회사 filed Critical 삼성에스디에스 주식회사
Publication of WO2017069338A1 publication Critical patent/WO2017069338A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • G06F16/1752De-duplication implemented within the file system, e.g. based on file segments based on file chunks
    • 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/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/162Delete operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • G06F40/242Dictionaries
    • 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/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]

Definitions

  • the present invention relates to a dictionary synchronization method of data deduplication, and more particularly, after receiving an entry information registration signal from a receiving proxy server, updating a dictionary on the sending side can prevent a situation of dictionary information inconsistency.
  • the present invention relates to a dictionary synchronization method of data deduplication.
  • Deduplication is a technology that not only improves the efficiency of storage utilization by detecting overlapping parts between different data and removes duplicate parts, but also reduces the traffic generated during data transmission. do.
  • 1 and 2 are diagrams for explaining a problem occurring when a data transmission and reception method and dictionary information through data deduplication are not synchronized.
  • first chunk files 11 to fifth chunk files 15 and entry information of each chunk file for example, a hash value of each chunk file may be previously stored. have.
  • the second proxy server 10 may prestore the first chunk file 11 to the third chunk file 13, the sixth chunk file 16 file, and a hash value of each chunk file.
  • the first proxy server 10 transmits the first data 30 to the second proxy server 20
  • the data itself is not transmitted but each hash value corresponding to the first data 30. Is transmitted to the second proxy server 20.
  • the second proxy server 20 may retrieve the chunk file corresponding to each hash value and recover the original data. In other words, it is possible to achieve the effect that the transmission traffic can be reduced by transmitting only the hash value having a smaller capacity than the data itself.
  • the dictionary information for the fifth chunk file 15 is not synchronized.
  • the second proxy server 20 which has received data in the form of hash values of the first chunk file 11 and the fifth chunk file cannot recover the second data 40 which is the original data.
  • the first proxy server 10 registers entry information about the first new chunk file in the dictionary (S21).
  • the entry information may be a hash value of the newly generated first new chunk file.
  • the first proxy server 10 that has registered the entry information of the first new chunk file in the dictionary transmits the information about the first new chunk file to the second proxy server 20 (S22).
  • the second proxy server 20 Upon receiving the information about the first new chunk file, the second proxy server 20 stores the information in the dictionary (S23).
  • the first proxy server 10 stores the entry information of the second new file in the dictionary (S24) and transmits it to the second proxy server 20 (S25). .
  • the information about the second new chunk file is registered only in the dictionary of the first proxy server 10 and the second proxy server 20 If not registered occurs (S26).
  • the second proxy server 20 that has received the hash value for the second new chunk file does not store the hash value of the second new file, it cannot recover the original data including the second new chunk file. do.
  • the present invention has been made to achieve the above object, and an object of the present invention is to provide a dictionary synchronization method capable of preventing inconsistency of dictionary information between a sending server and a receiving server.
  • a method for synchronizing a dictionary between a transmitting server and a receiving server wherein the transmitting information comprises: entry information of a new chunk file and a flag value indicating whether the entry information is valid; Registering in the dictionary of the server, storing the entry information of the new chunk file in the temporary dictionary of the sending server, transmitting the entry information of the new chunk file to the receiving server and the dictionary of the receiving server And upon receiving a confirmation signal that entry information of a new chunk file is registered, deleting entry information of the new chunk file stored in the temporary dictionary.
  • the registering of the flag value indicating whether the entry information is valid in the dictionary of the transmission server may include: transmitting the flag value such that the flag value has a value indicating that the entry information is valid. And registering with the dictionary of the server.
  • the confirmation signal if the confirmation signal is not received, maintaining the entry information of the new chunk file in the temporary dictionary, and changing the flag value to have a value indicating that the entry information is invalid. It may further include.
  • the method may further include retransmitting entry information of the new chunk file stored in the temporary dictionary to the receiving server.
  • a method for synchronizing a dictionary between a sending server and a receiving server includes registering entry information of a new chunk file and a flag value indicating whether the entry information is valid in the dictionary of the sending server. And transmitting the entry information of the new chunk file to the receiving server and changing the flag value when a confirmation signal that entry information of the new chunk file is registered in the dictionary of the receiving server is received. .
  • registering the flag value in the dictionary of the sending server includes registering the flag value in the dictionary of the sending server such that the flag value has a value indicating that the entry information is invalid. can do.
  • the changing of the flag value may include changing the flag value such that the flag value has a value indicating that the entry information is valid.
  • registering the entry information of the new chunk file and a flag value indicating whether the entry information is valid in the dictionary of the transmission server may include: registering a new chunk file in a group including a plurality of new chunk files; The method may further include registering a lot number, which is an assigned identifier, in a dictionary of the transmission server.
  • the changing of the flag value may include: acknowledging that a plurality of new chunk files assigned the same lot number are registered in the dictionary of the receiving server, and corresponding to the lot number. And changing a flag value of the new chunk files.
  • a method for synchronizing a dictionary between a sending server and a receiving server includes registering entry information of a new chunk file and a flag value indicating whether the entry information is valid in the dictionary of the sending server. Transmitting the entry information of the new chunk file to the receiving server, receiving a confirmation signal that the entry information of the new chunk file is registered in the dictionary of the receiving server, and ending the communication session with the receiving server. And if the confirmation signal is received, changing a flag value of a new chunk file.
  • registering the flag value in the dictionary of the sending server includes registering the flag value in the dictionary of the sending server such that the flag value has a value indicating that the entry information is invalid. can do.
  • the changing of the flag value may include changing the flag value such that the flag value has a value indicating that the entry information is valid.
  • registering the entry information of the new chunk file and a flag value indicating whether the entry information is valid in the dictionary of the transmission server may include: registering a new chunk file in a group including a plurality of new chunk files; The method may further include registering a lot number, which is an assigned identifier, in a dictionary of the transmission server.
  • the changing of the flag value may include: acknowledging that a plurality of new chunk files assigned the same lot number are registered in the dictionary of the receiving server, and corresponding to the lot number. And changing a flag value of the new chunk files.
  • entry information of a new chunk file and a flag value indicating whether the entry information is valid are stored in a temporary dictionary of the sending server. And transmitting the entry information of the new chunk file to the receiving server.
  • the flag value stored in the temporary dictionary is received. Modifying and registering entry information of the new chunk file whose flag value is changed in a dictionary of the transmitting server when the communication session with the receiving server is terminated.
  • changing the flag value stored in the temporary dictionary may include changing the flag value such that the flag value has a value indicating that the entry information is valid.
  • a server includes storage for storing one or more processors, a memory for loading a computer program executed by the processor, and a computer program for dictionary synchronization, wherein the computer program is new.
  • An operation of registering entry information of the chunk file and a flag value indicating whether the entry information is valid in the dictionary of the sending server, an operation of storing the entry information of the new chunk file in a temporary dictionary of the sending server, the new Upon receiving an operation for transmitting the entry information of the chunk file to the receiving server and confirming that the entry information of the new chunk file is registered in the dictionary of the receiving server, the entry information of the new chunk file stored in the temporary dictionary is deleted. Offer It includes calibration.
  • a server includes a storage for storing one or more processors, a memory for loading a computer program executed by the processor, and a computer program for synchronizing a dictionary.
  • a server includes a storage for storing one or more processors, a memory for loading a computer program executed by the processor, and a computer program for dictionary synchronization, wherein the computer program includes: An operation of registering entry information of a new chunk file and a flag value indicating whether the entry information is valid in a dictionary of the sending server, an operation of transmitting entry information of the new chunk file to the receiving server, and an operation of the receiving server. And receiving an acknowledgment signal indicating that entry information of the new chunk file has been registered in the dictionary and changing the flag value of the new chunk file in which the acknowledgment signal is received when the communication session with the receiving server is terminated.
  • a server includes a storage for storing one or more processors, a memory for loading a computer program executed by the processor, and a computer program for dictionary synchronization, wherein the computer program includes: An operation of storing entry information of a new chunk file and a flag value indicating whether the entry information is valid in a temporary dictionary of the sending server, an operation of transmitting entry information of the new chunk file to the receiving server, the receiving server Upon receipt of a confirmation signal that entry information of the new chunk file has been registered in the dictionary of, the operation of changing the flag value stored in the temporary dictionary and ending the communication session with the receiving server, the new value whose flag value is changed.
  • Entities in Chunk File The information includes the operation to be registered in the dictionary of the transmission server.
  • the dictionary synchronization method since the dictionary is managed by receiving a confirmation signal that entry information is normally registered, a dictionary information occurs between a transmitting and receiving server, and thus an error occurs in data transmission. It is possible to achieve the effect that can be prevented in advance.
  • 1 and 2 are diagrams for explaining a problem occurring when a data transmission and reception method and dictionary information through data deduplication are not synchronized.
  • FIG. 3 is a flowchart illustrating a method of synchronizing a dictionary according to the first embodiment.
  • FIG. 4 is a flowchart for explaining a case in which a confirmation signal is not received in the first embodiment.
  • FIG. 5 is a flowchart for explaining a method of synchronizing a dictionary according to a second embodiment.
  • FIG. 6 is a flowchart illustrating a method of synchronizing a dictionary by receiving confirmation signals for a plurality of chunk files in the second embodiment.
  • FIG. 7 is a flowchart for explaining a method of synchronizing a dictionary according to a third embodiment.
  • FIG. 8 is a flowchart for explaining a method of synchronizing a dictionary by receiving confirmation signals for a plurality of chunk files in a third embodiment.
  • FIG. 9 is a flowchart for explaining a method of synchronizing a dictionary according to a fourth embodiment.
  • FIG. 10 is a functional block diagram illustrating a server 1000 according to an embodiment of the present invention.
  • the entry information may include a chunk file and a hash value of the chunk file.
  • the entry information can be used to identify which chunk file corresponds to the chunk file.
  • Dictionary means a set of entry information.
  • entry information for a plurality of chunk files must be pre-stored in a transmitting / receiving server, and a set of entry information for the plurality of chunk files is a dictionary.
  • FIG. 3 is a flowchart illustrating a method of synchronizing a dictionary according to the first embodiment.
  • the transmitting server 300 and the receiving server 400 may be a proxy server, but the present invention is not limited thereto and may be implemented as a general server capable of transmitting and receiving data through data deduplication.
  • the transmission server 300 registers entry information of the new chunk file in the dictionary with a flag value (S310).
  • the transmission server 300 stores entry information of the new chunk file in the temporary dictionary (S320).
  • the temporary dictionary may be stored in a temporary recording medium such as a buffer or a memory.
  • the transmission server 300 transmits a new chunk file to the reception server 400 (S330).
  • the reception server 400 receiving the new chunk file registers the entry information of the new chunk file in the dictionary with the flag value in the same manner as the transmission server 300 (S340).
  • the transmission server 300 Upon receiving the confirmation signal S360, the transmission server 300 determines that the entry information of the new chunk file is normally registered in the reception server 400, and deletes the entry information of the new chunk file from the temporary dictionary (S360).
  • the communication with the receiving server 400 may be terminated without receiving a confirmation signal indicating that the entry information of the new chunk file is normally registered from the receiving server 400.
  • FIG. 4 is a flowchart for explaining a case in which a confirmation signal is not received in the first embodiment.
  • the transmitting server 300 transmits the new chunk file to the receiving server 400
  • the communication is terminated without receiving a confirmation signal that the entry information of the new chunk file is normally registered from the receiving server 400. It may be (S440).
  • the transmitting server 300 can confirm that the entry information of the chunk file whose flag value is false is not registered in the receiving server 400. Therefore, when the chunk file is transmitted to the receiving server 400, the hash value is changed. Rather than the file itself.
  • the temporary dictionary since the temporary dictionary stores entry information of a chunk file that is not normally registered in the receiving server 400, it may later retransmit the entry information stored in the temporary dictionary to the receiving server 400 to synchronize the dictionary.
  • the dictionary since the dictionary is managed by receiving a confirmation signal that the entry information of the new chunk file is normally registered from the receiving server 400, the dictionary information may be inconsistent between the transmitting and receiving servers, thereby causing an error in data transmission. The effect of being prevented in advance can be achieved.
  • FIG. 5 is a flowchart for explaining a method of synchronizing a dictionary according to a second embodiment.
  • the transmission server 300 transmits the new chunk file to the reception server 400 (S520).
  • the receiving server 400 receiving the new chunk file registers the new chunk file and the entry information of the new chunk file in the dictionary (S530).
  • the reception server 400 transmits a confirmation signal to the transmission server 300 indicating that the new chunk file and the entry information of the new chunk file are normally registered in the dictionary (S540).
  • the reception server 400 receives a confirmation signal for each chunk file as an example, but the same lot number is assigned to a plurality of new chunk files, and the confirmation signal for the lot number is given. It may be implemented to change the flag value of new chunk files that are received and corresponding to the lot number.
  • FIG. 6 is a flowchart illustrating a method of synchronizing a dictionary by receiving confirmation signals for a plurality of chunk files in the second embodiment.
  • the lot number may be an identifier assigned to a group containing a plurality of new chunk files. For example, when new chunk files A and B are generated, A and B may be designated as a group, and an identifier of “LOT # 1” may be assigned to the group.
  • the transmitting server 300 transmits a plurality of new chunk files to which the same lot number is assigned to the receiving server 400 (S620).
  • Receiving server 400 receives a plurality of new chunk files assigned the same lot number, the receiving server 400 registers the received plurality of new chunk files and their entry information in the dictionary (S630) and the new chunk files to which the lot number is assigned
  • the acknowledgment signal indicating that it is normally registered in the dictionary of the reception server 400 is transmitted to the transmission server 300 (S640).
  • the receiving server 300 may receive that the chunk files corresponding to the lot number included in the confirmation signal are normally registered in the receiving server 400.
  • the flag value for the plurality of chunk files can be changed even with only one confirmation signal reception, and the chunk file is normally transmitted to the receiving server 400. It is possible to achieve an effect that unnecessary traffic can be reduced as compared with the case of receiving a confirmation signal every time it is registered.
  • FIG. 7 is a flowchart for explaining a method of synchronizing a dictionary according to a third embodiment.
  • the transmission server 300 transmits the new chunk file to the reception server 400 (S720).
  • the receiving server 400 receiving the new chunk file registers the new chunk file and the entry information of the new chunk file in the dictionary (S730).
  • the reception server 400 transmits a confirmation signal to the transmission server 300 indicating that the new chunk file and the entry information of the new chunk file are normally registered in the dictionary (S740).
  • the transmitting server 300 temporarily stores a list of the new chunk files in which the confirmation signal is received, and when the communication session with the receiving server 400 ends (S750), changes the flag value of the new chunk file in which the confirmation signal has been received. (S760).
  • FIG. 8 is a flowchart for explaining a method of synchronizing a dictionary by receiving confirmation signals for a plurality of chunk files in a third embodiment.
  • the transmitting server 300 transmits a plurality of new chunk files assigned the same lot number to the receiving server 400 (S820).
  • the receiving server 400 registers the received plurality of new chunk files and their entry information in the dictionary (S830) and the new chunk files to which the lot number is assigned
  • a confirmation signal indicating that the registration is successfully registered in the dictionary of the reception server 400 is transmitted to the transmission server 300.
  • the transmitting server 300 temporarily stores the list of lot numbers from which the confirmation signal is received, and when the communication session with the receiving server 400 ends (S850), flag values of the chunk files to which the lot number from which the confirmation signal is received are assigned. To change (S860).
  • FIG. 9 is a flowchart for explaining a method of synchronizing a dictionary according to a fourth embodiment.
  • the temporary dictionary is a dictionary for temporarily storing entry information and flag values of a new chunk file, such as a buffer or a memory.
  • the transmitting server 300 transmits the new chunk file to the receiving server 400 (S920)
  • the receiving server 400 registers entry information of the new chunk file in the dictionary (S930). Thereafter, the reception server 400 transmits a confirmation signal to the transmission server 300 that the entry information of the new chunk file is normally registered.
  • FIG. 10 is a functional block diagram illustrating a server 1000 according to an embodiment of the present invention.
  • the server 1000 includes a processor 1010, a storage 1020, a memory 1030, a network interface 1040, and a bus 1050.
  • the processor 1010 may execute a dictionary synchronization program.
  • the present invention is not limited thereto and may be implemented to execute other general-purpose programs.
  • the storage 1020 stores a dictionary synchronization program. It is also possible to store a dictionary containing a new chunk file, entry information of the new chunk file, and a plurality of entry information.
  • Processor 1010 can reduce the traffic generated when transmitting and receiving data by performing data deduplication by using the dictionary stored in the storage 1020. That is, data may be transmitted using a dictionary stored in the storage 1020, and original data may be restored.
  • the dictionary synchronization program according to the first embodiment stored in the storage 1020 registers entry information of the new chunk file and a flag value indicating whether the entry information is valid in the dictionary of the transmission server, and the transmission. Storing the entry information of the new chunk file in a temporary dictionary of a server, transmitting the entry information of the new chunk file to the receiving server, and confirming that the entry information of the new chunk file is registered in the dictionary of the receiving server. When a signal is received, deleting entry information of the new chunk file stored in the temporary dictionary.
  • the dictionary synchronization program registers entry information of the new chunk file and a flag value indicating whether the entry information is valid in the dictionary of the transmission server, and registers the entry information of the new chunk file.
  • the method may include transmitting to the receiving server and changing a flag value when a confirmation signal indicating that entry information of the new chunk file is registered in the dictionary of the receiving server is received.
  • the dictionary synchronization program registers entry information of the new chunk file and a flag value indicating whether the entry information is valid in the dictionary of the transmission server, and registers the entry information of the new chunk file. Transmitting to the receiving server, receiving a confirmation signal that entry information of the new chunk file is registered in the dictionary of the receiving server, and when the communication session with the receiving server is terminated, the new chunk having received the confirmation signal. Change the flag value of the file.
  • the dictionary synchronization program stores the entry information of the new chunk file and a flag value indicating whether the entry information is valid in the temporary dictionary of the transmitting server, and the entry information of the new chunk file. Transmitting to the receiving server, when receiving a confirmation signal that entry information of the new chunk file is registered in the dictionary of the receiving server, changing the flag value stored in the temporary dictionary and communicating with the receiving server. If the session is terminated, registering entry information of the new chunk file whose flag value is changed in the dictionary of the sending server.
  • the memory 1030 loads a dictionary synchronization program.
  • the dictionary synchronization program loaded in the memory 1030 is executed by the processor 1010.
  • the memory 1030 may store a temporary dictionary that temporarily stores entry information, flag values, and the like of the new chunk file.
  • Another computing device may be connected to the network interface 1040.
  • a receiving server that receives a new chunk file may be connected via the network interface 1040.
  • the bus 1050 is connected to the processor 1010, the storage 1020, the memory 1030, and the like to serve as a data movement path.
  • the above-described method can be written as a program that can be executed in a computer, it can be implemented in a general-purpose digital computer to operate the program using a computer-readable recording medium.
  • the structure of the data used in the above-described method can be recorded on the computer-readable recording medium through various means.
  • the computer-readable recording medium may include a storage medium such as a magnetic storage medium (eg, a ROM, a floppy disk, a hard disk, etc.) and an optical reading medium (eg, a CD-ROM, a DVD, etc.).

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Document Processing Apparatus (AREA)

Abstract

송신 서버와 수신 서버 간에 딕셔너리를 동기화하는 방법이 개시된다. 본 발명의 일 실시예에 따른 딕셔너리 동기화 방법은, 신규 청크 파일의 엔트리 정보 및 엔트리 정보가 유효한지 여부를 표시하는 플래그 값을 송신 서버의 딕셔너리에 등록하는 단계, 송신 서버의 임시 딕셔너리에 신규 청크 파일의 엔트리 정보를 저장하는 단계, 신규 청크 파일의 엔트리 정보를 수신 서버로 전송하는 단계 및 수신 서버의 딕셔너리에 신규 청크 파일의 엔트리 정보가 등록되었다는 확인 신호가 수신되면, 임시 딕셔너리에 저장된 신규 청크 파일의 엔트리 정보를 삭제하는 단계를 포함한다.

Description

데이터 중복 제거의 딕셔너리 동기화 방법
본 발명은 데이터 중복 제거의 딕셔너리 동기화 방법에 관한 것으로, 보다 상세하게는 수신 프록시 서버로부터 엔트리 정보 등록 신호를 수신한 후, 송신측 딕셔너리를 업데이트 함으로써 딕셔너리 정보가 불일치 되는 상황을 미연에 방지할 수 있는 데이터 중복제거의 딕셔너리 동기화 방법에 관한 것이다.
데이터 중복 제거(Deduplication)란 서로 다른 데이터들 간에 중복되는 부분을 검출해내고 중복된 부분을 제거함으로써 스토리지 활용의 효율성을 높일 수 있을 뿐만 아니라, 데이터 전송 시 발생되는 트래픽을 절감할 수 있는 기술을 의미한다.
한편, 2개의 프록시 서버가 1개의 쌍을 이루는 “Paired-Proxy”구조에서 데이터 중복 제거를 통해 송수신된 청크 파일로 원본 데이터를 복원하기 위해서는 딕셔너리(Dictionary) 정보의 동기화가 선행되어야 한다.
도 1 및 도 2는 데이터 중복 제거를 통한 데이터 송수신 방법 및 딕셔너리 정보가 동기화되지 않았을 때 생기는 문제점을 설명하기 위한 도면이다.
도 1의 제1 프록시 서버(10)는 제1 청크 파일(11) 내지 제5 청크 파일(15)과 각 청크 파일의 엔트리 정보, 예를 들어, 각 청크 파일의 해쉬값이 기 저장되어 있을 수 있다.
마찬가지로, 제2 프록시 서버(10)에는 제1 청크 파일(11) 내지 제3 청크 파일(13) 및 제6 청크 파일(16)파일과 각 청크 파일의 해쉬값이 기 저장되어 있을 수 있다.
이때, 제1 프록시 서버(10)가 제1 데이터(30)를 제2 프록시 서버(20)에 전송하고 할 때, 데이터 그 자체가 전송되는 것이 아니고 제1 데이터(30)에 대응되는 각 해쉬값을 제2 프록시 서버(20)로 전송하게 된다.
제1 데이터(30)에 대응되는 해쉬값을 수신한 제2 프록시 서버(20)는 각 해쉬값에 대응되는 청크 파일을 검색하여 원본 데이터를 복구할 수 있게 된다. 즉, 데이터 그 자체가 전송되는 것이 아니고 그보다 용량이 작은 해쉬값만을 전송함으로써 전송 트래픽을 절감할 수 있게 된다는 효과를 달성할 수 있는 것이다.
그러나, 상술한 방법에 의한 데이터 전송 방법의 경우, 제1 프록시 서버(10) 및 제2 프록시 서버(20)에 저장된 딕셔너리 정보, 즉, 청크 파일과 그 청크 파일에 대한 정보가 동기화되지 않으면 원본 데이터를 복구할 수 없게 된다는 문제가 발생하게 된다.
예를 들어, 제1 프록시 서버(10)가 제2 프록시 서버(20)에 제2 데이터(40)를 전송하고 하고자 하는 경우, 제5 청크 파일(15)에 대한 딕셔너리 정보가 동기화되어 있지 않으므로, 제1 청크 파일(11) 및 제5 청크 파일의 해쉬값의 형태로 데이터를 수신한 제2 프록시 서버(20)는 원본 데이터인 제2 데이터(40)를 복구할 수 없게 된다.
딕셔너리 정보의 불일치는 도 2와 같은 경우에 발생하게 된다.
제1 신규 청크 파일이 생성된 경우, 제1 프록시 서버(10)는 제1 신규 청크 파일에 관한 엔트리(entry) 정보를 딕셔너리에 등록한다(S21). 여기에서 엔트리(entry) 정보는 새로 생성된 제1 신규 청크 파일의 해쉬값일 수 있다.
제1 신규 청크 파일의 엔트리 정보를 딕셔너리에 등록한 제1 프록시 서버(10)는 제1 신규 청크 파일에 관한 정보를 제2 프록시 서버(20)에 전송한다(S22). 제1 신규 청크 파일에 관한 정보를 수신한 제2 프록시 서버(20)는 이를 딕셔너리에 저장한다(S23).
이후, 또 다른 제2 신규 청크 파일이 생성되면, 제1 프록시 서버(10)는 제2 신규 파일의 엔트리 정보를 딕셔너리에 저장하고(S24) 이를 제2 프록시 서버(20)에 전송한다(S25).
이때, 제1 프록시 서버(10)에 제2 프록시 서버(20)가 비정상적으로 종료되면 제2 신규 청크 파일에 관한 정보가 제1 프록시 서버(10)의 딕셔너리에만 등록되고 제2 프록시 서버(20)에는 등록되지 않는 경우가 발생된다(S26).
따라서, 이후, 제2 신규 청크 파일에 관한 해쉬값을 수신한 제2 프록시 서버(20)는 제2 신규 파일의 해쉬값을 저장하고 있지 않으므로 제2 신규 청크 파을을 포함한 원본 데이터를 복구할 수 없게 된다.
이에, 송신측 프록시 서버와 수신측 프록시 서버에서 딕셔너리 정보가 불일치되는 상황을 미연에 방지할 수 있게 하는 새로운 형태의 딕셔터리 정보 동기화 방법에 대한 필요성이 대두되었다.
본 발명은 상술한 목적을 달성하기 위해 안출된 것으로, 본 발명의 목적은 송신측 서버와 수신측 서버 간에 딕셔너리 정보의 불일치를 미연에 방지할 수 있는 딕셔너리 동기화 방법을 제공하는데 있다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속한 기술분야의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상술한 목적을 달성하기 위한 본 발명의 일 실시예에 따른 송신 서버와 수신 서버 간에 딕셔너리를 동기화하는 방법은, 신규 청크 파일의 엔트리 정보 및 상기 엔트리 정보가 유효한지 여부를 표시하는 플래그 값을 상기 송신 서버의 딕셔너리에 등록하는 단계, 상기 송신 서버의 임시 딕셔너리에 상기 신규 청크 파일의 엔트리 정보를 저장하는 단계, 상기 신규 청크 파일의 엔트리 정보를 상기 수신 서버로 전송하는 단계 및 상기 수신 서버의 딕셔너리에 상기 신규 청크 파일의 엔트리 정보가 등록되었다는 확인 신호가 수신되면, 상기 임시 딕셔너리에 저장된 상기 신규 청크 파일의 엔트리 정보를 삭제하는 단계 포함한다.
본 발명의 일 실시예에 따르면, 상기 엔트리 정보가 유효한지 여부를 표시하는 플래그 값을 상기 송신 서버의 딕셔너리에 등록하는 단계는, 상기 플래그 값이 상기 엔트리 정보가 유효임을 표시하는 값을 갖도록 상기 송신 서버의 딕셔너리에 등록하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따르면, 상기 확인 신호가 미수신되면, 상기 임시 딕셔너리에 상기 신규 청크 파일의 엔트리 정보를 유지하고, 상기 플래그 값이 상기 엔트리 정보가 무효임을 표시하는 값을 갖도록 변경하는 단계를 더 포함할 수 있다.
본 발명의 일 실시예에 따르면, 상기 임시 딕셔너리에 저장된 상기 신규 청크 파일의 엔트리 정보를 상기 수신 서버로 재전송하는 단계를 더 포함할 수 있다.
본 발명의 또 다른 실시예에 따른 송신 서버와 수신 서버 간에 딕셔너리를 동기화하는 방법은, 신규 청크 파일의 엔트리 정보 및 상기 엔트리 정보가 유효한지 여부를 표시하는 플래그 값을 상기 송신 서버의 딕셔너리에 등록하는 단계, 상기 신규 청크 파일의 엔트리 정보를 상기 수신 서버로 전송하는 단계 및 상기 수신 서버의 딕셔너리에 상기 신규 청크 파일의 엔트리 정보가 등록되었다는 확인 신호가 수신되면, 상기 플래그 값을 변경하는 단계를 포함한다.
본 발명의 일 실시예에 따르면, 상기 플래그 값을 상기 송신 서버의 딕셔너리에 등록하는 단계는, 상기 플래그 값이 상기 엔트리 정보가 무효임을 표시하는 값을 갖도록 상기 송신 서버의 딕셔너리에 등록하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따르면, 상기 플래그 값을 변경하는 단계는, 상기 플래그 값이 상기 엔트리 정보가 유효임을 표시하는 값을 갖도록 상기 플래그 값을 변경하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따르면, 신규 청크 파일의 엔트리 정보 및 상기 엔트리 정보가 유효한지 여부를 표시하는 플래그 값을 상기 송신 서버의 딕셔너리에 등록하는 단계는, 복수의 신규 청크 파일을 포함하는 그룹에 할당된 식별자인 로트 번호를 상기 송신 서버의 딕셔너리에 등록하는 단계를 더 포함할 수 있다.
본 발명의 일 실시예에 따르면, 상기 플래그 값을 변경하는 단계는, 동일한 로트 번호가 할당된 복수의 신규 청크 파일이 상기 수신 서버의 딕셔너리에 등록되었다는 확인 신호가 수신되면, 상기 로트 번호에 대응되는 상기 신규 청크 파일들의 플래그 값을 변경하는 단계를 포함할 수 있다.
본 발명의 또 다른 실시예에 따른 송신 서버와 수신 서버 간에 딕셔너리를 동기화하는 방법은, 신규 청크 파일의 엔트리 정보 및 상기 엔트리 정보가 유효한지 여부를 표시하는 플래그 값을 상기 송신 서버의 딕셔너리에 등록하는 단계, 상기 신규 청크 파일의 엔트리 정보를 상기 수신 서버로 전송하는 단계, 상기 수신 서버의 딕셔너리에 상기 신규 청크 파일의 엔트리 정보가 등록되었다는 확인 신호를 수신하는 단계 및 상기 수신 서버와의 통신 세션이 종료되면, 상기 확인 신호가 수신된 신규 청크 파일의 플래그 값을 변경하는 단계를 포함한다.
본 발명의 일 실시예에 따르면, 상기 플래그 값을 상기 송신 서버의 딕셔너리에 등록하는 단계는, 상기 플래그 값이 상기 엔트리 정보가 무효임을 표시하는 값을 갖도록 상기 송신 서버의 딕셔너리에 등록하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따르면, 상기 플래그 값을 변경하는 단계는, 상기 플래그 값이 상기 엔트리 정보가 유효임을 표시하는 값을 갖도록 상기 플래그 값을 변경하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따르면, 신규 청크 파일의 엔트리 정보 및 상기 엔트리 정보가 유효한지 여부를 표시하는 플래그 값을 상기 송신 서버의 딕셔너리에 등록하는 단계는, 복수의 신규 청크 파일을 포함하는 그룹에 할당된 식별자인 로트 번호를 상기 송신 서버의 딕셔너리에 등록하는 단계를 더 포함할 수 있다.
본 발명의 일 실시예에 따르면, 상기 플래그 값을 변경하는 단계는, 동일한 로트 번호가 할당된 복수의 신규 청크 파일이 상기 수신 서버의 딕셔너리에 등록되었다는 확인 신호가 수신되면, 상기 로트 번호에 대응되는 상기 신규 청크 파일들의 플래그 값을 변경하는 단계를 포함할 수 있다.
본 발명의 또 다른 실시예에 따른 송신 서버와 수신 서버 간에 딕셔너리를 동기화하는 방법은, 신규 청크 파일의 엔트리 정보 및 상기 엔트리 정보가 유효한지 여부를 표시하는 플래그 값을 상기 송신 서버의 임시 딕셔너리에 저장하는 단계, 상기 신규 청크 파일의 엔트리 정보를 상기 수신 서버로 전송하는 단계, 상기 수신 서버의 딕셔너리에 상기 신규 청크 파일의 엔트리 정보가 등록되었다는 확인 신호를 수신되면, 상기 임시 딕셔너리에 저장된 상기 플래그 값을 변경하는 단계 및 상기 수신 서버와의 통신 세션이 종료되면, 상기 플래그 값이 변경된 상기 신규 청크 파일의 엔트리 정보를 상기 송신 서버의 딕셔너리에 등록하는 단계를 포함한다.
본 발명의 일 실시예에 따르면, 신규 청크 파일의 엔트리 정보 및 상기 엔트리 정보가 유효한지 여부를 표시하는 플래그 값을 상기 송신 서버의 임시 딕셔너리에 저장하는 단계는, 상기 플래그 값이 상기 엔트리 정보가 무효임을 표시하는 값을 갖도록 상기 송신 서버의 임시 딕셔너리에 저장하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따르면, 상기 임시 딕셔너리에 저장된 상기 플래그 값을 변경하는 단계는, 상기 플래그 값이 상기 엔트리 정보가 유효임을 표시하는 값을 갖도록 상기 플래그 값을 변경하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따른 서버는, 하나 이상의 프로세서, 상기 프로세서에 의하여 수행되는 컴퓨터 프로그램을 로드(load)하는 메모리 및 딕셔너리 동기화하는 컴퓨터 프로그램을 저장하는 스토리지를 포함하되, 상기 컴퓨터 프로그램은, 신규 청크 파일의 엔트리 정보 및 상기 엔트리 정보가 유효한지 여부를 표시하는 플래그 값을 상기 송신 서버의 딕셔너리에 등록하는 오퍼레이션, 상기 송신 서버의 임시 딕셔너리에 상기 신규 청크 파일의 엔트리 정보를 저장하는 오퍼레이션, 상기 신규 청크 파일의 엔트리 정보를 상기 수신 서버로 전송하는 오퍼레이션 및 상기 수신 서버의 딕셔너리에 상기 신규 청크 파일의 엔트리 정보가 등록되었다는 확인 신호가 수신되면, 상기 임시 딕셔너리에 저장된 상기 신규 청크 파일의 엔트리 정보를 삭제하는 오퍼레이션을 포함한다.
본 발명의 또 다른 실시예에 따른 서버는, 하나 이상의 프로세서, 상기 프로세서에 의하여 수행되는 컴퓨터 프로그램을 로드(load)하는 메모리, 및 딕셔너리 동기화하는 컴퓨터 프로그램을 저장하는 스토리지를 포함하되, 상기 컴퓨터 프로그램은, 신규 청크 파일의 엔트리 정보 및 상기 엔트리 정보가 유효한지 여부를 표시하는 플래그 값을 상기 송신 서버의 딕셔너리에 등록하는 오퍼레이션, 상기 신규 청크 파일의 엔트리 정보를 상기 수신 서버로 전송하는 오퍼레이션 및 상기 수신 서버의 딕셔너리에 상기 신규 청크 파일의 엔트리 정보가 등록되었다는 확인 신호가 수신되면, 상기 플래그 값을 변경하는 오퍼레이션을 포함한다.
본 발명의 또 다른 실시예에 따른 서버는, 하나 이상의 프로세서, 상기 프로세서에 의하여 수행되는 컴퓨터 프로그램을 로드(load)하는 메모리 및 딕셔너리 동기화하는 컴퓨터 프로그램을 저장하는 스토리지를 포함하되, 상기 컴퓨터 프로그램은, 신규 청크 파일의 엔트리 정보 및 상기 엔트리 정보가 유효한지 여부를 표시하는 플래그 값을 상기 송신 서버의 딕셔너리에 등록하는 오퍼레이션, 상기 신규 청크 파일의 엔트리 정보를 상기 수신 서버로 전송하는 오퍼레이션, 상기 수신 서버의 딕셔너리에 상기 신규 청크 파일의 엔트리 정보가 등록되었다는 확인 신호를 수신하는 오퍼레이션 및 상기 수신 서버와의 통신 세션이 종료되면, 상기 확인 신호가 수신된 신규 청크 파일의 플래그 값을 변경하는 오퍼레이션을 포함한다.
본 발명의 또 다른 실시예에 따른 서버는, 하나 이상의 프로세서, 상기 프로세서에 의하여 수행되는 컴퓨터 프로그램을 로드(load)하는 메모리 및 딕셔너리 동기화하는 컴퓨터 프로그램을 저장하는 스토리지를 포함하되, 상기 컴퓨터 프로그램은, 신규 청크 파일의 엔트리 정보 및 상기 엔트리 정보가 유효한지 여부를 표시하는 플래그 값을 상기 송신 서버의 임시 딕셔너리에 저장하는 오퍼레이션, 상기 신규 청크 파일의 엔트리 정보를 상기 수신 서버로 전송하는 오퍼레이션, 상기 수신 서버의 딕셔너리에 상기 신규 청크 파일의 엔트리 정보가 등록되었다는 확인 신호를 수신되면, 상기 임시 딕셔너리에 저장된 상기 플래그 값을 변경하는 오퍼레이션 및 상기 수신 서버와의 통신 세션이 종료되면, 상기 플래그 값이 변경된 상기 신규 청크 파일의 엔트리 정보를 상기 송신 서버의 딕셔너리에 등록하는 오퍼레이션을 포함한다.
상술한 본 발명의 실시예들에 따른 딕셔너리 동기화 방법에 따르면, 엔트리 정보가 정상적으로 등록되었다는 확인 신호를 수신하여 딕셔너리를 관리하므로 송수신 서버 간에 딕셔너리 정보가 불일치되는 경우가 발생되어 데이터 전송에 오류가 발생되는 것을 미연에 방지할 수 있게 된다는 효과를 달성할 수 있게 된다.
도 1 및 도 2는 데이터 중복 제거를 통한 데이터 송수신 방법 및 딕셔너리 정보가 동기화되지 않았을 때 생기는 문제점을 설명하기 위한 도면이다.
도 3은 제1 실시예에 따라 딕셔너리를 동기화하는 방법을 설명하기 위한 흐름도이다.
도 4는 제1 실시예에서 확인 신호가 수신되지 않은 경우를 설명하기 위한 흐름도이다.
도 5는 제2 실시예에 따라 딕셔너리를 동기화하는 방법을 설명하기 위한 흐름도이다.
도 6은 제2 실시예에서 복수의 청크 파일에 대한 확인 신호를 수신하여 딕셔너리를 동기화하는 방법을 설명하기 위한 흐름도이다.
도 7은 제 3 실시예에 따라 딕셔너리를 동기화하는 방법을 설명하기 위한 흐름도이다.
도 8은 제3 실시예에서 복수의 청크 파일에 대한 확인 신호를 수신하여 딕셔너리를 동기화하는 방법을 설명하기 위한 흐름도이다.
도 9는 제4 실시예에 따라 딕셔너리를 동기화하는 방법을 설명하기 위한 흐름도이다.
도 10은 본 발명의 일 실시예에 따른 서버(1000)를 설명하기 위한 기능 블록도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 게시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 게시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
또한, 본 명세서에서 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함될 수 있다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
이하에서는, 발명을 명확하게 설명하기 위해 다음과 같이 용어를 정의하도록 한다.
엔트리(Entry) 정보
데이터 중복 제거(Deduplication)을 위해 생성된 청크 파일(Chunk File)을 식별하기 위한 정보. 예를 들어, 엔트리 정보에는 청크 파일 및 그 청크 파일의 해쉬값(Hash Value)가 포함되어 있을 수 있다.
따라서, 임의의 청크 파일에 대한 해쉬값만을 수신한 경우라도 엔트리 정보를 이용하여 그에 대응되는 청크 파일이 어떤 것인지 식별할 수 있게 된다.
딕셔너리(Dictionary)
딕셔너리는 엔트리 정보의 집합을 의미한다. 데이터 중복 제거를 통해 데이터를 송수신하기 위해서는 복수의 청크파일들에 대한 엔트리 정보가 송수신측 서버에 기저장되어 있어야 하는데, 복수의 청크 파일들에 대한 엔트리 정보의 집합이 딕셔너리이다.
신규 청크 파일이 생성된 경우, 신규 청크 파일의 엔트리 정보가 딕셔너리에 업데이트하고, 업데이트된 딕셔너리가 송수신측 서버에서 동기화되어야 있어야만 데이터 중복 제거를 통한 데이터 송수신이 가능해 진다.
제1 실시예
도 3은 제1 실시예에 따라 딕셔너리를 동기화하는 방법을 설명하기 위한 흐름도이다.
이하에서, 송신 서버(300) 및 수신 서버(400)는 프록시 서버일 수 있으나 이에 한정되지 않으며, 데이터 중복 제거를 통해 데이터를 송수신할 수 있는 일반적인 서버로 구현될 수도 있다.
신규 청크 파일이 생성되면, 송신 서버(300)는 신규 청크 파일의 엔트리 정보를 플래그 값과 함께 딕셔너리에 등록한다(S310). 플래그 값은, 해당 엔트리 정보가 유효한지 여부를 표시하는 값으로 해당 엔트리 정보가 유효한 값이면 “flag=true”로, 그렇지 않은 경우 “flag=false”로 저장될 수 있다.
즉, “flag=false”인 엔트리 정보는 수신 서버(400)에 등록되지 않은 엔트리 정보를 의미하므로 해당 엔트리 정보에 대응되는 청크 파일은 데이터 중복 제거에 사용될 수 없는 것으로 판단될 수 있다. 초기 플래그 값은 “flag=ture”인 상태로 딕셔너리에 등록될 수 있다.
이후, 송신 서버(300)는 임시 딕셔너리에 신규 청크 파일의 엔트리 정보를 저장한다(S320). 여기에서, 임시 딕셔너리는 버퍼나 메모리 같은 일시적 기록 매체에 저장될 수 있다.
상술한 과정이 완료되면, 송신 서버(300)는 신규 청크 파일을 수신 서버(400)에 전송한다(S330). 신규 청크 파일을 수신한 수신 서버(400)는 송신 서버(300)와 마찬가지로 신규 청크 파일의 엔트리 정보를 플래그 값과 함께 딕셔너리에 등록한다(S340).
이후, 신규 청크 파일의 엔트리 정보가 정상적으로 딕셔너리에 등록되었음을 알리기 위한 확인 신호를 송신 서버(300)에 전송한다(S350).
확인 신호(S360)을 수신한 송신 서버(300)는 수신 서버(400)에 신규 청크 파일의 엔트리 정보가 정상적으로 등록되었다고 판단하여 임시 딕셔너리에서 신규 청크 파일의 엔트리 정보를 삭제한다(S360).
수신 서버(400)에 정상적으로 등록된 신규 청크 파일의 플래그 값은, 해당 신규 청크 파일의 엔트리 정보가 수신 서버(400)에 정상적으로 등록되었음을 의미하는 “flag=true”값으로 유지되므로, 차후 송신 서버(300)는 신규 청크 파일이 포함된 데이터를 전송할 때, 신규 청크 파일에 대응되는 해쉬값을 전송하여, 수신 서버(400)에서 신규 청크 파일이 복원되도록 할 수 있다.
반면, 수신 서버(400)로부터 신규 청크 파일의 엔트리 정보가 정상적으로 등록되었음을 알리는 확인 신호가 수신되지 않은 채로 수신 서버(400)와의 통신이 종료되는 경우가 발생될 수 있다.
도 4는 제1 실시예에서 확인 신호가 수신되지 않은 경우를 설명하기 위한 흐름도이다.
신규 청크 파일이 생성되면, 그의 엔트리 정보 및 플래그 값을 딕셔너리에 등록하고(S410), 엔트리 정보를 엔트리 정보에 저장하며(S420), 신규 청크 파일을 수신 서버(400)에 전송하는 과정(S430)은 도 3에서 설명한 바와 동일하므로 중복되는 설명은 생략하도록 한다.
송신 서버(300)가 신규 청크 파일을 수신 서버(400)에 전송하였음에도 불구하고, 수신 서버(400)로부터 신규 청크 파일의 엔트리 정보가 정상적으로 등록되었다는 확인 신호가 수신되지 않고 통신이 종료되는 경우가 발생될 수 있다(S440).
이때, 송신 서버(300)는 딕셔너리에 등록된 신규 청크 파일의 플래그 값을 변경한다(S450). 구체적으로, 송신 서버(300)는 확인 신호가 미수신된 청크 파일의 플래그 값을 “flag=false”값으로 변경한다.
따라서, 송신 서버(300)는 플래그값이 false인 청크 파일의 엔트리 정보가 수신 서버(400)에 등록되지 않았음을 확인할 수 있게 되므로, 해당 청크 파일을 수신 서버(400)로 전송할 때는 해쉬값이 아닌 파일 자체를 전송하게 된다.
또한, 임시 딕셔너리에는 수신 서버(400)에 정상적으로 등록되지 않은 청크 파일의 엔트리 정보가 저장되므로 차후, 딕셔너리를 동기화하기 위해 임시 딕셔너리에 저장된 엔트리 정보를 수신 서버(400)에 재전송할 수 있다.
상술한 바와 같이, 수신 서버(400)로부터 신규 청크파일의 엔트리 정보가 정상적으로 등록되었다는 확인 신호를 수신하여 딕셔너리를 관리하므로 송수신 서버 간에 딕셔너리 정보가 불일치되는 경우가 발생되어 데이터 전송에 오류가 발생되는 것을 미연에 방지할 수 있게 된다는 효과를 달성할 수 있게 된다.
제2 실시예
도 5는 제2 실시예에 따라 딕셔너리를 동기화하는 방법을 설명하기 위한 흐름도이다.
신규 청크 파일이 생성되면, 송신 서버(300)는 신규 청크 파일의 엔트리 정보를 플래그 값과 함께 딕셔너리에 등록한다(S510). 이때, 초기 플래그 값은 엔트리 정보가 유효하지 않음을 의미하는 “flag=false”로 저장된다.
이후, 송신 서버(300)는 신규 청크 파일을 수신 서버(400)에 전송한다(S520). 신규 청크 파일을 수신한 수신 서버(400)는 신규 청크 파일 및 신규 청크 파일의 엔트리 정보를 딕셔너리 에 등록한다(S530).
수신 서버(400)는 신규 청크 파일 및 신규 청크 파일의 엔트리 정보가 딕셔너리에 정상적으로 등록되었음을 알리는 확인 신호를 송신 서버(300)에 전송한다(S540).
확인 신호가 수신되면 송신 서버(300)는 신규 청크 파일의 플래그 값을 변경한다. 구체적으로, 신규 청크 파일의 엔트리 정보가 유효한 값임을 의미하는 “flag=true”로 플래그 값을 변경한다(S550).
즉, 송신 서버(300)와 수신 서버(400)간에 통신 세션이 종료되었는지 여부를 불문하고, 수신 서버(400)로부터 확인 신호가 수신되면 신규 청크 파일의 플래그값을 변경한다.
한편, 상술한 실시예에서는 수신 서버(400)로부터 확인 신호를 각 청크 파일 별로 수신하는 경우를 예로 들어 설명하였으나, 복수의 신규 청크 파일에 동일한 로트 번호를 부여하고, 그 로트 번호에 대한 확인 신호를 수신하여 그 로트 번호에 대응되는 신규 청크 파일들의 플래그 값을 변경하도록 구현할 수도 있다.
도 6은 제2 실시예에서 복수의 청크 파일에 대한 확인 신호를 수신하여 딕셔너리를 동기화하는 방법을 설명하기 위한 흐름도이다.
로트 번호는 복수의 신규 청크 파일을 포함하는 그룹에 할당된 식별자일 수 있다. 예를 들어, 신규 청크 파일 A와 B가 생성된 경우, A와 B를 하나의 그룹으로 지정하고, 그 그룹에 “LOT #1”이라는 식별자를 부여할 수 있다.
한편, 제2 실시예에서는 신규 청크 파일의 엔트리 정보, 플래그 값 및 신규 청크 파일에 할당된 로트 번호를 함께 딕셔너리에 등록한다(S610). 이때, 초기 플래그 값은 “flag=false”로 등록된다.
이후, 송신 서버(300)는 동일한 로트 번호가 할당된 복수의 신규 청크 파일을 수신 서버(400)에 전송한다(S620). 동일한 로트 번호가 할당된 복수의 신규 청크 파일을 수신한 수신 서버(400)는, 수신한 복수의 신규 청크 파일들과 그 엔트리 정보를 딕셔너리에 등록하고(S630) 로트 번호가 할당된 신규 청크 파일들이 수신 서버(400)의 딕셔너리에 정상적으로 등록되었음을 알리는 확인 신호를 송신 서버(300)에 전송한다(S640).
즉, 확인 신호에는 로트 번호가 포함되는바, 이를 수신한 송신 서버(300)는 확인 신호에 포함된 로트 번호에 대응되는 청크 파일들이 수신 서버(400)에 정상적으로 등록되었다고 판단할 수 있다.
확인 신호를 수신한 송신 서버(300)는 로트 번호에 대응되는 청크 파일들의 플래그값을 변경한다(S650). 구체적으로, 초기 “flag=false”로 설정된 플래그값을 “flag=true”로 변경할 수 있다.
상술한 바와 같이, 로트 번호를 포함하는 확인 신호를 수신하면, 한 번의 확인 신호 수신만드로도 복수의 청크 파일들에 대한 플래그값을 변경할 수 있게 되는바, 청크 파일이 수신 서버(400)에 정상적으로 등록될 때마다 확인 신호를 수신하는 경우에 비해 불필요한 트래픽을 줄일 수 있다는 효과를 달성할 수 있다.
제3 실시예
도 7은 제 3 실시예에 따라 딕셔너리를 동기화하는 방법을 설명하기 위한 흐름도이다.
신규 청크 파일이 생성되면, 송신 서버(300)는 신규 청크 파일의 엔트리 정보를 플래그 값과 함께 딕셔너리에 등록한다(S710). 이때, 초기 플래그 값은 엔트리 정보가 유효하지 않음을 의미하는 “flag=false”로 저장된다.
이후, 송신 서버(300)는 신규 청크 파일을 수신 서버(400)에 전송한다 (S720). 신규 청크 파일을 수신한 수신 서버400)는 신규 청크 파일 및 신규 청크 파일의 엔트리 정보를 딕셔너리에 등록한다(S730).
수신 서버(400)는 신규 청크 파일 및 신규 청크 파일의 엔트리 정보가 딕셔너리에 정상적으로 등록되었음을 알리는 확인 신호를 송신 서버(300)에 전송한다(S740).
송신 서버(300)는 확인 신호가 수신된 신규 청크 파일의 리스트를 임시로 저장하였다가 수신 서버(400)와의 통신 세션이 종료되면(S750), 확인 신호가 수신되었던 신규 청크 파일의 플래그 값을 변경한다(S760).
즉, 확인 신호가 수신될 때마다 신규 청크 파일의 플래그값을 변경하면 불필요한 부하가 생길 수도 있으므로, 통신 세션이 종료된 이후 확인 신호가 수신되었던 신규 청크 파일들의 플래그 값을 일괄적으로 변경하는 것이다.
한편 로트 번호에 대한 확인 신호를 수신하여, 로트 번호가 할당된 그룹에 속한 신규 청크 파일들의 플래그 값을 일괄적으로 변경하도록 구현할 수도 있다.
도 8은 제3 실시예에서 복수의 청크 파일에 대한 확인 신호를 수신하여 딕셔너리를 동기화하는 방법을 설명하기 위한 흐름도이다.
로트 번호는 도 6에서 상세하게 설명하였으므로, 중복되는 설명은 생략하도록 한다.
송신 서버(300)는 신규 청크 파일의 엔트리 정보, 플래그 값 및 신규 청크 파일에 할당된 로트 번호를 딕셔너리에 등록한다(S810). 이때, 초기 플래그 값은 “flag=false”로 등록된다.
이후, 송신 서버(300)는 동일한 로트 번호가 할당된 복수의 신규 청크 파일을 수신 서버(400)에 전송한다(S820). 동일한 로트 번호가 할당된 복수의 신규 청크 파일을 수신한 수신 서버(400)는, 수신한 복수의 신규 청크 파일들과 그 엔트리 정보를 딕셔너리에 등록(S830)하고 로트 번호가 할당된 신규 청크 파일들이 수신 서버(400)의 딕셔너리에 정상적으로 등록되었음을 알리는 확인 신호를 송신 서버(300)에 전송한다(S840).
송신 서버(300)는 확인 신호가 수신된 로트 번호 리스트를 임시로 저장하였다가 수신 서버(400)와의 통신 세션이 종료되면(S850), 확인 신호가 수신된 로트 번호가 할당된 청크 파일들의 플래그 값을 변경한다(S860).
예를 들어, “LOT #1”에 대한 확인 신호가 수신되고 수신 서버(400)와의 통신 세션이 종료되면, “LOT #1”이 할당된 청크 파일 A, B에 대한 플래그값을 “flag=true”로 변경할 수 있다.
제4 실시예
도 9는 제4 실시예에 따라 딕셔너리를 동기화하는 방법을 설명하기 위한 흐름도이다.
송신 서버(300)는 신규 청크 파일의 엔트리 정보를 플래그 값과 함께 임시 딕셔너리에 저장한다(S910). 이때, 초기 플래그 값은 “flag=false”로 저장된다. 이때, 임시 딕셔너리는 버퍼나 메모리 같이 신규 청크파일의 엔트리 정보와 플래그 값을 일시적으로 저장하기 위한 딕셔너리이다.
송신 서버(300)가 신규 청크 파일을 수신 서버(400)에 전송하면(S920), 수신 서버(400)는 신규 청크 파일의 엔트리 정보를 딕셔너리에 등록한다(S930). 이후, 수신 서버(400)는 신규 청크 파일의 엔트리 정보가 정상적으로 등록되었다는 확인 신호를 송신 서버(300)에 전송한다.
확인 신호를 수신한 송신 서버(300)는 임시 딕셔너리에 저장된 신규 청크 파일의 플래그 값을 “flag=true”로 변경한다(S950).
임시 딕셔너리에 저장된 신규 청크 파일의 플래그 값이 “flag=true”인 상태로 통신 세션이 종료되면(S960), 송신 서버(300)는 “flag=true”인 신규 청크 파일의 엔트리 정보를 딕셔너리에 등록한다(S970).
즉, 신규 청크 파일의 엔트리 정보를 임시 딕셔너리에 임시로 저장하였다가 통신이 종료된 후, 플래그 값이 “flag=ture”인 신규 청크 파일의 엔트리 정보를 딕셔너리에 일괄적으로 등록하므로, 불필요한 트래픽을 절감할 수 있게 된다는 효과를 달성할 수 있다.
도 10은 본 발명의 일 실시예에 따른 서버(1000)를 설명하기 위한 기능 블록도이다.
본 발명의 일 실시예에 따른 서버(1000)는 프로세서(1010), 스토리지(1020), 메모리(1030), 네트워크 인터페이스(1040) 및 버스(1050)를 포함한다.
도 10에는 본 발명의 실시예와 관련있는 구성요소들만이 도시되어 있다. 따라서, 본 발명이 속하는 기술분야의 통상의 기술자라면 도 10에 도시된 구성요소들 외에 다른 범용적인 구성요소가 더 포함될 수 있음을 알 수 있다.
프로세서(1010)는 딕셔너리 동기화 프로그램을 실행할 수 있다. 그러나, 이에 한정되지 않으며 다른 범용적은 프로그램을 실행하도록 구현할 수도 있다.
스토리지(1020)는 딕셔너리 동기화 프로그램을 저장한다. 또한, 신규 청크 파일, 신규 청크 파일의 엔트리 정보 및 복수의 엔트리 정보를 포함하는 딕셔너리를 저장할 수도 있다.
본 발명의 일 실시예에 따른 프로세서(1010)는 스토리지(1020)에 저장된 딕셔너리를 이용하여 데이터 중복 제거를 수행함으로써 데이터를 송수신할 때 발생되는 트래픽을 절감할 수 있게 된다. 즉, 스토리지(1020)에 저장된 딕셔너리를 이용하여 데이터를 송신하고, 본래 원본 데이터를 복구할 수 있게 된다.
한편, 스토리지(1020)에 저장된 제1 실시예에 따른 딕셔너리 동기화 프로그램은 신규 청크 파일의 엔트리 정보 및 상기 엔트리 정보가 유효한지 여부를 표시하는 플래그 값을 상기 송신 서버의 딕셔너리에 등록하는 단계, 상기 송신 서버의 임시 딕셔너리에 상기 신규 청크 파일의 엔트리 정보를 저장하는 단계, 상기 신규 청크 파일의 엔트리 정보를 상기 수신 서버로 전송하는 단계 및 상기 수신 서버의 딕셔너리에 상기 신규 청크 파일의 엔트리 정보가 등록되었다는 확인 신호가 수신되면, 상기 임시 딕셔너리에 저장된 상기 신규 청크 파일의 엔트리 정보를 삭제하는 단계를 수행한다.
또한, 제2 실시예에 따른 딕셔너리 동기화 프로그램은 신규 청크 파일의 엔트리 정보 및 상기 엔트리 정보가 유효한지 여부를 표시하는 플래그 값을 상기 송신 서버의 딕셔너리에 등록하는 단계, 상기 신규 청크 파일의 엔트리 정보를 상기 수신 서버로 전송하는 단계 및 상기 수신 서버의 딕셔너리에 상기 신규 청크 파일의 엔트리 정보가 등록되었다는 확인 신호가 수신되면, 상기 플래그 값을 변경하는 단계를 수행한다.
또한, 제3 실시예에 따른 딕셔너리 동기화 프로그램은 신규 청크 파일의 엔트리 정보 및 상기 엔트리 정보가 유효한지 여부를 표시하는 플래그 값을 상기 송신 서버의 딕셔너리에 등록하는 단계, 상기 신규 청크 파일의 엔트리 정보를 상기 수신 서버로 전송하는 단계, 상기 수신 서버의 딕셔너리에 상기 신규 청크 파일의 엔트리 정보가 등록되었다는 확인 신호를 수신하는 단계 및 상기 수신 서버와의 통신 세션이 종료되면, 상기 확인 신호가 수신된 신규 청크 파일의 플래그 값을 변경하는 단계를 수행한다.
또한, 제4 실시예에 따른 딕셔너리 동기화 프로그램은 신규 청크 파일의 엔트리 정보 및 상기 엔트리 정보가 유효한지 여부를 표시하는 플래그 값을 상기 송신 서버의 임시 딕셔너리에 저장하는 단계, 상기 신규 청크 파일의 엔트리 정보를 상기 수신 서버로 전송하는 단계, 상기 수신 서버의 딕셔너리에 상기 신규 청크 파일의 엔트리 정보가 등록되었다는 확인 신호를 수신되면, 상기 임시 딕셔너리에 저장된 상기 플래그 값을 변경하는 단계 및 상기 수신 서버와의 통신 세션이 종료되면, 상기 플래그 값이 변경된 상기 신규 청크 파일의 엔트리 정보를 상기 송신 서버의 딕셔너리에 등록하는 단계를 수행한다.
메모리(1030)는 딕셔너리 동기화 프로그램을 로딩한다. 메모리(1030)에 로딩된 딕셔너리 동기화 프로그램은 프로세서(1010)에 의해 실행된다. 또한, 메모리(1030)에는 신규 청크 파일의 엔트리 정보, 플래그 값 등을 임시로 저장하는 임시 딕셔너리가 저장될 수도 있다.
네트워크 인터페이스(1040)에는 다른 컴퓨팅 장치가 연결될 수 있다. 예를 들어, 신규 청크 파일을 수신하는 수신 서버가 네트워크 인터페이스(1040)를 통해 연결될 수 있다.
버스(1050)는 상술한 프로세서(1010), 스토리지(1020) 및 메모리(1030) 등이 연결되어 데이터 이동 통로로서의 역할을 수행한다.
한편, 상술한 방법은 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 또한, 상술한 방법에서 사용된 데이터의 구조는 컴퓨터로 읽을 수 있는 기록매체에 여러 수단을 통하여 기록될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.
본 실시예와 관련된 기술 분야에서 통상의 지식을 가진 자는 상기된 기재의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 방법들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.

Claims (21)

  1. 송신 서버와 수신 서버 간에 딕셔너리를 동기화하는 방법에 있어서;
    신규 청크 파일의 엔트리 정보 및 상기 엔트리 정보가 유효한지 여부를 표시하는 플래그 값을 상기 송신 서버의 딕셔너리에 등록하는 단계;
    상기 송신 서버의 임시 딕셔너리에 상기 신규 청크 파일의 엔트리 정보를 저장하는 단계;
    상기 신규 청크 파일의 엔트리 정보를 상기 수신 서버로 전송하는 단계; 및
    상기 수신 서버의 딕셔너리에 상기 신규 청크 파일의 엔트리 정보가 등록되었다는 확인 신호가 수신되면, 상기 임시 딕셔너리에 저장된 상기 신규 청크 파일의 엔트리 정보를 삭제하는 단계를 포함하는 딕셔너리 동기화 방법.
  2. 제1항에 있어서,
    상기 엔트리 정보가 유효한지 여부를 표시하는 플래그 값을 상기 송신 서버의 딕셔너리에 등록하는 단계는,
    상기 플래그 값이 상기 엔트리 정보가 유효임을 표시하는 값을 갖도록 상기 송신 서버의 딕셔너리에 등록하는 단계를 포함하는 딕셔너리 동기화 방법.
  3. 제1항에 있어서,
    상기 확인 신호가 미수신되면, 상기 임시 딕셔너리에 상기 신규 청크 파일의 엔트리 정보를 유지하고, 상기 플래그 값이 상기 엔트리 정보가 무효임을 표시하는 값을 갖도록 변경하는 단계를 더 포함하는 딕셔너리 동기화 방법.
  4. 제3항에 있어서,
    상기 임시 딕셔너리에 저장된 상기 신규 청크 파일의 엔트리 정보를 상기 수신 서버로 재전송하는 단계를 더 포함하는 딕셔너리 동기화 방법.
  5. 송신 서버와 수신 서버 간에 딕셔너리를 동기화하는 방법에 있어서,
    신규 청크 파일의 엔트리 정보 및 상기 엔트리 정보가 유효한지 여부를 표시하는 플래그 값을 상기 송신 서버의 딕셔너리에 등록하는 단계;
    상기 신규 청크 파일의 엔트리 정보를 상기 수신 서버로 전송하는 단계; 및
    상기 수신 서버의 딕셔너리에 상기 신규 청크 파일의 엔트리 정보가 등록되었다는 확인 신호가 수신되면, 상기 플래그 값을 변경하는 단계를 포함하는 딕셔너리 동기화 방법.
  6. 제5항에 있어서,
    상기 플래그 값을 상기 송신 서버의 딕셔너리에 등록하는 단계는,
    상기 플래그 값이 상기 엔트리 정보가 무효임을 표시하는 값을 갖도록 상기 송신 서버의 딕셔너리에 등록하는 단계를 포함하는 딕셔너리 동기화 방법.
  7. 제6항에 있어서,
    상기 플래그 값을 변경하는 단계는,
    상기 플래그 값이 상기 엔트리 정보가 유효임을 표시하는 값을 갖도록 상기 플래그 값을 변경하는 단계를 포함하는 딕셔너리 동기화 방법.
  8. 제5항에 있어서,
    신규 청크 파일의 엔트리 정보 및 상기 엔트리 정보가 유효한지 여부를 표시하는 플래그 값을 상기 송신 서버의 딕셔너리에 등록하는 단계는,
    복수의 신규 청크 파일을 포함하는 그룹에 할당된 식별자인 로트 번호를 상기 송신 서버의 딕셔너리에 등록하는 단계를 더 포함하는 딕셔너리 동기화 방법.
  9. 제8항에 있어서,
    상기 플래그 값을 변경하는 단계는,
    동일한 로트 번호가 할당된 복수의 신규 청크 파일이 상기 수신 서버의 딕셔너리에 등록되었다는 확인 신호가 수신되면, 상기 로트 번호에 대응되는 상기 신규 청크 파일들의 플래그 값을 변경하는 단계를 포함하는 딕셔너리 동기화 방법.
  10. 송신 서버와 수신 서버 간에 딕셔너리를 동기화하는 방법에 있어서,
    신규 청크 파일의 엔트리 정보 및 상기 엔트리 정보가 유효한지 여부를 표시하는 플래그 값을 상기 송신 서버의 딕셔너리에 등록하는 단계;
    상기 신규 청크 파일의 엔트리 정보를 상기 수신 서버로 전송하는 단계;
    상기 수신 서버의 딕셔너리에 상기 신규 청크 파일의 엔트리 정보가 등록되었다는 확인 신호를 수신하는 단계; 및
    상기 수신 서버와의 통신 세션이 종료되면, 상기 확인 신호가 수신된 신규 청크 파일의 플래그 값을 변경하는 단계를 포함하는 딕셔너리 동기화 방법.
  11. 제10항에 있어서,
    상기 플래그 값을 상기 송신 서버의 딕셔너리에 등록하는 단계는,
    상기 플래그 값이 상기 엔트리 정보가 무효임을 표시하는 값을 갖도록 상기 송신 서버의 딕셔너리에 등록하는 단계를 포함하는 딕셔너리 동기화 방법.
  12. 제11항에 있어서,
    상기 플래그 값을 변경하는 단계는,
    상기 플래그 값이 상기 엔트리 정보가 유효임을 표시하는 값을 갖도록 상기 플래그 값을 변경하는 단계를 포함하는 딕셔너리 동기화 방법.
  13. 제10항에 있어서,
    신규 청크 파일의 엔트리 정보 및 상기 엔트리 정보가 유효한지 여부를 표시하는 플래그 값을 상기 송신 서버의 딕셔너리에 등록하는 단계는,
    복수의 신규 청크 파일을 포함하는 그룹에 할당된 식별자인 로트 번호를 상기 송신 서버의 딕셔너리에 등록하는 단계를 더 포함하는 딕셔너리 동기화 방법.
  14. 제13항에 있어서,
    상기 플래그 값을 변경하는 단계는,
    동일한 로트 번호가 할당된 복수의 신규 청크 파일이 상기 수신 서버의 딕셔너리에 등록되었다는 확인 신호가 수신되면, 상기 로트 번호에 대응되는 상기 신규 청크 파일들의 플래그 값을 변경하는 단계를 포함하는 딕셔너리 동기화 방법.
  15. 송신 서버와 수신 서버 간에 딕셔너리를 동기화하는 방법에 있어서,
    신규 청크 파일의 엔트리 정보 및 상기 엔트리 정보가 유효한지 여부를 표시하는 플래그 값을 상기 송신 서버의 임시 딕셔너리에 저장하는 단계;
    상기 신규 청크 파일의 엔트리 정보를 상기 수신 서버로 전송하는 단계;
    상기 수신 서버의 딕셔너리에 상기 신규 청크 파일의 엔트리 정보가 등록되었다는 확인 신호를 수신되면, 상기 임시 딕셔너리에 저장된 상기 플래그 값을 변경하는 단계; 및
    상기 수신 서버와의 통신 세션이 종료되면, 상기 플래그 값이 변경된 상기 신규 청크 파일의 엔트리 정보를 상기 송신 서버의 딕셔너리에 등록하는 단계를 포함하는 딕셔너리 동기화 방법.
  16. 제15항에 있어서,
    신규 청크 파일의 엔트리 정보 및 상기 엔트리 정보가 유효한지 여부를 표시하는 플래그 값을 상기 송신 서버의 임시 딕셔너리에 저장하는 단계는,
    상기 플래그 값이 상기 엔트리 정보가 무효임을 표시하는 값을 갖도록 상기 송신 서버의 임시 딕셔너리에 저장하는 단계를 포함하는 딕셔너리 동기화 방법.
  17. 제16항에 있어서,
    상기 임시 딕셔너리에 저장된 상기 플래그 값을 변경하는 단계는,
    상기 플래그 값이 상기 엔트리 정보가 유효임을 표시하는 값을 갖도록 상기 플래그 값을 변경하는 단계를 포함하는 딕셔너리 동기화 방법.
  18. 하나 이상의 프로세서;
    상기 프로세서에 의하여 수행되는 컴퓨터 프로그램을 로드(load)하는 메모리; 및
    딕셔너리 동기화하는 컴퓨터 프로그램을 저장하는 스토리지를 포함하되,
    상기 컴퓨터 프로그램은,
    신규 청크 파일의 엔트리 정보 및 상기 엔트리 정보가 유효한지 여부를 표시하는 플래그 값을 송신 서버의 딕셔너리에 등록하는 오퍼레이션;
    상기 송신 서버의 임시 딕셔너리에 상기 신규 청크 파일의 엔트리 정보를 저장하는 오퍼레이션;
    상기 신규 청크 파일의 엔트리 정보를 수신 서버로 전송하는 오퍼레이션; 및
    상기 수신 서버의 딕셔너리에 상기 신규 청크 파일의 엔트리 정보가 등록되었다는 확인 신호가 수신되면, 상기 임시 딕셔너리에 저장된 상기 신규 청크 파일의 엔트리 정보를 삭제하는 오퍼레이션을 포함하는 서버.
  19. 하나 이상의 프로세서;
    상기 프로세서에 의하여 수행되는 컴퓨터 프로그램을 로드(load)하는 메모리; 및
    딕셔너리 동기화하는 컴퓨터 프로그램을 저장하는 스토리지를 포함하되,
    상기 컴퓨터 프로그램은,
    신규 청크 파일의 엔트리 정보 및 상기 엔트리 정보가 유효한지 여부를 표시하는 플래그 값을 송신 서버의 딕셔너리에 등록하는 오퍼레이션;
    상기 신규 청크 파일의 엔트리 정보를 수신 서버로 전송하는 오퍼레이션; 및
    상기 수신 서버의 딕셔너리에 상기 신규 청크 파일의 엔트리 정보가 등록되었다는 확인 신호가 수신되면, 상기 플래그 값을 변경하는 오퍼레이션을 포함하는 서버.
  20. 하나 이상의 프로세서;
    상기 프로세서에 의하여 수행되는 컴퓨터 프로그램을 로드(load)하는 메모리; 및
    딕셔너리 동기화하는 컴퓨터 프로그램을 저장하는 스토리지를 포함하되,
    상기 컴퓨터 프로그램은,
    신규 청크 파일의 엔트리 정보 및 상기 엔트리 정보가 유효한지 여부를 표시하는 플래그 값을 송신 서버의 딕셔너리에 등록하는 오퍼레이션;
    상기 신규 청크 파일의 엔트리 정보를 수신 서버로 전송하는 오퍼레이션;
    상기 수신 서버의 딕셔너리에 상기 신규 청크 파일의 엔트리 정보가 등록되었다는 확인 신호를 수신하는 오퍼레이션; 및
    상기 수신 서버와의 통신 세션이 종료되면, 상기 확인 신호가 수신된 신규 청크 파일의 플래그 값을 변경하는 오퍼레이션을 포함하는 서버.
  21. 하나 이상의 프로세서;
    상기 프로세서에 의하여 수행되는 컴퓨터 프로그램을 로드(load)하는 메모리; 및
    딕셔너리 동기화하는 컴퓨터 프로그램을 저장하는 스토리지를 포함하되,
    상기 컴퓨터 프로그램은,
    신규 청크 파일의 엔트리 정보 및 상기 엔트리 정보가 유효한지 여부를 표시하는 플래그 값을 송신 서버의 임시 딕셔너리에 저장하는 오퍼레이션;
    상기 신규 청크 파일의 엔트리 정보를 수신 서버로 전송하는 오퍼레이션;
    상기 수신 서버의 딕셔너리에 상기 신규 청크 파일의 엔트리 정보가 등록되었다는 확인 신호를 수신되면, 상기 임시 딕셔너리에 저장된 상기 플래그 값을 변경하는 오퍼레이션; 및
    상기 수신 서버와의 통신 세션이 종료되면, 상기 플래그 값이 변경된 상기 신규 청크 파일의 엔트리 정보를 상기 송신 서버의 딕셔너리에 등록하는 오퍼레이션을 포함하는 서버.
PCT/KR2015/014163 2015-10-22 2015-12-23 데이터 중복 제거의 딕셔너리 동기화 방법 WO2017069338A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020150147080A KR102284092B1 (ko) 2015-10-22 2015-10-22 데이터 중복 제거의 딕셔너리 동기화 방법
KR10-2015-0147080 2015-10-22

Publications (1)

Publication Number Publication Date
WO2017069338A1 true WO2017069338A1 (ko) 2017-04-27

Family

ID=58557568

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2015/014163 WO2017069338A1 (ko) 2015-10-22 2015-12-23 데이터 중복 제거의 딕셔너리 동기화 방법

Country Status (4)

Country Link
US (1) US20170116218A1 (ko)
KR (1) KR102284092B1 (ko)
CN (1) CN106612317A (ko)
WO (1) WO2017069338A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11734230B2 (en) * 2021-12-27 2023-08-22 Vmware, Inc. Traffic redundancy deduplication for blockchain recovery

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040025079A1 (en) * 2002-02-22 2004-02-05 Ananthan Srinivasan System and method for using a data replication service to manage a configuration repository
US20070233900A1 (en) * 1999-06-30 2007-10-04 Computer Sciences Corporation System and method for synchronizing copies of data in a computer system
KR20100066962A (ko) * 2008-12-10 2010-06-18 주식회사 케이티 정책관리시스템에서의 정책정보 동기화 방법
KR20110078564A (ko) * 2009-12-31 2011-07-07 단국대학교 산학협력단 멀티-호밍 기능을 제공하는 통신 프로토콜에 있어서의 패킷 왕복 시간 업데이트 방법 및 멀티-호밍 기능을 제공하는 통신 장치
US20140279901A1 (en) * 2013-03-12 2014-09-18 Nec Laboratories America, Inc. Mobile Data Synchronization

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101409614B (zh) * 2007-10-12 2011-04-13 华为技术有限公司 一种数据同步方法、系统和设备
US8937561B2 (en) 2008-11-17 2015-01-20 Canyon Ridge Resources, L.L.C. System and method for control of medical equipment using multiple wireless devices
KR20100124377A (ko) * 2009-05-19 2010-11-29 (주)지란지교소프트 웹하드서버 및 그 데이터 동기화 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070233900A1 (en) * 1999-06-30 2007-10-04 Computer Sciences Corporation System and method for synchronizing copies of data in a computer system
US20040025079A1 (en) * 2002-02-22 2004-02-05 Ananthan Srinivasan System and method for using a data replication service to manage a configuration repository
KR20100066962A (ko) * 2008-12-10 2010-06-18 주식회사 케이티 정책관리시스템에서의 정책정보 동기화 방법
KR20110078564A (ko) * 2009-12-31 2011-07-07 단국대학교 산학협력단 멀티-호밍 기능을 제공하는 통신 프로토콜에 있어서의 패킷 왕복 시간 업데이트 방법 및 멀티-호밍 기능을 제공하는 통신 장치
US20140279901A1 (en) * 2013-03-12 2014-09-18 Nec Laboratories America, Inc. Mobile Data Synchronization

Also Published As

Publication number Publication date
KR20170046901A (ko) 2017-05-04
US20170116218A1 (en) 2017-04-27
CN106612317A (zh) 2017-05-03
KR102284092B1 (ko) 2021-07-29

Similar Documents

Publication Publication Date Title
WO2013183967A1 (en) Method and apparatus for handover in mobile content centric network
EP3039564A1 (en) Method for sharing media data and electronic device thereof
WO2014077533A1 (en) Base station and a plurality of member nodes for transmitting and receiving network coding based multicast traffic
WO2014193037A1 (ko) 맵리듀스 연산 가속 시스템 및 방법
WO2012050293A1 (en) Method and apparatus for sharing contents using information of group change in content oriented network environment
WO2020233073A1 (zh) 区块链环境检测方法、设备、装置及存储介质
WO2011043561A2 (en) Method and apparatus for configuring radio access functionality of a wireless communication unit
WO2015199271A1 (en) Method and system for sharing files over p2p
WO2021085984A1 (ko) 복수의 upf 인스턴스들을 포함하는 upf 노드가 qos 모니터링을 수행하는 방법 및 상기 방법을 수행하는 upf 노드
WO2021072881A1 (zh) 基于对象存储的请求处理方法、装置、设备及存储介质
WO2014035194A1 (en) Push message service system and method
WO2019235813A1 (en) Electronic device supporting multiple wireless communication protocols and method therefor
WO2020077832A1 (zh) 云桌面的访问方法、装置、设备及存储介质
WO2012070900A2 (ko) 개인 장치간 이벤트 및 데이터 공유 시스템
WO2017069338A1 (ko) 데이터 중복 제거의 딕셔너리 동기화 방법
WO2016195158A1 (ko) 오버레이 sdn 망의 브릿지 도메인 확장 방법
EP4104475A1 (en) Method and apparatus for managing security context related to ue
WO2021012487A1 (zh) 跨系统的信息同步方法、用户设备、存储介质及装置
EP2510692A2 (en) Method and apparatus for transmitting video contents compressed by codec
WO2016114476A1 (en) Apparatus and method for volte session managemet in 4g mobile network
WO2016144006A1 (ko) 복수의 통신 선로를 통해 데이터 재전송을 수행하는 일방향 데이터 송신/수신 장치 및 그것을 이용하는 데이터 전송 방법
WO2014196709A1 (ko) 클라우드 서비스 시스템, 클라우드 서비스 장치 및 이를 이용한 방법
WO2018186685A1 (en) Electronic apparatus and method for control thereof
WO2018230764A1 (ko) 영상처리장치, 인증장치 및 영상처리장치의 사용자 인증 방법
WO2019009585A1 (ko) 저전력 모드를 위한 cpu측과 hmc측의 hmc 컨트롤 장치 및 방법과 hmc 컨트롤 장치의 전력 관리 방법

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

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

Country of ref document: EP

Kind code of ref document: A1