KR20240040922A - Method, apparatus, system and computer program for data compaction in storage with enhanced processing capability - Google Patents

Method, apparatus, system and computer program for data compaction in storage with enhanced processing capability Download PDF

Info

Publication number
KR20240040922A
KR20240040922A KR1020220119837A KR20220119837A KR20240040922A KR 20240040922 A KR20240040922 A KR 20240040922A KR 1020220119837 A KR1020220119837 A KR 1020220119837A KR 20220119837 A KR20220119837 A KR 20220119837A KR 20240040922 A KR20240040922 A KR 20240040922A
Authority
KR
South Korea
Prior art keywords
data
compaction
base file
merge
file
Prior art date
Application number
KR1020220119837A
Other languages
Korean (ko)
Inventor
박수호
김은미
Original Assignee
삼성에스디에스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성에스디에스 주식회사 filed Critical 삼성에스디에스 주식회사
Priority to KR1020220119837A priority Critical patent/KR20240040922A/en
Publication of KR20240040922A publication Critical patent/KR20240040922A/en

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/1756De-duplication implemented within the file system, e.g. based on file segments based on delta files
    • 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/11File system administration, e.g. details of archiving or snapshots
    • G06F16/122File system administration, e.g. details of archiving or snapshots using management policies
    • 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/18File system types
    • G06F16/182Distributed file systems
    • G06F16/184Distributed file systems implemented as replicated file system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/273Asynchronous replication or reconciliation

Abstract

본 발명은 보안을 강화한 이미지 저장 관리 방법, 장치, 시스템 및 컴퓨터 본 발명은 데이터 컴팩션 방법, 장치, 시스템 및 컴퓨터 프로그램에 관한 것으로서, 보다 구체적으로는 변경이 허용되지 않는 방식으로 저장되는 스토리지(storage)에서의 데이터 컴팩션(data compaction)을 효과적으로 처리할 수 있는 데이터 컴팩션 방법, 장치, 시스템 및 컴퓨터 프로그램에 관한 것이다.
본 발명에서는, 데이터 컴팩션 시스템에서, 데이터의 원본치를 포함하는 제1 베이스 파일과 상기 데이터의 변경치를 포함하는 제1 델타 파일을 스토리지부에 저장하는 스토리지 저장 단계; 상기 데이터에 대한 요청에 기하여 상기 데이터의 원본치와 상기 데이터의 변경치에 대한 병합 처리를 수행하고 상기 요청에 대응하는 병합 처리 수행 단계; 및 상기 병합 처리의 수행 여부에 기반하여 상기 제1 베이스 파일과 상기 제1 델타 파일이 병합된 제2 베이스 파일을 생성하여 상기 스토리지부에서 상기 제1 베이스 파일을 대체하는 컴팩션 처리 단계;를 포함하는 것을 특징으로 하는 데이터 컴팩션 방법을 개시한다.
The present invention relates to a security-enhanced image storage management method, device, system, and computer. The present invention relates to a data compaction method, device, system, and computer program, and more specifically, to storage that is stored in a manner that does not allow modification. ) relates to a data compaction method, device, system, and computer program that can effectively process data compaction.
In the present invention, in a data compaction system, a storage step of storing a first base file containing original values of data and a first delta file containing changed values of the data in a storage unit; Based on the request for the data, performing merge processing on the original value of the data and the changed value of the data and performing merge processing corresponding to the request; And a compaction processing step of generating a second base file in which the first base file and the first delta file are merged based on whether the merge processing is performed and replacing the first base file in the storage unit. Disclosed is a data compaction method characterized in that:

Description

개선된 처리 성능을 가지는 데이터 컴팩션 방법, 장치, 시스템 및 컴퓨터 프로그램 {Method, apparatus, system and computer program for data compaction in storage with enhanced processing capability}Method, apparatus, system and computer program for data compaction in storage with enhanced processing capability}

본 발명은 데이터 컴팩션 방법, 장치, 시스템 및 컴퓨터 프로그램에 관한 것으로서, 보다 구체적으로는 변경이 허용되지 않는 방식으로 저장되는 스토리지(storage)에서의 데이터 컴팩션(data compaction)을 효과적으로 처리할 수 있는 데이터 컴팩션 방법, 장치, 시스템 및 컴퓨터 프로그램에 관한 것이다.The present invention relates to a data compaction method, device, system, and computer program, and more specifically, to a data compaction method capable of effectively processing data compaction in storage stored in a manner that does not allow modification. Relates to data compaction methods, devices, systems, and computer programs.

최근 클라우드 시스템이나 데이터베이스 시스템 등에서 다량의 데이터를 효율적으로 저장, 관리하기 위한 기술이 폭넓게 활용되고 있다.Recently, technologies for efficiently storing and managing large amounts of data have been widely used in cloud systems and database systems.

이와 관련하여, 블록 스토리지(block storage), 객체 스토리지(object storage) 등과 같이 원본 데이터가 저장되는 베이스 파일(base file)의 변경을 허용하지 않으면서 데이터의 변경치를 별도의 델타 파일(delta file)로 관리하는 방식으로 데이터의 안정성을 확보하면서 나아가 분산 환경 등에서 효율적인 처리 성능을 확보하려는 다양한 시도가 이루어지고 있다.In this regard, data changes are stored in a separate delta file without allowing changes to the base file where the original data is stored, such as block storage or object storage. Various attempts are being made to secure data stability through management methods and further secure efficient processing performance in distributed environments.

보다 구체적으로, 데이터 컴팩션(data compaction)이라 함은 위와 같이 원본 데이터가 저장되는 베이스 파일(base file)의 변경이 허용되지 않는 시스템에서 변경치에 대한 델타 파일(delta file)들을 하나로 합치거나 상기 베이스 파일(base file)과 합치는 동작을 의미한다.More specifically, data compaction refers to combining delta files for changed values into one in a system where changes to the base file where the original data is stored are not allowed, as described above. This refers to the operation of merging with a base file.

그런데, 종래에는 통상 미리 정해진 주기마다 일괄적(batch)으로 데이터 컴팩션(data compaction) 작업을 수행하는 방식으로 처리되었는데, 이러한 경우 다량의 데이터를 일시에 처리하게 되면서 전산 자원(computing resource)를 집중적으로 소모하여 시스템에 과부하를 초래할 수 있었으며, 또한 일괄적인 데이터 컴팩션(data compaction) 작업이 수행되기 전에 사용자가 데이터를 조회하면 베이스 파일과 델타 파일에 대한 병합(merge) 처리가 반복적으로 수행될 뿐만 아니라 일괄적인 데이터 컴팩션(data compaction) 작업에서는 또다시 베이스 파일과 델타 파일에 대한 병합(merge) 처리가 중복 수행되면서 전산 자원(computing resource)이 낭비되는 문제가 따랐다.However, in the past, data compaction was usually performed in batches at predetermined intervals. In this case, a large amount of data was processed at once, concentrating computing resources. This could cause an overload on the system, and if the user searches data before the batch data compaction task is performed, the merge process for the base file and delta file is not only performed repeatedly. In addition, in the batch data compaction task, the merge process for the base file and delta file was performed redundantly, resulting in a waste of computing resources.

또한, 종래에는 위와 같은 데이터 컴팩션(data compaction) 작업을 수행하기 위해서 관리자가 자신의 경험 등을 바탕으로 데이터 컴팩션 작업의 주기를 설정하여야 하고, 나아가 전체 파일에 대한 데이터 컴팩션(data compaction)을 수행할 것인지 일부 파일에 대해서 수행할 것인지 등 우선 순위(priority)도 정해주어야 하였는데, 이때 관리자의 경험치 또는 시스템의 동작 환경 등에 따라 최적 설정으로 데이터 컴팩션(data compaction)을 수행하지 못하는 문제가 발생할 수 있었다.In addition, conventionally, in order to perform the above data compaction task, the administrator must set the cycle of the data compaction task based on his or her experience, and furthermore, data compaction for the entire file. Priority had to be determined, such as whether to perform the operation or only some files. At this time, problems may occur in which data compaction cannot be performed with optimal settings depending on the administrator's experience level or the operating environment of the system. I was able to.

이에 따라, 클라우드 시스템이나 데이터베이스 시스템 등에서 변경이 허용되지 않는 방식으로 저장되는 스토리지(storage)에서의 데이터 컴팩션(data compaction) 과정에서 나타날 수 있는 시스템의 과부하 및 반복적인 병합(merge) 처리에 따른 전산 자원의 불필요한 소모를 효과적으로 억제할 수 있으며, 나아가 관리자의 경험치 등에 따라 데이터 컴팩션(data compaction)의 수행 환경이 달라지는 등의 문제를 효과적으로 개선할 수 있는 방안이 지속적으로 요구되고 있다.Accordingly, overload of the system and repetitive merge processing that may occur during data compaction in storage stored in a way that does not allow changes in cloud systems or database systems, etc. There is a continuous need for methods that can effectively suppress unnecessary consumption of resources and further effectively improve problems such as the environment in which data compaction is performed depending on the manager's experience level.

대한민국 공개특허 제10-2020-0104856호(2020년 9월 4일 공개)Republic of Korea Patent Publication No. 10-2020-0104856 (published on September 4, 2020)

본 발명은 상기와 같은 종래 기술의 문제점을 해결하기 위해 창안된 것으로, 클라우드 시스템이나 데이터베이스 시스템 등에서 변경이 허용되지 않는 방식으로 저장되는 스토리지(storage)에서의 데이터 컴팩션(data compaction) 과정에서 나타날 수 있는 시스템의 과부하 및 반복적인 병합(merge) 처리에 따른 전산 자원의 불필요한 소모를 효과적으로 억제할 수 있는 데이터 컴팩션 방법, 장치, 시스템 및 컴퓨터 프로그램을 제공하는 것을 목적으로 한다.The present invention was created to solve the problems of the prior art as described above, which may appear in the process of data compaction in storage stored in a manner that does not allow changes in cloud systems or database systems. The purpose is to provide data compaction methods, devices, systems, and computer programs that can effectively suppress unnecessary consumption of computing resources due to overload of existing systems and repetitive merge processing.

또한, 본 발명에서는 관리자의 경험치 등에 따라 데이터 컴팩션(data compaction)의 수행 환경이 달라지는 등의 문제를 효과적으로 개선할 수 있는 데이터 컴팩션 방법, 장치, 시스템 및 컴퓨터 프로그램을 제공하는 것을 목적으로 한다.Additionally, the purpose of the present invention is to provide a data compaction method, device, system, and computer program that can effectively improve problems such as changes in the data compaction performance environment depending on the manager's experience level, etc.

상기 과제를 해결하기 위한 본 발명의 한 측면에 따른 데이터 컴팩션 방법은, 데이터 컴팩션 시스템에서, 데이터의 원본치를 포함하는 제1 베이스 파일과 상기 데이터의 변경치를 포함하는 제1 델타 파일을 스토리지부에 저장하는 스토리지 저장 단계; 상기 데이터에 대한 요청에 기하여 상기 데이터의 원본치와 상기 데이터의 변경치에 대한 병합 처리를 수행하는 병합 처리 수행 단계; 및 상기 병합 처리의 수행 여부에 기반하여 상기 제1 베이스 파일과 상기 제1 델타 파일이 병합된 제2 베이스 파일을 생성하여 상기 스토리지부에서 상기 제1 베이스 파일을 대체하는 컴팩션 처리 단계;를 포함하는 것을 특징으로 한다.The data compaction method according to one aspect of the present invention for solving the above problem is, in a data compaction system, a first base file containing original values of data and a first delta file containing changed values of the data are stored in a storage unit. storage storage step; A merge processing step of performing merge processing on the original value of the data and the changed value of the data based on the request for the data; And a compaction processing step of generating a second base file in which the first base file and the first delta file are merged based on whether the merge processing is performed and replacing the first base file in the storage unit. It is characterized by:

