KR102619300B1 - Appratus and method for processing of storing data - Google Patents

Appratus and method for processing of storing data Download PDF

Info

Publication number
KR102619300B1
KR102619300B1 KR1020210050916A KR20210050916A KR102619300B1 KR 102619300 B1 KR102619300 B1 KR 102619300B1 KR 1020210050916 A KR1020210050916 A KR 1020210050916A KR 20210050916 A KR20210050916 A KR 20210050916A KR 102619300 B1 KR102619300 B1 KR 102619300B1
Authority
KR
South Korea
Prior art keywords
data
storage unit
storage
cold
input
Prior art date
Application number
KR1020210050916A
Other languages
Korean (ko)
Other versions
KR20220074685A (en
Inventor
강경태
박찬영
Original Assignee
한양대학교 에리카산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한양대학교 에리카산학협력단 filed Critical 한양대학교 에리카산학협력단
Publication of KR20220074685A publication Critical patent/KR20220074685A/en
Application granted granted Critical
Publication of KR102619300B1 publication Critical patent/KR102619300B1/en

Links

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/11File system administration, e.g. details of archiving or snapshots
    • G06F16/119Details of migration of file systems
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems

Landscapes

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

Abstract

데이터 저장 처리 장치 및 방법에 관한 것으로, 데이터 저장 처리 장치는 제1 저장부, 상기 제1 저장부와 이종인 제2 저장부 및 입력된 데이터를 복사 및 쓰기 B+ 트리를 기반으로 상기 제1 저장부에 추가하고, 상기 제1 저장부에 추가된 데이터 중에서 적어도 하나의 콜드 데이터를 상기 제2 저장부로 이주시키는 프로세서를 포함할 수 있다.Relating to a data storage and processing device and method, the data storage and processing device includes a first storage unit, a second storage unit of a different type from the first storage unit, and a second storage unit that copies and writes input data to the first storage unit based on a B+ tree. Additionally, it may include a processor that migrates at least one cold data among the data added to the first storage unit to the second storage unit.

Description

데이터 저장 처리 장치 및 방법{APPRATUS AND METHOD FOR PROCESSING OF STORING DATA}Data storage processing apparatus and method {APPRATUS AND METHOD FOR PROCESSING OF STORING DATA}

데이터 저장 처리 장치 및 방법에 관한 것이다.It relates to a data storage processing device and method.

데이터베이스는 각각의 데이터에 접근하거나 검색할 수 있도록 다수의 데이터를 체계적으로 통합하여 구축된 데이터의 집합을 의미한다. 이와 같은 데이터베이스는 데이터베이스를 관리하기 위한 데이터베이스 관리 시스템(DBMS: Database Management System)를 포함하여 구축되는 것이 일반적이다. 근자에는 키(key)와 값(value) 간의 관계를 테이블 형태로 구축한 관계형 데이터베이스가 많이 사용되고 있는데, 이러한 관계형 데이터베이스는 에스큐엘(SQL: Structured Query Language) 등을 이용하여 처리된다. 근자에는 관계형 데이터베이스 관리 시스템(RDMS: Relational Database Management Systems)의 대용량 데이터의 처리, 정확성, 확장성 및 가용성을 위해 뉴에스큐엘(NewSQL) 등과 같은 새로운 언어가 도입되고 있다. 뉴에스큐엘은 키를 해싱하지 않고 순서를 보존하여 저장하는 방식으로 데이터베이스의 최적화를 수행하기도 한다. 그런데, 통상적인 관계형 데이터베이스와 동일한 방법으로 데이터를 관리하게 되면 주 키의 범위가 연속적으로 나타나 데이터에 대한 각종 요청이 특정 노드에 집중되는 문제가 발생할 수 있다. 따라서, 요청의 분산을 위해 단조 증가 또는 감소하는 주키 대신에 범용 고유 식별자(UUID: Universal Unique Identifier)를 이용하기도 한다. 그러나, 이 경우에는 뉴에스큐엘의 스토리지 엔진에도 지속적으로 임의의 키가 분산 저장되므로 시간의 흐름에 따라 생성된 파일을 분류하기 어렵게 되는 문제점이 있었다.A database refers to a set of data built by systematically integrating multiple data so that each data can be accessed or searched. Such databases are typically built including a database management system (DBMS) to manage the database. Recently, relational databases that build relationships between keys and values in the form of tables are widely used, and these relational databases are processed using SQL (Structured Query Language), etc. Recently, new languages such as NewSQL are being introduced for processing, accuracy, scalability, and availability of large data in relational database management systems (RDMS). New SQL also optimizes the database by preserving and storing the order without hashing the keys. However, if data is managed in the same way as a typical relational database, the range of the main key appears continuously, which may cause problems in which various requests for data are concentrated on a specific node. Therefore, to distribute requests, a universal unique identifier (UUID) is used instead of a monotonically increasing or decreasing primary key. However, in this case, there was a problem in that random keys were continuously distributed and stored in New SQL's storage engine, making it difficult to classify files created over time.

범용 고유 식별자를 이용하여 데이터베이스를 관리하는 경우에도 생성된 파일을 분류하고, 분류된 데이터를 각각이 저장 장치에 적절하고 효율적으로 저장할 수 있도록 하는 데이터 저장 처리 장치 및 방법을 제공하는 것을 해결하고자 하는 과제로 한다.A problem to be solved is to provide a data storage processing device and method that classifies generated files even when a database is managed using a universal unique identifier and allows each classified data to be appropriately and efficiently stored in a storage device. Do this.

상술한 과제를 해결하기 위하여 데이터 저장 처리 장치 및 방법이 제공된다.In order to solve the above-described problems, a data storage processing device and method are provided.

데이터 저장 처리 장치는, 제1 저장부, 상기 제1 저장부와 이종인 제2 저장부 및 입력된 데이터를 복사 및 쓰기 B+ 트리를 기반으로 상기 제1 저장부에 추가하고, 상기 제1 저장부에 추가된 데이터 중에서 적어도 하나의 콜드 데이터를 상기 제2 저장부로 이주시키는 프로세서를 포함할 수 있다.A data storage processing device adds a first storage unit, a second storage unit of a different type to the first storage unit, and input data to the first storage unit based on a copy and write B+ tree, and adds the input data to the first storage unit. It may include a processor that migrates at least one cold data among the added data to the second storage unit.

상기 프로세서는, 상기 적어도 하나의 콜드 데이터를 미리 정의된 설정에 따라서 병합을 수행하여 적어도 하나의 병합 데이터를 획득하고, 상기 적어도 하나의 콜드 데이터 대신에 상기 적어도 하나의 병합 데이터를 상기 제2 저장부로 전달할 수 있다.The processor acquires at least one merged data by merging the at least one cold data according to a predefined setting, and stores the at least one merged data in place of the at least one cold data to the second storage unit. It can be delivered.

상기 프로세서는, 상기 제1 저장부에 추가된 데이터 중에서 적어도 하나의 핫 데이터를 제외하고 상기 적어도 하나의 콜드 데이터에 대한 병합을 수행할 수 있다.The processor may perform merging of the at least one cold data among the data added to the first storage unit, excluding at least one hot data.

상기 프로세서는, 상기 제1 저장부 및 상기 제2 저장부 중 적어도 하나의 저장 용량, 부하 수준 및 입출력 대역폭 사용량 중 적어도 하나를 기반으로, 상기 적어도 하나의 병합 데이터를 상기 제1 저장부로 이주시킬지 여부를 결정할 수 있다.The processor determines whether to migrate the at least one merged data to the first storage unit based on at least one of the storage capacity, load level, and input/output bandwidth usage of at least one of the first storage unit and the second storage unit. can be decided.

상기 콜드 데이터는 액세스 또는 업데이트의 빈도가 낮거나 중요도가 낮은 데이터를 포함하고, 상기 핫 데이터는 액세스 또는 업데이터의 빈도가 높거나 중요도가 높은 데이터를 포함할 수 있다.The cold data may include data that is accessed or updated frequently or is of low importance, and the hot data may include data that is accessed or updated frequently or is of high importance.

상기 제1 저장부는 상대적으로 높은 성능의 저장 장치를 포함하고, 상기 제2 저장부는 상대적으로 낮은 성능의 저장 장치를 포함할 수 있다.The first storage unit may include a storage device with relatively high performance, and the second storage unit may include a storage device with relatively low performance.

데이터 저장 처리 방법은, 복수의 데이터가 동시에 또는 순차적으로 입력되는 단계, 입력된 데이터를 복사 및 쓰기 B+ 트리를 기반으로 상기 제1 저장부에 추가하는 단계 및 상기 제1 저장부에 추가된 데이터 중에서 적어도 하나의 콜드 데이터를 상기 제1 저장부와 이종인 제2 저장부로 이주시키는 단계를 포함할 수 있다.The data storage processing method includes the steps of inputting a plurality of data simultaneously or sequentially, adding the input data to the first storage unit based on a copy and write B+ tree, and selecting the data added to the first storage unit. It may include migrating at least one cold data to a second storage unit that is different from the first storage unit.

상기 제1 저장부에 추가된 데이터 중에서 적어도 하나의 콜드 데이터를 상기 제2 저장부로 이주시키는 단계는, 미리 정의된 설정에 따라서 상기 적어도 하나의 콜드 데이터의 병합을 수행하여 적어도 하나의 병합 데이터를 획득하는 단계 및 상기 적어도 하나의 병합 데이터를 상기 제2 저장부로 전달하는 단계를 더 포함할 수 있다.The step of migrating at least one cold data from among the data added to the first storage unit to the second storage unit includes obtaining at least one merged data by merging the at least one cold data according to predefined settings. and transmitting the at least one merged data to the second storage unit.

상기 미리 정의된 설정에 따라서 상기 적어도 하나의 콜드 데이터의 병합을 수행하여 적어도 하나의 병합 데이터를 획득하는 단계는, 상기 제1 저장부에 추가된 데이터 중에서 적어도 하나의 핫 데이터를 배제하고 미리 정의된 설정에 따라서 상기 적어도 하나의 콜드 데이터의 병합을 수행하는 단계를 더 포함할 수 있다.Obtaining at least one merged data by merging the at least one cold data according to the predefined setting includes excluding at least one hot data from the data added to the first storage unit and Depending on settings, the method may further include merging the at least one cold data.

상기 제1 저장부에 추가된 데이터 중에서 적어도 하나의 콜드 데이터를 상기 제2 저장부로 이주시키는 단계는, 상기 제1 저장부 및 상기 제2 저장부 중 적어도 하나의 저장 용량, 부하 수준 및 입출력 대역폭 사용량 중 적어도 하나를 기반으로 상기 병합 데이터를 상기 제1 저장부로 이주시킬지 여부를 결정하는 단계를 더 포함하는 것도 가능하다.The step of migrating at least one cold data from among the data added to the first storage unit to the second storage unit includes the storage capacity, load level, and input/output bandwidth usage of at least one of the first storage unit and the second storage unit. It is also possible to further include the step of determining whether to migrate the merged data to the first storage unit based on at least one of the following.

상기 콜드 데이터는 액세스 또는 업데이트의 빈도가 낮거나 중요도가 낮은 데이터를 포함하고, 상기 핫 데이터는 액세스 또는 업데이터의 빈도가 높거나 중요도가 높은 데이터를 포함할 수 있다.The cold data may include data that is accessed or updated frequently or is of low importance, and the hot data may include data that is accessed or updated frequently or is of high importance.

상기 제1 저장부는 상대적으로 높은 성능의 저장 장치를 포함하고, 상기 제2 저장부는 상대적으로 낮은 성능의 저장 장치를 포함할 수도 있다.The first storage unit may include a storage device with relatively high performance, and the second storage unit may include a storage device with relatively low performance.

상술한 데이터 저장 처리 장치 및 방법에 의하면, 범용 고유 식별자를 이용하여 데이터베이스를 관리하는 경우에도 생성된 파일을 분류하고, 분류된 데이터를 각각이 저장 장치에 적절하고 효율적으로 저장할 수 있게 되는 장점을 얻을 수 있다.According to the above-described data storage processing device and method, even when managing a database using a universal unique identifier, the advantage of being able to classify the generated files and store the classified data appropriately and efficiently in each storage device is obtained. You can.

상술한 데이터 저장 처리 장치 및 방법에 의하면, 데이터 파일들에 대해 빈번히 새로운 데이터가 추가 및 쓰여지는 경우에도, 액세스 및 업데이트 빈도가 낮거나 또는 중요하지 않은 데이터 또는 파일은 상대적으로 성능이 낮은 저장 장치(하드디스크 저장장치 등)에 기록되도록 하고, 액세스 및 업데이트 빈도가 높거나 중요한 데이터 또는 파일은 상대적으로 성능이 우수한 저장 장치(솔리드 스테이트 드라이브 장치 등)에 저장되도록 할 수 있다.According to the above-described data storage processing apparatus and method, even when new data is frequently added and written to data files, data or files that are accessed and updated frequently or are not important are stored in a storage device with relatively low performance ( hard disk storage devices, etc.), and data or files that are frequently accessed and updated or are important can be stored in relatively high-performance storage devices (solid state drive devices, etc.).

상술한 데이터 저장 처리 장치 및 방법에 의하면, 순서를 보존하는 방법의 최적화 기법을 사용하는 뉴에스큐엘 등의 스토리지 엔진에 복수의 이종 저장 장치를 채용할 수 있게 되어 중요도가 낮은 데이터를 보다 효율적으로 분류 및 관리할 수 있게 된다.According to the above-described data storage processing device and method, it is possible to adopt a plurality of heterogeneous storage devices in a storage engine such as New SQL that uses an optimization technique for preserving order, so that less important data can be stored more efficiently. It can be classified and managed.

상술한 데이터 저장 처리 장치 및 방법에 의하면, 이종 저장 장치를 기반으로 한 데이터의 효율적, 차등적 관리에 의해 체감 성능의 저하 없이도 운영 및 관리에 있어서 인력 및 비용의 절감을 도모할 수 있게 된다.According to the data storage processing device and method described above, it is possible to reduce manpower and costs in operation and management without deteriorating perceived performance through efficient and differential management of data based on heterogeneous storage devices.

도 1은 데이터 저장 처리 장치의 일 실시예에 대한 블록도이다.
도 2는 제1 저장부 및 제2 저장부 각각에 저장된 제1 데이터 및 제2 데이터의 일례를 설명하기 위한 도면이다.
도 3은 제1 저장부에 데이터가 쓰여지는 과정의 일례를 설명하기 위한 도면이다.
도 4는 콜드 데이터를 병합하는 과정의 일례를 설명하기 위한 제1 도이다.
도 5는 콜드 데이터를 병합하는 과정의 일례를 설명하기 위한 제2 도이다.
도 6은 병합 데이터를 제2 저장부에 이주하는 과정의 일례를 설명하기 위한 도면이다.
도 7은 데이터 저장 처리 방법의 일 실시예에 대한 흐름도이다.
1 is a block diagram of one embodiment of a data storage processing device.
FIG. 2 is a diagram for explaining an example of first data and second data stored in each of the first storage unit and the second storage unit.
Figure 3 is a diagram for explaining an example of a process in which data is written to the first storage unit.
Figure 4 is a first diagram to explain an example of a process for merging cold data.
Figure 5 is a second diagram for explaining an example of a process for merging cold data.
FIG. 6 is a diagram illustrating an example of a process for migrating merged data to the second storage unit.
7 is a flowchart of one embodiment of a data storage processing method.

이하 실시예들을 설명함에 있어서 사용되는 '부'가 부가된 용어는, 소프트웨어 또는 하드웨어로 구현될 수 있으며, 설계에 따라서 하나의 '부'가 하나의 물리적 또는 논리적 부품으로 구현되거나, 복수의 '부'가 하나의 물리적 또는 논리적 부품으로 구현되거나, 하나의 '부'가 복수의 물리적 또는 논리적 부품들로 구현되는 것도 가능하다. 명세서 전체에서 어떤 부분이 다른 부분과 연결되어 있다고 할 때, 이는 어떤 부분과 다른 부분에 따라서 물리적 연결을 의미할 수도 있고, 또는 전기적으로 연결된 것을 의미할 수도 있다. 또한, 어떤 부분이 다른 부분을 포함한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 부분 이외의 또 다른 부분을 제외하는 것이 아니며, 설계자의 선택에 따라서 또 다른 부분을 더 포함할 수 있음을 의미한다. 제1이나 제2 등의 용어는 하나의 부분을 다른 부분으로부터 구별하기 위해 사용되는 것으로, 특별한 기재가 없는 이상 이들이 순차적인 표현을 의미하는 것은 아니다. 또한 단수의 표현은 문맥상 명백하게 예외가 있지 않는 한, 복수의 표현을 포함할 수 있다.Terms with the addition of 'unit' used in describing the following embodiments may be implemented as software or hardware, and depending on the design, one 'unit' may be implemented as one physical or logical part, or a plurality of 'units' may be implemented. ' may be implemented with one physical or logical part, or one 'part' may be implemented with a plurality of physical or logical parts. When a part is said to be connected to another part throughout the specification, this may mean a physical connection or an electrical connection depending on the part and the other part. In addition, when a part includes another part, this does not mean excluding another part other than the other part unless specifically stated to the contrary, and means that another part may be included depending on the designer's choice. do. Terms such as first or second are used to distinguish one part from another, and unless specifically stated, they do not mean sequential expressions. Additionally, singular expressions may include plural expressions, unless the context clearly makes an exception.

이하 도 1 내지 도 6을 참조하여 데이터 저장 처리 장치의 일 실시예에 대해서 설명하도록 한다.Hereinafter, an embodiment of a data storage processing device will be described with reference to FIGS. 1 to 6.

도 1은 데이터 저장 처리 장치의 일 실시예에 대한 블록도이다.1 is a block diagram of one embodiment of a data storage processing device.

도 1에 도시된 일 실시예에 따르면, 데이터 저장 처리 장치(10)는, 입력부(99)와, 프로세서(100)와, 제1 내지 제N 저장부(110 내지 130, 여기서 N은 2 이상의 자연수)를 포함할 수 있다. 입력부(99), 프로세서(100) 및 제1 내지 제N 저장부(110 내지 140) 중 적어도 둘은 회로, 케이블 및/또는 무선 통신 네트워크(예를 들어, 와이파이(Wi-Fi), 와이파이 다이렉트(Wi-Fi Direct), 블루투스(Bluetooth), 저전력 블루투스(Bluetooth Low Energy), 캔(CAN), 지그비(zigbee) 또는 엔에프씨(NFC: Near Field Communication) 등)을 통해 일 방에서 타 방으로, 또는 쌍방으로 지시나 데이터 등을 동시에 또는 순차적으로 송신/수신할 수 있게 마련된다. 이외에도 데이터 저장 처리 장치(10)는, 필요에 따라 프로세서(100)의 처리 결과, 제1 내지 제N 저장부(110 내지 140) 중 적어도 하나에 저장된 데이터 등을 외부로 시각적 또는 청각적으로 출력하는 출력부(미도시, 일례로 모니터 장치, 데이터 입출력 단자 또는 프린터 장치 등) 및/또는 입력부(99)와 더불어 또는 입력부(99)와 별개로 외부의 다른 장치(미도시)로부터 데이터(80)를 수신하거나 프로세서(100)의 처리 결과, 제1 내지 제N 저장부(110 내지 140) 중 적어도 하나에 저장된 데이터 등을 외부의 다른 장치로 전달할 수 있는 통신부(미도시, 일례로 랜 카드, 근거리 통신 모듈 또는 이동통신 모듈 등) 등을 더 포함하는 것도 가능하다.According to an embodiment shown in FIG. 1, the data storage and processing device 10 includes an input unit 99, a processor 100, and first to Nth storage units 110 to 130, where N is a natural number of 2 or more. ) may include. At least two of the input unit 99, the processor 100, and the first to Nth storage units 110 to 140 are connected to circuits, cables, and/or wireless communication networks (e.g., Wi-Fi, Wi-Fi Direct ( From one room to another via (Wi-Fi Direct), Bluetooth, Bluetooth Low Energy, CAN, zigbee, or Near Field Communication (NFC), or It is provided so that instructions or data can be transmitted/received simultaneously or sequentially in both directions. In addition, the data storage processing device 10 visually or audibly outputs the data stored in at least one of the first to Nth storage units 110 to 140 as a result of processing by the processor 100 to the outside, as necessary. In addition to the output unit (not shown, for example, a monitor device, data input/output terminal, or printer device, etc.) and/or the input unit 99, or separately from the input unit 99, data 80 is received from another external device (not shown). A communication unit (not shown, for example, a LAN card, short-distance communication) capable of receiving or transmitting data stored in at least one of the first to N-th storage units 110 to 140 as a result of processing by the processor 100 to another external device. It is also possible to further include modules or mobile communication modules, etc.).

입력부(99)는 사용자의 조작에 따라 또는 미리 정의된 설정에 따라 적어도 하나의 데이터(80)를 수신하고, 수신한 데이터(99)를 프로세서(100) 및 제1 내지 제N 저장부(110 내지 140) 중 적어도 하나로 전달할 수 있다. 입력부(99)를 통해 들어오는 데이터(80)는 문자, 숫자, 기호 또는 이들 중 적어도 둘의 조합 등(이하 문자나 숫자 등)을 포함할 수 있다. 필요에 따라, 데이터(80)는 데이터(80)의 분류나 검색을 위한 키(key)를 더 포함할 수도 있다. 또한, 실시예에 따라, 이들 데이터(80)는 테이블(일례로 정렬된 스트링 테이블(SST: Sorted String Table))의 형태를 가질 수도 있으며, 이 경우 데이터(80)는 값과 이에 대응하는 키를 포함하는 문자열의 형태로 마련된 것일 수도 있다. 실시예에 따라서, 데이터(80)는 문자나 숫자 등의 집합인 소정 형식의 파일을 포함할 수도 있다. The input unit 99 receives at least one data 80 according to the user's operation or predefined settings, and transfers the received data 99 to the processor 100 and the first to Nth storage units 110 to 110. 140). Data 80 coming through the input unit 99 may include letters, numbers, symbols, or a combination of at least two of these (hereinafter referred to as letters, numbers, etc.). If necessary, the data 80 may further include a key for classifying or searching the data 80. Additionally, depending on the embodiment, these data 80 may have the form of a table (for example, a sorted string table (SST)), in which case the data 80 contains a value and a key corresponding to it. It may be prepared in the form of a string containing it. Depending on the embodiment, the data 80 may include a file in a predetermined format that is a set of letters or numbers.

입력부(99)는, 데이터 저장 처리 장치(10)와 일체형으로 마련된 것일 수도 있고, 또는 물리적으로 분리 가능하게 마련된 것일 수도 있다. 입력부(99)는, 예를 들어, 키보드, 마우스, 태블릿, 터치 스크린, 터치 패드, 트랙 볼, 트랙패드, 스캐너 장치, 영상 촬영 모듈, 초음파 스캐너, 동작 감지 센서, 진동 센서, 수광 센서, 감압 센서, 근접 센서 및/또는 마이크로 폰 등을 포함할 수 있다. 또한 실시예에 따라, 입력부(99)는, 외부의 다른 장치(일례로 휴대용 메모리 장치 등)로부터 데이터 등의 수신이 가능한 데이터 입출력 단자 등을 포함할 수도 있다.The input unit 99 may be provided integrally with the data storage and processing device 10, or may be provided to be physically separable. The input unit 99 includes, for example, a keyboard, mouse, tablet, touch screen, touch pad, track ball, track pad, scanner device, image capture module, ultrasonic scanner, motion detection sensor, vibration sensor, light receiving sensor, and pressure sensor. , it may include a proximity sensor and/or a microphone, etc. Additionally, depending on the embodiment, the input unit 99 may include a data input/output terminal capable of receiving data from another external device (for example, a portable memory device, etc.).

프로세서(100)는, 제1 내지 제N 저장부(110 내지 130) 중 적어도 하나가 입력부(99)로부터 수신한 데이터(80)를 일시적 또는 비일시적으로 저장하도록 제어할 수 있다. 일 실시예에 의하면, 프로세서(100)는 입력부(99)로부터 수신한 적어도 하나의 데이터(80)를 미리 정의된 설정에 따라 소정의 저장부(110 내지 140), 일례로 제1 저장부(110)에 저장하도록 제어할 수도 있다. 또한, 프로세서(100)는 저장부(110 내지 140) 중 적어도 하나, 일례로 제1 저장부(110)에 쓰여진 데이터의 전부 또는 일부를 병합하여 새로운 데이터(도 5의 82-1 등, 이하 병합 데이터)를 생성할 수도 있으며, 예를 들어 제1 저장부(110)의 데이터 중 적어도 하나의 콜드 데이터(도 3의 81-1 내지 81-3 등)를 병합하여 병합 데이터(82-1)를 생성할 수도 있다. 아울러, 프로세서(100)는 생성된 병합 데이터(82-1)를 소정의 다른 저장부, 일례로 제2 저장부(120)로 이주시킬 수도 있다. 일 실시예에 의하면 프로세서(100)는, 상술한 동작의 수행을 위해 도 1에 도시된 바와 같이 쓰기 처리부(101), 병합 처리부(103) 및 이주 처리부(105)를 포함할 수 있다. 쓰기 처리부(101), 병합 처리부(103) 및 이주 처리부(105)는 설계에 따라 물리적으로 및/또는 논리적으로 구분되는 것일 수 있으며, 논리적으로 구분되는 경우 이들 중 적어도 하나는 소프트웨어적으로 구현된 것일 수도 있다. 쓰기 처리부(101), 병합 처리부(103) 및 이주 처리부(105) 각각의 이들의 자세한 동작에 대해서는 후술하도록 한다.The processor 100 may control at least one of the first to Nth storage units 110 to 130 to temporarily or non-temporarily store the data 80 received from the input unit 99. According to one embodiment, the processor 100 stores at least one data 80 received from the input unit 99 in predetermined storage units 110 to 140, for example, in the first storage unit 110, according to predefined settings. ) can also be controlled to save it. In addition, the processor 100 merges all or part of the data written to at least one of the storage units 110 to 140, for example, the first storage unit 110, and generates new data (82-1 in FIG. 5, etc., hereinafter merged). data) may be generated, for example, by merging at least one cold data (81-1 to 81-3 in FIG. 3, etc.) among the data in the first storage unit 110 to create merged data 82-1. You can also create In addition, the processor 100 may migrate the generated merged data 82-1 to another storage unit, for example, the second storage unit 120. According to one embodiment, the processor 100 may include a write processor 101, a merge processor 103, and a migration processor 105 as shown in FIG. 1 to perform the above-described operations. The write processing unit 101, the merge processing unit 103, and the migration processing unit 105 may be physically and/or logically separated according to design, and if they are logically separated, at least one of them may be implemented in software. It may be possible. Detailed operations of the write processing unit 101, merge processing unit 103, and migration processing unit 105 will be described later.

