KR20240056278A - Method for data recovery and computing apparatus using the same - Google Patents
Method for data recovery and computing apparatus using the same Download PDFInfo
- Publication number
- KR20240056278A KR20240056278A KR1020220136713A KR20220136713A KR20240056278A KR 20240056278 A KR20240056278 A KR 20240056278A KR 1020220136713 A KR1020220136713 A KR 1020220136713A KR 20220136713 A KR20220136713 A KR 20220136713A KR 20240056278 A KR20240056278 A KR 20240056278A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- time
- information
- history information
- application
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000011084 recovery Methods 0.000 title claims abstract description 41
- 238000001514 detection method Methods 0.000 claims abstract description 50
- 238000004590 computer program Methods 0.000 claims 1
- 238000007726 management method Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000012358 sourcing Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1451—Management of the data involved in backup or backup restore by selection of backup contents
-
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1453—Management of the data involved in backup or backup restore using de-duplication of the data
-
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
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
본 발명은 데이터 복구 방법 및 이를 이용하는 컴퓨팅 장치에 관한 것으로, 본 발명의 일 실시예에 의한 데이터 복구 방법은 어플리케이션의 실행에 따른 데이터의 변경이 감지되면, 각각의 감지시점에서의 데이터들 중에서 중복되는 데이터는 제외하고 기록하여, 히스토리 정보를 생성하는 단계; 및 특정시점을 입력받으면, 상기 히스토리 정보를 기반으로 상기 어플리케이션의 상태를 상기 특정시점으로 되돌리는 단계를 포함할 수 있다.The present invention relates to a data recovery method and a computing device using the same. The data recovery method according to an embodiment of the present invention is a method of recovering data from data at each detection point when a change in data is detected due to execution of an application. Excluding and recording data to generate history information; And when a specific point in time is input, it may include returning the state of the application to the specific point in time based on the history information.
Description
본 발명은 특정 시점으로 데이터를 복구하거나 되돌릴 수 있는 데이터 복구 방법 및 이를 이용하는 컴퓨팅 장치에 관한 것이다.The present invention relates to a data recovery method that can restore or revert data to a specific point in time, and a computing device using the same.
문서편집기 등의 어플리케이션의 경우, 사용자의 입력을 되돌리는 실행취소(undo)나, 다시 실행하는 복구(redo) 기능을 지원할 수 있다. 즉, 어플리케이션의 데이터에 변경이 발생한 시점마다 데이터를 저장함으로써, 원하는 시점으로 어플리케이션의 상태를 복구하도록 할 수 있다. In the case of applications such as document editors, they can support undo (undo) functions to return user input or recovery (redo) functions to redo them. In other words, by saving the data whenever a change occurs in the application data, the state of the application can be restored to a desired point in time.
종래에는 각각의 시점마다 전체 데이터들을 저장하는 스냅샷(snapshot) 방식이나, 전체 데이터를 저장하는 대신에 각각의 데이터들에 적용된 각각의 연산들을 저장하는 이벤트 소싱(event sourcing) 방식을 활용하였다.Conventionally, a snapshot method was used to store all data at each point in time, or an event sourcing method was used to store each operation applied to each data instead of storing all data.
그러나, 스냅샷 방식의 경우 각각의 시점마다 전체 어플리케이션의 데이터들을 저장해야하므로 메모리 소모가 크게 발생할 수 있다. 또한, 실행취소(undo)나 재실행(redo) 수행시 대량의 데이터 처리가 필요하므로, 처리시간이 오래걸리는 등의 문제점이 존재한다. However, in the case of the snapshot method, data of the entire application must be stored at each point in time, which can result in significant memory consumption. In addition, since a large amount of data needs to be processed when performing undo or redo, there are problems such as long processing time.
또한, 이벤트 소싱 방식의 경우에는, 현재 시점을 기준으로 저장된 연산의 반대 연산, 즉 역연산을 수행하거나, 처음부터 원하는 시점까지의 모든 연산을 다시 실행할 필요가 있다. 그러나, 이 경우 모든 연산에 대해 역연산을 미리 정의해야하는 불편함이 존재하며, 처음부터 원하는 시점까지의 연산을 다시 실행하는 경우에는 연산량 증가 및 그에 따른 처리시간 증가 등의 문제점이 존재한다.Additionally, in the case of the event sourcing method, it is necessary to perform the opposite operation of the stored operation based on the current time, that is, perform an inverse operation, or re-execute all operations from the beginning to the desired time. However, in this case, there is the inconvenience of having to define inverse operations in advance for all operations, and when re-executing operations from the beginning to a desired point, there are problems such as an increase in the amount of calculations and a corresponding increase in processing time.
본 발명은 히스토리 정보를 기반으로 어플리케이션의 상태를 특정시점으로 복구할 수 있는, 데이터 복구 방법 및 이를 이용하는 컴퓨팅 장치를 제공하고자 한다.The present invention seeks to provide a data recovery method and a computing device using the same that can restore the state of an application to a specific point in time based on history information.
본 발명은 각각의 감지시점에 저장하는 데이터의 양을 최소화할 수 있는, 데이터 복구 방법 및 이를 이용하는 컴퓨팅 장치를 제공하고자 한다.The present invention seeks to provide a data recovery method and a computing device using the same that can minimize the amount of data stored at each detection point.
본 발명은 상대적으로 소량인 변경된 데이터를 활용하여 데이터 복구를 수행할 수 있는 데이터 복구 방법 및 이를 이용하는 컴퓨팅 장치를 제공하고자 한다.The present invention seeks to provide a data recovery method capable of performing data recovery using a relatively small amount of changed data and a computing device using the same.
본 발명의 일 실시예에 의한 데이터 복구 방법은, 컴퓨팅 장치 내 프로세서에 의해 수행되는, 데이터 복구 방법에 관한 것으로, 어플리케이션의 실행에 따른 데이터의 변경이 감지되면, 각각의 감지시점에서의 데이터들 중에서 중복되는 데이터는 제외하고 기록하여, 히스토리 정보를 생성하는 단계; 및 특정시점을 입력받으면, 상기 히스토리 정보를 기반으로 상기 어플리케이션의 상태를 상기 특정시점으로 되돌리는 단계를 포함할 수 있다.The data recovery method according to an embodiment of the present invention relates to a data recovery method performed by a processor in a computing device. When a change in data due to execution of an application is detected, among the data at each detection point, Generating history information by excluding and recording duplicate data; And when a specific point in time is input, it may include returning the state of the application to the specific point in time based on the history information.
본 발명의 일 실시예에 의한 컴퓨팅 장치는, 프로세서를 포함하는 컴퓨팅 장치로서, 상기 프로세서는, 어플리케이션의 실행에 따른 데이터의 변경이 감지되면, 각각의 감지시점에서의 데이터들중에서 중복되는 데이터는 제외하고 기록하여 히스토리 정보를 생성하고, 특정시점을 입력받으면, 상기 히스토리 정보를 기반으로 상기 어플리케이션의 상태를 상기 특정시점으로 되돌리는 것을 수행할 수 있다.A computing device according to an embodiment of the present invention is a computing device including a processor. When a change in data due to execution of an application is detected, the processor excludes duplicate data from the data at each detection point. and records to generate history information, and when a specific point in time is input, the state of the application can be returned to the specific point in time based on the history information.
덧붙여 상기한 과제의 해결수단은, 본 발명의 특징을 모두 열거한 것이 아니다. 본 발명의 다양한 특징과 그에 따른 장점과 효과는 아래의 구체적인 실시형태를 참조하여 보다 상세하게 이해될 수 있을 것이다.Additionally, the means for solving the above problems do not enumerate all the features of the present invention. The various features of the present invention and the resulting advantages and effects can be understood in more detail by referring to the specific embodiments below.
본 발명의 일 실시예에 의한 데이터 복구 방법 및 이를 이용하는 컴퓨팅 장치에 의하면, 히스토리 정보 생성시 해당 어플리케이션의 전체 데이터들을 중복하여 저장하지 않고, 감지 시점에서 변경된 데이터만을 추가로 저장하므로, 히스토리 정보 생성을 위한 메모리 소모를 최소화할 수 있다. According to the data recovery method according to an embodiment of the present invention and the computing device using the same, when generating history information, the entire data of the application is not stored redundantly, but only the data that has changed at the time of detection is additionally stored, thereby preventing the generation of history information. Memory consumption can be minimized.
또한, 본 발명의 일 실시예에 의한 데이터 복구 방법 및 이를 이용하는 컴퓨팅 장치에 의하면, 데이터 복구시에도 상대적으로 소량인 변경된 데이터만을 처리하면 되므로, 처리속도 면에서도 성능을 향상시키는 것이 가능하다.In addition, according to the data recovery method and the computing device using the same according to an embodiment of the present invention, only a relatively small amount of changed data needs to be processed during data recovery, so it is possible to improve performance in terms of processing speed.
다만, 본 발명의 실시예들에 따른 데이터 복구 방법 및 이를 이용하는 컴퓨팅 장치가 달성할 수 있는 효과는 이상에서 언급한 것들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.However, the effects that can be achieved by the data recovery method and the computing device using the same according to the embodiments of the present invention are not limited to those mentioned above, and other effects not mentioned can be understood from the description below. It will be clearly understandable to those with ordinary knowledge in the technical field.
도1은 본 발명의 일 실시예에 의한 컴퓨팅 장치를 나타내는 블록도이다.
도2는 본 발명의 일 실시예에 의한 히스토리 정보를 나타내는 예시도이다.
도3은 본 발명의 일 실시예에 의한 히스토리 정보를 이용하여 T5 시점에서 T4 시점으로의 데이터 복구를 나타내는 예시도이다.
도4는 본 발명의 일 실시예에 의한 히스토리 정보를 이용하여 T3 시점에서 T4 시점으로의 데이터 복구를 나타내는 예시도이다.
도5는 본 발명의 다른 실시예에 의한 컴퓨팅 장치를 나타내는 블록도이다.
도6은 본 발명의 일 실시예에 의한 데이터 복구 방법을 나타내는 순서도이다.1 is a block diagram showing a computing device according to an embodiment of the present invention.
Figure 2 is an exemplary diagram showing history information according to an embodiment of the present invention.
Figure 3 is an exemplary diagram showing data recovery from time T 5 to time T 4 using history information according to an embodiment of the present invention.
Figure 4 is an exemplary diagram showing data recovery from time T 3 to time T 4 using history information according to an embodiment of the present invention.
Figure 5 is a block diagram showing a computing device according to another embodiment of the present invention.
Figure 6 is a flowchart showing a data recovery method according to an embodiment of the present invention.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 즉, 본 발명에서 사용되는 '부'라는 용어는 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '부'는 어떤 역할들을 수행한다. 그렇지만 '부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 '부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '부'들로 결합되거나 추가적인 구성요소들과 '부'들로 더 분리될 수 있다.Hereinafter, embodiments disclosed in the present specification will be described in detail with reference to the attached drawings. However, identical or similar components will be assigned the same reference numbers regardless of reference numerals, and duplicate descriptions thereof will be omitted. The suffixes “module” and “part” for components used in the following description are given or used interchangeably only for the ease of preparing the specification, and do not have distinct meanings or roles in themselves. That is, the term 'unit' used in the present invention refers to a hardware component such as software, FPGA, or ASIC, and the 'unit' performs certain roles. However, 'wealth' is not limited to software or hardware. The 'part' may be configured to reside on an addressable storage medium and may be configured to run on one or more processors. Therefore, as an example, 'part' refers to components such as software components, object-oriented software components, class components and task components, processes, functions, properties, procedures, Includes subroutines, segments of program code, drivers, firmware, microcode, circuits, data, databases, data structures, tables, arrays, and variables. The functionality provided within the components and 'parts' may be combined into a smaller number of components and 'parts' or may be further separated into additional components and 'parts'.
또한, 본 명세서에 개시된 실시 예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시 예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시 예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Additionally, in describing the embodiments disclosed in this specification, if it is determined that detailed descriptions of related known technologies may obscure the gist of the embodiments disclosed in this specification, the detailed descriptions will be omitted. In addition, the attached drawings are only for easy understanding of the embodiments disclosed in this specification, and the technical idea disclosed in this specification is not limited by the attached drawings, and all changes included in the spirit and technical scope of the present invention are not limited. , should be understood to include equivalents or substitutes.
도1은 본 발명의 일 실시예에 의한 컴퓨팅 장치를 나타내는 블록도이다.1 is a block diagram showing a computing device according to an embodiment of the present invention.
도1을 참조하면, 본 발명의 일 실시예에 의한 컴퓨팅 장치는, 어플리케이션(A), 메모리(B), 히스토리 관리부(110) 및 데이터 복구부(120)를 포함할 수 있다. Referring to Figure 1, a computing device according to an embodiment of the present invention may include an application (A), a memory (B), a
이하 도1을 참조하여 본 발명의 일 실시예에 의한 컴퓨팅 장치를 설명한다.Hereinafter, a computing device according to an embodiment of the present invention will be described with reference to FIG. 1.
어플리케이션(A)은 컴퓨팅 장치(100) 내에 설치될 수 있으며, 컴퓨팅 장치 내 메모리 상에 실행 파일 등이 로드되어, 프로세서에 의해 실행될 수 있다. 어플리케이션(A)은 컴퓨팅 장치(100) 내에 설치되어 실행될 수 있는 것이면 어떠한 것도 해당할 수 있으며, 실시예에 따라서는 문서편집기(text editor)가 어플리케이션(A)에 해당할 수 있다.The application (A) may be installed in the
컴퓨팅 장치(100) 내에서 어플리케이션(A)이 실행되면, 컴퓨팅 장치(100)는 메모리(M) 상에 해당 어플리케이션(A)을 위한 전용 공간을 할당할 수 있다. 여기서, 어플리케이션(A)의 실행에 따라 생성된 데이터들은 해당 전용 공간 내에 저장될 수 있다.When an application (A) is executed within the
사용자는 컴퓨팅 장치(100)를 이용하여 어플리케이션(A)을 실행할 수 있으며, 어플리케이션(A)은 전용 공간 내 저장된 데이터를 읽거나(read), 쓰는(write) 등의 동작을 수행할 수 있다.The user can execute the application (A) using the
예를 들어, 어플리케이션(A)은 문서편집기일 수 있으며, 사용자는 문서편집기 내에서 문자나 기호, 숫자, 도형, 표 등 다양한 객체들을 입력하거나 삭제하는 등 다양한 작업을 수행할 수 있다. 이 경우, 사용자가 수행한 작업들은 메모리(A) 내 전용 공간에 기록되고, 그에 따라 사용자가 작성한 문서가 저장될 수 있다. For example, the application (A) may be a document editor, and the user can perform various tasks within the document editor, such as entering or deleting various objects such as letters, symbols, numbers, shapes, and tables. In this case, the tasks performed by the user are recorded in a dedicated space within the memory A, and documents written by the user can be stored accordingly.
여기서, 사용자는 어떤 문장을 작성한 후 삭제하였다가, 삭제한 문장을 되돌리고자 하거나, 삭제한 문장을 되돌린 이후 삭제하는 동작을 다시 수행하고자 하는 경우 등이 있을 수 있다. 이와 같이 사용자의 입력을 되돌리는 것을 실행취소(undo), 다시 실행하도록 하는 것을 재실행(redo)이라고 하며, 이를 위해서는 사용자가 입력한 내용들을 문서편집기가 각각의 입력순서에 따라 미리 저장하고 있어야 한다. 즉, 어플리케이션의 데이터에 변경이 발생한 시점마다 데이터를 저장해 두면, 원하는 시점으로 어플리케이션의 상태를 복구하는 것이 가능하다. 이를 통하여, 특정 작업을 수행하기 이전 상태로 어플리케이션을 복구하거나, 다시 해당 특정 작업을 수행한 원래의 상태로 돌아가는 것도 가능하다.Here, there may be a case where the user writes a sentence and then deletes it, and then wants to return the deleted sentence, or wants to perform the deletion operation again after returning the deleted sentence. In this way, reverting the user's input is called undo, and redoing it again is called redo. To do this, the document editor must store the contents entered by the user in advance according to the order of each input. In other words, if you save the data every time a change occurs in the application data, it is possible to restore the application state to the desired point in time. Through this, it is possible to restore the application to the state before performing a specific task, or to return to the original state after performing the specific task.
종래에는 각각의 시점마다 전체 데이터들을 저장하는 스냅샷(snapshot) 방식이나, 전체 데이터를 저장하는 대신에 각각의 데이터들에 적용된 각각의 연산들을 저장하는 이벤트 소싱(event sourcing) 방식을 활용하였다.Conventionally, a snapshot method was used to store all data at each point in time, or an event sourcing method was used to store each operation applied to each data instead of storing all data.
그러나, 스냅샷 방식의 경우 각각의 시점에서의 전체 어플리케이션의 데이터를 저장해야 하므로 메모리 소모가 크고, 저장 및 복구시 대량의 데이터를 처리해야할 수 있으므로, 실행취소나 재실행 수행시 처리시간이 오래걸리는 등의 문제점이 존재하였다. However, in the case of the snapshot method, the data of the entire application at each point must be saved, so memory consumption is large, and a large amount of data may need to be processed during storage and recovery, so undo or redo takes a long time, etc. There was a problem.
또한, 이벤트 소싱 방식의 경우에는, 현재 시점을 기준으로 저장된 연산의 반대 연산, 즉 역연산을 수행하여 이전 상태로 복구하는 역연산 방식과, 저장된 연산들을 처음부터 다시 실행하여 원하는 시점으로 복구하는 리플레이 방식이 존재한다. 여기서, 역연산 방식의 경우 모든 연산에 대한 역연산을 미리 정의해야하는 점에서 어려움이 있고, 리플레이 방식의 경우 처음부터 원하는 시점까지의 모든 연산을 다시 실행해야하므로, 연산량이 증가하고 처리속도가 늦어지는 등의 문제점이 존재하였다.Additionally, in the case of the event sourcing method, there is an inverse operation method that restores the previous state by performing the opposite operation of the stored operation based on the current point in time, that is, an inverse operation, and a replay method that restores the desired point in time by executing the stored operations again from the beginning. There is a way. Here, in the case of the inverse calculation method, there is difficulty in that the inverse calculation for all operations must be defined in advance, and in the case of the replay method, all calculations from the beginning to the desired point must be re-executed, which increases the amount of calculation and slows down the processing speed. There were problems such as:
반면에, 본 발명의 일 실시예에 의한 컴퓨팅 장치(100)에 의하면, 전체 어플리케이션의 데이터를 저장하지 않고, 감지 시점에서 변경된 데이터만을 추가로 저장하므로, 메모리 소모를 적게할 수 있다. 또한, 실행취소나 재실행 수행시 상대적으로 소량인 변경된 데이터만을 처리하면 되므로, 처리속도 면에서도 성능을 향상시키는 것이 가능하다. 이외에도, 이벤트 소싱방식과 달리, 데이터 복구를 위한 역연산을 수행하거나, 특정 시점까지의 연산을 처음부터 다시 수행하지 않으므로, 그에 따른 다양한 문제점들을 해결할 수 있다.On the other hand, according to the
구체적으로, 히스토리 관리부(110)는 어플리케이션(A)의 실행에 따른 데이터의 변경을 감지할 수 있으며, 각각의 감지시점에서의 데이터들을 기록하여 히스토리 정보를 생성할 수 있다.Specifically, the
여기서, 히스토리 관리부(110)는 어플리케이션(A)의 데이터 변경이 발생한 시점마다 메모리(M)를 확인하여 데이터의 변경을 감지하거나, 일정한 시간 간격으로 메모리(M)를 확인하여 해당 어플리케이션(A)의 데이터의 변경을 감지하도록 할 수 있다. 예를 들어, 사용자가 문서 편집기 어플리케이션 상에서 문자를 입력하면, 해당 문자의 입력에 따른 메모리(M)의 변경을 감지하거나, 문서 편집기 어플리케이션의 실행 후 일정한 시간 간격(예를 들어, 2-3초 간격)으로 메모리(M)를 확인하여 데이터의 변경여부를 감지하도록 하는 것도 가능하다.Here, the
또한, 히스토리 관리부(110)는 각각의 감지시점에서의 데이터들을 기록하여 히스토리 정보를 생성할 수 있다. 여기서, 히스토리 정보에는 각각의 감지시점에 대한 감지시점정보와, 해당 감지시점에서의 데이터 또는 데이터가 저장된 메모리 주소가 기록된 데이터 정보가 매칭되어 저장될 수 있다. 실시예에 따라서는, 별도의 스택을 설정한 후, 각각의 감지시점정보와 그때의 데이터 정보를 스택 내에 저장하여 히스토리 정보를 생성하는 것도 가능하다. 문서편집기의 경우, 사용자가 키보드 등으로 직접 입력한 문자나 기호 등이 데이터로 저장될 수 있으며, 실시예에 따라서는 사용자가 입력한 문자나 기호 등의 데이터에 관련된 메타데이터 등도 추가로 저장될 수 있다. 또한, 어플리케이션(A)의 종류에 따라서는, 사용자가 생성한 이미지나, 영상, 음성, 문서, 프로그램 파일 등도 데이터로 저장될 수 있다.Additionally, the
구체적으로, 히스토리 관리부(110)는 새로운 히스토리 정보(H)를 추가하기 위하여, 직전 감지시점의 데이터 정보와 비교할 수 있으며, 새롭게 추가되는 신규 데이터가 존재하면, 신규 데이터를 현재 감지시점의 데이터 정보 내에 기록할 수 있다.Specifically, the
도2를 참조하면, T0 시점에는 어플리케이션(A)의 데이터가 없으므로, 데이터 정보 내에 아무런 데이터가 저장되어 있지 않을 수 있다. 이후, 메모리(M) 상에 D0가 추가되면, 히스토리 관리부(110)는 T1 시점에 T0 시점의 데이터 정보와 비교할 수 있다. 여기서, T1 시점에 D0에 해당하는 신규 데이터가 추가되었으므로, T1 시점의 데이터 정보 상에 데이터 D0를 기록할 수 있다. Referring to Figure 2, since there is no data of the application (A) at the time T 0 , no data may be stored in the data information. Thereafter, when D 0 is added to the memory (M), the
한편, 직전 감지시점의 데이터 정보와의 비교결과, 중복되는 데이터들이 존재하는 경우에는, 히스토리 관리부(110)가 중복되는 데이터들을 대신하여, 중복되는 데이터들이 저장된 메모리 주소를 현재 감지시점의 데이터 정보 내에 기록할 수 있다. Meanwhile, as a result of comparison with the data information at the previous detection time, if overlapping data exists, the
즉, 도2를 참조하면, T1 시점 이후에 메모리(M) 상에 D1이 추가될 수 있으며, 히스토리 관리부(110)는 T2 시점에 T1 시점의 데이터 정보와 비교할 수 있다. 여기서, T2 시점에는 D1에 해당하는 신규 데이터가 추가되었으므로, T2 시점의 데이터 정보 상에 데이터 D1을 추가로 기록할 수 있다. 다만, D0는 T1 시점에 포함된 데이터와 중복된 데이터에 해당하므로, T2 시점의 데이터 정보 내에 D0를 중복하여 저장하지 않을 수 있다. 대신에, D0 데이터가 저장된 메모리 주소를 저장함으로써 D0에 대한 중복 저장을 방지할 수 있다. 즉, D0를 T1 시점과 T2 시점의 데이터 정보 내 각각 저장하는 중복 저장을 피할 수 있으므로, 종래의 스냅샷 방식과 비교할 때, 메모리의 저장공간 낭비를 방지할 수 있다.That is, referring to FIG. 2, D 1 may be added to the memory M after time T 1 , and the
또한, 히스토리 관리부(110)는, 직전 감지시점의 데이터 정보와의 비교결과 수정된 데이터가 존재하면, 기존의 데이터를 수정된 데이터로 치환하여, 현재 감지시점의 데이터 정보 내에 기록할 수 있다. 즉, 도2를 참조하면, T3 시점에 새로운 데이터 D2를 추가한 이후에, T4 시점에 D2를 D2'로 수정한 경우가 있을 수 있다. 여기서, 히스토리 관리부(110)는 T3 시점의 데이터 정보와 T4 시점의 데이터 정보를 비교할 수 있으며, T3 시점의 데이터 정보에서 D2를 D2'로 치환하여 기록할 수 있다. 즉, T4 시점에서 D0, D1은 중복된 데이터에 해당하므로 메모리 주소로 저장하고, D2'은 D2를 수정한 새로운 데이터에 해당하므로 D2를 대신하여 D2'의 데이터를 저장할 수 있다.Additionally, if modified data exists as a result of comparison with the data information at the previous detection time, the
한편, 직전 감지시점의 데이터 정보와 비교하여 삭제된 데이터가 존재하면, 히스토리 관리부(110)는 삭제된 데이터에 대응하는 데이터 또는 메모리 주소를 데이터 정보에서 제거할 수 있다. 즉, 도2를 참조하면 T5 시점에 D3가 추가되면 데이터 정보 내에 D3를 포함시킬 수 있으며, 이후 T6 시점에서 D3가 삭제되면 T6 시점의 데이터 정보에서 D3를 삭제할 수 있다. 이 경우, T6 시점의 데이터 정보 내에는 각각의 D0, D1, D2'에 대한 메모리 주소들이 저장될 수 있다. 또한, T7 시점에 D2'가 삭제되면, 히스토리 관리부(110)는 D2'의 메모리 주소를 삭제하여 T7 시점의 데이터 정보를 생성할 수 있다.Meanwhile, if deleted data exists compared to the data information at the previous detection time, the
이와 같이, 히스토리 관리부(110)는 각각의 감지시점에 직전의 감지시점에서의 데이터 정보와 현재 메모리에 저장된 데이터들을 비교하여, 변경된 사항들이 반영되도록 데이터 정보를 생성할 수 있다. 이때, 각각의 시점에서의 데이터 전체를 저장하지 않고, 중복되는 데이터들의 경우 해당 데이터가 저장된 메모리 주소를 대신하여 저장하므로, 히스토리 정보 내에 저장되는 데이터의 양을 최소화할 수 있다.In this way, the
데이터 복구부(120)는 히스토리 관리부(110)에서 생성한 히스토리 정보를 기반으로 해당 어플리케이션(A) 내의 실행에 대한 실행취소 또는 재실행을 수행할 수 있다. 예를 들어, 데이터 복구부(120)는 사용자 등으로부터 특정시점을 입력받을 수 있으며, 이 경우 히스토리 정보를 기반으로 어플리케이션(A)의 상태를 특정시점으로 되돌릴 수 있다. 즉, 데이터 복구부(120)는 특정시점과 현재 감지시점의 데이터정보를 비교할 수 있으며, 데이터정보 사이의 차이를 반영하여, 어플리케이션의 상태를 특정시점으로 되돌릴 수 있다. 이 경우, 데이터 정보 사이의 차이를 이용하여 특정시점으로 이동할 수 있으므로, 상대적으로 적은 양의 데이터 처리를 통하여 실행취소 또는 재실행 기능을 구현하는 것이 가능하다.The
예를 들어, 도3에 도시한 바와 같이, 실행취소를 수행하여 T5 시점에서 T4 시점으로 되돌리는 경우, 데이터 복구부(120)는 T5 시점의 데이터 정보와 T4 시점의 데이터 정보를 비교할 수 있다. 이 경우, T4 시점에는 T5 시점과 달리 D3가 없음을 확인할 수 있으며, 데이터 복구부(120)는 D3를 제거함으로써 어플리케이션의 상태를 T4 시점으로 되돌릴 수 있다. 여기서, 중복되는 데이터들의 경우, 데이터 정보에 기록된 메모리 주소를 비교하여 신속하게 확인할 수 있으므로, 빠른 시간 내에 T4시점과 T5 시점 사이의 차이를 도출하는 것이 가능하다.For example, as shown in FIG. 3, when undo is performed to return from time T 5 to time T 4 , the
또한, 도4에 도시한 바와 같이, 재실행을 통하여 T3 시점에서 T4 시점으로 이동하고자 하는 경우도 있을 수 있다. 이때, 데이터 복구부(120)는 T4 시점의 데이터 정보와 T3 시점의 데이터 정보를 비교할 수 있다. 이 경우, T4 시점의 D2' 데이터와 T3 시점의 D2 데이터가 상이함을 확인할 수 있다. 따라서, 데이터 복구부(120)는 T3 시점의 D2 데이터는 제거하고, D2' 데이터를 추가함으로써, 어플리케이션의 상태를 T4 시점으로 변경할 수 있다.Additionally, as shown in FIG. 4, there may be cases where it is desired to move from time T 3 to time T 4 through re-execution. At this time, the
여기서, 도3 및 도4에 도시한 바와 같이, 히스토리 정보 내 T4 시점에서의 데이터 정보가 저장되어 있을 수 있다. 따라서, 실행취소를 통하여 T5 시점에서 T4 시점으로 되돌리거나, 재실행을 통하여 T3 시점에서 T4 시점으로 이동하고자 하는 경우, T5 시점이나 T3 시점과의 데이터 정보 비교없이, T4 시점의 데이터 정보만으로 데이터를 로드하여 T4 시점으로 이동하는 것도 가능하다. 다만, 이 경우 T4 시점에서의 데이터 전체를 로드하여야 하므로, 처리해야하는 데이터의 양이 증가하게 되고, 그에 따라 처리속도가 느려지는 등의 문제가 발생할 수 있다. 따라서, 데이터 복구부(120)는 각각의 시점에서의 데이터 정보들을 비교한 후, 차이나는 부분만을 반영하도록 함으로써, 처리해야하는 데이터의 양을 줄일 수 있으며, 그에 따라 실행취소나 재실행의 처리속도를 향상시킬 수 있다.Here, as shown in FIGS. 3 and 4, data information at time T4 may be stored in the history information. Therefore, if you want to return from T5 to T4 through undo, or move from T3 to T4 through re-execution, load the data only with the data information at T4 without comparing the data with T5 or T3. It is also possible to move to point T4. However, in this case, since the entire data at time T4 must be loaded, the amount of data to be processed increases, which may cause problems such as slower processing speed. Therefore, the
도5는 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 환경(10)을 설명하기 위한 블록도이다. 도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술된 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.Figure 5 is a block diagram illustrating a
도시된 컴퓨팅 환경(10)은 컴퓨팅 장치(12)를 포함한다. 일 실시예에서, 컴퓨팅 장치(12)는 데이터 복구를 위한 컴퓨팅 장치(100)일 수 있다.The illustrated
컴퓨팅 장치(12)는 적어도 하나의 프로세서(14), 컴퓨터 판독 가능 저장 매체(16) 및 통신 버스(18)를 포함한다. 프로세서(14)는 컴퓨팅 장치(12)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(14)는 컴퓨터 판독 가능 저장 매체(16)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 상기 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(14)에 의해 실행되는 경우 컴퓨팅 장치(12)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.Computing device 12 includes at least one
컴퓨터 판독 가능 저장 매체(16)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능 저장 매체(16)에 저장된 프로그램(20)은 프로세서(14)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능 저장 매체(16)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 컴퓨팅 장치(12)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.Computer-
통신 버스(18)는 프로세서(14), 컴퓨터 판독 가능 저장 매체(16)를 포함하여 컴퓨팅 장치(12)의 다른 다양한 컴포넌트들을 상호 연결한다.
컴퓨팅 장치(12)는 또한 하나 이상의 입출력 장치(24)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(22) 및 하나 이상의 네트워크 통신 인터페이스(26)를 포함할 수 있다. 입출력 인터페이스(22) 및 네트워크 통신 인터페이스(26)는 통신 버스(18)에 연결된다. 입출력 장치(24)는 입출력 인터페이스(22)를 통해 컴퓨팅 장치(12)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치(24)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(24)는 컴퓨팅 장치(12)를 구성하는 일 컴포넌트로서 컴퓨팅 장치(12)의 내부에 포함될 수도 있고, 컴퓨팅 장치(12)와는 구별되는 별개의 장치로 컴퓨팅 장치(12)와 연결될 수도 있다.Computing device 12 may also include one or more input/
도6은 본 발명의 일 실시예에 의한 데이터 복구 방법을 나타내는 순서도이다. 여기서, 도6의 각 단계들은 컴퓨팅 장치에 의하여 수행될 수 있다.Figure 6 is a flowchart showing a data recovery method according to an embodiment of the present invention. Here, each step of FIG. 6 may be performed by a computing device.
도6을 참조하면, 컴퓨팅 장치는 어플리케이션의 실행에 따른 데이터의 변경이 감지되면, 각각의 감지시점에서의 데이터을 기록하여, 히스토리 정보를 생성할 수 있다(S10). 여기서, 컴퓨팅 장치는 어플리케이션의 데이터 변경이 발생한 시점마다 메모리를 확인하거나, 일정한 시간 간격으로 메모리를 확인하여 해당 어플리케이션의 데이터의 변경을 감지하도록 할 수 있다. 예를 들어, 문서 편집기 어플리케이션의 경우, 사용자의 문자 입력시 메모리의 변경을 감지하거나, 문서 편집기 어플리케이션의 실행 후 일정한 시간 간격(예를 들어, 2-3초 간격)으로 메모리를 확인하도록 할 수 있다.Referring to Figure 6, when a change in data due to the execution of an application is detected, the computing device may record the data at each detection point and generate history information (S10). Here, the computing device can check the memory every time a change in data of the application occurs, or check the memory at regular time intervals to detect a change in the data of the application. For example, in the case of a text editor application, changes in memory can be detected when the user inputs text, or the memory can be checked at regular time intervals (for example, every 2-3 seconds) after running the text editor application. .
또한, 컴퓨팅 장치는 각각의 감지시점에서의 데이터들을 기록하여 히스토리 정보를 생성할 수 있다. 여기서, 히스토리 정보에는 각각의 감지시점에 대한 감지시점정보와, 해당 감지시점에서의 어플리케이션 데이터를 나타내는 데이터 정보가 매칭되어 순차적으로 포함될 수 있다. 데이터 정보에는 해당 감지시점에서 추가, 삭제, 수정된 데이터가 포함될 수 있으며, 중복되는 데이터들이 존재하는 경우에는 해당 데이터가 저장된 메모리 주소가 대신 포함될 수 있다.Additionally, the computing device can generate history information by recording data at each detection point. Here, the history information may sequentially include detection time information for each detection time and data information representing application data at the corresponding detection time. Data information may include data added, deleted, or modified at the relevant detection point, and if overlapping data exists, the memory address where the data is stored may be included instead.
구체적으로, 컴퓨팅 장치는 새로운 히스토리 정보를 추가하기 위하여, 직전 감지시점의 데이터 정보와 비교할 수 있으며, 새롭게 추가되는 신규 데이터가 존재하면, 신규 데이터를 현재 감지시점의 데이터 정보 내에 기록할 수 있다. 여기서, 직전 감지시점의 데이터 정보와의 비교결과, 중복되는 데이터들이 존재하는 경우에는, 중복되는 데이터들을 대신하여, 중복되는 데이터들이 저장된 메모리 주소를 현재 감지시점의 데이터 정보 내에 기록하도록 할 수 있다.Specifically, in order to add new history information, the computing device can compare data information at the previous detection time, and if there is new data to be added, the new data can be recorded in the data information at the current detection time. Here, if there is overlapping data as a result of comparison with the data information at the previous detection time, the memory address where the overlapping data is stored can be recorded in the data information at the current detection time instead of the overlapping data.
또한, 직전 감지시점의 데이터 정보와 비교결과, 수정된 데이터가 존재하면, 기존의 데이터를 수정된 데이터로 치환하여, 현재 감지시점의 데이터 정보 내에 기록하고, 비교결과 삭제된 데이터가 존재하는 경우에는, 삭제된 데이터에 대응하는 데이터 또는 메모리 주소를 데이터 정보에서 제거할 수 있다.In addition, if modified data exists as a result of comparison with the data information at the previous detection time, the existing data is replaced with the modified data and recorded in the data information at the current detection time, and if deleted data exists as a result of comparison, , the data or memory address corresponding to the deleted data can be removed from the data information.
이와 같이, 컴퓨팅 장치는 각각의 감지시점에 직전의 감지시점에서의 데이터 정보와 현재 메모리에 저장된 데이터들을 비교하여, 변경된 사항들이 반영되도록 데이터 정보를 생성할 수 있다. 이때, 컴퓨팅 장치는, 각각의 시점에서의 어플리케이션 데이터 전체를 저장하지 않고, 중복되는 데이터들은 해당 데이터가 저장된 메모리 주소를 저장하므로, 히스토리 정보 내에 저장되는 데이터의 양을 최소화하는 것이 가능하다.In this way, at each detection time, the computing device can compare data information from the immediately preceding detection time with data currently stored in the memory, and generate data information to reflect changes. At this time, the computing device does not store all of the application data at each point in time, but stores the memory address where the data is stored for overlapping data, making it possible to minimize the amount of data stored in the history information.
이후, 컴퓨팅 장치는 사용자 등으로부터 특정시점을 입력받으면, 히스토리 정보를 기반으로 어플리케이션의 상태를 특정시점으로 되돌릴 수 있다(S20). 컴퓨팅 장치는 특정시점과 현재 감지시점의 데이터정보를 비교할 수 있으며, 데이터정보 사이의 차이를 반영하여, 어플리케이션의 상태를 특정시점으로 되돌릴 수 있다. 이 경우, 데이터 정보 사이의 차이를 이용하여 특정시점으로 이동할 수 있으므로, 상대적으로 적은 양의 데이터 처리를 통하여 실행취소 또는 재실행 기능을 구현하는 것이 가능하다. 이때, 컴퓨팅 장치는 데이터 정보에 기록된 메모리 주소를 비교하여, 중복되는 데이터들을 신속하게 확인할 수 있으므로, 빠른 시간 내에 특정시점과 현재 감지시점 사이의 차이를 도출하는 것이 가능하다.Afterwards, when the computing device receives a specific point in time from a user, etc., the computing device can return the state of the application to the specific point in time based on history information (S20). The computing device can compare data information at a specific point in time and the current sensing point, and can return the state of the application to a specific point in time by reflecting the difference between the data information. In this case, since the difference between data information can be used to move to a specific point in time, it is possible to implement an undo or redo function through processing a relatively small amount of data. At this time, the computing device can quickly check overlapping data by comparing the memory addresses recorded in the data information, so it is possible to quickly derive the difference between the specific point in time and the current detection point.
전술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수개 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 애플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.The above-described present invention can be implemented as computer-readable code on a program-recorded medium. A computer-readable medium may continuously store a computer-executable program or temporarily store it for execution or download. In addition, the medium may be a variety of recording or storage means in the form of a single or several pieces of hardware combined. It is not limited to a medium directly connected to a computer system and may be distributed over a network. Examples of media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical recording media such as CD-ROMs and DVDs, magneto-optical media such as floptical disks, And there may be something configured to store program instructions, including ROM, RAM, flash memory, etc. Additionally, examples of other media include recording or storage media managed by app stores that distribute applications, sites or servers that supply or distribute various other software, etc. Accordingly, the above detailed description should not be construed as restrictive in all respects and should be considered illustrative. The scope of the present invention should be determined by reasonable interpretation of the appended claims, and all changes within the equivalent scope of the present invention are included in the scope of the present invention.
본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 본 발명에 따른 구성요소를 치환, 변형 및 변경할 수 있다는 것이 명백할 것이다.The present invention is not limited to the above-described embodiments and attached drawings. For those skilled in the art to which the present invention pertains, it will be clear that components according to the present invention can be replaced, modified, and changed without departing from the technical spirit of the present invention.
100: 컴퓨팅 장치
110: 히스토리 관리부
120: 데이터 복구부100: computing device 110: history management unit
120: Data recovery unit
Claims (9)
어플리케이션의 실행에 따른 데이터의 변경이 감지되면, 각각의 감지시점에서의 데이터들 중에서 중복되는 데이터는 제외하고 기록하여, 히스토리 정보를 생성하는 단계; 및
특정시점을 입력받으면, 상기 히스토리 정보를 기반으로 상기 어플리케이션의 상태를 상기 특정시점으로 되돌리는 단계를 포함하는 데이터 복구 방법.
In a data recovery method performed by a processor in a computing device,
When a change in data due to execution of an application is detected, generating history information by excluding duplicate data from the data at each detection point and recording the data; and
A data recovery method comprising, when a specific point in time is input, returning the state of the application to the specific point in time based on the history information.
각각의 감지시점에 대한 감지시점정보와, 상기 감지시점에서의 데이터 또는 상기 중복되는 데이터가 저장된 메모리 주소가 기록된 데이터정보를 매칭하여, 상기 히스토리 정보를 생성하는 것인, 데이터 복구 방법.
The method of claim 1, wherein the step of generating the history information is
A data recovery method that generates the history information by matching detection time information for each detection time and data information in which the data at the detection time or the memory address where the overlapping data is stored is recorded.
직전 감지시점의 데이터 정보와 비교하여 새롭게 추가되는 신규 데이터가 존재하면, 상기 신규 데이터를 현재 감지시점의 데이터 정보 내에 기록하는 것인, 데이터 복구 방법.
The method of claim 2, wherein the step of generating the history information is
A data recovery method, wherein if there is new data newly added compared to the data information at the previous detection time, the new data is recorded in the data information at the current detection time.
직전 감지시점의 데이터 정보와 비교하여 중복되는 데이터가 존재하면, 상기 중복되는 데이터들을 대신하여, 상기 중복되는 데이터들이 저장된 메모리 주소를 현재 감지시점의 데이터 정보 내에 기록하는 것인, 데이터 복구 방법.
The method of claim 2, wherein the step of generating the history information is
A data recovery method that, when there is overlapping data compared to the data information at the previous detection point, records the memory address where the overlapping data is stored in the data information at the current detection point in place of the overlapping data.
직전 감지시점의 데이터 정보와 비교하여 수정된 데이터가 존재하면, 상기 수정된 데이터로 치환하여, 현재 감지시점의 데이터 정보 내에 기록하는 것인, 데이터 복구 방법.
The method of claim 2, wherein the step of generating the history information is
A data recovery method in which, if there is data that has been modified compared to the data information at the previous detection time, the modified data is replaced and recorded in the data information at the current detection time.
직전 감지시점의 데이터 정보와 비교하여 삭제된 데이터가 존재하면, 상기 삭제된 데이터에 대응하는 데이터 또는 메모리 주소를 상기 데이터 정보에서 제거하는 것인, 데이터 복구 방법.
The method of claim 2, wherein the step of generating the history information is
A data recovery method, wherein if there is deleted data compared to the data information at the previous detection point, the data or memory address corresponding to the deleted data is removed from the data information.
상기 특정시점과 현재 감지시점의 데이터정보를 비교하고, 상기 데이터정보 사이의 차이를 반영하여, 상기 어플리케이션의 상태를 상기 특정시점으로 되돌리는 것인, 데이터 복구 방법.
The method of claim 2, wherein the reverting step is
A data recovery method that compares data information at the specific point in time and the current detection point, reflects the difference between the data information, and returns the state of the application to the specific point in time.
A computer program combined with hardware and stored on a medium to perform the data recovery method of any one of claims 1 to 7.
상기 프로세서는,
어플리케이션의 실행에 따른 데이터의 변경이 감지되면, 각각의 감지시점에서의 데이터들중에서 중복되는 데이터는 제외하고 기록하여 히스토리 정보를 생성하고,
특정시점을 입력받으면, 상기 히스토리 정보를 기반으로 상기 어플리케이션의 상태를 상기 특정시점으로 되돌리는 것을 수행하는, 컴퓨팅 장치.A computing device comprising a processor,
The processor,
When a change in data due to the execution of an application is detected, duplicate data is excluded from the data at each detection point and recorded to create history information.
A computing device that, upon receiving a specific point in time, returns the state of the application to the specific point in time based on the history information.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220136713A KR20240056278A (en) | 2022-10-21 | 2022-10-21 | Method for data recovery and computing apparatus using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220136713A KR20240056278A (en) | 2022-10-21 | 2022-10-21 | Method for data recovery and computing apparatus using the same |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20240056278A true KR20240056278A (en) | 2024-04-30 |
Family
ID=90884845
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220136713A KR20240056278A (en) | 2022-10-21 | 2022-10-21 | Method for data recovery and computing apparatus using the same |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20240056278A (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170054767A (en) | 2015-11-10 | 2017-05-18 | 엘지전자 주식회사 | Database management system and method for modifying and recovering data the same |
-
2022
- 2022-10-21 KR KR1020220136713A patent/KR20240056278A/en unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170054767A (en) | 2015-11-10 | 2017-05-18 | 엘지전자 주식회사 | Database management system and method for modifying and recovering data the same |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9910735B1 (en) | Generating an application-consistent snapshot | |
JP5039891B2 (en) | Apparatus and method for generating a replica of a database | |
US10067835B2 (en) | System reset | |
JP4419884B2 (en) | Data replication apparatus, method, program, and storage system | |
EP3769224B1 (en) | Configurable recovery states | |
US9146928B1 (en) | Techniques for storing metadata of a filesystem in persistent memory | |
CN109542682B (en) | Data backup method, device, equipment and storage medium | |
US9916211B2 (en) | Relational database recovery | |
JP4298700B2 (en) | Method and computer-readable recording medium for inspecting and storing electronic documents | |
US11099765B2 (en) | Data protection of container persistent storage with changed block tracking | |
KR20170054767A (en) | Database management system and method for modifying and recovering data the same | |
KR20160002109A (en) | Method and apparatus of journaling by block group unit for ordered mode journaling file system | |
US7725507B1 (en) | Dynamic directories | |
EP3769225B1 (en) | Free space pass-through | |
KR20240056278A (en) | Method for data recovery and computing apparatus using the same | |
US8819657B1 (en) | Method and apparatus for maintaining data consistency in a virtualized application during software update installation | |
KR100501414B1 (en) | Method of and apparatus for logging and restoring the meta data in file system | |
KR102316198B1 (en) | Method for accessing file, computer, and executable software product stored on computer-readable medium | |
JP4833653B2 (en) | Method and computer-readable recording medium for loading the contents of a data file | |
Lomet | High speed on-line backup when using logical log operations | |
Silberschatz et al. | Recovery system | |
KR20140110366A (en) | Apparatus and method for data backup | |
CN116466878A (en) | Method, device, equipment and medium for guaranteeing snapshot data integrity of clone volume | |
CN118259936A (en) | Operating system updating method, device, computing equipment and storage medium | |
KR101375794B1 (en) | Method and device for improving performance of database |