여기서, 상기 스토리지부에서, 상기 제1 베이스 파일에 포함되는 데이터에 대한 변경은 허용되지 않을 수 있다.Here, in the storage unit, changes to data included in the first base file may not be permitted.

또한, 상기 병합 처리 단계에서는 상기 제1 베이스 파일과 상기 제1 델타 파일을 메모리로 적재하여 병합 처리를 수행하며, 상기 컴팩션 처리 단계에서는 상기 메모리에서 수행되는 병합 처리에 대한 병합 정보를 수집하고 이를 기초로 상기 스토리지부에서 상기 제2 베이스 파일을 생성하여 상기 제1 베이스 파일을 대체할 수 있다.In addition, in the merge processing step, the first base file and the first delta file are loaded into memory to perform merge processing, and in the compaction processing step, merge information for the merge processing performed in the memory is collected and collected. Based on this, the storage unit may generate the second base file to replace the first base file.

이때, 상기 컴팩션 처리 단계에서는, 상기 메모리에서 상기 병합 정보를 수집하여 캐시 저장 장치에 저장할 수 있다.At this time, in the compaction processing step, the merge information may be collected from the memory and stored in the cache storage device.

또한, 상기 컴팩션 처리 단계에서는, 상기 병합 처리 수행 단계를 구동하는 어플리케이션과 독립적으로 구동되는 별도의 어플리케이션을 이용하여 상기 캐시 저장 장치에 저장된 상기 병합 정보를 기초로 상기 스토리지부에 상기 제2 베이스 파일을 생성할 수 있다.In addition, in the compaction processing step, the second base file is stored in the storage unit based on the merge information stored in the cache storage device using a separate application that runs independently of the application that runs the merge processing step. can be created.

나아가, 상기 컴팩션 처리 단계에서는, 상기 스토리지부에서 상기 제1 베이스 파일을 삭제하고 상기 제2 베이스 파일로 대체할 수 있다.Furthermore, in the compaction processing step, the first base file may be deleted from the storage unit and replaced with the second base file.

또한, 상기 컴팩션 처리 단계에서는, 상기 병합 정보의 크기가 미리 정해진 기준치보다 큰 경우에만 상기 병합 정보를 상기 캐시 저장 장치에 저장할 수 있다.Additionally, in the compaction processing step, the merged information can be stored in the cache storage device only when the size of the merged information is larger than a predetermined standard value.

또한, 상기 컴팩션 처리 단계에서는, 상기 제2 베이스 파일로 상기 제1 베이스 파일을 대체한 시점 이후 미리 정해진 기준 시간이 경과한 경우에만 다시 상기 제2 베이스 파일에 대한 컴팩션 작업을 수행하도록 할 수 있다.Additionally, in the compaction processing step, the compaction operation on the second base file can be performed again only when a predetermined reference time has elapsed since the first base file was replaced with the second base file. there is.

나아가, 상기 컴팩션 처리 단계에서는, 상기 미리 정해진 기준 시간 동안 상기 캐시 저장 장치에 누적되는 상기 병합 정보는 최종의 병합 정보만 남기고 나머지는 삭제할 수 있다.Furthermore, in the compaction processing step, the merged information accumulated in the cache storage device during the predetermined reference time may be deleted, leaving only the final merged information.

또한, 상기 컴팩션 처리 단계에서는, 메타 데이터베이스에서 미리 정해진 특정 시간이 경과된 컴팩션 완료 목록을 자동 삭제할 수 있다.In addition, in the compaction processing step, the compaction completion list for which a specific predetermined time has elapsed can be automatically deleted from the meta database.

또한, 본 발명의 다른 측면에 따른 컴퓨터 프로그램은, 컴퓨터에서 상기 기재된 데이터 컴팩션 방법의 각 단계를 실행시키기 위한 컴퓨터로 판독 가능한 매체에 저장된. 컴퓨터 프로그램일 수 있다.Additionally, a computer program according to another aspect of the present invention is stored in a computer-readable medium for executing each step of the data compaction method described above on a computer. It could be a computer program.

또한, 본 발명의 다른 측면에 따른 데이터 컴팩션 시스템은, 데이터의 원본치를 포함하는 제1 베이스 파일과 상기 데이터의 변경치를 포함하는 제1 델타 파일을 저장하는 스토리지부; 상기 데이터에 대한 요청에 기하여 상기 데이터의 원본치와 상기 데이터의 변경치에 대한 병합 처리를 수행하는 병합 처리 수행부; 및 상기 병합 처리의 수행 여부에 기반하여 상기 제1 베이스 파일과 상기 제1 델타 파일이 병합된 제2 베이스 파일을 생성하여 상기 스토리지부에서 상기 제1 베이스 파일을 대체하는 컴팩션 처리부;를 포함하는 것을 특징으로 한다.In addition, a data compaction system according to another aspect of the present invention includes a storage unit that stores a first base file containing original values of data and a first delta file containing changed values of the data; a merge processing unit that performs merge processing on the original value of the data and the changed value of the data based on the request for the data; And a compaction processing unit that generates a second base file in which the first base file and the first delta file are merged based on whether the merge processing is performed and replaces the first base file in the storage unit. It is characterized by

여기서, 상기 스토리지부에서, 상기 제1 베이스 파일에 포함되는 데이터에 대한 변경은 허용되지 않을 수 있다.Here, in the storage unit, changes to data included in the first base file may not be permitted.

또한, 상기 병합 처리부에서는 상기 제1 베이스 파일과 상기 제1 델타 파일을 메모리로 적재하여 병합 처리를 수행하며, 상기 컴팩션 처리부에서는 상기 메모리에서 수행되는 병합 처리에 대한 병합 정보를 수집하고 이를 기초로 상기 스토리지부에서 상기 제2 베이스 파일을 생성하여 상기 제1 베이스 파일을 대체할 수 있다.In addition, the merge processing unit loads the first base file and the first delta file into memory and performs merge processing, and the compaction processing unit collects merge information for the merge processing performed in the memory and based on this, The storage unit may generate the second base file to replace the first base file.

이때, 상기 컴팩션 처리부에서는, 상기 메모리에서 상기 병합 정보를 수집하여 캐시 저장 장치에 저장할 수 있다.At this time, the compaction processing unit may collect the merge information from the memory and store it in a cache storage device.

나아가, 상기 컴팩션 처리부에서는, 상기 병합 처리 수행부와 독립적으로 구동되는 별도의 어플리케이션을 이용하여 상기 캐시 저장 장치에 저장된 상기 병합 정보를 기초로 상기 스토리지부에 상기 제2 베이스 파일을 생성할 수 있다.Furthermore, the compaction processing unit may generate the second base file in the storage unit based on the merge information stored in the cache storage device using a separate application that runs independently of the merge processing unit. .

또한, 상기 컴팩션 처리부에서는, 상기 스토리지부에서 상기 제1 베이스 파일을 삭제하고 상기 제2 베이스 파일로 대체할 수 있다.Additionally, the compaction processing unit may delete the first base file from the storage unit and replace it with the second base file.

본 발명의 일 실시예에 따른 데이터 컴팩션 방법, 장치, 시스템 및 컴퓨터 프로그램에서는, 클라우드 시스템이나 데이터베이스 시스템 등에서 변경이 허용되지 않는 방식으로 저장되는 스토리지(storage)에서의 데이터 컴팩션(data compaction) 과정에서 나타날 수 있는 시스템의 과부하 및 반복적인 병합(merge) 처리에 따른 전산 자원의 불필요한 소모를 효과적으로 억제할 수 있게 된다.In the data compaction method, device, system, and computer program according to an embodiment of the present invention, the data compaction process in storage is stored in a manner that does not allow changes in a cloud system, database system, etc. It is possible to effectively suppress unnecessary consumption of computing resources due to system overload and repetitive merge processing that may occur in the system.

또한, 본 발명의 일 실시예에 따른 데이터 컴팩션 방법, 장치, 시스템 및 컴퓨터 프로그램에서는 관리자의 경험치 등에 따라 데이터 컴팩션(data compaction)의 수행 환경이 달라지는 등의 문제를 효과적으로 개선할 수 있게 된다. Additionally, the data compaction method, device, system, and computer program according to an embodiment of the present invention can effectively improve problems such as changes in the data compaction performance environment depending on the manager's experience level, etc.

본 발명에 관한 이해를 돕기 위해 상세한 설명의 일부로 포함되는, 첨부도면은 본 발명에 대한 실시예를 제공하고, 상세한 설명과 함께 본 발명의 기술적 사상을 설명한다.
도 1은 본 발명의 일 실시예에 따른 데이터 저장 시스템의 구동 환경을 예시하는 도면이다.
도 2는 본 발명의 일 실시예에 따른 데이터 컴팩션 방법의 순서도를 예시하는 도면이다.
도 3 내지 도 9는 본 발명의 일 실시예에 따른 데이터 컴팩션 방법의 구체적인 동작을 예시하는 도면이다.
도 10은 본 발명의 다른 실시예에 따른 데이터 컴팩션 방법의 동작을 예시하는 도면이다.
도 11은 본 발명의 다른 실시예에 따른 데이터 컴팩션 시스템의 블록도를 예시하는 도면이다.
도 12는 본 발명의 다른 실시예에 따른 데이터 컴팩션 시스템의 구체적인 구성을 예시하는 도면이다.
The accompanying drawings, which are included as part of the detailed description to aid understanding of the present invention, provide embodiments of the present invention and explain the technical idea of the present invention together with the detailed description.
1 is a diagram illustrating an operating environment of a data storage system according to an embodiment of the present invention.
Figure 2 is a diagram illustrating a flow chart of a data compaction method according to an embodiment of the present invention.
3 to 9 are diagrams illustrating specific operations of the data compaction method according to an embodiment of the present invention.
Figure 10 is a diagram illustrating the operation of a data compaction method according to another embodiment of the present invention.
Figure 11 is a diagram illustrating a block diagram of a data compaction system according to another embodiment of the present invention.
Figure 12 is a diagram illustrating a specific configuration of a data compaction system according to another embodiment of the present invention.

이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시예들을 상세히 설명한다. 본 발명의 목적, 특정한 장점들 및 신규한 특징들은 첨부된 도면들과 연관되어지는 이하의 상세한 설명과 바람직한 실시예들로부터 더욱 명확해질 것이다.Hereinafter, embodiments disclosed in this specification will be described in detail with reference to the attached drawings. The objectives, specific advantages and novel features of the present invention will become more apparent from the following detailed description and preferred embodiments taken in conjunction with the accompanying drawings.

이에 앞서 본 명세서 및 청구범위에 사용된 용어나 단어는 발명자가 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 개념을 적절하게 정의한 것으로 본 발명의 기술적 사상에 부합되는 의미와 개념으로 해석되어야 하며, 단지 실시예들을 설명하기 위한 것일 뿐, 본 발명을 제한하는 것으로 해석되지 않아야 한다.Prior to this, the terms and words used in this specification and claims should be interpreted as meanings and concepts consistent with the technical idea of the present invention as those defined by the inventor appropriately to explain the invention in the best way. , is only for illustrating embodiments and should not be construed as limiting the present invention.

구성요소들에 참조 부호를 부여함에 있어, 참조 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함을 고려하여 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니며, 소프트웨어 또는 하드웨어 구성요소를 의미할 수 있다.In assigning reference codes to components, identical or similar components will be assigned the same reference codes regardless of the reference codes, and duplicate descriptions thereof will be omitted. The suffixes “module” and “part” for components used in the following description are given or used interchangeably in consideration of the ease of preparing the specification, and do not have distinct meanings or roles in and of themselves, and do not constitute software or hardware components. It can mean an element.