프로세서(100)는, 제1 내지 제N 저장부(110 내지 140) 또는 이와는 별도로 마련된 다른 저장부(미도시)에 저장된 프로그램(앱, 애플리케이션 또는 소프트웨어 등으로 지칭 가능함)을 실행시켜, 상술한 쓰기 처리, 병합 처리 및 이주 처리 중 적어도 하나를 순차적으로 또는 각각 독립적으로 수행할 수도 있다. 여기서, 프로그램은, 설계자에 의해 직접 작성되어 저장부(110 내지 140 외)에 저장, 수정 또는 갱신된 것일 수도 있고, 및/또는 유 무선 통신 네트워크를 통해 접속 가능한 전자 소프트웨어 유통망을 통하여 획득 또는 갱신된 것일 수도 있다. 일 실시예에 의하면, 프로세서(100)는, 예를 들어, 중앙 처리 장치(CPU, Central Processing Unit), 마이크로 컨트롤러 유닛(MCU, Micro Controller Unit), 마이컴(Micom, Micro Processor), 애플리케이션 프로세서(AP, Application Processor), 전자 제어 유닛(ECU, Electronic Controlling Unit) 및/또는 각종 연산 처리 및 제어 신호의 생성이 가능한 다른 전자 장치 등을 포함할 수 있다. 이들 장치는, 예를 들어, 하나 또는 둘 이상의 반도체 칩 등을 이용하여 구현된 것일 수 있다.The processor 100 executes a program (which may be referred to as an app, application, or software) stored in the first to Nth storage units 110 to 140 or another storage unit (not shown) provided separately, and performs the above-described writing operation. At least one of processing, merge processing, and migration processing may be performed sequentially or independently. Here, the program may be written directly by the designer and stored, modified or updated in the storage unit (eg, 110 to 140), and/or acquired or updated through an electronic software distribution network accessible through a wired or wireless communication network. It may be. According to one embodiment, the processor 100 includes, for example, a Central Processing Unit (CPU), a Micro Controller Unit (MCU), a Micro Processor (Micom), and an Application Processor (AP). , Application Processor), an electronic control unit (ECU), and/or other electronic devices capable of processing various operations and generating control signals. These devices may be implemented using, for example, one or two or more semiconductor chips.

일 실시예에 따르면, 제1 내지 제N 저장부(110 내지 140)는 각각 물리적으로 및/또는 가상적으로 다른 저장부(110 내지 140)과 분리된 것일 수 있다. 이 경우, 제1 내지 제N 저장부(110 내지 140) 중 적어도 하나의 저장부, 일례로 제1 저장부(110)는 처리나 전송 속도가 상대적으로 빠른 저장 장치(일례로 디램(DRAM), 에스램(SRAM), 엠닷투(M.2) 솔리드 스테이트, 드라이브, 싱글 레벨 셀(SLC: Single Level Cell) 솔리드 스테이트 드라이브, 멀티 레벨 셀(MLC: Multi Level Cell) 솔리드 스테이트 드라이브 등)를 채용하여 구현된 것일 수도 있다. 또한, 제1 내지 제N 저장부(110 내지 140) 중 적어도 하나의 다른 저장부, 일례로 제2 저장부(120)는 처리나 전송 속도가 상대적으로 느린 저장 장치(일례로 하드디스크 저장 장치, 트리플 레벨 셀(TLC: Tripe Level Cell) 솔리드 스테이트 드라이브(SSD: Solid State Drive) 또는 쿼드 레벨 셀(QLC: Quad Level Cell) 솔리드 스테이트 드라이브, 컴팩트 디스크(CD), 디브이디(DVD) 및/또는 레이저 디스크 등)를 채용하여 구현된 것일 수도 있다. 다시 말해서, 제1 내지 제N 저장부(110 내지 140) 중 일부의 저장부(110 등)는 다른 저장부(120 등)에 비해 성능이나 기대 수명이 상대적으로 우수하나 고비용을 요구하는 것이고, 다른 일부의 저장부(120 등)는 다른 저장부(110 등)에 비해 저비용으로 고용량을 구현할 수 있으나, 성능이나 기대 수명이 상대적으로 취약한 것일 수 있다. 한편, 제1 내지 제N 저장부(110 내지 140) 각각에는, 적어도 하나의 데이터의 입력 및 출력을 위해, 대응하는 제1 내지 제N 입출력 인터페이스(110A 내지 140A)가 마련되어 있을 수 있다.According to one embodiment, the first to Nth storage units 110 to 140 may be physically and/or virtually separated from the other storage units 110 to 140. In this case, at least one of the first to Nth storage units 110 to 140, for example, the first storage unit 110, is a storage device with relatively high processing or transfer speed (for example, DRAM). By adopting SRAM, M.2 solid state, drive, Single Level Cell (SLC) solid state drive, Multi Level Cell (MLC: Multi Level Cell) solid state drive, etc. It may have been implemented. In addition, at least one other storage unit among the first to N-th storage units 110 to 140, for example, the second storage unit 120, is a storage device (for example, a hard disk storage device) with a relatively slow processing or transfer speed. Tripe Level Cell (TLC) Solid State Drive (SSD) or Quad Level Cell (QLC) Solid State Drive, Compact Disc (CD), DVD, and/or Laser Disc etc.) may have been implemented by adopting. In other words, some of the first to Nth storage units (110 to 140) (eg, 110) have relatively superior performance and life expectancy compared to other storage units (eg, 120), but require high costs. Some storage units (such as 120) can achieve high capacity at lower cost than other storage units (such as 110), but their performance and life expectancy may be relatively weak. Meanwhile, each of the first to Nth storage units 110 to 140 may be provided with corresponding first to Nth input/output interfaces 110A to 140A for input and output of at least one data.

도 2는 제1 저장부 및 제2 저장부 각각에 저장된 제1 데이터 및 제2 데이터의 일례를 설명하기 위한 도면이다.FIG. 2 is a diagram for explaining an example of first data and second data stored in each of the first storage unit and the second storage unit.

제1 내지 제N 저장부(110 내지 140)는 수신한 데이터(80)를 일시적 또는 비일시적으로 저장할 수 있도록 마련된다. 예를 들어, 데이터 저장 처리 장치(10)는 도 2에 도시된 바와 같이 제1 저장부(110) 및 제2 저장부(120)를 포함할 수 있으며, 제1 저장부(110)는 적어도 하나의 데이터(71-1 내지 71-13, 이하 제1 기존 데이터)를 저장하고, 제2 저장부(120)는 적어도 하나의 데이터(72-1 내지 72-16, 이하 제2 기존 데이터)를 저장할 수 있다. 제1 기존 데이터(71-1 내지 71-13) 중 적어도 하나는 제2 기존 데이터(72-1 내지 72-16) 중 적어도 하나와 동일할 수도 있고 또는 상이할 수도 있다. The first to Nth storage units 110 to 140 are provided to temporarily or non-temporarily store the received data 80. For example, the data storage and processing device 10 may include a first storage unit 110 and a second storage unit 120 as shown in FIG. 2, and the first storage unit 110 includes at least one stores data (71-1 to 71-13, hereinafter referred to as first existing data), and the second storage unit 120 stores at least one data (72-1 to 72-16, hereinafter referred to as second existing data). You can. At least one of the first existing data 71-1 to 71-13 may be the same as or different from at least one of the second existing data 72-1 to 72-16.