본 발명의 구성요소를 설명하는데 있어서, 단수 형태로 구성요소가 표현되는 경우 특별히 언급하지 않는 한 그 구성요소가 복수 형태도 포함하는 것으로 이해되어야 한다. 또한, "제1", "제2", 등의 용어는, 하나의 구성요소를 다른 구성요소와 구별하기 위해 사용되는 것으로, 구성요소가 상기 용어들에 의해 제한되는 것은 아니다. 또한, 어떤 구성요소가 다른 구성요소에 연결되는 경우, 구성요소와 다른 구성요소 사이에 또 다른 구성요소가 연결될 수도 있다는 것을 의미한다.In describing the elements of the present invention, if an element is expressed in singular form, it should be understood that the element also includes plural forms unless otherwise specified. Additionally, terms such as “first”, “second”, etc. are used to distinguish one component from another component, and the components are not limited by these terms. Additionally, when a component is connected to another component, it means that another component may be connected between the component and the other component.

또한, 본 명세서에 개시된 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.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.

이하에서는, 본 발명에 따른 개선된 처리 성능을 가지는 데이터 컴팩션 방법, 장치, 시스템 및 컴퓨터 프로그램의 예시적인 실시형태들을 첨부된 도면을 참조하여 상세히 설명한다.Hereinafter, exemplary embodiments of a data compaction method, apparatus, system, and computer program with improved processing performance according to the present invention will be described in detail with reference to the accompanying drawings.

먼저, 도 1에서는 본 발명의 일 실시예에 따른 테이블 컴팩션 시스템(120)이 적용될 수 있는 데이터 저장 시스템(100)의 구성을 예시하고 있다. 도 1에서 볼 수 있는 바와 같이, 본 발명의 일 실시예에 따른 데이터 저장 시스템 (100)은 데이터가 저장되는 스토리지부(110)와 상기 스토리지부(110)에 저장된 데이터에 대한 컴팩션(compaction) 작업을 수행하는 데이터 컴팩션 시스템(120)을 포함하여 구성될 수 있다.First, Figure 1 illustrates the configuration of a data storage system 100 to which the table compaction system 120 according to an embodiment of the present invention can be applied. As can be seen in FIG. 1, the data storage system 100 according to an embodiment of the present invention includes a storage unit 110 in which data is stored and compaction of the data stored in the storage unit 110. It may be configured to include a data compaction system 120 that performs the task.

여기서, 본 발명의 일 실시예에 따른 데이터 컴팩션 방법은, 도 2에서 볼 수 있는 바와 같이, 데이터 컴팩션 시스템(120)에서, 데이터의 원본치를 포함하는 제1 베이스 파일과 상기 데이터의 변경치를 포함하는 제1 델타 파일을 스토리지부(110)에 저장하는 스토리지 저장 단계(S110), 상기 데이터에 대한 요청에 기하여 상기 데이터의 원본치와 상기 데이터의 변경치에 대한 병합 처리를 수행하는 병합 처리 수행 단계(S120) 및 상기 병합 처리의 수행 여부에 기반하여 상기 제1 베이스 파일과 상기 제1 델타 파일이 병합된 제2 베이스 파일을 생성하여 상기 스토리지부(110)에서 상기 제1 베이스 파일을 대체하는 컴팩션 처리 단계(S130)를 포함할 수 있다.Here, as can be seen in FIG. 2, the data compaction method according to an embodiment of the present invention uses a first base file containing the original value of the data and the changed value of the data in the data compaction system 120. A storage storage step (S110) of storing the first delta file including the first delta file in the storage unit 110, performing a merge process of merging the original value of the data and the changed value of the data based on the request for the data. Based on step S120 and whether the merge process is performed, a second base file in which the first base file and the first delta file are merged is generated to replace the first base file in the storage unit 110. It may include a compaction processing step (S130).

여기서, 상기 스토지리부(110)에서, 상기 제1 베이스 파일에 포함되는 데이터에 대한 변경은 허용되지 않을 수 있다.Here, in the storage unit 110, changes to data included in the first base file may not be permitted.

또한, 상기 병합 처리 단계(S120)에서는 상기 제1 베이스 파일과 상기 제1 델타 파일을 메모리로 적재하여 상기 데이터의 원본치와 상기 데이터의 변경치에 대한 병합 처리를 수행하며, 상기 컴팩션 처리 단계(S130)에서는 상기 메모리에서 수행되는 병합 처리에 대한 병합 정보를 수집하고 이를 기초로 상기 스토리지부에서 상기 제2 베이스 파일을 생성하여 상기 제1 베이스 파일을 대체할 수 있다.In addition, in the merge processing step (S120), the first base file and the first delta file are loaded into memory and merge processing is performed on the original value of the data and the changed value of the data, and the compaction processing step is performed. In (S130), merge information about the merge process performed in the memory is collected, and based on this, the second base file is generated in the storage unit to replace the first base file.

이때, 상기 컴팩션 처리 단계(S130)에서는, 상기 메모리에서 상기 병합 정보를 수집하여 캐시 저장 장치에 저장할 수 있다.At this time, in the compaction processing step (S130), the merge information may be collected from the memory and stored in the cache storage device.

또한, 상기 컴팩션 처리 단계(S130)에서는, 상기 병합 처리 수행 단계(S120)를 구동하는 어플리케이션(application)과 독립적으로 구동되는 별도의 어플리케이션(application)을 이용하여 상기 캐시 저장 장치에 저장된 상기 병합 정보를 기초로 상기 스토리지부(110)에 상기 제2 베이스 파일을 생성할 수 있다.Additionally, in the compaction processing step (S130), the merge information stored in the cache storage device using a separate application that runs independently of the application that runs the merge processing step (S120). Based on this, the second base file can be created in the storage unit 110.

나아가, 상기 컴팩션 처리 단계(S130)에서는, 상기 스토리지부(110)에서 상기 제1 베이스 파일을 삭제하고 상기 제2 베이스 파일로 대체할 수 있다.Furthermore, in the compaction processing step (S130), the first base file may be deleted from the storage unit 110 and replaced with the second base file.

도 2에 도시된 방법은 예를 들어, 데이터 컴팩션 시스템(120)에 의해 수행될 수 있으며, 나아가 상기 데이터 컴팩션 시스템(120)은 도 12 및 도 12와 관련하여 후술하는 설명의 컴퓨팅 장치를 포함하여 구현될 수 있다. 예컨대 상기 데이터 컴팩션 시스템(120)은 프로세서(10)를 구비하고 상기 프로세서(10)에서는 테이블 좌표 정보를 보정하기 위한 동작을 구현하도록 구성된 명령어를 수행하여 테이블 좌표 정보를 보정할 수 있다.The method shown in FIG. 2 may be performed, for example, by a data compaction system 120, and further, the data compaction system 120 may include a computing device described below with reference to FIGS. 12 and 12 . It can be implemented including: For example, the data compaction system 120 includes a processor 10, and the processor 10 can correct table coordinate information by executing instructions configured to implement an operation for correcting table coordinate information.

이에 따라, 본 발명의 일 실시예에 따른 데이터 컴팩션 방법, 장치 및 시스템에서는, 변경이 허용되지 않는 방식으로 저장되는 스토리지(storage)에서의 데이터 컴팩션(data compaction) 과정에서 나타날 수 있는 시스템의 과부하 및 반복적인 병합(merge) 처리에 따른 전산 자원의 불필요한 소모를 방지할 수 있으며, 나아가 관리자의 경험치 등에 따라 데이터 컴팩션(data compaction)의 수행 환경이 달라지는 문제도 효과적으로 개선할 수 있게 된다.Accordingly, in the data compaction method, device, and system according to an embodiment of the present invention, the data of the system that may appear during data compaction in storage stored in a manner in which changes are not permitted It is possible to prevent unnecessary consumption of computing resources due to overload and repetitive merge processing, and furthermore, it is possible to effectively improve the problem that the data compaction performance environment varies depending on the administrator's experience level, etc.

이하, 도 1과 도 2를 참조하여 본 발명의 일 실시예에 따른 데이터 컴팩션 방법, 장치 및 시스템에 대하여 보다 자세하게 살핀다.Hereinafter, the data compaction method, device, and system according to an embodiment of the present invention will be examined in more detail with reference to FIGS. 1 and 2.

먼저, 상기 스토리지 저장 단계(S110)에서는, 상기 데이터 컴팩션 시스템(120)에서 데이터의 원본치를 포함하는 제1 베이스 파일과 상기 데이터의 변경치를 포함하는 제1 델타 파일을 스토리지부(110)에 저장하게 된다.First, in the storage storage step (S110), the data compaction system 120 stores the first base file containing the original value of the data and the first delta file containing the changed value of the data in the storage unit 110. I do it.

이때, 상기 스토리지부(110)는 데이터를 저장하는 저장 장치일 수 있으며, 예를 들어 여러 사용자의 파일 등을 저장하는 클라우드 저장 장치이거나, 다양한 자료를 저장하는 데이터베이스 장치일 수 있으나, 본 발명이 반드시 이에 한정되는 것은 아니며 이외에도 데이터가 저장될 수 있는 다양한 저장 장치가 사용될 수 있다.At this time, the storage unit 110 may be a storage device that stores data, for example, a cloud storage device that stores files of multiple users, or a database device that stores various data. However, the present invention does not necessarily apply to It is not limited to this, and various storage devices capable of storing data may be used.

보다 구체적으로, 상기 스토리지부(110)는 블록 스토리지(block storage), 객체 스토리지(object storage) 등과 같이 원본 데이터가 저장되는 베이스 파일(base file)의 변경을 허용하지 않으면서 데이터의 변경치를 별도의 델타 파일(delta file)로 저장하는 장치를 포함하여 구성될 수 있다.More specifically, the storage unit 110 does not allow changes to the base file where the original data is stored, such as block storage, object storage, etc., and separate changes to the data. It may be configured to include a device for storing delta files.

또한, 상기 데이터 컴팩션 시스템(120)에서는 상기 스토리지부(110)에 저장된 데이터에 대한 컴팩션 작업을 수행하게 된다.Additionally, the data compaction system 120 performs a compaction operation on data stored in the storage unit 110.

이때, 데이터 컴팩션(data compaction)이라 함은 위와 같이 원본 데이터가 저장되는 베이스 파일(base file)의 변경이 허용되지 않는 시스템에서 변경치에 대한 델타 파일(delta file)들을 하나로 합치거나 상기 베이스 파일(base file)과 합치는 동작을 의미한다.At this time, data compaction refers to merging delta files for changed values into one in a system that does not allow changes to the base file where the original data is stored, as described above, or to the base file. This refers to the operation of merging with (base file).

예를 들어, 도 3을 참조하여 살펴보면, 먼저 상기 스토리지부(110)에 5개의 데이터를 포함하는 제1 베이스 파일(DataFile1)을 생성하게 된다(도 3의 (a)).For example, referring to FIG. 3, first, a first base file (DataFile1) containing 5 pieces of data is created in the storage unit 110 ((a) of FIG. 3).

이어서, 상기 제1 베이스 파일(DataFile1)에 6번 데이터를 추가하고자 하는 경우 상기 제1 베이스 파일(DataFile1)의 변경이 불가하고, 별도의 제2 베이스 파일(DataFile2)을 생성하게 된다(도 3의 (b)).Subsequently, when it is desired to add data number 6 to the first base file (DataFile1), the first base file (DataFile1) cannot be changed, and a separate second base file (DataFile2) is created (see Figure 3 (b)).

또한, 상기 제1 베이스 파일(DataFile1)의 5번 데이터를 수정하고자 하는 경우 상기 제1 베이스 파일(DataFile1)의 변경이 불가하고, 별도의 제1 델타 파일(DataFile3)을 추가하게 된다(도 3의 (c)).In addition, if you want to modify data number 5 of the first base file (DataFile1), the first base file (DataFile1) cannot be changed, and a separate first delta file (DataFile3) must be added (Figure 3) (c)).