상술한 바와 같이 제1 저장부 내지 제N 저장부(110 내지 140)가 목적, 성능, 용량 및/또는 가격이 상이한 경우, 제1 저장부 내지 제N 저장부(110 내지 140) 각각은 목적, 성능, 용량 및/또는 가격 등에 따라서 소정 분류 기준의 기존 데이터(71-1 내지 71-13, 72-1 내지 72-16)를 저장할 수도 있다. 예를 들어, 처리나 전송 속도가 상대적으로 빠른 제1 저장부(110)는 액세스 또는 업데이터의 빈도가 높거나 중요도가 높은 데이터(일례로 웜 데이터나 핫 데이터로 지칭 가능함)를 제1 기존 데이터(71-1 내지 71-13)로 저장하고, 반대로 처리나 전송 속도가 상대적으로 느린 제2 저장부(120)는 액세스 또는 업데이트의 빈도가 낮거나 중요도가 낮은 데이터(일례로 콜드 데이터로 지칭 가능함)를 제2 기존 데이터(71-1 내지 71-13)로 저장할 수도 있다. 제1 및 제2 저장부(110, 120) 이외의 다른 저장부(130 내지 140)에도 각각의 저장부(130)의 목적, 성능, 용량 및/또는 가격 등에 따라 대응하는 데이터나 파일 등이 쓰여져 있을 수 있다.As described above, when the first to Nth storage units 110 to 140 have different purposes, performance, capacity and/or price, each of the first to Nth storage units 110 to 140 has a purpose, Depending on performance, capacity, and/or price, existing data (71-1 to 71-13, 72-1 to 72-16) with predetermined classification criteria may be stored. For example, the first storage unit 110, which has a relatively fast processing or transmission speed, stores data with a high frequency of access or update or with high importance (for example, may be referred to as warm data or hot data) as first existing data ( 71-1 to 71-13), and conversely, the second storage unit 120, which has a relatively slow processing or transmission speed, stores data that is accessed or updated with a low frequency or is of low importance (can be referred to as cold data, for example). may be stored as second existing data (71-1 to 71-13). In addition to the first and second storage units 110 and 120, corresponding data or files are also written to other storage units 130 to 140 depending on the purpose, performance, capacity, and/or price of each storage unit 130. There may be.

이하 도 3 내지 도 6을 참조하여 프로세서(100)의 구체적인 동작에 대해 설명하도록 한다. 이하 프로세서(100)의 동작의 설명의 편의를 위해서, 데이터 저장 처리 장치(10)가 두 개의 저장부(즉, 제2 저장부(120) 및 제1 저장부(110))를 포함하고, 입력된 데이터(80)는 콜드 데이터(81-1 내지 81-3) 및 제2 데이터(82-1)로 분류 가능한 실시예를 기반으로 설명하도록 하나, 후술하는 내용은 셋 이상의 저장부(110 내지 140)를 포함하는 경우나 및/또는 입력된 데이터(80)가 콜드 데이터(81-1 내지 81-3)이나 핫 데이터(81-4) 외에도 추가적으로 다르게 분류 가능한 경우에도 동일하게 또는 일부 변형된 형태로 적용될 수도 있다.Hereinafter, specific operations of the processor 100 will be described with reference to FIGS. 3 to 6. Hereinafter, for convenience of description of the operation of the processor 100, the data storage processing device 10 includes two storage units (i.e., a second storage unit 120 and a first storage unit 110) and an input The data 80 will be described based on an embodiment that can be classified into cold data 81-1 to 81-3 and second data 82-1. However, the details described later will be related to three or more storage units 110 to 140. ) and/or even if the input data 80 can be classified differently in addition to cold data (81-1 to 81-3) or hot data (81-4), it is used in the same or slightly modified form. It may also apply.

도 3은 제1 저장부에 데이터가 쓰여지는 과정의 일례를 설명하기 위한 도면이다.Figure 3 is a diagram for explaining an example of a process in which data is written to the first storage unit.

도 1 및 도 3에 도시된 바를 참조하면, 프로세서(100)의 쓰기 처리부(101)는, 일 실시예에 있어서, 입력부(99)를 통해 입력된 적어도 하나의 데이터(80: 81-1 내지 81-4, 이하 입력 데이터라 함. 실시예에 따라 키를 포함할 수도 있음)를 적어도 하나의 저장부(110 내지 140), 일례로 제1 저장부(110)에 기록하여 제1 저장부(110)가 적어도 하나의 입력 데이터(81-1 내지 81-4)를 저장하도록 할 수 있다. 이 경우, 적어도 하나의 입력 데이터(81-1 내지 81-4)는, 제1 저장부(110)에 저장된 제1 기존 데이터(71-1 내지 71-12) 중 어느 하나에 쓰여지거나, 입력 데이터(81-1 내지 81-4)를 위해 새롭게 생성된 다른 데이터(미도시)에 쓰여지거나, 또는 복수의 제1 기존 데이터(71-1 내지 71-12)나 새롭게 생성된 데이터 중 둘 이상에 분산되어 쓰여질 수도 있다.1 and 3, in one embodiment, the write processing unit 101 of the processor 100 writes at least one data 80 (81-1 to 81) input through the input unit 99. -4, hereinafter referred to as input data. Depending on the embodiment, it may include a key) is recorded in at least one storage unit 110 to 140, for example, the first storage unit 110. ) can be configured to store at least one input data (81-1 to 81-4). In this case, at least one input data (81-1 to 81-4) is written to any one of the first existing data (71-1 to 71-12) stored in the first storage unit 110, or the input data written to other newly created data (not shown) for (81-1 to 81-4), or distributed to two or more of the plurality of first existing data (71-1 to 71-12) or newly created data It may be written.

일 실시예에 의하면, 쓰기 처리부(101)는 복사 및 쓰기 B+ 트리(Copy on Write B+ Tree)를 기반으로 데이터(81-1 내지 81-4)를 제1 저장부(110)에 저장할 수 있다. 복사 및 쓰기(CoW: Copy on Write)는 기 저장된 데이터에 대응하는 새로운 데이터가 입력된 경우, 새로운 데이터를 기 저장된 데이터의 위치(주소)에 그대로 저장하는 것이 아니라 다른 위치에 새로운 데이터를 복제한 후 수정하도록 하는 과정을 포함한다. 복사 및 쓰기 B+ 트리는 외부에서 데이터의 입력에 따라 트리 내의 적어도 하나의 노드(node)가 갱신되어야 하는 경우, 기존의 노드를 새로운 노드로 대체하는 대신에 새로운 위치(일례로 데이터 파일의 말단)에 새로운 노드를 추가하고, 필요에 따라 이에 대응하는 부모 노드도 함께 새롭게 추가 생성한 후, 추가 생성된 노드에 대응하는 기존의 노드(즉, 기존 트리의 노드의 전부 또는 일부)를 제거하여 트리 내의 데이터를 갱신하는 방법이다. 이와 같은 복사 및 쓰기 B+ 트리는, 뉴에스큐엘(NewSQL) 등에서 이용되는 로그 구조 병합 트리(LSM Tree: Log Structured Merge Tree)와 함께 사용되는 경우 데이터의 쓰기를 지연시킬 수 있다. According to one embodiment, the write processing unit 101 may store data 81-1 to 81-4 in the first storage unit 110 based on a copy on write B+ tree. Copy on Write (CoW): When new data corresponding to previously stored data is input, the new data is not stored in the location (address) of the previously stored data, but rather the new data is copied to another location. Includes a process for making corrections. When at least one node in the tree needs to be updated according to external data input, the copy and write B+ tree replaces the existing node with a new node and places the new node in a new location (for example, at the end of the data file). After adding a node and creating a new corresponding parent node as needed, the data in the tree is restored by removing the existing node (i.e., all or part of the existing tree's nodes) corresponding to the additionally created node. This is a way to update. Such a copy and write B+ tree can delay writing data when used together with the Log Structured Merge Tree (LSM Tree) used in NewSQL, etc.

상세하게는 쓰기 처리부(101)는 도 3에 도시된 바와 같이 새로운 데이터, 일례로 제1 입력 데이터(81-1)가 입력되면 제1 기존 데이터(71-1 내지 71-3) 중 적어도 하나, 일례로 마지막 제1 기존 데이터(71-13)에 부가하여 기록할 수 있다. 실시예에 따라 제1 입력 데이터(81-1)는 마지막 제1 기존 데이터(71-13)에 대응하는 위치, 일례로 제1 기존 데이터(71-13)의 말단 등에 부가되어 기록될 수도 있다. 또한, 마찬가지로 다른 데이터, 일례로 제2 입력 데이터(81-2)가 더 입력되면, 제2 입력 데이터(81-2)는 제1 기존 데이터(71-13)의 말단에 부가될 수 있되, 제1 입력 데이터(81-1)에 부가되어 쓰여질 수도 있다. 다른 데이터(81-3, 81-4)도 이와 동일하게 제1 기존 데이터(71-13)에 부가될 수 있다. 다시 말해서, 쓰기 처리부(101)는 새로운 데이터(80)가 입력될 때마다 상술한 과정을 반복 수행함으로써, 제1 저장부(110)에 입력 데이터(81-1 내지 81-4) 중 적어도 하나를 계속해서 추가할 수 있으며, 이에 따라 제1 저장부(110)는 하나 또는 복수의 입력 데이터(81-1 내지 81-4)를 갱신하여 저장할 수 있게 된다. 여기서, 제1 내지 제4 입력 데이터(81-1 내지 81-4)는 순차적으로 또는 동시에 입력된 것일 수 있으며, 쓰기 처리부(101)는 제1 내지 제4 입력 데이터(81-1 내지 81-4)를 소정의 순서(일례로 입력 순서)에 따라 순차적으로 또는 임의의 순서로 마지막 제1 기존 데이터(71-13)에 부가할 수도 있다.In detail, as shown in FIG. 3, when new data, for example, first input data 81-1, is input, the write processing unit 101 generates at least one of the first existing data 71-1 to 71-3, For example, it can be recorded in addition to the last first existing data (71-13). Depending on the embodiment, the first input data 81-1 may be added and recorded at a location corresponding to the last first existing data 71-13, for example, at the end of the first existing data 71-13. Also, similarly, if other data, for example, second input data 81-2, is further input, the second input data 81-2 may be added to the end of the first existing data 71-13. 1 It may also be written in addition to input data 81-1. Other data 81-3 and 81-4 may be added to the first existing data 71-13 in the same manner. In other words, the write processing unit 101 repeats the above-described process every time new data 80 is input, thereby storing at least one of the input data 81-1 to 81-4 in the first storage unit 110. Additions can be continued, and thus the first storage unit 110 can update and store one or more input data (81-1 to 81-4). Here, the first to fourth input data (81-1 to 81-4) may be input sequentially or simultaneously, and the write processor 101 inputs the first to fourth input data (81-1 to 81-4). ) may be added to the last first existing data 71-13 sequentially according to a predetermined order (for example, input order) or in a random order.

도 4는 콜드 데이터를 병합하는 과정의 일례를 설명하기 위한 제1 도이고, 도 5는 콜드 데이터를 병합하는 과정의 일례를 설명하기 위한 제2 도이다.FIG. 4 is a first diagram for explaining an example of a process for merging cold data, and FIG. 5 is a second diagram for explaining an example of a process for merging cold data.

프로세서(100)의 병합 처리부(103)는 제1 저장부(110)에 저장된 적어도 하나의 입력 데이터(81-1 내지 81-4)의 전부 또는 일부를 병합하여 적어도 하나의 병합 데이터(82-1)를 생성할 수도 있다. 구체적으로 도 3 및 도 4에 도시된 바와 같이 동시에 및/또는 순차적으로 제1 내지 제4 입력 데이터(81-1 내지 81-4)가 제1 저장부(110)에 쓰여지고 있거나 또는 쓰여진 후, 병합 처리부(103)는 제1 내지 제4 입력 데이터(81-1 내지 81-4) 중 둘 이상을 도 5에 도시된 바와 같이 병합할 수 있다. The merge processing unit 103 of the processor 100 merges all or part of the at least one input data 81-1 to 81-4 stored in the first storage unit 110 into at least one merge data 82-1. ) can also be created. Specifically, as shown in FIGS. 3 and 4, the first to fourth input data 81-1 to 81-4 are being written or after being written to the first storage unit 110 simultaneously and/or sequentially, and are merged. The processing unit 103 may merge two or more of the first to fourth input data 81-1 to 81-4 as shown in FIG. 5.

일 실시예에 따르면, 병합 처리부(103)는, 제1 저장부(110)에 쓰여진 적어도 하나의 입력 데이터(81-1 내지 81-4)를 분류할 수도 있다. 예를 들어, 병합 처리부(103)는 제1 저장부(110)에 쓰여진 적어도 하나의 제1 내지 제4 입력 데이터(81-1 내지 81-4)를 미리 정의된 설정에 따라 분석하고, 분석 결과를 기반으로 적어도 하나의 데이터(80)를 콜드 데이터 또는 핫 데이터로 분류할 수 있다. 여기서, 콜드 데이터는 상대적으로 액세스 또는 업데이트의 빈도가 낮거나 중요도가 낮아 처리나 전송 속도가 상대적으로 느린 저장 장치에 저장되어도 충분한 데이터를 포함할 수 있으며, 핫 데이터는 이와 반대로 상대적으로 액세스 또는 업데이터의 빈도가 높거나 중요도가 높아 처리나 전송 속도가 상대적으로 빠른 저장 장치에 저장될 데이터를 포함할 수 있다. 일 실시예에 의하면, 병합 처리부(103)는, 제1 내지 제4 입력 데이터(81-1 내지 81-4)가 프로세서(100), 일례로 키 값 형태의 데이터베이스 엔진이 관리하는 파일 중 생성된 지 가장 오래된 계층의 데이터에 해당하거나 및/또는 로그 구조 병합 트리를 이용하는 스토리지 엔진(storage engine)에서 관리하는 파일의 계층 구조 중 가장 하위 계층의 데이터에 해당하는 경우에는 콜드 데이터로 분류하고, 그렇지 않은 경우에는 분류를 하지 않거나, 또는 핫 데이터나 웜 데이터(warm data) 등으로 분류할 수 있다. 이에 따라 제1 내지 제4 입력 데이터(81-1 내지 81-4) 중 일부의 입력 데이터, 예를 들어 제1 내지 제3 입력 데이터(81-1 내지 81-3)는 콜드 데이터로 분류되고, 다른 일부의 입력 데이터, 예를 들어 제4 입력 데이터(81-4)는 핫 데이터로 분류될 수 있게 된다. 이와 같이 입력 데이터(81-1 내지 81-4)가 분류되면, 병합 처리부(103)는 입력 데이터(81-1 내지 81-4) 중 콜드 데이터(81-1 내지 81-3), 일례로 제1 내지 제3 입력 데이터(81-1 내지 81-3)를 병합하여 적어도 하나의 병합 데이터(82-1)를 생성할 수 있다.According to one embodiment, the merge processing unit 103 may classify at least one input data 81-1 to 81-4 written in the first storage unit 110. For example, the merge processing unit 103 analyzes at least one first to fourth input data 81-1 to 81-4 written in the first storage unit 110 according to predefined settings, and provides the analysis result. Based on , at least one data 80 can be classified as cold data or hot data. Here, cold data can contain sufficient data even if it is stored in a storage device with a relatively slow processing or transmission speed due to its relatively low frequency of access or update or low importance, while hot data, on the contrary, has a relatively low frequency of access or update. It may include data that is frequent or important and will be stored in storage devices with relatively fast processing or transfer speeds. According to one embodiment, the merge processor 103 stores the first to fourth input data 81-1 to 81-4 generated from files managed by the processor 100, for example, a database engine in the form of a key value. If it corresponds to data in the oldest layer and/or data in the lowest layer of the file hierarchy managed by a storage engine that uses a log structure merge tree, it is classified as cold data. Otherwise, it is classified as cold data. In this case, it may not be classified, or it may be classified as hot data or warm data. Accordingly, some of the first to fourth input data (81-1 to 81-4), for example, the first to third input data (81-1 to 81-3), are classified as cold data, Some other input data, for example, fourth input data 81-4, can be classified as hot data. When the input data (81-1 to 81-4) is classified in this way, the merge processing unit 103 selects cold data (81-1 to 81-3), for example, from the input data (81-1 to 81-4). At least one merged data 82-1 may be generated by merging the first to third input data 81-1 to 81-3.

일 실시예에 의하면, 병합 처리부(103)는, 병합 조건이 만족되면, 병합 조건의 만족에 응하여 병합을 수행하도록 마련될 수도 있다. 예를 들어, 병합 처리부(103)는, 제1 저장부(110)에 쓰여진 콜드 데이터(81-1 내지 81-3)의 개수 및/또는 콜드 데이터(81-1 내지 81-3) 중 적어도 하나가 기록된 시간을 기반으로 병합을 수행하도록 마련된 것일 수 있다. 보다 상세하게는 병합 처리부(103)는 콜드 데이터(81-1 내지 81-3)를 계수하고, 콜드 데이터(81-1 내지 81-3)의 개수가 미리 정의된 임계 값을 초과하면, 콜드 데이터(81-1 내지 81-3) 중 적어도 둘에 대한 병합을 개시할 수도 있고, 또는 하나 또는 둘 이상의 특정한 콜드 데이터(81-1 내지 81-3)가 쓰여진 시간을 확인하고, 쓰여진 시간으로부터 미리 정의된 고정적인 또는 가변적인 시간이 경과되면, 콜드 데이터(81-1 내지 81-3) 중 적어도 둘에 대한 병합을 개시할 수도 있다. 또한, 병합 처리부(103)는 콜드 데이터(81-1 내지 81-3)에 대한 접근이 충분히 부족하거나 및/또는 콜드 데이터(81-1 내지 81-3) 중 둘 이상이 하나의 완성된 형태의 파일 등(일례로 정렬된 스트링 테이블)로 병합 가능하면, 콜드 데이터(81-1 내지 81-3)의 병합을 개시할 수도 있다. 실시예에 따라서, 병합 처리부(103)는 이주 처리부(105)가 병합 데이터(82-1)의 이주에 적절한 상황이라고 판단한 경우에 병합 데이터(82-1)의 생성을 수행하는 것도 가능하다. 이와 같이 생성된 병합 데이터(82-1)는 프로세서(100)의 이주 처리부(105)에 의해 이주 가능한 상태로 취급될 수 있다.According to one embodiment, the merge processing unit 103 may be arranged to perform merging in response to satisfaction of the merging condition when the merging condition is satisfied. For example, the merge processing unit 103 may determine the number of cold data 81-1 to 81-3 written to the first storage unit 110 and/or at least one of the cold data 81-1 to 81-3. It may be arranged to perform merging based on the recorded time. More specifically, the merge processing unit 103 counts the cold data 81-1 to 81-3, and when the number of cold data 81-1 to 81-3 exceeds a predefined threshold, the cold data Merging of at least two of (81-1 to 81-3) may be initiated, or the time at which one or more specific cold data (81-1 to 81-3) was written may be confirmed and predefined from the written time. When the fixed or variable time has elapsed, merging of at least two of the cold data 81-1 to 81-3 may be initiated. In addition, the merge processing unit 103 may have insufficient access to the cold data (81-1 to 81-3) and/or two or more of the cold data (81-1 to 81-3) are in one completed form. If merging into a file, etc. (eg, a sorted string table) is possible, merging of the cold data 81-1 to 81-3 may be initiated. Depending on the embodiment, the merge processing unit 103 may also perform the creation of the merged data 82-1 when the migration processing unit 105 determines that the situation is appropriate for migrating the merged data 82-1. The merged data 82-1 generated in this way can be treated as a state that can be migrated by the migration processing unit 105 of the processor 100.

도 6은 병합 데이터를 제2 저장부에 이주하는 과정의 일례를 설명하기 위한 도면이다.FIG. 6 is a diagram illustrating an example of a process for migrating merged data to the second storage unit.

둘 이상의 콜드 데이터(81-1 내지 81-3)의 병합이 완료되면, 이주 처리부(105)는, 도 6에 도시된 바와 같이 콜드 데이터(81-1 내지 81-3)의 병합에 따라 생성된 적어도 하나의 병합 데이터(82-1)를 다른 저장부, 예를 들어 제2 저장부(120)로 이주시킬 수 있다. 예를 들어, 이주 처리부(105)는 콜드 데이터(81-1 내지 81-3)를 처리나 전송 속도가 상대적으로 느린 저장 장치로 이동시킬 수 있다. When the merging of two or more cold data (81-1 to 81-3) is completed, the migration processing unit 105 generates the merging of the cold data (81-1 to 81-3) as shown in FIG. At least one merged data 82-1 may be migrated to another storage unit, for example, the second storage unit 120. For example, the migration processing unit 105 may move the cold data 81-1 to 81-3 to a storage device with a relatively slow processing or transmission speed.