나아가, 상기 제1 베이스 파일(DataFile1)의 4번 데이터를 삭제하고자 하는 경우 상기 제1 베이스 파일(DataFile1)의 변경이 불가하고, 별도의 제2 델타 파일(DataFile4)을 추가하게 된다(도 3의 (d)).Furthermore, if you want to delete data number 4 of the first base file (DataFile1), the first base file (DataFile1) cannot be changed, and a separate second delta file (DataFile4) must be added (Figure 3) (d)).

이어서, 데이터 컴팩션(data compaction)이 수행되면 상기 베이스 파일(base file)과 상기 델타 파일(delta file) 중의 일부 또는 전부를 반영하여 변경치에 대한 델타 파일(delta file)들을 하나로 합치거나(마이너 컴팩션), 상기 베이스 파일(base file)과 델타 파일(delta file)합치는 동작을 수행하게 된다(메이저 컴팩션).Subsequently, when data compaction is performed, some or all of the base file and the delta file are reflected and the delta files for the changes are combined into one (minor Compaction), an operation of merging the base file and delta file is performed (major compaction).

이에 따라, 상기 도 3의 (d)에 대하여 메이저 컴팩션(major compation)이 수행되는 경우에는, 도 3(e)에서 볼 수 있는 바와 같이 전체 베이스 파일(base file)과 델타 파일(delta file)이 모두 병합(merge)되어 새로운 베이스 파일(base file)이 생성되어 기존의 베이스 파일(base file)을 대체할 수 있으며, 이에 따라 상기 기존의 베이스 파일(base file)은 삭제되고 상기 새로운 베이스 파일(base file)이 상기 스토리지부(110)에 저장되어 상기 새로운 베이스 파일(base file)의 주소가 링크될 수 있다.Accordingly, when major compaction is performed on (d) of FIG. 3, as can be seen in FIG. 3 (e), the entire base file and delta file All of these are merged and a new base file is created to replace the existing base file. Accordingly, the existing base file is deleted and the new base file ( A base file) may be stored in the storage unit 110 and the address of the new base file may be linked.

이어서, 상기 병합 처리 수행 단계(S120)에서는, 상기 데이터에 대한 요청에 기하여 상기 데이터의 원본치와 상기 데이터의 변경치에 대한 병합 처리를 수행하고, 나아가 이에 기반하여 상기 요청에 대응하게 된다.Next, in the merging processing step (S120), merging processing is performed on the original value of the data and the changed value of the data based on the request for the data, and further responds to the request based on this.

보다 구체적으로, 도 4에서 볼 수 있는 바와 같이, 종래의 데이터 컴팩션 시스템(120)에서는, 사용자나 어플리케이션 등에 의한 데이터 조회, 수정, 삭제 등의 요청이 수신되면(S210), 상기 요청에 대응하는 데이터의 위치를 데이터베이스 등에서 확인하게 된다(S220).More specifically, as can be seen in FIG. 4, in the conventional data compaction system 120, when a request for data inquiry, modification, deletion, etc. by a user or application is received (S210), a response corresponding to the request is received (S210). The location of the data is confirmed in the database (S220).

이어서, 상기 확인된 위치를 기반으로 스토리지부(110)에서 데이터를 로드하고(S230), 상기 데이터의 원본치와 변경치를 병합(merge)할 필요가 있는지 판별하게 된다(S240).Next, data is loaded from the storage unit 110 based on the confirmed location (S230), and it is determined whether it is necessary to merge the original and changed values of the data (S240).

이때, 병합(merge)가 필요하다고 판단되는 경우 RAM 등 메모리(memory)에서 상기 데이터의 원본치와 변경치를 병합(merge)하게 된다(S250).At this time, if it is determined that merging is necessary, the original and changed values of the data are merged in a memory such as RAM (S250).

이에 따라, 상기 데이터 컴팩션 시스템(120)에서는 상기 메모리(memory)에서 병합(merge)된 정보를 기반으로 상기 데이터의 조회 등 요청에 대응하게 된다(S260).Accordingly, the data compaction system 120 responds to a request for inquiry of the data based on information merged in the memory (S260).

이와 같이, 상기 데이터 컴팩션 시스템(120)에서는 사용자 등의 요청에 대하여 실시간으로 데이터에 대한 병합(merge)을 수행하면서 상기 요청에 대응하게 된다.In this way, the data compaction system 120 responds to requests from users, etc. by merging data in real time.

그런데, 종래의 데이터 컴팩션 시스템(120)에서는 위와 같은 실시간 데이터 처리와 별도로 미리 정해진 주기마다 일괄적(batch)으로 데이터 컴팩션(data compaction) 작업을 수행하게 된다.However, in the conventional data compaction system 120, apart from the above real-time data processing, data compaction is performed in batches at predetermined cycles.

보다 구체적으로, 도 4에서 볼 수 있는 바와 같이, 종래의 데이터 컴팩션 시스템(120)에서는, 관리자 등에 의하여 미리 정해진 스케줄에 기반하여 주기적으로 일괄 컴팩션(compaction) 작업이 개시되면(S270), 상기 데이터 컴팩션 시스템(120)에서는 컴팩션(compaction) 작업의 대상이 되는 전체 파일 목록을 확인하고(S280), 컴팩션(compaction) 대상 파일들을 메모리(memory)에 적재해 병합(merge)한 후 스토리지부(110)에 저장하고 위치 정보를 갱신하게 된다(S290).More specifically, as can be seen in FIG. 4, in the conventional data compaction system 120, when a batch compaction operation is started periodically based on a schedule predetermined by an administrator, etc. (S270), the The data compaction system 120 checks the entire list of files subject to compaction (S280), loads the files subject to compaction into memory, merges them, and then stores them in the story. It is stored in the branch 110 and the location information is updated (S290).

이에 따라, 종래의 데이터 컴팩션 시스템(120)에서는 주기적으로 다량의 데이터에 대하여 일괄적으로 데이터 컴팩션(data compaction) 작업을 수행하면서 시스템의 과부하가 유발될 수 있었고, 나아가 데이터에 대한 조회 등에서 반복적으로 병합(merge) 처리가 이루어지면서 전산 자원(computing resource)의 불필요한 소모가 초래될 수도 있었다.Accordingly, in the conventional data compaction system 120, overload of the system could be caused by periodically performing data compaction work on a large amount of data, and furthermore, repetitive data searches, etc. As the merge process was carried out, unnecessary consumption of computing resources could have occurred.

이에 대하여, 본 발명에서는 상기 컴팩션 처리 단계(S130)에서 상기 병합 처리의 수행 여부에 기반하여 상기 제1 베이스 파일과 상기 제1 델타 파일이 병합된 제2 베이스 파일을 생성하여 상기 스토리지부(110)에서 상기 제1 베이스 파일을 대체할 수 있다.In contrast, in the present invention, a second base file in which the first base file and the first delta file are merged is generated based on whether the merge process is performed in the compaction processing step (S130), and the storage unit 110 ) can replace the first base file.

보다 구체적으로, 도 5에서 볼 수 있는 바와 같이, 본 발명에서 데이터 컴팩션 시스템(120)에서는, 사용자나 어플리케이션 등에 의한 데이터 조회, 수정, 삭제 등의 요청이 수신되면(S310), 상기 요청에 대응하는 데이터의 위치를 데이터베이스 등에서 확인하게 된다(S320).More specifically, as can be seen in FIG. 5, in the present invention, in the data compaction system 120, when a request for data inquiry, modification, deletion, etc. by a user or application is received (S310), the request is responded to. The location of the data is checked in the database, etc. (S320).

이어서, 상기 확인된 위치를 기반으로 스토리지부(110)에서 데이터를 로드하고(S330), 상기 데이터의 원본치와 변경치를 병합(merge)할 필요가 있는지 판별하게 된다(S340).Next, data is loaded from the storage unit 110 based on the confirmed location (S330), and it is determined whether it is necessary to merge the original and changed values of the data (S340).

이때, 병합(merge)가 필요하다고 판단되는 경우 RAM 등 메모리(memory)에서 상기 데이터의 원본치와 변경치를 병합(merge)하게 된다(S350).At this time, if it is determined that merging is necessary, the original and changed values of the data are merged in a memory such as RAM (S350).

이에 따라, 상기 데이터 컴팩션 시스템(120)에서는 상기 메모리(memory)에서 병합(merge)된 정보를 기반으로 상기 요청에 대응하게 된다(S360).Accordingly, the data compaction system 120 responds to the request based on the information merged in the memory (S360).

나아가, 본 발명에서, 상기 데이터 컴팩션 시스템(120)에서는 상기 사용자 등의 요청에 따라 메모리(memory) 등에서 데이터의 병합(merge)가 수행되면 상기 병합(merge)된 정보를 실시간으로 인터셉트(intercept)하고, 상기 병합된 정보를 기반으로 새로운 파일을 생성하여 실시간으로 상기 스토리지부(110)에서 상기 베이스 파일(base file) 및/또는 델타 파일(delta file)을 대체하게 된다.Furthermore, in the present invention, in the data compaction system 120, when data merge is performed in memory, etc. according to the request of the user, etc., the merged information is intercepted in real time. And, a new file is created based on the merged information to replace the base file and/or delta file in the storage unit 110 in real time.

보다 구체적으로, 도 5에서 볼 수 있는 바와 같이, 본 발명에서 상기 데이터 컴팩션 시스템(120)은 병합 처리의 수행이 감지되면 메모리 등에서 상기 병합(merge)된 정보(파일 위치, 메모리 주소 등을 포함할 수 있음)를 인터셉트(intercept)하게 된다(S410).More specifically, as can be seen in FIG. 5, in the present invention, when the data compaction system 120 detects the performance of merge processing, the merged information (including file location, memory address, etc.) is stored in memory, etc. can be intercepted (S410).

또한, 상기 데이터 컴팩션 시스템(120)에서는 상기 메모리 등에서 인터셉트(intercept)한 정보를 별도의 캐시 저장 장치(126)에 저장할 수 있다(S420).Additionally, the data compaction system 120 may store information intercepted from the memory, etc. in a separate cache storage device 126 (S420).

이어서, 상기 데이터 컴팩션 시스템(120)에서는 상기 캐시 저장 장치(126)에 저장된 상기 병합(merge)된 정보를 기반으로 상기 스토리지부(110)에 기존의 베이스 파일(base file) 및/또는 델타 파일(delta file)을 대체하는 새로운 베이스 파일(base file) 및 또는 델타 파일(delta file)을 생성할 수 있다(S430).Subsequently, the data compaction system 120 stores the existing base file and/or delta file in the storage unit 110 based on the merged information stored in the cache storage device 126. A new base file and or delta file that replace the (delta file) can be created (S430).

이에 따라, 상기 데이터 컴팩션 시스템(120)에서는 파일의 위치 정보를 상기 생성된 새로운 파일의 위치로 수정하고 기존의 파일들을 삭제할 수 있다(S440).Accordingly, the data compaction system 120 can modify the file location information to the location of the created new file and delete existing files (S440).

이에 따라, 본 발명의 일 실시예에 따른 데이터 컴팩션 시스템(120)에서는 변경이 허용되지 않는 방식으로 저장되는 스토리지(storage)에서의 데이터 컴팩션(data compaction) 과정에서 나타날 수 있는 시스템의 과부하 및 반복적인 병합(merge) 처리에 따른 전산 자원의 불필요한 소모를 효과적으로 방지할 수 있게 된다.Accordingly, in the data compaction system 120 according to an embodiment of the present invention, system overload and It is possible to effectively prevent unnecessary consumption of computing resources due to repetitive merge processing.

또한, 상기 데이터 컴팩션 시스템(120)은 하나 혹은 둘 이상의 서버(server)를 이용하여 구현될 수 있으나, 본 발명이 반드시 이에 한정되는 것은 아니며 이외에도 전용 장치로 구현되거나, 상기 데이터 저장 시스템(100)에 포함되는 동일한 서버 등의 장치에서 구동되는 프로세스 등으로 구현되는 등 다양한 형태로 구현하는 것이 가능하다.In addition, the data compaction system 120 may be implemented using one or two or more servers, but the present invention is not necessarily limited thereto and may be implemented as a dedicated device or the data storage system 100. It is possible to implement it in various forms, such as being implemented as a process running on the same server or other device included in .

또한, 도 1에서 상기 스토리지부(110)와 상기 데이터 컴팩션 시스템(120)를 연결하는 데이터 네트워크(130)로서는 유선 네트워크와 무선 네트워크를 포함할 수 있으며, 구체적으로, 근거리 통신망 (LAN: Local Area Network), 도시권 통신망 (MAN: Metropolitan Area Network), 광역 통신망 (WAN: Wide Area Network) 등의 다양한 통신망을 포함할 수 있다. 또한, 상기 데이터 네트워크(130)는 공지의 월드 와이드 웹(WWW: World Wide Web)을 포함할 수도 있다. 나아가, 상기 데이터 네트워크(130)는 데이터 등을 송수신할 수 있도록 구성되는 데이터 버스(bus) 등을 이용하여 구현될 수도 있다. In addition, in FIG. 1, the data network 130 connecting the storage unit 110 and the data compaction system 120 may include a wired network and a wireless network, and specifically, a local area network (LAN). Network), metropolitan area network (MAN: Metropolitan Area Network), and wide area network (WAN: Wide Area Network). Additionally, the data network 130 may include the known World Wide Web (WWW). Furthermore, the data network 130 may be implemented using a data bus or the like configured to transmit and receive data.

또한, 본 발명에서 상기 데이터 컴팩션 시스템(120)이 반드시 상기 데이터 네트워크(130)를 통하여 상기 스토리지부(110)와 소정의 데이터를 송수신하여야 하는 것은 아니며, 상기 데이터 네트워크(130)를 거치지 않고 직접 데이터를 송수신하거나, 나아가 상기 데이터 컴팩션 시스템(120)이 상기 스토리지부(110)와 일체형으로 구성되는 등 다양한 형태로 구현하는 것도 가능하다.In addition, in the present invention, the data compaction system 120 does not necessarily have to transmit and receive certain data with the storage unit 110 through the data network 130, and directly without going through the data network 130. It is also possible to implement it in various forms, such as transmitting and receiving data, or furthermore, the data compaction system 120 is integrated with the storage unit 110.

또한, 도 6과 도 7에서는 본 발명의 일 실시예에 따른 데이터 컴팩션 방법에서의 구체적인 동작을 자세하게 설명하고 있다.Additionally, Figures 6 and 7 describe in detail specific operations in the data compaction method according to an embodiment of the present invention.

도 6과 도7에 도시된 방법은 예를 들어, 데이터 컴팩션 시스템(120)에 의해 수행될 수 있으며, 나아가 상기 데이터 컴팩션 시스템(120)은 도 12 및 도 12와 관련하여 후술하는 설명의 컴퓨팅 장치를 포함하여 구현될 수 있다. 예컨대 상기 데이터 컴팩션 시스템(120)은 프로세서(10)를 구비하고 상기 프로세서(10)에서는 테이블 좌표 정보를 보정하기 위한 동작을 구현하도록 구성된 명령어를 수행하여 테이블 좌표 정보를 보정할 수 있다.The method shown in FIGS. 6 and 7 may be performed, for example, by the data compaction system 120, and further, the data compaction system 120 may be used as described later in relation to FIGS. 12 and 12. It may be implemented including a computing device. For example, the data compaction system 120 includes a processor 10, and the processor 10 can correct table coordinate information by executing instructions configured to implement an operation for correcting table coordinate information.

먼저, 도 6에서 볼 수 있는 바와 같이, 사용자 등에 의하여 데이터 조회 등에 대한 요청이 수신되면(도 6의 ①), 데이터 컴팩션 시스템(120)에서는 스토리지부(110)에 저장된 각 베이스 파일과 델타 파일을 메모리 등으로 적재하고 이에 대한 병합(merge) 처리를 수행하여 병합 정보(도 6의 ②, ③)을 생성하게 된다.First, as can be seen in FIG. 6, when a request for data inquiry, etc. is received by a user, etc. (① in FIG. 6), the data compaction system 120 stores each base file and delta file stored in the storage unit 110. is loaded into memory, etc., and merge processing is performed on it to generate merge information (② and ③ in FIG. 6).

이때, 상기 데이터 컴팩션 시스템(120)의 메모리 인터셉터(125)에서는 상기 병합 처리의 수행을 감지하고 상기 메모리에서 상기 병합 정보를 수집하여 캐시 저장 장치(126)로 전달하고(도 6의 ④), 상기 캐시 저장 장치(126)에서는 상기 병합 정보(파일 위치, 메모리 주소 등을 포함)를 저장하게 된다(도 6의 ⑤).At this time, the memory interceptor 125 of the data compaction system 120 detects the performance of the merge process, collects the merge information from the memory, and transmits it to the cache storage device 126 (④ in FIG. 6), The cache storage device 126 stores the merged information (including file location, memory address, etc.) (⑤ in FIG. 6).

이에 따라, 스마트 컴팩터(127)에서는 상기 캐시 저장 장치(126)를 기반으로 신속하게 컴팩션 작업을 처리할 수 있게 된다(도 6의 ⑥).Accordingly, the smart compactor 127 can quickly process the compaction task based on the cache storage device 126 (⑥ in FIG. 6).

나아가, 도 7에서 볼 수 있는 바와 같이, 상기 데이터 컴팩션 시스템(120)에서는 사용자 등의 데이터 조회 등 요청에 따라 병합(merge) 처리된 데이터에 대한 컴팩션 작업을 수행하여 상기 스토리지부(110)에 실시간으로 갱신할 수 있으며, 이에 따라 사용자 등에 의하여 반복적으로 데이터 조회 등의 요청이 있더라도(도 7의 ⑦) 데이터에 대한 병합(merge) 처리가 반복적으로 수행되는 것을 방지할 수 있게 된다.Furthermore, as can be seen in FIG. 7, the data compaction system 120 performs a compaction operation on merged data according to a request such as a data inquiry from a user, etc. to store the storage unit 110. It can be updated in real time, and accordingly, even if there are repeated requests for data inquiry by users, etc. (⑦ in FIG. 7), it is possible to prevent the merge process for data from being repeatedly performed.

또한, 도 8에서는 본 발명의 일 실시예에 따른 데이터 컴팩션 시스템(120)에 대한 구체적인 구현예를 들어 설명하고 있다.In addition, Figure 8 illustrates a specific implementation example of the data compaction system 120 according to an embodiment of the present invention.

보다 구체적으로, 도 8에서 볼 수 있는 바와 같이, 종래의 데이터 컴팩션 시스템(120)에서 사용자의 조회 등 요청을 처리하는 모듈의 동작을 살펴보면 아래와 같다.More specifically, as can be seen in FIG. 8, the operation of the module that processes requests such as user inquiries in the conventional data compaction system 120 is as follows.

먼저, 사용자의 요청에 따른 쿼리(query)를 분석하여(S510), 이에 대응하는 파일의 목록을 확인하게 된다(S520).First, the query according to the user's request is analyzed (S510), and the list of files corresponding to it is checked (S520).

이어서, 상기 확인된 목록의 파일을 메모리에 로드(load)하고(S530), 추가적인 연산 처리를 거쳐(S540), 최종적인 결과치를 제공하여 상기 요청에 대응하게 된다(S550).Next, the files in the confirmed list are loaded into memory (S530), undergo additional computational processing (S540), and provide the final result to respond to the request (S550).

이때, 도 8에서 볼 수 있는 바와 같이, 기존의 메모리 로드(MemoryLoad) 모듈은 도 8의 (A-1)과 같은 구조를 가질 수 있는데, 이에 대하여 본 발명의 일 실시예에 따른 데이터 컴팩션 시스템(120)에서는 상기 메모리 로드(MemoryLoad) 모듈에서 캐시 저장 장치(126)로 데이터를 저장할 수 있도록, 별도의 어플리케이션(application)을 구동하여 백그라운드(background)에서 실행되도록 구현될 수 있다(도 8의 (A-2)).At this time, as can be seen in FIG. 8, the existing memory load module may have the same structure as (A-1) in FIG. 8. In this case, the data compaction system according to an embodiment of the present invention At 120, a separate application can be run in the background so that data can be saved from the MemoryLoad module to the cache storage device 126 (see (Figure 8). A-2)).

이에 따라, 본 발명의 일 실시예에 따른 데이터 컴팩션 시스템(120)에서는 기존의 메모리 로드(MemoryLoad) 모듈의 로직을 그대로 수행하면서 기존 로직에 대한 영향을 최소화하고, 데이터에 대한 병합(merge) 처리가 감지되면 이에 대응하는 병합 정보를 캐시 저장 장치(126)로 저장하는 작업을 백그라운드에서 수행할 수 있게 된다.Accordingly, the data compaction system 120 according to an embodiment of the present invention performs the logic of the existing memory load module as is, minimizes the impact on the existing logic, and performs merge processing on the data. When detected, the task of saving the corresponding merge information to the cache storage device 126 can be performed in the background.

또한, 본 발명의 일 실시예에 따른 데이터 컴팩션 방법에서, 상기 컴팩션 처리 단계(S130)에서는, 상기 병합 정보의 크기가 미리 정해진 기준치보다 큰 경우에만 상기 병합 정보를 상기 캐시 저장 장치(126)에 저장하도록 할 수 있다.Additionally, in the data compaction method according to an embodiment of the present invention, in the compaction processing step (S130), the merged information is stored in the cache storage device 126 only when the size of the merged information is larger than a predetermined standard value. You can save it in .

나아가, 본 발명의 일 실시예에 따른 데이터 컴팩션 방법에서, 상기 컴팩션 처리 단계(S130)에서는, 상기 제2 베이스 파일로 상기 제1 베이스 파일을 대체한 시점 이후 미리 정해진 기준 시간이 경과한 경우에만 다시 상기 제2 베이스 파일에 대한 컴팩션 작업을 수행하도록 할 수도 있다.Furthermore, in the data compaction method according to an embodiment of the present invention, in the compaction processing step (S130), when a predetermined reference time has elapsed since the time of replacing the first base file with the second base file Only then can the compaction operation on the second base file be performed again.

보다 구체적으로, 도 9에서 볼 수 있는 바와 같이, 본 발명의 일 실시예에 따른 데이터 컴팩션 방법에서, 상기 캐시 저장 장치(126)에 대한 저장 함수가 호출되면(S610), 메모리에서 인터셉트(intercept)된 병합 정보의 크기가 미리 정해진 기준치 이상인지 여부를 판단하고(S620), 상기 기준치 이상인 경우에만 상기 캐시 저장 장치(126)에 대한 저장 기능을 수행(S630)할 수 있다.More specifically, as can be seen in FIG. 9, in the data compaction method according to an embodiment of the present invention, when the storage function for the cache storage device 126 is called (S610), an intercept is performed in memory. ) It is determined whether the size of the merged information is greater than or equal to a predetermined standard value (S620), and only when the size is greater than or equal to the standard value, the storage function for the cache storage device 126 can be performed (S630).

이에 따라, 상기 데이터 컴팩션 시스템(120)에서는 상기 캐시 저장 장치(126)에 대한 데이터 추가 신호를 수신하면(S710), 이전에 데이터 컴팩션 작업을 수행한 시간을 기준으로 미리 정해진 기준 시간이 경과하였는지 여부를 판단하여(S720), 미리 정해진 기준 시간이 경과한 경우에만 상기 캐시 저장 장치(126)에 대한 저장 기능이 수행되도록 할 수 있다Accordingly, when the data compaction system 120 receives a data addition signal for the cache storage device 126 (S710), a predetermined reference time elapses based on the time when the data compaction task was previously performed. By determining whether or not the cache storage device 126 has been used (S720), the storage function for the cache storage device 126 can be performed only when a predetermined reference time has elapsed.