이주 처리부(105)는, 실시예에 따라서, 설계자나 사용자 등에 의해 미리 정의된 조건의 만족 여부에 따라, 사용자 등의 조작에 따라 및/또는 이주 처리부(105)의 임의적 선택에 따라 병합 데이터(82-1)의 이주 여부를 결정하고, 결정된 바에 따라서 병합 데이터(82-1)의 이주 처리를 수행할 수 있다. 일 실시예에 의하면, 이주 처리부(105)는 병합 데이터(82-1)가 저장된 저장부,(즉 제1 저장부(110)) 및 병합 데이터(82-1)가 저장될 예정인 저장부(즉, 제2 저장부(120)) 중 적어도 하나의 입출력 인터페이스(110A, 120A)의 상태를 파악하고, 파악된 상태를 기반으로 병합 데이터(82-1)의 이주 여부를 결정하도록 할 수도 있다. 예를 들어, 이주 처리부(105)는 각 저장부(110, 120)에 대한 입출력 인터페이스(110A, 120A) 각각의 대역폭 사용량을 확인하고, 확인된 대역폭 사용량을 고려하여 병합 데이터(82-1)의 이주가 적절하거나 또는 가능한 상태인지 여부를 판단할 수 있으며, 구체적으로는 대역폭 사용량을 기반으로 쓰기 성능이 요구하는 수준보다 높은 경우에 한해 병합 데이터(82-1)의 이주가 적절 또는 가능한 상태라고 판단할 수도 있다. 보다 상세하게 예를 들어, 만약 제2 저장부(120)가 쿼드 레벨 셀 솔리드 스테이트 드라이브와 같이 쓰기 성능이 가변적인 저장 장치라면, 이주 처리부(105)는 제1 저장부(110) 및/또는 제2 저장부(120)의 쓰기 성능이 충분히 준수한 경우에 한하여 제2 저장부(120)로 병합 데이터(82-1)의 이주를 결정할 수도 있다. 다른 실시예에 의하면, 이주 처리부(105)는 병합 데이터(82-1)가 저장된 제1 저장부(110)의 잔여 저장 용량을 확인하고 제1 저장부(110)의 잔여 저장 용량이 병합 데이터(82-1)의 저장을 유지하기에 충분하지 않다고 판단되거나, 및/또는 병합 데이터(82-1)를 옮길 제2 저장부(120)의 잔여 저장 용량을 확인하고 제2 저장부(120)의 잔여 저장 용량이 병합 데이터(82-1)보다 충분히 크다고 판단되면, 병합 데이터(82-1)의 이주를 결정하도록 마련될 수도 있다. 또 다른 실시예에 따르면, 이주 처리부(105)는 적어도 하나의 입출력 인터페이스(110A, 120A) 각각의 부하 수준 등을 확인하고, 각각의 부하 수준이 일정 범위에 해당하는 경우에 병합 데이터(82-1)의 이주를 결정하도록 마련되는 것도 가능하다. 만약 이주가 적절 또는 가능하다고 판단되면, 이주 처리부(105)는 병합 데이터(82-1)의 이주를 개시한다. 이에 따라 병합 데이터(82-1)는 소정의 저장부, 일례로 제2 저장부(120)로 이주될 수 있게 된다. Depending on the embodiment, the migration processing unit 105 may store merged data 82 according to whether conditions predefined by a designer or a user are satisfied, according to an operation by a user, etc., and/or according to a random selection of the migration processing unit 105. It is possible to determine whether to migrate -1), and perform migration processing of the merged data (82-1) according to the decision. According to one embodiment, the migration processing unit 105 includes a storage unit in which the merge data 82-1 is stored (i.e., the first storage unit 110) and a storage unit in which the merge data 82-1 is scheduled to be stored (i.e. , the state of at least one input/output interface 110A, 120A of the second storage unit 120 may be determined, and whether to migrate the merged data 82-1 may be determined based on the determined state. For example, the migration processing unit 105 checks the bandwidth usage of each of the input/output interfaces 110A and 120A for each storage unit 110 and 120, and considers the confirmed bandwidth usage of the merged data 82-1. It is possible to determine whether migration is appropriate or possible. Specifically, it is determined that migration of merged data (82-1) is appropriate or possible only when write performance is higher than the required level based on bandwidth usage. You may. In more detail, for example, if the second storage unit 120 is a storage device with variable write performance, such as a quad-level cell solid state drive, the migration processing unit 105 may It may be decided to migrate the merged data 82-1 to the second storage unit 120 only if the write performance of the storage unit 120 is sufficiently satisfactory. According to another embodiment, the migration processing unit 105 checks the remaining storage capacity of the first storage unit 110 where the merged data 82-1 is stored and determines that the remaining storage capacity of the first storage unit 110 is the merged data ( 82-1) is determined to be insufficient to maintain storage, and/or the remaining storage capacity of the second storage unit 120 to which the merged data 82-1 is to be transferred is checked and the remaining storage capacity of the second storage unit 120 is checked. If it is determined that the remaining storage capacity is sufficiently larger than the merged data 82-1, arrangements may be made to determine migration of the merged data 82-1. According to another embodiment, the migration processing unit 105 checks the load level of each of the at least one input/output interface (110A, 120A), and if the load level of each falls within a certain range, merge data 82-1 ), it is also possible to make arrangements to decide on the migration of. If migration is determined to be appropriate or possible, the migration processing unit 105 initiates migration of the merged data 82-1. Accordingly, the merged data 82-1 can be migrated to a predetermined storage unit, for example, the second storage unit 120.

상술한 방법에 의하면, 특정한 데이터, 일례로 접근 빈도 등이 낮은 콜드 데이터(81-1 내지 81-3)가 콜드 데이터(81-1 내지 81-3)의 저장을 예정한 저장부, 일례로 제2 저장부(120)에 쓰여지는 것을 지연시킬 수 있다. 즉, 콜드 데이터(81-1 내지 81-3)의 쓰기 지연을 수행할 수 있게 된다. 종래 범용 고유 식별자를 단조 증가 또는 단조 감소하는 주 키 대신에 사용하는 방법에서는 입력된 데이터가 전체 파일에 균등하게 분산되기 때문에 특정한 기준의 데이터(일례로 액세스 또는 업데이트의 빈도가 낮거나 중요도가 낮은 콜드 데이터)를 시간을 기준으로 분류하는 것은 처리하기 어려운 점이 있었다. 그러나, 상술한 바와 같이 저장될 입력 데이터(즉, 콜드 데이터(81-1 내지 81-3))를 원래 저장될 위치(일례로 제2 저장부(120))에 지연하여 기록하는 것은, 실질적으로 시간 순으로 데이터를 정렬하는 것과 동일하게 된다. 그러므로, 범용 고유 식별자를 사용하는 경우에도 소정의 분류 기준(일례로 콜드 데이터나 핫 데이터)에 따라 데이터를 분류할 수 있게 되고, 또한 병합 및 쓰기의 지연 과정을 통해 특정한 기준의 데이터(일례로 액세스 또는 업데이트의 빈도가 빈번하거나 중요도가 높은 핫 또는 웜 데이터 등)가 필터링 될 수 있게 되며, 분류된 각각의 데이터, 일례로 핫 데이터(81-4)나 콜드 데이터(81-1 내지 81-3)를 각각 대응하는 저장 위치(110, 120)에 쓸 수 있게 된다.According to the above-described method, specific data, for example, cold data (81-1 to 81-3) with a low access frequency, is stored in a storage unit scheduled to store the cold data (81-1 to 81-3), for example, 2 Writing to the storage unit 120 can be delayed. That is, it is possible to delay writing the cold data 81-1 to 81-3. In the conventional method of using a universal unique identifier instead of a monotonically increasing or monotonically decreasing primary key, the input data is distributed evenly over the entire file, so that data of a specific standard (for example, cold access or update frequency or low importance) is distributed evenly over the entire file. Classifying data based on time was difficult to process. However, as described above, delaying recording of input data to be stored (i.e., cold data 81-1 to 81-3) to the original storage location (for example, the second storage unit 120) is substantially This is equivalent to sorting data in chronological order. Therefore, even when using a universal unique identifier, it is possible to classify data according to a predetermined classification standard (for example, cold data or hot data), and also through the delay process of merging and writing, data of a specific standard (for example, access or hot or warm data with frequent updates or high importance) can be filtered, and each classified data, for example, hot data (81-4) or cold data (81-1 to 81-3) can be written to the corresponding storage locations 110 and 120, respectively.

상술한 과정은 에스큐엘 등을 기반으로 유지, 관리 및/또는 갱신 등이 수행되는 데이터베이스, 데이터베이스의 관리를 위한 시스템 또는 이를 위한 언어 등에 채용될 수 있다. 예를 들어, 뉴에스큐엘은 숫자형 단조 증가/단조 감소의 주키 대신에 범용 고유 식별자를 사용하기도 한다. 이는 주 키의 범위가 연속되어 요청이 분산되지 못하고 특정 노드에 집중되는 현상이 발생하여 데이터 관리 및 처리의 효율성이 저하될 수 있기 때문이다. 이 경우, 생성 시간을 기준으로 생성된 파일을 콜드 데이터로 분류하는 것은 상당히 난해할 수 있다. 상술한 장치 및 과정에 의하면, 뉴에스큐엘 등에 있어서 범용 고유 식별자 등과 같이 생성 시점을 사용하지 않고 분류를 수행하는 경우에서도, 상대적으로 접근 및 호출 빈도가 낮거나 중요도가 낮은 데이터나 파일을 미리 정의된 소정의 저장 장치에 적절하게 분류하여 기록할 수 있게 되고, 이에 따라 파일 관리의 효율성이 재고될 수 있게 된다.The above-described process may be employed in a database for which maintenance, management, and/or update are performed based on SQL, a system for managing the database, or a language for the same. For example, New SQL sometimes uses a universal unique identifier instead of a numeric monotonically increasing/monotonically decreasing primary key. This is because the range of the main key is continuous, so requests cannot be distributed and are concentrated on specific nodes, which may reduce the efficiency of data management and processing. In this case, classifying the created files as cold data based on creation time can be quite difficult. According to the above-described device and process, even in cases where classification is performed without using the creation time such as a universal unique identifier in New SQL, etc., data or files with relatively low access and call frequency or low importance are defined in advance. It becomes possible to properly classify and record files in a given storage device, and thus the efficiency of file management can be reconsidered.

상술한 데이터 저장 처리 장치(10)는, 처리 장치 및 데이터 저장 장치를 포함하는 정보 처리 장치를 이용하여 구현될 수 있다. 여기서, 정보 처리 장치는, 예를 들어, 데스크톱 컴퓨터, 랩톱 컴퓨터, 스마트 폰, 태블릿 피씨, 스마트 시계, 두부 장착형 디스플레이(HMD: Head Mounted Display) 장치, 내비게이션 장치, 휴대용 게임기, 개인용 디지털 보조기(PDA: Personal Digital Assistant), 디지털 텔레비전, 셋 톱 박스, 디지털 미디어 플레이어 장치, 인공 지능 음향 재생 장치(인공 지능 스피커), 가전 기기(냉장고나 세탁기 등), 유인 이동체(승용차, 버스나 이륜차 등의 차량 등), 무인 이동체(로봇 청소기 등), 유인 비행체, 무인 비행체(드론 등), 가정용 또는 산업용 로봇, 산업용 기계, 전자 칠판, 전자 광고판 또는 자동 입출금기(ATM: Automated Teller Machine) 등을 포함할 수 있으나, 이에 한정되는 것은 아니다. 설계자나 사용자 등은 상황이나 조건에 따라서 상술한 장치 이외에도 정보의 연산 처리 및 제어가 다양한 장치 중 적어도 하나를 상술한 데이터 저장 처리 장치(10)로 고려 및 적용할 수 있다.The above-described data storage and processing device 10 may be implemented using an information processing device including a processing device and a data storage device. Here, the information processing device includes, for example, a desktop computer, a laptop computer, a smart phone, a tablet PC, a smart watch, a head mounted display (HMD) device, a navigation device, a portable game console, and a personal digital assistant (PDA). Personal Digital Assistant), digital televisions, set-top boxes, digital media player devices, artificial intelligence sound playback devices (artificial intelligence speakers), home appliances (refrigerators, washing machines, etc.), manned vehicles (passenger cars, buses, two-wheeled vehicles, etc.) , unmanned vehicles (robot vacuum cleaners, etc.), manned aircraft, unmanned aircraft (drones, etc.), household or industrial robots, industrial machines, electronic whiteboards, electronic billboards, or automated teller machines (ATMs), etc. It is not limited. Depending on the situation or conditions, designers, users, etc. may consider and apply at least one of various devices for computational processing and control of information in addition to the above-mentioned devices as the above-described data storage and processing device 10.

이하 도 7을 참조하여 데이터 저장 처리 방법의 일 실시예에 대해서 설명하도록 한다.Hereinafter, an embodiment of a data storage and processing method will be described with reference to FIG. 7.

도 7은 데이터 저장 처리 방법의 일 실시예에 대한 흐름도이다.7 is a flowchart of one embodiment of a data storage processing method.