또한, 상기 추가하고자 하는 데이터에 대응하는 파일이 스토리지부(110)에 존재하는지 여부를 판단하여 존재하지 않는 경우 저장 기능을 중지하도록 할 수도 있다(S730).Additionally, it is possible to determine whether a file corresponding to the data to be added exists in the storage unit 110 and, if not, stop the storage function (S730).

이어서, 상기 데이터 컴팩션 시스템(120)에서는 메모리에서 인터셉트(intercept)된 병합 정보를 이용하여 상기 스토리지부(110)에 새로운 파일을 생성하고(S740), 기존 파일에 대한 위치 정보를 수정한 후(S750), 상기 스토리지부(110)에서 기존 파일을 삭제할 수 있다(S760).Subsequently, the data compaction system 120 creates a new file in the storage unit 110 using the merge information intercepted from the memory (S740), and modifies the location information for the existing file (S740). S750), existing files can be deleted from the storage unit 110 (S760).

이에 따라, 상기 데이터 컴팩션 시스템(120)에서는 상기 캐시 저장 장치(126)에 저장된 상기 병합 정보를 삭제하고(S770), 위와 같은 컴팩션 수행 내역에 대한 정보를 도 10에서 볼 수 있는 바와 같이 메타 데이터베이스(128)에 생성할 수 있다(S780).Accordingly, the data compaction system 120 deletes the merge information stored in the cache storage device 126 (S770), and information on the compaction performance details is stored in the meta as shown in FIG. 10. It can be created in the database 128 (S780).

이때, 도 10에서 볼 수 있는 바와 같이, 상기 데이터 컴팩션 시스템(120)에서, 메모리 인터셉터(125)는 상기 캐시 저장 장치(126)에 저장하고자 하는 상기 병합 정보의 크기가 미리 정해진 기준치보다 큰 경우에만 상기 캐시 저장 장치(126)에 저장할 수 있다(도 10의 ①).At this time, as can be seen in FIG. 10, in the data compaction system 120, the memory interceptor 125 detects that the size of the merged information to be stored in the cache storage device 126 is larger than a predetermined reference value. It can only be stored in the cache storage device 126 (① in FIG. 10).

또한, 도 10에서 볼 수 있는 바와 같이, 상기 데이터 컴팩션 시스템(120)에서, 스마트 컴팩터(126)는 상기 제2 베이스 파일로 상기 제1 베이스 파일을 대체한 시점 이후 미리 정해진 기준 시간이 경과한 경우에만 다시 상기 제2 베이스 파일에 대한 컴팩션 작업을 수행하도록 할 수 있다(도 10의 ②).In addition, as can be seen in FIG. 10, in the data compaction system 120, the smart compactor 126 waits for a predetermined reference time to elapse after replacing the first base file with the second base file. Only in one case can the compaction operation on the second base file be performed again (② in FIG. 10).

이때, 상기 데이터 컴팩션 시스템(120)에서는, 상기 미리 정해진 기준 시간 동안 상기 캐시 저장 장치(126)에 누적되는 상기 병합 정보를 최종의 병합 정보만 남기고 나머지는 삭제할 수 있다.At this time, the data compaction system 120 may delete the remaining merged information accumulated in the cache storage device 126 during the predetermined reference time, leaving only the final merged information.

또한, 상기 데이터 컴팩션 시스템(120)에서는, 상기 컴팩션이 완료된 내역에 대해서는 상기 캐시 저장 장치(126)에서 삭제할 수 있으며(도 10의 ③) 나아가 메타 데이터베이스(128)에서 미리 정해진 특정 시간이 경과된 컴팩션 완료 목록을 자동 삭제하는 것도 가능하다.In addition, in the data compaction system 120, the details for which the compaction has been completed can be deleted from the cache storage device 126 (③ in FIG. 10), and further, a specific time predetermined in the meta database 128 has elapsed. It is also possible to automatically delete the compaction completion list.

이때, 도 9와 도10에 도시된 방법은 예를 들어, 데이터 컴팩션 시스템(120)에 의해 수행될 수 있으며, 나아가 상기 데이터 컴팩션 시스템(120)은 도 12 및 도 12와 관련하여 후술하는 설명의 컴퓨팅 장치를 포함하여 구현될 수 있다. 예컨대 상기 데이터 컴팩션 시스템(120)은 프로세서(10)를 구비하고 상기 프로세서(10)에서는 테이블 좌표 정보를 보정하기 위한 동작을 구현하도록 구성된 명령어를 수행하여 테이블 좌표 정보를 보정할 수 있다.At this time, the method shown in FIGS. 9 and 10 may be performed, for example, by the data compaction system 120, and further, the data compaction system 120 may use the method described later with reference to FIGS. 12 and 12. Implementations may include a computing device as described. For example, the data compaction system 120 includes a processor 10, and the processor 10 can correct table coordinate information by executing instructions configured to implement an operation for correcting table coordinate information.

또한, 본 발명의 또 다른 측면에 따른 컴퓨터 프로그램은 앞서 살핀 데이터 컴팩션 방법의 각 단계를 컴퓨터에서 실행시키기 위하여 컴퓨터로 판독 가능한 매체에 저장된 컴퓨터 프로그램인 것을 특징으로 한다. 상기 컴퓨터 프로그램은 컴파일러에 의해 만들어지는 기계어 코드를 포함하는 컴퓨터 프로그램뿐만 아니라, 인터프리터 등을 사용해서 컴퓨터에서 실행될 수 있는 고급 언어 코드를 포함하는 컴퓨터 프로그램일 수도 있다. 이때, 상기 컴퓨터로서는 퍼스널 컴퓨터(PC)나 노트북 컴퓨터 등에 한정되지 아니하며, 서버, 스마트폰, 태블릿 PC, PDA, 휴대전화 등 중앙처리장치(CPU)를 구비하여 컴퓨터 프로그램을 실행할 수 있는 일체의 정보처리 장치를 포함한다. In addition, the computer program according to another aspect of the present invention is characterized as being a computer program stored in a computer-readable medium in order to execute each step of the data compaction method discussed above on a computer. The computer program may be a computer program including machine language code created by a compiler, as well as a computer program including high-level language code that can be executed on a computer using an interpreter or the like. At this time, the computer is not limited to a personal computer (PC) or laptop computer, but any information processing device equipped with a central processing unit (CPU) such as a server, smartphone, tablet PC, PDA, or mobile phone capable of executing a computer program. Includes device.

또한, 컴퓨터가 읽을 수 있는 매체는, 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 복수의 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.Additionally, a computer-readable medium may continuously store a computer-executable program or temporarily store it for execution or download. Additionally, the medium may be a variety of recording or storage means in the form of a single or multiple pieces of hardware combined. It is not limited to a medium directly connected to a computer system and may be distributed over a network. 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.

또한, 도 11에서는 본 발명의 일 실시예에 따른 데이터 컴팩션 시스템 (120)의 구성도를 예시하고 있다. Additionally, Figure 11 illustrates a configuration diagram of a data compaction system 120 according to an embodiment of the present invention.

도 11에서 볼 수 있는 바와 같이 본 발명의 일 실시예에 따른 데이터 컴팩션 시스템(120)은 스토리지 저장부(121), 병합 처리 수행부(122) 및 컴팩션 처리부(123)를 포함하여 구성될 수 있다.As can be seen in FIG. 11, the data compaction system 120 according to an embodiment of the present invention includes a storage storage unit 121, a merge processing unit 122, and a compaction processing unit 123. You can.

이어서, 아래에서는 본 발명의 일 실시예에 따른 데이터 컴팩션 시스템(120)을 각 구성요소 별로 나누어 살핀다. 본 발명의 일 실시예에 따른 데이터 컴팩션 시스템(120)에 대한 보다 자세한 내용은 앞서 설명한 본 발명의 일 실시예에 따른 데이터 컴팩션 방법에 대한 설명으로부터 유추될 수 있는 바, 아래에서 보다 자세한 설명은 생략한다.Next, the data compaction system 120 according to an embodiment of the present invention will be examined by dividing it into each component. More detailed information about the data compaction system 120 according to an embodiment of the present invention can be inferred from the description of the data compaction method according to an embodiment of the present invention described above, and will be described in more detail below. is omitted.

먼저, 상기 스토지리 저장부(121)에서는, 데이터의 원본치를 포함하는 제1 베이스 파일과 상기 데이터의 변경치를 포함하는 제1 델타 파일을 스토지리부(110)에 저장하게 된다.First, the storage unit 121 stores a first base file containing original data and a first delta file containing changed values of the data in the storage unit 110.

또한, 상기 병합 처리 수행부(122)에서는 상기 데이터에 대한 요청에 기하여 상기 데이터의 원본치와 상기 데이터의 변경치에 대한 병합 처리를 수행하며, 나아가 이를 이용하여 상기 요청에 대응할 수 있다.In addition, the merge processing unit 122 performs merge processing on the original value of the data and the changed value of the data based on the request for the data, and can further use this to respond to the request.

마지막으로, 상기 컴팩션 처리부(123)에서는 상기 병합 처리의 수행이 감지되면 상기 제1 베이스 파일과 상기 제1 델타 파일이 병합된 제2 베이스 파일을 생성하여 상기 스토리지부에서 상기 제1 베이스 파일을 대체하게 된다.Finally, when the compaction processing unit 123 detects that the merge process is performed, the compaction processing unit 123 generates a second base file in which the first base file and the first delta file are merged, and stores the first base file in the storage unit. It will be replaced.

여기서, 상기 스토지리부(110)에서, 상기 제1 베이스 파일에 포함되는 데이터에 대한 변경은 허용되지 않을 수 있다.Here, in the storage unit 110, changes to data included in the first base file may not be permitted.

또한, 상기 병합 처리부(122)에서는 상기 제1 베이스 파일과 상기 제1 델타 파일을 메모리로 적재하여 병합 처리를 수행하며, 상기 컴팩션 처리부(123)에서는 상기 메모리에서 수행되는 병합 처리에 대한 병합 정보를 수집하고 이를 기초로 상기 스토리지부(110)에서 상기 제2 베이스 파일을 생성하여 상기 제1 베이스 파일을 대체할 수 있다.In addition, the merge processing unit 122 loads the first base file and the first delta file into memory and performs merge processing, and the compaction processing unit 123 provides merge information for the merge processing performed in the memory. may be collected and based on this, the storage unit 110 may generate the second base file to replace the first base file.

이때, 상기 컴팩션 처리부(123)에서는, 상기 메모리에서 상기 병합 정보를 수집하여 캐시 저장 장치(126)에 저장할 수 있다.At this time, the compaction processing unit 123 may collect the merge information from the memory and store it in the cache storage device 126.

또한, 상기 컴팩션 처리부(123)에서는, 상기 병합 처리 수행부(122)와 독립적으로 구동되는 별도의 어플리케이션(application)을 이용하여 상기 캐시 저장 장치(126)에 저장된 상기 병합 정보를 기초로 상기 스토리지부(110)에 상기 제2 베이스 파일을 생성할 수 있다.In addition, the compaction processing unit 123 uses a separate application that runs independently of the merge processing unit 122 to store the story based on the merge information stored in the cache storage device 126. The second base file can be created in branch 110.

나아가, 상기 컴팩션 처리부(123)에서는, 상기 스토리지부(110)에서 상기 제1 베이스 파일을 삭제하고 상기 제2 베이스 파일로 대체할 수 있다.Furthermore, the compaction processing unit 123 may delete the first base file from the storage unit 110 and replace it with the second base file.

또한, 도 12에서는 본 발명의 제안 방법이 적용될 수 있는 장치(200)를 예시한다.Additionally, Figure 12 illustrates a device 200 to which the proposed method of the present invention can be applied.

도 12를 참조하면, 장치(200)는 본 발명의 제안 방법에 따른 데이터 컴팩션 프로세스를 구현하도록 구성될 수 있다. 일 예로, 장치(200)는 기업용 데이터 스토리지 서비스를 제공하는 서버 장치(200)일 수 있다.Referring to FIG. 12, the device 200 may be configured to implement a data compaction process according to the proposed method of the present invention. As an example, the device 200 may be a server device 200 that provides enterprise data storage services.

예를 들어, 본 발명의 제안 방법이 적용될 수 있는 장치(200)는 리피터, 허브, 브리지, 스위치, 라우터, 게이트웨이 등과 같은 네트워크 장치, 데스크톱 컴퓨터, 워크스테이션 등과 같은 컴퓨터 장치, 스마트폰 등과 같은 이동 단말, 랩톱 컴퓨터 등과 같은 휴대용 기기, 디지털 TV 등과 같은 가전 제품, 자동차 등과 같은 이동 수단 등을 포함할 수 있다. 다른 예로, 본 발명이 적용될 수 있는 장치(200)는 SoC(System On Chip) 형태로 구현된 ASIC(Application Specific Integrated Circuit)의 일부로 포함될 수 있다.For example, devices 200 to which the proposed method of the present invention can be applied include network devices such as repeaters, hubs, bridges, switches, routers, gateways, computer devices such as desktop computers, workstations, etc., and mobile terminals such as smartphones. , portable devices such as laptop computers, home appliances such as digital TVs, and means of transportation such as cars. As another example, the device 200 to which the present invention can be applied may be included as part of an Application Specific Integrated Circuit (ASIC) implemented in the form of a System On Chip (SoC).

메모리(20)는 프로세서(10)와 동작 시 연결될 수 있고, 프로세서(10)의 처리 및 제어를 위한 프로그램 및/또는 명령어들을 저장할 수 있고, 본 발명에서 사용되는 데이터와 정보, 본 발명에 따른 데이터 및 정보 처리를 위해 필요한 제어 정보, 데이터 및 정보 처리 과정에서 발생하는 임시 데이터 등을 저장할 수 있다. 메모리(20)는 ROM(Read Only Memory), RAM(Random Access Memory), EPROM(Erasable Programmable Read Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), 플래쉬(flash) 메모리, SRAM(Static RAM), HDD(Hard Disk Drive), SSD(Solid State Drive) 등과 같은 저장 장치로서 구현될 수 있다.The memory 20 may be connected to the processor 10 when operating, and may store programs and/or instructions for processing and controlling the processor 10, data and information used in the present invention, and data according to the present invention. and control information required for information processing, data, and temporary data generated during the information processing process. The memory 20 includes Read Only Memory (ROM), Random Access Memory (RAM), Erasable Programmable Read Only Memory (EPROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), flash memory, and Static RAM (SRAM). , can be implemented as a storage device such as a hard disk drive (HDD), solid state drive (SSD), etc.

프로세서(10)는 메모리(20) 및/또는 네트워크 인터페이스(30)와 동작 시 연결(operatively connected)될 수 있고, 장치(200) 내 각 모듈의 동작을 제어한다. 특히, 프로세서(10)는 본 발명의 제안 방법을 수행하기 위한 각종 제어 기능을 수행할 수 있다. 프로세서(120)는 컨트롤러(controller), 마이크로 컨트롤러(microcontroller), 마이크로 프로세서(microprocessor), 마이크로 컴퓨터(microcomputer) 등으로도 불릴 수 있다. 본 발명의 제안 방법은 하드웨어(hardware) 또는 펌웨어(firmware), 소프트웨어, 또는 이들의 결합에 의해 구현될 수 있다. 하드웨어를 이용하여 본 발명을 구현하는 경우에는, 본 발명을 수행하도록 구성된 ASIC(application specific integrated circuit) 또는 DSP(digital signal processor), DSPD(digital signal processing device), PLD(programmable logic device), FPGA(field programmable gate array) 등이 프로세서(10)에 구비될 수 있다. 한편, 펌웨어나 소프트웨어를 이용하여 본 발명의 제안 방법을 구현하는 경우에는 펌웨어나 소프트웨어는 본 발명의 제안 방법을 구현하는 데 필요한 기능 또는 동작들을 수행하는 모듈, 절차 또는 함수 등과 관련된 명령어(instruction)들을 포함할 수 있으며, 명령어들은 메모리(20)에 저장되거나 메모리(20)와 별도로 컴퓨터 판독가능한 기록 매체(미도시)에 저장되어 프로세서(10)에 의해 실행될 때 장치(120)가 본 발명의 제안 방법을 구현하도록 구성될 수 있다.The processor 10 may be operatively connected to the memory 20 and/or the network interface 30 and controls the operation of each module within the device 200. In particular, the processor 10 can perform various control functions to perform the proposed method of the present invention. The processor 120 may also be called a controller, microcontroller, microprocessor, microcomputer, etc. The proposed method of the present invention may be implemented by hardware, firmware, software, or a combination thereof. When implementing the present invention using hardware, an application specific integrated circuit (ASIC) or a digital signal processor (DSP), a digital signal processing device (DSPD), a programmable logic device (PLD), or an FPGA (FPGA) configured to perform the present invention is used. A field programmable gate array, etc. may be provided in the processor 10. Meanwhile, when the proposed method of the present invention is implemented using firmware or software, the firmware or software includes instructions related to modules, procedures, or functions that perform the functions or operations necessary to implement the proposed method of the present invention. It may include, and the instructions are stored in the memory 20 or in a computer-readable recording medium (not shown) separate from the memory 20, and when executed by the processor 10, the device 120 operates as the proposed method of the present invention. It can be configured to implement.

또한, 장치(200)는 네트워크 인터페이스 디바이스(network interface device)(30)를 포함할 수 있다. 네트워크 인터페이스 디바이스(30)는 프로세서(10)와 동작 시 연결되며, 프로세서(10)는 네트워크 인터페이스 디바이스(30)를 제어하여 무선/유선 네트워크를 통해 정보 및/또는 데이터, 신호, 메시지 등을 나르는 무선/유선 신호를 전송 또는 수신할 수 있다. 네트워크 인터페이스 디바이스(30)는 예를 들어 IEEE 802 계열, 3GPP LTE(-A), 3GPP 5G 등과 같은 다양한 통신 규격을 지원하며, 해당 통신 규격에 따라 제어 정보 및/또는 데이터 신호를 송수신할 수 있다. 네트워크 인터페이스 디바이스(30)는 필요에 따라 장치(200) 밖에 구현될 수도 있다.Additionally, device 200 may include a network interface device 30. The network interface device 30 is connected to the processor 10 when operating, and the processor 10 controls the network interface device 30 to carry information and/or data, signals, messages, etc. through a wireless/wired network. /Can transmit or receive wired signals. The network interface device 30 supports various communication standards, such as IEEE 802 series, 3GPP LTE(-A), 3GPP 5G, etc., and can transmit and receive control information and/or data signals according to the corresponding communication standards. The network interface device 30 may be implemented outside the device 200 as needed.

이에 따라, 본 발명의 일 실시예에 따른 데이터 컴팩션 방법, 장치, 시스템 및 컴퓨터 프로그램에서는, 클라우드 시스템이나 데이터베이스 시스템 등에서 변경이 허용되지 않는 방식으로 저장되는 스토리지(storage)에서의 데이터 컴팩션(data compaction) 과정에서 나타날 수 있는 시스템의 과부하 및 반복적인 병합(merge) 처리에 따른 전산 자원의 불필요한 소모를 효과적으로 억제할 수 있게 된다.Accordingly, in the data compaction method, device, system, and computer program according to an embodiment of the present invention, data compaction (data) in storage stored in a manner that does not allow changes in a cloud system or database system, etc. It is possible to effectively suppress unnecessary consumption of computing resources due to system overload that may occur during the compaction process and repetitive merge processing.

또한, 본 발명의 일 실시예에 따른 데이터 컴팩션 방법, 장치, 시스템 및 컴퓨터 프로그램에서는 관리자의 경험치 등에 따라 데이터 컴팩션(data compaction)의 수행 환경이 달라지는 등의 문제를 효과적으로 개선할 수 있게 된다. Additionally, the data compaction method, device, system, and computer program according to an embodiment of the present invention can effectively improve problems such as changes in the data compaction performance environment depending on the manager's experience level, etc.

본 명세서에서 설명된 위 실시예 및 도면들은 단지 예시적인 것일 뿐, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다. 또한, 도면에 도시된 구성요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, "필수적인", "중요하게" 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성요소가 아닐 수 있다.The above embodiments and drawings described in this specification are merely illustrative and do not limit the scope of the present invention in any way. In addition, the connections or connection members of lines between components shown in the drawings exemplify functional connections and/or physical or circuit connections, and in actual devices, various functional connections or physical connections can be replaced or added. Can be represented as connections, or circuit connections. Additionally, if there is no specific mention such as “essential,” “important,” etc., it may not be a necessary component for the application of the present invention.

본 발명의 명세서(특히 특허청구범위에서)에서 "상기"의 용어 및 이와 유사한 지시 용어의 사용은 단수 및 복수 모두에 해당하는 것일 수 있다. 또한, 본 발명에서 범위(range)를 기재한 경우 상기 범위에 속하는 개별적인 값을 적용한 발명을 포함하는 것으로서(이에 반하는 기재가 없다면), 발명의 상세한 설명에 상기 범위를 구성하는 각 개별적인 값을 기재한 것과 같다. 또한 본 발명 중 방법 발명에서 제시하는 단계들은 반드시 그 선후의 순서에 대한 구속을 의도한 것이 아니며, 각 공정의 본질에 따라 반드시 어느 단계가 선행되어야 하는 것이 아닌 한 순서는 필요에 따라 적절히 변경될 수 있다. 본 발명에서 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 본 발명을 상세히 설명하기 위한 것으로서 특허청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해본 발명의 범위가 한정되는 것은 아니다. 또한, 통상의 기술자는 다양한 수정, 조합 및 변경이 부가된 특허청구범위 또는 그 균등 범주 내에서 설계 조건 및 요소에 따라 구성될 수 있음을 이해할 수 있다.In the specification (particularly in the claims) of the present invention, the use of the term “above” and similar referential terms may refer to both the singular and the plural. In addition, when a range is described in the present invention, the invention includes the application of individual values within the range (unless there is a statement to the contrary), and each individual value constituting the range is described in the detailed description of the invention. It's the same. In addition, the steps presented in the method invention of the present invention are not necessarily intended to restrict the sequential order, and the order may be appropriately changed as needed unless a step must be preceded depending on the nature of each process. there is. The use of any examples or illustrative terms (e.g., etc.) in the present invention is merely for explaining the present invention in detail, and unless limited by the claims, the scope of the present invention is limited by the examples or illustrative terms. It doesn't work. Additionally, those skilled in the art will understand that various modifications, combinations and changes may be made according to design conditions and elements within the scope of the appended claims or their equivalents.

10 : 프로세서
20 : 메모리
30 : 인터페이스 디바이스
100 : 데이터 저장 시스템
110 : 스토리지부
120 : 데이터 컴팩션 시스템
121 : 스토리지 저장부
122 : 병합 처리 수행부
123 : 컴팩션 처리부
125 : 메모리 인터셉터
126 : 캐시 저장 장치
127 : 스마트 컴팩터
128 : 메타 데이터베이스
130 : 데이터 네트워크
200 : 장치
10: processor
20: memory
30: interface device
100: data storage system
110: storage unit
120: data compaction system
121: storage storage unit
122: Merge processing execution unit
123: compaction processing unit
125: memory interceptor
126: Cache storage device
127: Smart compactor
128: Metadatabase
130: data network
200: device

Claims (17)