도 7에 도시된 바에 의하면, 먼저 사용자의 키보드 장치 등의 조작에 의해 또는 다른 외부 장치(일례로 다른 정보처리장치나 저장 장치)로부터 데이터(즉, 입력 데이터)가 입력될 수 있다(400). 이 경우, 데이터가 입력되는 장치(즉, 데이터 저장 처리 장치)는 둘 이상의 저장부, 일례로 제1 및 제2 저장부를 포함할 수 있고, 제1 및 제2 저장부는 서로 처리나 데이터 전송 속도가 상이할 수 있다. 여기서, 제1 저장부는 제2 저장부에 비해 상대적으로 처리나 전송 속도가 빠른 저장 장치(일례로 솔리드 스테이트 드라이브 저장 장치와 같은 핫 데이터 저장용 저장 장치 등)를 이용하여 구현된 것이고, 제2 저장부는 제1 저장부에 비해 상대적으로 처리나 전송 속도가 느린 저장 장치(일례로 하드 디스크 저장 장치와 같은 콜드 데이터 저장용 저장 장치 등)를 이용하여 구현된 것일 수 있다. 도 7에는 두 개의 저장부, 즉 제1 및 제2 저장부가 마련된 상태에서 데이터 저장 처리를 수행하는 방법의 일 실시예가 도시되어 있으나, 후술하는 데이터 저장 처리 방법은 설계자나 사용자 등의 선택에 따라서 셋 이상의 저장부(즉, 제3 내지 제N 저장부)가 채용된 경우에도 동일하게 또는 일부 변형된 형태로 수행될 수도 있다.As shown in FIG. 7, data (i.e., input data) can be input by the user's operation of a keyboard device or the like or from another external device (for example, another information processing device or storage device) (400). In this case, the device into which data is input (i.e., data storage and processing device) may include two or more storage units, for example, first and second storage units, and the first and second storage units have processing or data transfer speeds with each other. may be different. Here, the first storage unit is implemented using a storage device (for example, a storage device for hot data storage such as a solid state drive storage device) with a relatively faster processing or transfer speed compared to the second storage unit, and the second storage unit is The unit may be implemented using a storage device (for example, a storage device for cold data storage such as a hard disk storage device) that has a relatively slow processing or transmission speed compared to the first storage unit. Figure 7 shows an embodiment of a method of performing data storage processing with two storage units, that is, first and second storage units, provided. However, the data storage processing method described later can be performed in three ways depending on the selection of the designer or user. Even when the above storage units (i.e., third to Nth storage units) are employed, they may be performed in the same or slightly modified form.

입력 데이터는 설계자 또는 사용자에 의해 미리 정의된 바에 따른 소정의 저장부, 일례로 제1 저장부에 쓰여져 저장될 수 있다(410). 여기서, 새로 쓰여질 데이터는 제1 저장부의 기존 데이터 중 어느 하나에 부가되어 입력되거나, 복수의 기존 데이터에 분산 및 부가되어 쓰여지거나 또는 기존 데이터와 다른 새로 생성된 데이터에 부가되어 쓰여질 수 있다. 일 실시예에 의하면, 데이터의 쓰기는 복사 및 쓰기 B+ 트리(Copy on Write B+ Tree)를 기반으로 수행될 수도 있다. 예를 들어, 새로 쓰여질 데이터는 순차적으로 또는 동시에 기존 데이터 중 적어도 하나의 말단 등에 부가되어 기록될 수 있다. 이와 같은 과정은 반복 처리될 수 있으며, 이에 따라 적어도 하나의 기존 데이터 또는 새로 생성된 데이터에는, 하나 또는 복수의 입력 데이터가 부가되어 쓰여지게 된다.The input data may be written and stored in a predefined storage unit, for example, a first storage unit, as defined by the designer or user (410). Here, the data to be newly written may be inputted by being added to one of the existing data in the first storage unit, written by being distributed and added to a plurality of existing data, or written by being added to newly created data that is different from the existing data. According to one embodiment, writing of data may be performed based on a copy and write B+ tree. For example, data to be newly written may be added and recorded sequentially or simultaneously to at least one end of existing data. This process may be repeated, and accordingly, one or more input data will be added and written to at least one existing data or newly created data.

제1 저장부에 쓰여진 적어도 하나의 입력 데이터에 대한 병합 조건의 만족 여부가 판단될 수 있다(420). 여기서, 병합 조건은, 예를 들어, 데이터의 개수, 데이터가 쓰여진 후부터 경과된 시간, 데이터에 대한 접근이 충분히 부족한지 여부, 쓰여진 입력 데이터 중 둘 이상이 하나의 완성된 형태로 병합한지 여부 및/또는 병합 데이터가 이주 가능한지 여부 등을 포함할 수 있다. 만약 병합이 가능하다면(420의 예), 제1 저장부에 쓰여진 입력 데이터의 전부 또는 일부의 병합이 수행될 수 있다(430). 여기서, 병합이 수행되는 데이터는 콜드 데이터를 포함할 수 있으며, 핫 데이터 또는 웜 데이터는 병합에서 배제될 수 있다. 콜드 데이터의 병합을 위해서 사전에 입력 데이터는 콜드 데이터나 핫 데이터로 분류될 수 있다. 예를 들어, 입력 데이터가 키 값 형태의 데이터베이스 엔진이 관리하는 파일 중 가장 오래 전에 생성된 계층의 데이터에 해당하거나, 로그 구조 병합 트리를 이용하는 스토리지 엔진이 관리하는 파일의 계층 구조 중 가장 하위 계층의 데이터에 해당하는 경우에는 콜드 데이터로 분류되고, 그렇지 않은 경우에는 핫 데이터로 분류될 수도 있다. 반대로 병합 조건이 만족되지 않으면(420의 아니오), 병합은 수행되지 않으며, 데이터는 필요에 따라 데이터 저장 처리 장치에 사용자 등의 조작에 따라 또는 미리 정의된 설정에 따라 데이터 입출력 단자나 통신 네트워크 등을 통해 계속해서 입력될 수 있다.It may be determined whether the merge condition for at least one input data written to the first storage unit is satisfied (420). Here, the merging conditions include, for example, the number of data, the time elapsed since the data was written, whether access to the data is sufficiently insufficient, whether two or more of the written input data are merged into one complete form, and/ Alternatively, it may include whether the merged data can be migrated. If merging is possible (Yes at 420), merging of all or part of the input data written to the first storage can be performed (430). Here, the data on which merging is performed may include cold data, and hot data or warm data may be excluded from merging. For merging of cold data, input data may be classified in advance as cold data or hot data. For example, the input data corresponds to data from the oldest created hierarchy among the files managed by the database engine in the form of key values, or from the lowest hierarchy of files managed by the storage engine using a log structure merge tree. If it corresponds to data, it may be classified as cold data, and if not, it may be classified as hot data. Conversely, if the merging condition is not satisfied (No in 420), merging is not performed, and the data is transferred to the data storage processing device as needed through data input/output terminals, communication networks, etc. according to operations by the user, etc., or according to predefined settings. It can be continuously entered through.

병합 데이터가 생성되면, 이에 응하여 미리 정의된 이주 조건의 만족 여부가 판단될 수 있다(440). 이주 조건은 각 저장부에 대응하는 입출력 인터페이스의 상태(일례로 제1 저장부 및 제2 저장부 중 적어도 하나에 대한 입출력 인터페이스의 대역폭 사용량이나 부하 수준 등) 및/또는 병합 데이터가 이주될 저장부의 상태(일례로 제1 저장부의 잔여 용량 등) 등을 포함할 수 있다. 만약 이주 조건이 만족되면(440의 예, 예를 들어, 입출력 인터페이스의 대역폭 사용량이 제1 데이터의 이동에 충분한 상황 등), 병합 데이터는 그대로 소정의 선택된 저장부(일례로 제2 저장부)로 이주될 수 있다(450). 반대로 병합 데이터의 이주 조건이 만족되지 않으면(440의 아니오), 병합 데이터는 이주되지 않고 그대로 제1 저장부에 쓰여진 상태로 유지된다(460). 추후 이주 조건이 만족되게 되면(440의 예), 병합 데이터는 다른 과정(410 내지 430)과는 독립적으로 또는 다른 과정(410 내지 430)에 종속적으로 제1 저장부로 이주될 수 있다(440, 460).When merged data is generated, it may be determined whether predefined migration conditions are satisfied (440). Migration conditions include the status of the input/output interface corresponding to each storage unit (e.g., bandwidth usage or load level of the input/output interface for at least one of the first storage unit and the second storage unit, etc.) and/or the storage unit to which the merged data is to be migrated. It may include status (for example, remaining capacity of the first storage unit, etc.). If the migration condition is satisfied (for example, in 440, the bandwidth usage of the input/output interface is sufficient to move the first data, etc.), the merged data is transferred to the selected storage unit (for example, the second storage unit). Can be migrated (450). Conversely, if the migration condition of the merged data is not satisfied (No in 440), the merged data is not migrated and remains written in the first storage (460). If the migration conditions are later satisfied (example of 440), the merged data may be migrated to the first storage unit independently of the other processes (410 to 430) or dependently on the other processes (410 to 430) (440, 460). ).

상술한 과정은 미리 정의된 설정에 따라 또는 사용자의 조작 등에 따라서 일 회 이상 반복 수행될 수도 있고(470의 예) 또는 종료될 수도 있다(470의 아니오).The above-described process may be repeated one or more times (Yes at 470) or terminated (No at 470) according to predefined settings or user manipulation.

상술한 실시예에 따른 데이터 저장 처리 방법은, 컴퓨터 장치에 의해 구동될 수 있는 프로그램의 형태로 구현될 수 있다. 프로그램은, 코드, 라이브러리, 데이터 파일 및/또는 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 또한, 컴퓨터 장치는, 프로그램의 기능을 실현 가능하게 하는 프로세서나 메모리 등을 포함하여 구현된 것일 수 있으며, 필요에 따라 통신 장치를 더 포함할 수도 있다.The data storage and processing method according to the above-described embodiment may be implemented in the form of a program that can be driven by a computer device. A program may include code, libraries, data files and/or data structures, etc., singly or in combination. Additionally, the computer device may be implemented by including a processor or memory that enables program functions, and may further include a communication device as needed.

상술한 데이터 저장 처리 방법을 구현하기 위한 프로그램은, 컴퓨터에 의해 판독 가능한 기록 매체에 기록될 수 있다. 컴퓨터에 의해 판독 가능한 기록 매체는, 예를 들어, 롬, 램, 플래시 메모리 또는 솔리드 스테이트 드라이브 등과 같은 반도체 저장 장치, 하드 디스크나 플로피 디스크 등과 같은 자기 디스크 저장 장치, 콤팩트 디스크나 디브이디 등과 같은 광 기록 매체 및/또는 자기 테이프 등과 같이 컴퓨터 등의 호출에 따라 실행되는 특정 프로그램을 저장 가능한 적어도 한 종류의 물리적 장치를 포함할 수 있다.A program for implementing the above-described data storage and processing method may be recorded on a computer-readable recording medium. Recording media readable by a computer include, for example, semiconductor storage devices such as ROM, RAM, flash memory or solid state drives, magnetic disk storage devices such as hard disks or floppy disks, and optical recording media such as compact disks or DVDs. and/or may include at least one type of physical device, such as a magnetic tape, capable of storing a specific program executed in response to a call from a computer or the like.