데이터 컴팩션 시스템에서, 데이터의 원본치를 포함하는 제1 베이스 파일과 상기 데이터의 변경치를 포함하는 제1 델타 파일을 스토리지부에 저장하는 스토리지 저장 단계;
상기 데이터에 대한 요청에 기하여 상기 데이터의 원본치와 상기 데이터의 변경치에 대한 병합 처리를 수행하는 병합 처리 수행 단계; 및
상기 병합 처리의 수행 여부에 기반하여 상기 제1 베이스 파일과 상기 제1 델타 파일이 병합된 제2 베이스 파일을 생성하여 상기 스토리지부에서 상기 제1 베이스 파일을 대체하는 컴팩션 처리 단계;를 포함하는 것을 특징으로 하는 데이터 컴팩션 방법.
In a data compaction system, a storage step of storing a first base file containing original values of data and a first delta file containing changed values of the data in a storage unit;
A merge processing step of performing merge processing on the original value of the data and the changed value of the data based on the request for the data; and
A compaction processing step of generating a second base file in which the first base file and the first delta file are merged based on whether the merge processing is performed and replacing the first base file in the storage unit. A data compaction method characterized by:
제1항에 있어서,
상기 스토리지부에서,
상기 제1 베이스 파일에 포함되는 데이터에 대한 변경은 허용되지 않는 것을 특징으로 하는 데이터 컴팩션 방법.
According to paragraph 1,
In the storage unit,
A data compaction method, characterized in that changes to data included in the first base file are not permitted.
제1항에 있어서,
상기 병합 처리 단계에서는 상기 제1 베이스 파일과 상기 제1 델타 파일을 메모리로 적재하여 병합 처리를 수행하며,
상기 컴팩션 처리 단계에서는 상기 메모리에서 수행되는 병합 처리에 대한 병합 정보를 수집하고 이를 기초로 상기 스토리지부에서 상기 제2 베이스 파일을 생성하여 상기 제1 베이스 파일을 대체하는 것을 특징으로 하는 데이터 컴팩션 방법.
According to paragraph 1,
In the merge processing step, the first base file and the first delta file are loaded into memory and merge processing is performed,
In the compaction processing step, merge information for the merge process performed in the memory is collected, and based on this, the second base file is generated in the storage unit to replace the first base file. method.
제3항에 있어서,
상기 컴팩션 처리 단계에서는,
상기 메모리에서 상기 병합 정보를 수집하여 캐시 저장 장치에 저장하는 것을 특징으로 하는 데이터 컴팩션 방법.
According to paragraph 3,
In the compaction processing step,
A data compaction method characterized in that the merged information is collected from the memory and stored in a cache storage device.
제4항에 있어서,
상기 컴팩션 처리 단계에서는,
상기 병합 처리 수행 단계를 구동하는 어플리케이션과 독립적으로 구동되는 별도의 어플리케이션을 이용하여 상기 캐시 저장 장치에 저장된 상기 병합 정보를 기초로 상기 스토리지부에 상기 제2 베이스 파일을 생성하는 것을 특징으로 하는 데이터 컴팩션 방법.
According to paragraph 4,
In the compaction processing step,
Data compact, characterized in that generating the second base file in the storage unit based on the merge information stored in the cache storage device using a separate application that runs independently of the application that drives the merge processing step. Sean Method.
제5항에 있어서,
상기 컴팩션 처리 단계에서는,
상기 스토리지부에서 상기 제1 베이스 파일을 삭제하고 상기 제2 베이스 파일로 대체하는 것을 특징으로 하는 데이터 컴팩션 방법.
According to clause 5,
In the compaction processing step,
A data compaction method characterized in that the first base file is deleted from the storage unit and replaced with the second base file.
제4항에 있어서,
상기 컴팩션 처리 단계에서는,
상기 병합 정보의 크기가 미리 정해진 기준치보다 큰 경우에만 상기 병합 정보를 상기 캐시 저장 장치에 저장하는 것을 특징으로 하는 데이터 컴팩션 방법.
According to paragraph 4,
In the compaction processing step,
A data compaction method characterized in that the merged information is stored in the cache storage device only when the size of the merged information is larger than a predetermined standard value.
제4항에 있어서,
상기 컴팩션 처리 단계에서는,
상기 제2 베이스 파일로 상기 제1 베이스 파일을 대체한 시점 이후 미리 정해진 기준 시간이 경과한 경우에만 다시 상기 제2 베이스 파일에 대한 컴팩션 작업을 수행하도록 하는 것을 특징으로 하는 데이터 컴팩션 방법.
According to paragraph 4,
In the compaction processing step,
A data compaction method characterized in that the compaction operation on the second base file is performed again only when a predetermined reference time has elapsed since the time of replacing the first base file with the second base file.
제8항에 있어서,
상기 컴팩션 처리 단계에서는,
상기 미리 정해진 기준 시간 동안 상기 캐시 저장 장치에 누적되는 상기 병합 정보는 최종의 병합 정보만 남기고 나머지는 삭제하는 것을 특징으로 하는 데이터 컴팩션 방법.
According to clause 8,
In the compaction processing step,
A data compaction method, wherein the merged information accumulated in the cache storage device during the predetermined reference time is deleted, leaving only the final merged information and deleting the rest.
제8항에 있어서,
상기 컴팩션 처리 단계에서는,
메타 데이터베이스에서 미리 정해진 특정 시간이 경과된 컴팩션 완료 목록을 자동 삭제하는 것을 특징으로 하는 데이터 컴팩션 방법.
According to clause 8,
In the compaction processing step,
A data compaction method characterized by automatically deleting a list of completions of compaction after a certain predetermined time has elapsed from the metadatabase.
컴퓨터에서 제1 항 내지 제10항 중 어느 한 항에 기재된 데이터 컴팩션 방법의 각 단계를 실행시키기 위한 컴퓨터로 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램.A computer program stored in a computer-readable recording medium for executing each step of the data compaction method according to any one of claims 1 to 10 on a computer. 데이터의 원본치를 포함하는 제1 베이스 파일과 상기 데이터의 변경치를 포함하는 제1 델타 파일을 스토리지부에 저장하는 스토리지 저장부;
상기 데이터에 대한 요청에 기하여 상기 데이터의 원본치와 상기 데이터의 변경치에 대한 병합 처리를 수행하는 병합 처리 수행부; 및
상기 병합 처리의 수행 여부에 기반하여 상기 제1 베이스 파일과 상기 제1 델타 파일이 병합된 제2 베이스 파일을 생성하여 상기 스토리지부에서 상기 제1 베이스 파일을 대체하는 컴팩션 처리부;를 포함하는 것을 특징으로 하는 데이터 컴팩션 시스템.
a storage unit that stores a first base file containing original data and a first delta file containing modified data;
a merge processing unit that performs merge processing on the original value of the data and the changed value of the data based on the request for the data; and
A compaction processing unit that generates a second base file in which the first base file and the first delta file are merged based on whether the merge processing is performed and replaces the first base file in the storage unit. Featured data compaction system.
제12항에 있어서,
상기 스토리지부에서,
상기 제1 베이스 파일에 포함되는 데이터에 대한 변경은 허용되지 않는 것을 특징으로 하는 데이터 컴팩션 시스템.
According to clause 12,
In the storage unit,
A data compaction system, wherein changes to data included in the first base file are not permitted.
제12항에 있어서,
상기 병합 처리부에서는 상기 제1 베이스 파일과 상기 제1 델타 파일을 메모리로 적재하여 병합 처리를 수행하며,
상기 컴팩션 처리부에서는 상기 메모리에서 수행되는 병합 처리에 대한 병합 정보를 수집하고 이를 기초로 상기 스토리지부에서 상기 제2 베이스 파일을 생성하여 상기 제1 베이스 파일을 대체하는 것을 특징으로 하는 데이터 컴팩션 시스템.
According to clause 12,
The merge processing unit loads the first base file and the first delta file into memory and performs merge processing,
A data compaction system wherein the compaction processing unit collects merge information for the merge process performed in the memory, and based on this, the storage unit generates the second base file to replace the first base file. .
제14항에 있어서,
상기 컴팩션 처리부에서는,
상기 메모리에서 상기 병합 정보를 수집하여 캐시 저장 장치에 저장하는 것을 특징으로 하는 데이터 컴팩션 시스템.
According to clause 14,
In the compaction processing unit,
A data compaction system characterized in that the merged information is collected from the memory and stored in a cache storage device.
제15항에 있어서,
상기 컴팩션 처리부에서는,
상기 병합 처리 수행부와 독립적으로 구동되는 별도의 어플리케이션을 이용하여 상기 캐시 저장 장치에 저장된 상기 병합 정보를 기초로 상기 스토리지부에 상기 제2 베이스 파일을 생성하는 것을 특징으로 하는 데이터 컴팩션 시스템.
According to clause 15,
In the compaction processing unit,
A data compaction system, wherein the second base file is generated in the storage unit based on the merge information stored in the cache storage device using a separate application that runs independently of the merge processing unit.
제16항에 있어서,
상기 컴팩션 처리부에서는,
상기 스토리지부에서 상기 제1 베이스 파일을 삭제하고 상기 제2 베이스 파일로 대체하는 것을 특징으로 하는 데이터 컴팩션 시스템.
According to clause 16,
In the compaction processing unit,
A data compaction system characterized in that the first base file is deleted from the storage unit and replaced with the second base file.
KR1020220119837A 2022-09-22 2022-09-22 Method, apparatus, system and computer program for data compaction in storage with enhanced processing capability KR20240040922A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220119837A KR20240040922A (en) 2022-09-22 2022-09-22 Method, apparatus, system and computer program for data compaction in storage with enhanced processing capability

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220119837A KR20240040922A (en) 2022-09-22 2022-09-22 Method, apparatus, system and computer program for data compaction in storage with enhanced processing capability

Publications (1)

Publication Number Publication Date
KR20240040922A true KR20240040922A (en) 2024-03-29

Family

ID=90483878

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220119837A KR20240040922A (en) 2022-09-22 2022-09-22 Method, apparatus, system and computer program for data compaction in storage with enhanced processing capability

Country Status (1)

Country Link
KR (1) KR20240040922A (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200104856A (en) 2017-11-14 2020-09-04 스노우플레이크 인코포레이티드 Database metadata within an immutable repository

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200104856A (en) 2017-11-14 2020-09-04 스노우플레이크 인코포레이티드 Database metadata within an immutable repository

Similar Documents

Publication Publication Date Title
RU2615057C2 (en) Method and device for access to web-page and router
CN105468362A (en) Application deployment method and cloud computing system
US20200186593A1 (en) Application Deployment Engine
CN110795029B (en) Cloud hard disk management method, device, server and medium
EP2335151A1 (en) Method and system for sharing performance data between different information technology product/solution deployments
US20160269479A1 (en) Cloud virtual server scheduling method and apparatus
US11893029B2 (en) Real-time streaming data ingestion into database tables
KR102565857B1 (en) Service request processing method and related device
US11237888B2 (en) Message processing method and system, storage medium and electronic device
CN109857723B (en) Dynamic data migration method based on expandable database cluster and related equipment
CN104113576A (en) Method and device for updating client
US20230297563A1 (en) Generation of views with restrictions on use
CN114461503A (en) Log collection method and device based on Kubernets cluster, electronic equipment and storage medium
WO2017015059A1 (en) Efficient cache warm up based on user requests
US11394748B2 (en) Authentication method for anonymous account and server
US20230273801A1 (en) Method for configuring compute mode, apparatus, and computing device
CN113760638A (en) Log service method and device based on kubernets cluster
WO2020238131A1 (en) Web crawler system testing method and apparatus, storage medium, and electronic device
US11228537B2 (en) Resource processing method and system, storage medium and electronic device
CN111767126A (en) System and method for distributed batch processing
KR20240040922A (en) Method, apparatus, system and computer program for data compaction in storage with enhanced processing capability
CN112491940A (en) Request forwarding method and device of proxy server, storage medium and electronic equipment
CN113448739B (en) Data processing method and device
CN116185578A (en) Scheduling method of computing task and executing method of computing task
CN110851452B (en) Data table connection processing method and device, electronic equipment and storage medium