이상 데이터 저장 처리 장치 및 데이터 저장 처리 방법의 일 실시예에 대해 설명하였으나, 데이터 저장 처리 장치 및 데이터 저장 처리 방법은 오직 상술한 실시예에 한정되는 것만은 아니다. 해당 기술 분야에서 통상의 지식을 가진 자가 상술한 실시예를 기초로 수정 및 변형하여 구현 가능한 다양한 장치나 방법 역시 상술한 데이터 저장 처리 장치 또는 데이터 저장 처리 방법의 실시예가 될 수 있다. 예를 들어, 설명된 시스템, 구조, 장치, 회로 등이 설명된 바와 일부 상이한 형태로 결합 또는 조합되거나 다른 구성 요소 또는 균등물에 의하여 대치 또는 치환되거나, 및/또는 설명된 방법(들)이 설명된 바와 다른 순서로 수행된다고 하더라도 상술한 데이터 저장 처리 장치 또는 데이터 저장 처리 방법의 일 실시예에 해당할 수 있다.Although an embodiment of the data storage and processing device and the data storage and processing method has been described above, the data storage and processing device and the data storage and processing method are not limited to only the above-described embodiment. Various devices or methods that can be implemented by those skilled in the art by modifying and modifying the above-described embodiments based on the above-described embodiments may also be examples of the above-described data storage and processing device or data storage and processing method. For example, the described system, structure, device, circuit, etc. may be combined or combined in some form different from that described or replaced or substituted by other components or equivalents, and/or the described method(s) may be used as described. Even if it is performed in a different order than described, it may correspond to an embodiment of the above-described data storage and processing device or data storage and processing method.

80: 데이터 99: 입력부
100: 프로세서 101: 쓰기 처리부
103: 병합 처리부 105: 이주 처리부
110: 제1 저장부 120: 제2 저장부
80: data 99: input unit
100: Processor 101: Write processing unit
103: Merge processing department 105: Migration processing department
110: first storage unit 120: second storage unit

Claims (12)

제1 저장부;
상기 제1 저장부와 이종인 제2 저장부; 및
입력된 데이터를 복사 및 쓰기 B+ 트리를 기반으로 상기 제1 저장부에 추가하고, 상기 제1 저장부에 추가된 데이터 중에서 적어도 하나의 콜드 데이터를 상기 제2 저장부로 이주시키는 프로세서;를 포함하고,
상기 프로세서는,
상기 적어도 하나의 콜드 데이터를 미리 정의된 설정에 따라서 병합을 수행하여 적어도 하나의 병합 데이터를 획득하고, 상기 적어도 하나의 병합 데이터를 상기 제2 저장부로 전달하되,
상기 제1 저장부 및 상기 제2 저장부 중 적어도 하나의 저장 용량, 부하 수준 및 입출력 대역폭 사용량 중 적어도 하나를 기반으로 상기 적어도 하나의 병합 데이터를 상기 제2 저장부로 이주시킬지 여부를 결정하는 데이터 저장 처리 장치.
first storage unit;
a second storage unit that is different from the first storage unit; and
A processor that adds input data to the first storage unit based on a copy and write B+ tree, and migrates at least one cold data from the data added to the first storage unit to the second storage unit,
The processor,
Merging the at least one cold data according to predefined settings to obtain at least one merged data, and transmitting the at least one merged data to the second storage unit,
Data storage for determining whether to migrate the at least one merged data to the second storage unit based on at least one of the storage capacity, load level, and input/output bandwidth usage of at least one of the first storage unit and the second storage unit. processing unit.
제1항에 있어서,
상기 프로세서는, 상기 적어도 하나의 콜드 데이터 대신에 상기 적어도 하나의 병합 데이터를 상기 제2 저장부로 전달하는 데이터 저장 처리 장치.
According to paragraph 1,
The processor is configured to transfer the at least one merged data to the second storage unit instead of the at least one cold data.
제2항에 있어서,
상기 프로세서는, 상기 제1 저장부에 추가된 데이터 중에서 적어도 하나의 핫 데이터를 제외하고 상기 적어도 하나의 콜드 데이터에 대한 병합을 수행하는 데이터 저장 처리 장치.
According to paragraph 2,
The processor is configured to exclude at least one hot data from among the data added to the first storage unit and merge the at least one cold data.
삭제delete 삭제delete 제1항에 있어서,
상기 제1 저장부는 상대적으로 높은 성능의 저장 장치를 포함하고, 상기 제2 저장부는 상대적으로 낮은 성능의 저장 장치를 포함하는 데이터 저장 처리 장치.
According to paragraph 1,
A data storage and processing device wherein the first storage unit includes a storage device with relatively high performance, and the second storage unit includes a storage device with relatively low performance.
복수의 데이터가 동시에 또는 순차적으로 입력되는 단계;
입력된 데이터를 복사 및 쓰기 B+ 트리를 기반으로 제1 저장부에 추가하는 단계;
상기 제1 저장부에 추가된 데이터 중에서 적어도 하나의 콜드 데이터를 상기 제1 저장부와 이종인 제2 저장부로 이주시키는 단계;를 포함하되,
상기 제1 저장부에 추가된 데이터 중에서 적어도 하나의 콜드 데이터를 상기 제2 저장부로 이주시키는 단계는,
미리 정의된 설정에 따라서 상기 적어도 하나의 콜드 데이터의 병합을 수행하여 적어도 하나의 병합 데이터를 획득하는 단계; 및
상기 제1 저장부 및 상기 제2 저장부 중 적어도 하나의 저장 용량, 부하 수준 및 입출력 대역폭 사용량 중 적어도 하나를 기반으로 상기 병합 데이터를 상기 제2 저장부로 이주시킬지 여부를 결정하는 단계;를 포함하는 데이터 저장 처리 방법.
Entering a plurality of data simultaneously or sequentially;
Adding input data to a first storage unit based on a copy and write B+ tree;
A step of migrating at least one cold data from among the data added to the first storage unit to a second storage unit of a different type from the first storage unit,
The step of migrating at least one cold data from the data added to the first storage unit to the second storage unit,
Obtaining at least one merged data by merging the at least one cold data according to predefined settings; and
Determining whether to migrate the merged data to the second storage unit based on at least one of the storage capacity, load level, and input/output bandwidth usage of at least one of the first storage unit and the second storage unit; comprising; How data is stored and processed.
제7항에 있어서,
상기 제1 저장부에 추가된 데이터 중에서 적어도 하나의 콜드 데이터를 상기 제2 저장부로 이주시키는 단계는,
상기 적어도 하나의 병합 데이터를 상기 제2 저장부로 전달하는 단계;를 더 포함하는 데이터 저장 처리 방법.
In clause 7,
The step of migrating at least one cold data from the data added to the first storage unit to the second storage unit,
A data storage processing method further comprising: transmitting the at least one merged data to the second storage unit.
제8항에 있어서,
상기 미리 정의된 설정에 따라서 상기 적어도 하나의 콜드 데이터의 병합을 수행하여 적어도 하나의 병합 데이터를 획득하는 단계는,
상기 제1 저장부에 추가된 데이터 중에서 적어도 하나의 핫 데이터를 배제하고 미리 정의된 설정에 따라서 상기 적어도 하나의 콜드 데이터의 병합을 수행하는 단계;를 더 포함하는 데이터 저장 처리 방법.
According to clause 8,
Obtaining at least one merged data by merging the at least one cold data according to the predefined settings,
Excluding at least one hot data from the data added to the first storage unit and merging the at least one cold data according to predefined settings.
삭제delete 삭제delete 제7항에 있어서,
상기 제1 저장부는 상대적으로 높은 성능의 저장 장치를 포함하고, 상기 제2 저장부는 상대적으로 낮은 성능의 저장 장치를 포함하는 데이터 저장 처리 방법.
In clause 7,
A data storage and processing method wherein the first storage unit includes a storage device with relatively high performance, and the second storage unit includes a storage device with relatively low performance.
KR1020210050916A 2020-11-27 2021-04-20 Appratus and method for processing of storing data KR102619300B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20200162242 2020-11-27
KR1020200162242 2020-11-27

Publications (2)

Publication Number Publication Date
KR20220074685A KR20220074685A (en) 2022-06-03
KR102619300B1 true KR102619300B1 (en) 2023-12-29

Family

ID=81983657

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210050916A KR102619300B1 (en) 2020-11-27 2021-04-20 Appratus and method for processing of storing data

Country Status (1)

Country Link
KR (1) KR102619300B1 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140365719A1 (en) 2013-01-28 2014-12-11 Radian Memory Systems, LLC Memory controller that provides addresses to host for memory location matching state tracked by memory controller
US20160055191A1 (en) 2014-08-22 2016-02-25 Xcalar, Inc. Executing constant time relational queries against structured and semi-structured data
US10001942B1 (en) 2016-12-21 2018-06-19 Netapp Inc. Asynchronous semi-inline deduplication
US20180329712A1 (en) * 2017-05-09 2018-11-15 Futurewei Technologies, Inc. File access predication using counter based eviction policies at the file and page level
US20190361609A1 (en) 2018-05-24 2019-11-28 Beijing Baidu Netcom Science Technology Co., Ltd. Data storage method, apparatus and storage medium
CN111309270A (en) 2020-03-13 2020-06-19 清华大学 Persistent memory key value storage system

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101498673B1 (en) * 2007-08-14 2015-03-09 삼성전자주식회사 Solid state drive, data storing method thereof, and computing system including the same
KR20180060370A (en) * 2016-11-29 2018-06-07 에스케이하이닉스 주식회사 Memory system and operation method for the same

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140365719A1 (en) 2013-01-28 2014-12-11 Radian Memory Systems, LLC Memory controller that provides addresses to host for memory location matching state tracked by memory controller
US20160055191A1 (en) 2014-08-22 2016-02-25 Xcalar, Inc. Executing constant time relational queries against structured and semi-structured data
US10001942B1 (en) 2016-12-21 2018-06-19 Netapp Inc. Asynchronous semi-inline deduplication
US20180173449A1 (en) * 2016-12-21 2018-06-21 Netapp Inc. Asynchronous semi-inline deduplication
US20180329712A1 (en) * 2017-05-09 2018-11-15 Futurewei Technologies, Inc. File access predication using counter based eviction policies at the file and page level
US20190361609A1 (en) 2018-05-24 2019-11-28 Beijing Baidu Netcom Science Technology Co., Ltd. Data storage method, apparatus and storage medium
CN111309270A (en) 2020-03-13 2020-06-19 清华大学 Persistent memory key value storage system

Also Published As

Publication number Publication date
KR20220074685A (en) 2022-06-03

Similar Documents

Publication Publication Date Title
US10169433B2 (en) Systems and methods for an SQL-driven distributed operating system
JP6553649B2 (en) Clustering storage method and apparatus
US8001351B2 (en) Data migration method and information processing system
US20150242506A1 (en) Early exit from table scans of loosely ordered and/or grouped relations using nearly ordered maps
US20190384845A1 (en) Using computing resources to perform database queries according to a dynamically determined query size
JP2005115514A (en) Database search system, its search method, and program
US20190018878A1 (en) Dual overlay query processing
US20240004853A1 (en) Virtual data source manager of data virtualization-based architecture
KR20210058118A (en) Casedb: low-cost put-intensive key-value store for edge computing
US20230067285A1 (en) Linkage data generator
US10606837B2 (en) Partitioned join with dense inner table representation
US20200082241A1 (en) Cognitive storage device
CN107798063A (en) Snap processing method and snapshot processing unit
KR102619300B1 (en) Appratus and method for processing of storing data
US20080033948A1 (en) Storage apparatus and method therefor
US20210373916A1 (en) Software plugins of data virtualization-based architecture
KR20220040348A (en) Data stream management method and device
CN111930684A (en) Small file processing method, device and equipment based on HDFS (Hadoop distributed File System) and storage medium
US11934927B2 (en) Handling system-characteristics drift in machine learning applications
US8660974B2 (en) Inference over semantic network with some links omitted from indexes
TWI677795B (en) Computerized methods and computerized system using meta-join and/or meta-group-by indexes
US20080033949A1 (en) Electronic apparatus and method therefor
TW201941124A (en) Sample playback data access method and device
JP7041239B2 (en) Deep distance learning methods and systems
JP7068210B2 (en) Database management system, terminal device and method

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant