KR101429046B1 - Method for searching, inputting, deleting and garbage collecting of data in database having key-value structure - Google Patents

Method for searching, inputting, deleting and garbage collecting of data in database having key-value structure Download PDF

Info

Publication number
KR101429046B1
KR101429046B1 KR1020120134318A KR20120134318A KR101429046B1 KR 101429046 B1 KR101429046 B1 KR 101429046B1 KR 1020120134318 A KR1020120134318 A KR 1020120134318A KR 20120134318 A KR20120134318 A KR 20120134318A KR 101429046 B1 KR101429046 B1 KR 101429046B1
Authority
KR
South Korea
Prior art keywords
value
data
key
field
database
Prior art date
Application number
KR1020120134318A
Other languages
Korean (ko)
Other versions
KR20140067277A (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 에스코어 주식회사
Priority to KR1020120134318A priority Critical patent/KR101429046B1/en
Publication of KR20140067277A publication Critical patent/KR20140067277A/en
Application granted granted Critical
Publication of KR101429046B1 publication Critical patent/KR101429046B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • G06F12/0269Incremental or concurrent garbage collection, e.g. in real-time systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions

Abstract

순방향 색인과 역색인을 동시에 저장하여 데이터의 검색 속도를 향상시키면서, 동시에, 순방향 색인과 역색인의 비동기에 따른 오류의 발생을 방지할 수 있는, 데이터의 검색, 입력, 삭제 및 가비지 컬렉션 방법이 제공된다. 본 발명의 키-밸류 구조를 가지는 데이터베이스에서 데이터를 검색하는 방법은, 데이터의 필드명 및 필드값의 조합을 키로 가지고 상기 데이터의 식별값 및 타임스탬프의 조합을 밸류 항목으로 가지는 역색인 데이터, 및 상기 데이터의 식별값을 키로 가지고 상기 데이터의 필드명, 타임스탬프 및 필드값의 조합을 밸류 항목으로 가지는 순방향 색인 데이터를 저장하고 있는, 키-밸류 구조를 가지는 데이터베이스에서 데이터를 검색하는 방법으로서, (a) 검색 대상 데이터의 필드명 및 필드값을 입력받는 단계, (b) 상기 검색 대상 데이터의 필드명 및 필드값의 조합을 키로 가지는 역색인 데이터를 상기 데이터베이스에서 검색하는 단계, (c) 상기 검색된 역색인 데이터의 밸류 항목에 포함된 식별값을 키로 가지는 순방향 색인 데이터를 상기 데이터베이스에서 검색하는 단계, 및 (d) 상기 검색된 순방향 색인 데이터를 검색 결과로서 반환하되, 상기 검색 대상 데이터의 필드명과 동일한 필드명을 가지는 상기 검색된 순방향 색인 데이터의 밸류 항목 중 최신의 타임스탬프를 가지는 밸류 항목이 상기 검색 대상 데이터의 필드값과 동일한 필드값을 가지는 경우에 한하여, 상기 검색된 순방향 색인 데이터를 검색 결과로서 반환하는 단계를 포함한다.Input, deletion, and garbage collection methods that can prevent the occurrence of errors due to the asynchronism of the forward index and the backward index while simultaneously improving the data retrieval speed by storing the forward index and the reverse index simultaneously do. A method for retrieving data in a database having a key-value structure according to the present invention is a method for retrieving data from a database having a key-value structure, comprising the steps of: storing inverse index data having a combination of a field name and a field value of a data as a key and a combination of an identification value and a time stamp of the data as a value item; A method for searching data in a database having a key-value structure, storing forward index data having as a key an identification value of the data and having a combination of a field name, a time stamp, and a field value of the data as a value item, (a) receiving a field name and a field value of data to be searched, (b) searching the database for inverse index data having a combination of a field name and a field value of the search target data as a key, (c) Forward index data having an identification value included in a value item of the inverse index data as a key is stored in the database And (d) returning the searched forward index data as a search result, wherein a value item having the latest time stamp among the value items of the searched forward index data having the same field name as the field name of the search object data And returning the searched forward index data as a search result only when the field value has the same field value as the field value of the search object data.

Description

키-밸류 구조를 가지는 데이터베이스에서 데이터를 검색, 입력, 삭제 및 가비지 컬렉션하는 방법{METHOD FOR SEARCHING, INPUTTING, DELETING AND GARBAGE COLLECTING OF DATA IN DATABASE HAVING KEY-VALUE STRUCTURE}METHOD FOR SEARCHING, INPUTTING, AND DELETING AND GARBAGE COLLECTING OF DATA IN DATABASE HAVING KEY-VALUE STRUCTURE In a database having a key-value structure,

본 발명은, 키-밸류 구조를 가지는 데이터베이스에서 데이터를 검색, 입력, 삭제 및 가비지 컬렉션하는 방법에 관한 것으로, 보다 상세하게는 다수의 명령에 의해 동시다발적으로 데이터의 검색, 입력 및 삭제가 수행되는 데이터베이스에서 동시다발적인 명령에 대한 작업의 충돌 없이 데이터를 검색, 입력, 삭제 및 가비지 컬렉션할 수 있는 방법에 관한 것이다.The present invention relates to a method for searching, inputting, deleting and garbage collecting data in a database having a key-value structure, more specifically, searching, inputting and deleting data simultaneously and concurrently by a plurality of commands Input, deletion, and garbage collection of data without conflicts of operations on concurrent commands in the database.

빅데이터의 시대가 도래하면서 방대한 데이터의 처리가 이슈화되고 있다. 기존의 관계형 데이터베이스(RDB, Relational Database)는 수평적 확장이 용이하지 않고, 관계에 종속되는 스키마(Scheme)를 요구하기 때문에, 방대하고 다양한 형태의 데이터를 저장, 관리하는 데에 적용되기 곤란한 점이 있었다. 이에 대하여, NoSQL 데이터베이스는 확장이 용이하고, 비정형 데이터를 쉽게 저장, 관리할 수 있기 때문에 빅데이터의 시대의 데이터베이스의 주류로 부각되고 있다.As the era of big data comes, massive data processing is becoming an issue. Since existing relational databases (RDBs) are not easy to expand horizontally and require schemes that are dependent on relationships, they are difficult to apply to storage and management of large and diverse types of data . In contrast, the NoSQL database is becoming a mainstream database in the era of big data because it is easy to expand and easily store and manage unstructured data.

현재 Cassandra, Mongo DB, Riak, H-Base 등의 다양한 종류의 NoSQL 데이터베이스가 제안되었고, 이들 NoSQL 데이터베이스의 대부분은 키-밸류(key-value) 구조를 가지고 있다.Currently, various kinds of NoSQL databases such as Cassandra, Mongo DB, Riak, and H-Base have been proposed, and most of these NoSQL databases have a key-value structure.

도 1(a)는 이러한 키-밸류 구조를 가지는 데이터의 예를 나타낸다. 도 1(a)의 예에서, 사원번호 '101', '102'는 각각 키가 되고, 각 키에 대하여 콜론(:)으로 종속되는 부분이 밸류가 된다. 즉, 중괄호({ })에 포함된 내용이 각 키에 대한 밸류가 된다. 이와 같이, 키-밸류 구조에서는, 하나의 키에 하나의 밸류가 종속되게 된다. 또한, 하나의 밸류는 하나 이상의 밸류 항목을 가질 수 있다. 도 1(a)의 예에서, "이름 : 홍길동"과 "나이 : 26"은 각각 밸류 항목이 된다. 이때, 각각의 밸류 항목은 '이름' 또는 '나이'라는 필드명과 '홍길동' 또는 '26'이라는 필드값을 키-밸류 구조로 가지고 있다.Fig. 1 (a) shows an example of data having such a key-value structure. In the example of FIG. 1 (a), employee numbers '101' and '102' are keys, and a value dependent on a colon (:) for each key is a value. That is, the contents of braces ({}) are the values for each key. Thus, in a key-value structure, one value is dependent on one key. Also, one value may have one or more value items. In the example of Fig. 1 (a), "Name: Hong Kil Dong" and "Age: 26" are each a value item. At this time, each value item has a field name of 'Name' or 'Age' and a field value of 'Hong Kil Dong' or '26' in a key-value structure.

이와 같은 키-밸류 구조를 가지는 데이터베이스에서 데이터의 검색은 키에 의존하기 때문에, 밸류에 의존한 검색이 곤란하다. 예를 들어, 도 1(a)에 도시된 데이터에서는, 사원번호가 키가 되므로, 사원번호가 101인 사원의 데이터를 검색하는 것은 용이하나, 이름이 홍길동인 사원 또는 나이가 26세인 사원을 검색하는 것은 밸류에 의존한 검색이 되므로 곤란하게 된다.Since retrieval of data in a database having such a key-value structure depends on a key, it is difficult to retrieve data depending on the value. For example, in the data shown in Fig. 1 (a), since the employee number is a key, it is easy to retrieve the data of the employee having the employee number 101, but the employee whose name is Hong Kil-dong or the employee whose age is 26 It becomes difficult to search for a value dependent value.

이에, 도 1(a)의 데이터의 각각의 밸류 항목을 키로 하고, 도 1(a)의 데이터의 키를 밸류 항목으로 하는, 즉 키-밸류 구조를 반전시킨, 역색인(Inverted Index)를 작성함으로써 밸류 항목에 대한 검색을 용이하게 하려는 시도가 있다.1 (a) is set as the key, and the key of the data of Fig. 1 (a) is set as the value item, that is, the key-value structure is reversed to create the inverted index There is an attempt to facilitate searching for a value item.

도 1(a)를 순방향 색인(Forward Index)이라고 할 때, 도 1(b)는 도 1(a)의 순방향 색인의 역색인이 된다. 역색인에서는, 순방향 색인의 밸류 항목을 키로 가지고 있기 때문에, 이름 또는 나이에 의존한 검색이 가능하다. 예를 들어, 나이가 26세인 사원은 도 1(b)의 역색인으로부터 쉽게 검색할 수 있다.1 (a) is referred to as a forward index, FIG. 1 (b) is a reverse index of the forward index in FIG. 1 (a). Inverse index has a value item of the forward index as a key, so it is possible to search depending on name or age. For example, an employee whose age is 26 can easily search from the inverted index of FIG. 1 (b).

이와 같이, 데이터베이스가 역색인을 가지게 되면, 검색의 속도가 현저하게 빨라진다는 장점이 있다. 그러나, 데이터를 순방향 색인 및 역색인에 모두 저장하여야 하므로 저장 용량의 관점에서 다소 불리한 점이 있고, 특히 순방향 색인과 역색인이 정확하게 상호 동기화되어야 하는 과제가 있다.As such, if the database has an inverse index, there is an advantage that the search speed is significantly increased. However, since data must be stored in both the forward index and the backward index, there is a disadvantage in terms of the storage capacity. In particular, there is a problem that the forward index and the backward index must be accurately synchronized with each other.

그러나, 하나의 데이터에 대하여 순방향 색인과 역색인의 추가, 갱신, 삭제가 엄밀하게 동시에 이루어지지 않기 때문에, 하나의 데이터에 대한 순방향 색인과 역색인 중 어느 하나가 변경된 후 그리고 다른 하나가 변경되기 전에 상기 하나의 데이터에 대한 추가, 갱신, 삭제, 검색이 이루어지는 경우에는, 순방향 색인과 역색인의 비동기에 의한 오류가 발생할 수 있다.However, since addition, update, and deletion of a forward index and a reverse index are not strictly concurrently performed on one piece of data, after either the forward index or the backward index for one piece of data is changed and before the other is changed When the addition, update, deletion, or retrieval of the one data is performed, an error due to asynchronism between the forward index and the reverse index may occur.

특히, 무수히 많은 데이터를 관리하는 빅데이터에서는, 데이터의 추가, 갱신, 삭제, 검색이 동시다발적으로 이루어질 가능성이 높기 때문에, 순방향 색인과 역색인의 비동기에 의한 오류의 가능성은 높아진다.In particular, in the case of big data managing large amounts of data, there is a high possibility that errors due to asynchronization of the forward index and the backward index are likely to occur at the same time because the addition, update, deletion and retrieval of data are likely to occur simultaneously.

본 발명은 상술한 문제점을 해결하기 위하여 안출된 것으로, 순방향 색인과 역색인을 동시에 저장하여 데이터의 검색 속도를 향상시키면서, 동시에, 순방향 색인과 역색인의 비동기에 따른 오류의 발생을 방지할 수 있는, 데이터의 검색, 입력, 삭제 및 가비지 컬렉션 방법을 제공하기 위한 것이다.Disclosure of Invention Technical Problem [8] The present invention has been made to solve the above-mentioned problems, and it is an object of the present invention to provide an apparatus and a method for simultaneously storing a forward index and an inverse index, , Data retrieval, input, deletion, and garbage collection methods.

상술한 과제를 해결하기 위한 본 발명의 키-밸류 구조를 가지는 데이터베이스에서 데이터를 검색하는 방법은, 데이터의 필드명 및 필드값의 조합을 키로 가지고 상기 데이터의 식별값 및 타임스탬프의 조합을 밸류 항목으로 가지는 역색인 데이터, 및 상기 데이터의 식별값을 키로 가지고 상기 데이터의 필드명, 타임스탬프 및 필드값의 조합을 밸류 항목으로 가지는 순방향 색인 데이터를 저장하고 있는, 키-밸류 구조를 가지는 데이터베이스에서 데이터를 검색하는 방법으로서, (a) 검색 대상 데이터의 필드명 및 필드값을 입력받는 단계, (b) 상기 검색 대상 데이터의 필드명 및 필드값의 조합을 키로 가지는 역색인 데이터를 상기 데이터베이스에서 검색하는 단계, (c) 상기 검색된 역색인 데이터의 밸류 항목에 포함된 식별값을 키로 가지는 순방향 색인 데이터를 상기 데이터베이스에서 검색하는 단계, 및 (d) 상기 검색된 순방향 색인 데이터를 검색 결과로서 반환하되, 상기 검색 대상 데이터의 필드명과 동일한 필드명을 가지는 상기 검색된 순방향 색인 데이터의 밸류 항목 중 최신의 타임스탬프를 가지는 밸류 항목이 상기 검색 대상 데이터의 필드값과 동일한 필드값을 가지는 경우에 한하여, 상기 검색된 순방향 색인 데이터를 검색 결과로서 반환하는 단계를 포함한다.According to another aspect of the present invention, there is provided a method of retrieving data from a database having a key-value structure, comprising the steps of: using a combination of a field name and a field value of a data as a key, And the forward index data having a combination of a field name, a time stamp, and a field value of the data as a key, and forward index data having an identification value of the data as a key and storing the forward index data in a database having a key- (A) inputting a field name and a field value of data to be searched, (b) searching the database for inverse index data having a combination of a field name and a field value of the search target data as a key (C) a forward index having a key as an identification value included in the value item of the retrieved inverse index data (D) returning the retrieved forward index data as a retrieval result, wherein a latest timestamp among the value items of the retrieved forward index data having the same field name as the retrieval object data field name And returning the retrieved forward index data as a retrieval result only when the value item having the field value having the same field value as the field value of the retrieval object data.

또한, 상술한 과제를 해결하기 위한 본 발명의 키-밸류 구조를 가지는 데이터베이스에서 데이터를 입력하는 방법은, 데이터의 필드명 및 필드값의 조합을 키로 가지고 상기 데이터의 식별값 및 타임스탬프의 조합을 밸류 항목으로 가지는 역색인 데이터, 및 상기 데이터의 식별값을 키로 가지고 상기 데이터의 필드명, 타임스탬프 및 필드값의 조합을 밸류 항목으로 가지는 순방향 색인 데이터를 저장하고 있는, 키-밸류 구조를 가지는 데이터베이스에서 데이터를 입력하는 방법으로서, (a) 입력 데이터의 식별값, 필드명 및 필드값을 입력받는 단계, (b) 상기 입력 데이터의 필드명 및 필드값의 조합을 키로 가지고, 상기 입력 데이터의 식별값 및 타임스탬프의 조합을 밸류 항목으로 가지는 역색인 데이터를 상기 데이터베이스에 입력하는 단계, 및 (c) 상기 (b) 단계가 성공한 경우, 상기 입력 데이터의 식별값를 키로 가지고, 상기 입력 데이터의 필드명, 타임스탬프 및 필드값의 조합을 밸류 항목으로 가지는 순방향 색인 데이터를 상기 데이터베이스에 입력하는 단계를 포함한다.According to another aspect of the present invention, there is provided a method of inputting data in a database having a key-value structure, comprising the steps of: obtaining a combination of an identification value and a time stamp of the data, Value structure having a key-value structure in which, as a value item, inverse index data possessed as a value item and a combination of a field name, a time stamp, and a field value of the data with the identification value of the data as a key are stored. (A) inputting an identification value, a field name, and a field value of input data, (b) using a combination of a field name and a field value of the input data as a key, and identifying Value and a time stamp as a value item to the database, and (c) and inputting the forward index data having the identification value of the input data as a key and having a combination of a field name, a time stamp, and a field value of the input data as a value item, when the step (b) is successful.

또한, 상술한 과제를 해결하기 위한 본 발명의 키-밸류 구조를 가지는 데이터베이스에서 데이터를 삭제하는 방법은, 데이터의 필드명 및 필드값의 조합을 키로 가지고 상기 데이터의 식별값 및 타임스탬프의 조합을 밸류 항목으로 가지는 역색인 데이터, 및 상기 데이터의 식별값을 키로 가지고 상기 데이터의 필드명, 타임스탬프 및 필드값의 조합을 밸류 항목으로 가지는 순방향 색인 데이터를 저장하고 있는, 키-밸류 구조를 가지는 데이터베이스에서 데이터를 삭제하는 방법으로서, (a) 삭제 대상 데이터의 식별값 및 필드명을 입력받는 단계, 및 (b) 상기 삭제 대상 데이터의 식별값를 키로 가지는 순방향 색인 데이터에 대하여, 상기 삭제 대상 데이터의 필드명, 타임스탬프 및 삭제 대상 데이터임을 나타내는 필드값의 조합을 밸류 항목으로 추가하는 단계를 포함한다.According to another aspect of the present invention, there is provided a method of deleting data in a database having a key-value structure, the method comprising: storing a combination of an identification value and a time stamp of the data, Value structure having a key-value structure in which, as a value item, inverse index data possessed as a value item and a combination of a field name, a time stamp, and a field value of the data with the identification value of the data as a key are stored. The method comprising the steps of: (a) receiving an identification value and a field name of data to be deleted; and (b) inputting, to the forward index data having the identification value of the data to be deleted as a key, A combination of a field name, a time stamp, and a field value indicating that the data is to be deleted is added as a value item .

또한, 상술한 과제를 해결하기 위한 본 발명의 키-밸류 구조를 가지는 데이터베이스에서 데이터를 가비지 컬렉션하는 방법은, 데이터의 필드명 및 필드값의 조합을 키로 가지고 상기 데이터의 식별값 및 타임스탬프의 조합을 밸류 항목으로 가지는 역색인 데이터, 및 상기 데이터의 식별값을 키로 가지고 상기 데이터의 필드명, 타임스탬프 및 필드값의 조합을 밸류 항목으로 가지는 순방향 색인 데이터를 저장하고 있는, 키-밸류 구조를 가지는 데이터베이스에서 데이터를 가비지 컬렉션하는 방법으로서, (a) 상기 데이터베이스에서의 순방향 색인 데이터가 동일한 필드명을 가지는 2 이상의 밸류 항목을 가지는 경우, 상기 2 이상의 밸류 항목 중 최신의 타임스탬프를 가지지 않는 가비지 밸류 항목의 필드값 및 필드명의 조합을 키로 가지는 역색인 데이터를 상기 데이터베이스에서 검색하는 단계, (b) 상기 검색된 역색인 데이터에서 상기 순방향 색인 데이터의 키를 식별값으로 가지는 밸류 항목을 삭제하는 단계, 및 (c) 상기 순방향 색인 데이터에서 상기 가비지 밸류 항목을 삭제하는 단계를 포함한다.According to another aspect of the present invention, there is provided a method for garbage collection of data in a database having a key-value structure, comprising the steps of: Value structure having a value field and a combination of a field name, a time stamp, and a field value of the data with the identification value of the data as a key, and a forward key index A method for garbage collection of data in a database, the method comprising the steps of: (a) if the forward index data in the database has two or more value items having the same field name, a garbage value item having no latest timestamp among the two or more value items Of a field value and a combination of field names as keys (B) deleting a value item having a key of the forward index data as an identification value in the retrieved inverse index data; and (c) deleting the value item of the forward index data from the forward index data .

본 발명에 따르면, 순방향 색인과 역색인을 동시에 저장하여 데이터의 검색 속도를 향상시키면서, 동시에, 데이터의 검색, 입력, 삭제시에 순방향 색인과 역색인의 비동기에 따른 오류의 발생을 방지할 수 있는 효과가 있다.According to the present invention, it is possible to improve the retrieval speed of data by simultaneously storing the forward index and the reverse index, and at the same time to prevent the occurrence of errors due to the asynchronization of the forward index and the reverse index at the time of retrieving, It is effective.

도 1은 종래의 키-밸류 구조를 가지는 데이터의 예를 나타낸다.
도 2는 본 발명의 실시예에 따른 순방향 색인 데이터의 예를 나타낸다.
도 3은 본 발명의 실시예에 따른 역색인 데이터의 예를 나타낸다.
도 4는 본 발명의 실시예에 따른 키-밸류 구조를 가지는 데이터베이스에서 데이터를 입력, 삭제, 검색 및 가비지 컬렉션하는 방법이 수행되는 시스템의 개략적인 구성을 나타내는 블록도이다.
도 5는 본 발명의 실시예에 따른 키-밸류 구조를 가지는 데이터베이스에서 데이터를 입력하는 방법을 나타내는 흐름도이다.
도 6 내지 도 11은 본 발명의 실시예에 따른 데이터의 입력 과정의 예를 나타낸다.
도 12은 본 발명의 실시예에 따른 키-밸류 구조를 가지는 데이터베이스에서 데이터를 삭제하는 방법을 나타내는 흐름도이다.
도 13은 본 발명의 실시예에 따른 데이터의 삭제 과정의 예를 나타낸다.
도 14는 본 발명의 실시예에 따른 키-밸류 구조를 가지는 데이터베이스에서 데이터를 검색하는 방법을 나타내는 흐름도이다.
도 15a 내지 도 17은 본 발명의 실시예에 따른 데이터의 검색 과정의 예를 나타낸다.
도 18는 본 발명의 실시예에 따른 키-밸류 구조를 가지는 데이터베이스에서 데이터를 가비지 컬렉션하는 방법을 나타내는 흐름도이다
도 19은 본 발명의 실시예에 따른 가비지 컬렉션하는 과정의 예를 나타낸다.
1 shows an example of data having a conventional key-value structure.
2 shows an example of forward index data according to an embodiment of the present invention.
FIG. 3 shows an example of inverse index data according to an embodiment of the present invention.
4 is a block diagram showing a schematic configuration of a system in which a method of inputting, deleting, searching, and garbage collecting data in a database having a key-value structure according to an embodiment of the present invention is performed.
5 is a flowchart illustrating a method of inputting data in a database having a key-value structure according to an embodiment of the present invention.
6 to 11 show an example of a data input process according to an embodiment of the present invention.
12 is a flowchart illustrating a method of deleting data in a database having a key-value structure according to an embodiment of the present invention.
13 shows an example of a process of deleting data according to an embodiment of the present invention.
FIG. 14 is a flowchart illustrating a method for searching data in a database having a key-value structure according to an embodiment of the present invention.
15A to 17 illustrate an example of a data retrieval process according to an embodiment of the present invention.
18 is a flowchart illustrating a method of garbage collection of data in a database having a key-value structure according to an embodiment of the present invention
FIG. 19 shows an example of a garbage collection process according to an embodiment of the present invention.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.BRIEF DESCRIPTION OF THE DRAWINGS The advantages and features of the present invention, and the manner of achieving them, will be apparent from and elucidated with reference to the embodiments described hereinafter in conjunction with the accompanying drawings. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. To fully disclose the scope of the invention to those skilled in the art, and the invention is only defined by the scope of the claims. Like reference numerals refer to like elements throughout the specification.

이하, 도면을 참조하여 본 발명의 실시예에 따른 키-밸류 구조를 가지는 데이터베이스에서 데이터를 입력, 삭제, 검색 및 가비지 컬렉션하는 방법에 대하여 설명한다.Hereinafter, a method for inputting, deleting, searching, and garbage-collecting data in a database having a key-value structure according to an embodiment of the present invention will be described with reference to the drawings.

<데이터베이스의 구성><Database Configuration>

본 발명에서 사용되는 데이터베이스는 키-밸류 구조를 가지는 데이터베이스이다. 바람직하게는 방대한 양의 데이터를 관리하기 용이하고 확장성이 좋은 NoSQL 데이터베이스일 수 있다. 키-밸류 구조의 데이터베이스의 각각의 데이터는 계층적인 키-밸류 구조를 가질 수 있다. 즉, 하나의 키에 대응하는 하나의 밸류는 키-밸류 구조를 가지는 하나 이상의 밸류 항목으로 구성될 수 있다.The database used in the present invention is a database having a key-value structure. Preferably, it can be a NoSQL database that is easy to manage and scalable with a vast amount of data. Each piece of data in a database of key-value structures can have a hierarchical key-value structure. That is, one value corresponding to one key may be composed of one or more value items having a key-value structure.

도 2(a)는, 본 발명의 데이터베이스에서 순방향 색인(Forward Index)의 예시적인 스키마를 나타내고, 도 2(b)는 도 2(a)의 스키마를 가지는 예시적인 순방향 색인 데이터를 나타낸다.2 (a) shows an exemplary schema of a forward index in the database of the present invention, and Fig. 2 (b) shows an exemplary forward index data having a schema of Fig. 2 (a).

도 2(a)를 참조하면, 본 발명의 데이터베이스에서 하나의 데이터 단위로 사용되는 도큐먼트는 하나의 도큐먼트 식별값을 키로 가지고, 하나 이상의 밸류 항목의 집합을 하나의 밸류로 가진다. 각 밸류 항목은 키-밸류 구조를 가지며, 도 2(a)에 도시된 예에서, 필드명과 타임스탬프의 조합이 각 밸류 항목의 키가 되고, 필드값이 각 밸류 항목의 밸류가 된다. 여기에서, 타임스탬프는 데이터가 입력된 때를 나타내는 값이고, 보다 구체적으로는, 밸류 항목, 즉, 필드명과 필드값이 입력된 때를 나타내는 값이다.Referring to FIG. 2 (a), a document used as a unit of data in the database of the present invention has one document identification value as a key and one or more sets of value items as one value. Each value item has a key-value structure. In the example shown in Fig. 2 (a), the combination of the field name and the time stamp becomes the key of each value item, and the field value becomes the value of each value item. Here, the time stamp is a value indicating when data is input, and more specifically, it is a value indicating when a value item, that is, a field name and a field value, is input.

키-밸류의 데이터베이스는 키에 의존적이기 때문에, 동일 계층 내에서 동일한 키를 가지는 2 이상의 데이터가 존재할 수 없다. 예를 들어, 도 2의 '<Document ID A>'의 밸류 계층에서, '<Field Name A>'를 키로 가지는 2 이상의 밸류 항목이 존재할 수 없다. 그러나, 데이터의 입력이 동시다발적으로 발생하는 빅데이터에 있어서, 동일한 키를 가지는 데이터가 발생할 가능성이 있다.Since the key-value database is key-dependent, there can not be more than one data having the same key in the same layer. For example, in the value layer of '<Document ID A>' in FIG. 2, there can not be two or more value items having '<Field Name A>' as a key. However, there is a possibility that data having the same key may occur in the big data in which data input occurs simultaneously.

예컨대, 도 2(b)에 도시된 예와 같이, 사원번호 '101'의 도큐먼트에 대하여, 'ts1'의 시간에 '이름 : 둘리'라는 필드 데이터가 입력되었고, 'ts2'의 시간에 '이름 : 홍길동'이라는 필드 데이터가 입력되었다고 가정하자. 만일, 각 밸류 항목의 키가 필드명으로만 이루어진다면, 사원번호 '101'의 도큐먼트에 대하여 '이름'이라는 키를 가지는 밸류 항목이 2 이상 존재할 수 없다. 그러나, 도 2(b)의 예에서는, 각 밸류 항목이 필드명과 타임스탬프의 조합을 키로 가지기 때문에, 사원번호 '101'의 도큐먼트에 대하여 '이름 : 둘리'라는 필드 데이터와 '이름 : 홍길동'이라는 필드 데이터가 동시에 존재할 수 있게 된다.For example, as in the example shown in FIG. 2 (b), the field data of "name: doody" is input to the document of the employee number "101" at the time of "ts1" : &Lt; / RTI &gt; &lt; RTI ID = 0.0 &gt; If the key of each value item is made up of the field name only, there can not be two or more value items having a key of 'name' for the document of the employee number '101'. However, in the example of FIG. 2 (b), since each value item has a combination of a field name and a time stamp, the field data of 'Name: Doodle' and the name of ' Field data can be present at the same time.

도 3(a)는 도 2(a)의 순방향 색인를 반전시킨 역색인(Inverted Index)의 예시적인 스키마를 나타내고, 도 3(b)는 도 2(b)의 순방향 색인 데이터에 대한 역색인 데이터를 나타낸다.3 (a) shows an exemplary schema of an inverted index obtained by inverting the forward index in FIG. 2 (a), and FIG. 3 (b) shows an inverse index data for the forward index data in FIG. 2 .

역색인에서는, 순방향 색인의 밸류 항목이 되었던 필드명 및 필드값의 조합이 키로 되고, 순방향 색인의 키가 되었던 도큐먼트 식별값이 밸류 항목이 된다. 보다 구체적으로는, 밸류 항목은 도큐먼트 식별값 및 타임스탬프의 조합이 밸류 항목의 키가 된다.In the inverse index, the combination of the field name and the field value, which became the value items of the forward index, is the key, and the document identification value that became the key of the forward index becomes the value item. More specifically, the value item has a combination of the document identification value and the time stamp as the key of the value item.

도 2(b)에 예시된 순방향 색인 데이터는 순방향 색인 데이터베이스에, 도 3(b)에 예시된 역색인 데이터는 역색인 데이터베이스에 서로 분리되어 저장될 수도 있고, 순방향 색인 데이터와 역색인 데이터가 동일한 데이터베이스에 저장될 수도 있다. The forward index data illustrated in FIG. 2B may be stored in the forward index database, the reverse index data illustrated in FIG. 3B may be stored separately from the reverse index database, and the forward index data and the reverse index data may be stored in the same It may also be stored in a database.

<시스템의 구성><System Configuration>

도 4는 본 발명의 실시예에 따른 키-밸류 구조를 가지는 데이터베이스에서 데이터를 입력, 삭제, 검색 및 가비지 컬렉션하는 방법이 수행되는 시스템의 개략적인 구성을 나타내는 블록도이다.4 is a block diagram showing a schematic configuration of a system in which a method of inputting, deleting, searching, and garbage collecting data in a database having a key-value structure according to an embodiment of the present invention is performed.

시스템(100)은 데이터 입력부(110), 데이터 검색부(120), 가비지 컬렉션부(130) 및 데이터베이스(140)를 포함한다. 시스템(100)은 네트워크를 통하여 사용자의 단말기(200)와 연결되어, 입력 데이터, 삭제 대상 데이터 또는 검색 대상 데이터를 입력받을 수 있다. 또한, 시스템(100)은 네트워크 상의 임의의 단말기 또는 서버(300)와 연결되어 크롤러(crawler) 등에 의해 입력 데이터를 입력받을 수 있다.The system 100 includes a data input unit 110, a data search unit 120, a garbage collection unit 130, and a database 140. The system 100 is connected to the user terminal 200 through a network and can receive input data, deletion target data, or search target data. In addition, the system 100 may be connected to any terminal or server 300 on the network and receive input data by a crawler or the like.

본 발명의 실시예에 따른 키-밸류 구조를 가지는 데이터베이스에서 데이터를 입력 및 삭제하는 방법은 기본적으로 데이터의 추가 연산으로 수행된다. 따라서, 데이터의 입력 및 삭제가 각각 별도의 모듈 또는 엔진에 의하여 수행될 필요가 없고, 이들 모두가 데이터 입력부(110)에 의하여 수행될 수 있다.A method for inputting and deleting data in a database having a key-value structure according to an embodiment of the present invention is basically performed by an additional operation of data. Therefore, data input and deletion need not be performed by separate modules or engines, respectively, and all of them can be performed by the data input unit 110. [

데이터 입력부(110), 데이터 검색부(120), 가비지 컬렉션부(130) 및 데이터베이스는 하나의 물리적 장치로 구성될 수도 있고, 복수의 장치의 결합으로 구성될 수 있다. 특히, 데이터베이스(140)는 복수의 장치가 네트워크를 통해 연결된 분산 데이터베이스로 구성될 수도 있다.The data input unit 110, the data retrieval unit 120, the garbage collection unit 130, and the database may be configured as one physical device or a combination of a plurality of devices. In particular, the database 140 may comprise a distributed database in which a plurality of devices are connected via a network.

또한, 본 발명의 실시예에 따른 키-밸류 구조를 가지는 데이터베이스에서 데이터를 입력, 삭제, 검색 및 가비지 컬렉션하는 방법은 시스템의 하드 디스크 등의 기록 매체에 수록된 컴퓨터 프로그램에 의해 수행될 수 있다.Further, a method for inputting, deleting, searching, and garbage collecting data in a database having a key-value structure according to an embodiment of the present invention can be performed by a computer program stored in a recording medium such as a hard disk of the system.

<데이터의 추가 방법><Method of adding data>

도 5는 본 발명의 실시예에 따른 키-밸류 구조를 가지는 데이터베이스에서 데이터를 입력하는 방법을 나타내는 흐름도이고, 도 6은 본 발명의 실시예에 따른 데이터의 입력 과정의 예를 나타낸다. 도 6은 도 2(b) 및 도 3(b)에 예시된 순방향 색인 데이터 및 역색인 데이터를 도식적으로 나타내고 있다.FIG. 5 is a flowchart illustrating a method of inputting data in a database having a key-value structure according to an embodiment of the present invention, and FIG. 6 illustrates an example of a data input process according to an embodiment of the present invention. Fig. 6 schematically shows the forward index data and the backward index data illustrated in Figs. 2 (b) and 3 (b).

먼저, 데이터 입력부는 입력 데이터의 식별값, 필드명 및 필드값을 입력받는다(S110). 입력 데이터의 식별값, 필드명 및 필드값은 사용자에 의하여 입력될 수도 있고, 크롤러(crawler) 등에 의해 네트워크에 접속된 임의의 단말기 또는 서버에서 수집되어 입력될 수도 있다. 도 6의 예에서는, 도 2(b) 및 도 3(b)에 예시된 순방향 색인 데이터 및 역색인 데이터를 저장하고 있는 데이터베이스에 사원번호(식별값)가 '103', 이름(필드명)이 '도우너'(필드값), 나이(필드명)가 '28'(필드값)인 입력 데이터가 입력된다.First, the data input unit receives the identification value, the field name, and the field value of the input data (S110). The identification value, the field name, and the field value of the input data may be input by the user, or may be collected and input from any terminal or server connected to the network by a crawler or the like. In the example of Fig. 6, the database storing the forward index data and the backward index data illustrated in Fig. 2 (b) and Fig. 3 (b) Input data having a 'donor' (field value) and an age (field name) '28' (field value) are input.

이때, 입력 데이터를 입력하는 때를 나타내는 타임스탬프는 '<ts 4>'라고 가정한다. 타임스탬프는, 사용자의 입력 또는 크롤러의 입력이 데이터 입력부에 도달했을 때의 날짜 및 시간에 따라 생성될 수도 있고, 사용자 단말기 또는 크롤러에서 데이터 입력부로 입력을 전송했을 때의 날짜 및 시간에 따라 생성될 수도 있다.At this time, it is assumed that the time stamp indicating the time of inputting the input data is '<ts 4>'. The time stamp may be generated according to the date and time when the input of the user or the crawler reaches the data input unit or may be generated according to the date and time when the input is transmitted from the user terminal or the crawler to the data input unit It is possible.

데이터 입력부는 입력 데이터의 필드명 및 필드값의 조합을 키로 가지고, 입력 데이터의 식별값 및 타임스탬프의 조합을 밸류 항목으로 가지는 역색인 데이터를 데이터베이스에 추가한다(S120). 예를 들어, 도 6에서는, "이름=도우너"를 키로 가지고, 사원번호 '103'과 타임스탬프 '<ts 4>'의 조합을 밸류로 가지는 역색인 데이터 및 "나이=28"을 키로 가지고, 사원번호 '103'과 타임스탬프 '<ts 4>'의 조합을 밸류로 가지는 역색인 데이터가 데이터베이스에 추가된다(S120).The data input unit adds the inverse index data having the combination of the field name and field value of the input data as a key and the combination of the identification value and the time stamp of the input data as the value items to the database (S120). For example, in FIG. 6, with the key having the name = donor as the key, the inverse index data having the combination of the employee number '103' and the time stamp '<ts4> Inverse index data having a combination of the employee number '103' and the time stamp '<ts4>' as a value is added to the database (S120).

역색인 데이터의 추가가 성공하면, 데이터 입력부는 입력 데이터의 식별값을 키로 가지고, 입력 데이터의 필드명, 타임스탬프 및 필드값의 조합을 밸류 항목으로 가지는 순방향 색인 데이터를 데이터베이스에 추가한다(S130). 예를 들어, 도 6a에서는, 사원번호 '103'을 키로 가지고, '이름', '<ts 4>'와 '도우너'의 조합 및 '나이', '<ts 4>'와 '28'의 조합을 각각 밸류 항목으로 가지는 순방향 색인 데이터가 데이터베이스에 추가된다(S130).If the addition of the inverse index data is successful, the data input unit adds the forward index data having the identification value of the input data as a key and having a combination of the field name, the time stamp, and the field value of the input data as the value items to the database (S130) . For example, in FIG. 6A, a combination of 'Name', '<ts 4>' and 'Donner' and 'Age', '<ts 4>' and '28' Are added to the database (S130).

역색인 데이터의 추가가 실패한 경우, 데이터 입력부는 순방향 색인 데이터를 데이터베이스에 추가하지 않고, 데이터 추가 실패 정보를 반환한다(S140). 또한, 순방향 색인 데이터의 추가가 실패한 경우에도, 데이터 추가 실패 정보를 반환한다(S140). 데이터 입력부는 역색인 데이터의 추가와 순방향 색인 데이터의 추가가 모두 성공한 때에만, 데이터 추가 성공 정보를 반환한다(S150).If the addition of the inverse index data fails, the data input unit returns the data addition failure information without adding the forward index data to the database (S140). In addition, even if the addition of the forward index data fails, the data addition failure information is returned (S140). The data input unit returns data addition success information only when both the addition of the inverse index data and the addition of the forward index data are successful (S150).

도 7은 본 발명의 실시예에 따른 데이터의 입력 과정의 다른 예를 나타낸다.FIG. 7 shows another example of the data input process according to the embodiment of the present invention.

입력 데이터의 필드명 및 필드값의 조합을 키로 가지는 역색인 데이터를 데이터베이스에 추가함에 있어서, 입력 데이터의 필드명 및 필드값의 조합을 키로 가지는 역색인 데이터가 데이터베이스에 기존재하는 경우에는, 데이터 입력부는 입력 데이터의 식별값 및 타임스탬프를 기존재하는 역색인 데이터의 밸류 항목으로 추가한다. 예를 들어, 도 7에는 사원번호가 '103', 이름이 '도우너', 나이가 '26'인 입력 데이터가 입력된다. 이때, "나이=26"을 키로 가지는 역색인 데이터가 데이터베이스에 기존재하므로, 데이터 입력부는 사원번호 '103'과 타임스탬프 '<ts 4>'의 조합을 "나이=26"를 키로 가지는 역색인 데이터의 밸류 항목으로 추가한다.When inverse index data having a combination of a field name and a field value of input data as a key is added to a database and there is inverse index data having a combination of a field name and a field value of the input data as a key, The department adds the identification value and the timestamp of the input data as the value items of the existing inverse index data. For example, in FIG. 7, input data having an employee number of '103', a name of 'donor', and an age of '26' is input. At this time, since the inverse index data having the key of "age = 26" is present in the database, the data input unit sets the combination of the employee number '103' and the time stamp '<ts4> We add it as a value item of data.

역색인 데이터의 추가가 성공하면, 데이터 입력부는 입력 데이터의 식별값을 키로 가지고, 입력 데이터의 필드명, 타임스탬프 및 필드값의 조합을 밸류 항목으로 가지는 순방향 색인 데이터를 데이터베이스에 추가한다. 이는 도 7의 예에서 설명한 바와 동일한다.If the addition of the inverse index data is successful, the data input unit adds forward index data having the identification value of the input data as a key and having a combination of the field name, the time stamp, and the field value of the input data as the value items. This is the same as described in the example of Fig.

도 8은 본 발명의 실시예에 따른 데이터의 입력 과정의 또 다른 예를 나타낸다. 도 8에서는, 사원번호가 '102', 성별(필드명)이 '여성'(필드값)인 입력 데이터가 입력된다. FIG. 8 shows another example of the data input process according to the embodiment of the present invention. 8, input data in which the employee number is "102" and the sex (field name) is "female" (field value) is input.

도 6 및 도 7의 예에서 설명한 바와 마찬가지로, 데이터 입력부는 입력 데이터의 필드명 및 필드값의 조합을 키로 가지고, 입력 데이터의 식별값 및 타임스탬프의 조합을 밸류 항목으로 가지는 역색인 데이터를 데이터베이스에 추가한다. 즉, 도 8의 예에서, "성별=여성"을 키로 가지고, 사원번호 '102'과 타임스탬프 '<ts 4>'의 조합을 밸류로 가지는 역색인 데이터가 데이터베이스에 추가된다.6 and 7, the data input unit stores the inverse index data having the combination of the field name and the field value of the input data as keys and the combination of the identification value and the time stamp of the input data as the value items, Add. That is, in the example of Fig. 8, the inverse index data having the combination of the employee number '102' and the time stamp '<ts4>' as a value with "gender = female" as the key is added to the database.

이후, 데이터 입력부는 입력 데이터의 식별값을 키로 가지는 순방향 색인 데이터를 데이터베이스에 추가한다. 이때, 입력 데이터의 식별값을 키로 가지는 순방향 색인 데이터가 데이터베이스에 기존재하는 경우, 입력 데이터의 필드명, 타임스탬프 및 필드값의 조합을 기존재하는 순방향 색인 데이터의 밸류 항목으로 추가한다. 즉, 도 8의 예에서, 사원번호 '102'를 키로 가지는 순방향 색인 데이터가 데이터베이스에 기존재하기 때문에, '성별', '<ts 4>'와 '여성'의 조합을 기존재하는 순방향 데이터의 밸류 항목으로 추가한다.Then, the data input unit adds forward index data having the identification value of the input data as a key to the database. At this time, when forward index data having an identification value of input data as a key exists in the database, a combination of a field name, a time stamp, and a field value of the input data is added as a value item of the existing forward index data. That is, in the example of FIG. 8, since the forward index data having the employee number '102' as a key exists in the database, the combination of 'sex', 'ts 4' Add it as a value item.

도 9는 동일한 내용을 가지는 2 이상의 입력 데이터가 입력되는 예를 나타낸다. 도 9의 예에서는, 사원번호가 '103', 이름이 '도우너', 나이가 '28'인 제 1 입력 데이터가 '<ts 4>'의 타임스탬프를 가지고 입력되고, 이와 동일한 내용의 제 2 입력 데이터가 '<ts 4>' 보다 최신의 타임스탬프인 '<ts 5>'를 가지고 입력된다. 즉, 동일한 식별값, 필드명, 필드값을 가지는 제 1 입력 데이터와 제 2 입력 데이터가 서로 다른 타임스탬프를 가지고 입력될 수 있다. 이와 같이 동일한 데이터가 중복하여 입력되는 것은, 다수의 크롤러가 동일한 데이터를 크롤하여 입력하는 경우에 발생할 수 있다.9 shows an example in which two or more pieces of input data having the same contents are input. In the example of FIG. 9, the first input data having the employee number '103', the name 'doner', and the age '28' is inputted with the time stamp of '<ts 4>', The input data is entered with '<ts 5>' which is the latest time stamp than '<ts 4>'. That is, the first input data and the second input data having the same identification value, field name, and field value can be input with different time stamps. Such overlapping input of the same data may occur when a plurality of crawlers crawl and input the same data.

이때, 크롤러와 데이터 입력부 사이 또는 데이터 입력부와 데이터베이스 사이의 네트워크 문제 등에 의하여, 제 2 입력 데이터에 대한 역색인 데이터가 제 1 입력 데이터에 대한 역색인 데이터보다 먼저 입력될 수 있다. 즉, 제 1 입력 데이터에 대한 역색인 데이터가 입력될 때, 데이터베이스에 제 1 입력 데이터의 필드값 및 필드명의 조합을 키로 가지고, 제 1 입력 데이터의 식별값에 대응되는 밸류 항목을 가지는 역색인 데이터가 데이터베이스에 기존재할 수 있다.At this time, the reverse index data for the second input data may be input before the reverse index data for the first input data due to a network problem between the crawler and the data input unit or between the data input unit and the database. That is, when the inverse index data for the first input data is input, the database stores the inverse index data having a value item corresponding to the identification value of the first input data, May already exist in the database.

이 경우에는, 제 1 입력 데이터의 타임스탬프가 기존재하는 역색인 데이터의 밸류 항목의 타임스탬프보다 최신의 것인 경우에 한하여, 데이터 입력부는 제 1 입력 데이터의 식별값 및 타임스탬프의 조합을 역색인 데이터의 밸류 항목으로 추가한다.In this case, only when the time stamp of the first input data is newer than the time stamp of the value item of the existing inverse index data, the data input section sets the combination of the identification value of the first input data and the time stamp It is added as a value item of index data.

만일, 제 1 입력 데이터의 타임스탬프가 기존재하는 역색인 데이터의 밸류 항목의 타임스탬프보다 최신의 것이 아닌 경우에는, 데이터 입력부는 제 1 입력 데이터의 식별값 및 타임스탬프의 조합을 역색인 데이터의 밸류 항목으로 추가하지 않고, 제 1 입력 데이터에 대한 역색인 데이터 추가 실패 정보를 반환한다. 즉, 도 6d의 예에서, ③의 과정은 수행되지 않는다. 또한, 이 경우, 제 1 입력 데이터에 대한 역색인 데이터의 추가가 실패하였으므로, 제 1 입력 데이터에 대한 순방향 색인 데이터의 추가도 일어나지 않는다.If the time stamp of the first input data is not more recent than the time stamp of the value item of the existing inverse index data, the data input unit stores the combination of the identification value of the first input data and the time stamp as the It returns the inverse index data addition failure information for the first input data without adding it as a value item. That is, in the example of FIG. 6D, the process of (3) is not performed. Also, in this case, since addition of the inverse index data to the first input data has failed, addition of the forward index data to the first input data does not occur.

도 10은 동일한 식별값을 가지는 2 이상의 입력 데이터가 입력되는 예를 나타낸다. 도 10의 예에서는, 사원번호가 '103', 이름이 '도우너', 나이가 '28'인 제 1 입력 데이터가 '<ts 4>'의 타임스탬프를 가지고 입력되고, 사원번호가 '103', 이름이 '고길동', 나이가 '30'인 제 2 입력 데이터가 '<ts 4>' 보다 최신의 타임스탬프 '<ts 5>'를 가지고 입력된다.FIG. 10 shows an example in which two or more pieces of input data having the same identification value are input. In the example of Fig. 10, the first input data having the employee number of '103', the name of 'doner' and the age of '28' is input with the time stamp of '<ts4>', , The second input data having the name 'Gogil-dong' and the age '30' is input with the latest time stamp '<ts 5>' than '<ts 4>'.

이때, 데이터 입력부와 데이터베이스 사이의 네트워크 문제 등에 의하여, 제 2 입력 데이터에 대한 순방향 색인 데이터가 제 1 입력 데이터에 대한 순방향 색인 데이터보다 먼저 입력될 수 있다. 즉, 제 2 입력 데이터에 비하여 이전의 타임스탬프를 가지는 제 1 입력 데이터에 대한 순방향 색인 데이터가 입력될 때, 데이터베이스에 제 1 입력 데이터의 식별값과 동일한 식별값을 가지고 제 1 입력 데이터의 필드명 및 필드값의 조합에 대응되는 밸류 항목을 가지는 순방향 색인 데이터가 데이터베이스에 기존재할 수 있다.At this time, the forward index data for the second input data may be input before the forward index data for the first input data due to a network problem between the data input unit and the database. That is, when the forward index data for the first input data having the previous time stamp is inputted to the database with the same identification value as the identification value of the first input data, the field name of the first input data And forward index data having a value item corresponding to a combination of field values may exist in the database.

이 경우에는, 제 1 입력 데이터의 타임스탬프가 기존재하는 순방향 색인 데이터의 대응되는 밸류 항목의 타임스탬프보다 최신의 것인 경우에 한하여, 제 1 입력 데이터의 필드명, 타임스탬프 및 필드값의 조합을 기존재하는 순방향 색인 데이터의 밸류 항목으로 추가한다.In this case, only when the time stamp of the first input data is newer than the time stamp of the corresponding value item of the existing forward index data, the combination of the field name, the time stamp and the field value of the first input data As a value item of the existing forward index data.

만일, 제 1 입력 데이터의 타임스탬프가 기존재하는 순방향 색인 데이터의 대응되는 밸류 항목의 타임스탬프보다 최신의 것이 아닌 경우에는, 데이터 입력부는 제 1 입력 데이터의 필드명, 타임스탬프 및 필드값의 조합을 기존재하는 순방향 색인 데이터의 밸류 항목으로 추가하지 않고, 제 1 입력 데이터에 대한 순방향 색인 데이터 추가 실패 정보를 반환한다. 즉, 도 10의 예에서 ④의 과정은 수행되지 않는다.If the time stamp of the first input data is not more recent than the timestamp of the corresponding value item of the existing forward index data, the data input unit stores the combination of the field name, time stamp and field value of the first input data The forward index data addition failure information for the first input data is not added as the value item of the existing forward index data. That is, in the example of FIG. 10, the process of (4) is not performed.

<데이터의 갱신><Update of data>

도 11은 본 발명의 실시예에 따른 데이터의 갱신 과정의 예를 나타낸다. 도 11의 예에서, 사원번호가 '102'인 사원의 이름 및 나이가 각각 '심청' 및 '26'에서, '고길동' 및 '30'으로 갱신된다.11 shows an example of the data update process according to the embodiment of the present invention. In the example of Fig. 11, the names and the ages of the employees whose employee number is '102' are updated to 'Gimchi-dong' and '30' respectively from 'Shim-chung' and '26'.

본 발명에서 데이터의 갱신은 데이터의 추가와 동일한 프로세스로 진행된다. 즉, 데이터 입력부는 입력 데이터의 필드명 및 필드값의 조합을 키로 가지고, 입력 데이터의 식별값 및 타임스탬프의 조합을 밸류 항목으로 가지는 역색인 데이터를 데이터베이스에 추가하고(S120), 역색인 데이터의 추가가 성공하면, 데이터 입력부는 입력 데이터의 식별값을 키로 가지고, 입력 데이터의 필드명, 타임스탬프 및 필드값의 조합을 밸류 항목으로 가지는 순방향 색인 데이터를 데이터베이스에 추가한다(S130).In the present invention, updating of data proceeds in the same process as addition of data. That is, the data input unit adds, to the database, the inverse index data having the combination of the field name and the field value of the input data as a key and the combination of the identification value and the time stamp of the input data as the value item (S120) If the addition is successful, the data input unit adds the forward index data having the identification value of the input data as a key and having a combination of the field name, the time stamp, and the field value of the input data as the value item (S130).

도 11의 예에서는, "이름=고길동"를 키로 가지고, 사원번호 '102'과 타임스탬프 '<ts 4>'의 조합을 밸류로 가지는 역색인 데이터 및 "나이=30"을 키로 가지고, 사원번호 '102'과 타임스탬프 '<ts 4>'의 조합을 밸류로 가지는 역색인 데이터가 데이터베이스에 추가된다(S120). 이후, 사원번호 '102'를 키로 가지고, '이름', '<ts 4>'와 '고길동'의 조합 및 '나이', '<ts 4>'와 '30'의 조합을 각각 밸류 항목으로 가지는 순방향 색인 데이터가 데이터베이스에 추가된다(S130).In the example of Fig. 11, with the key having the name = Gogil-dong as the key, the inverse index data having the combination of the employee number '102' and the time stamp '<ts4> Inverse index data having a value of '102' and a combination of a time stamp '<ts4>' is added to the database (S120). Then, having the employee number '102' as the key, and having the combination of 'name', 'ts 4>' and 'goddong' and the combination of 'age', 'ts 4' The forward index data is added to the database (S130).

즉, 역색인 데이터 및 순방향 색인 데이터 양쪽에 대하여, 최신의 타임스탬프를 가지는 밸류 항목을 추가하기만 함으로써 데이터의 갱신이 완료될 수 있다. 이때, 이전의 타임스탬프를 가지는 밸류 항목은 후술하는 검색 방법에 의하여 검색 결과에서 제외되므로, 실제로는 데이터의 추가가 이루어졌음에도, 사용자에게는 데이터가 갱신된 것으로 보여지게 된다. 또한, 이전의 타임스탬프를 가지는 밸류 항목은 후술하는 가비지 컬렉션에 의해 제거될 수 있다.That is, the data update can be completed only by adding the value item having the latest time stamp to both the inverse index data and the forward index data. At this time, since the value item having the previous time stamp is excluded from the search result by the later-described search method, the data is seen to be updated to the user even though the data is actually added. Also, a value item having a previous timestamp can be removed by garbage collection, which will be described later.

<데이터의 삭제 방법><Data deletion method>

도 12는 본 발명의 실시예에 따른 키-밸류 구조를 가지는 데이터베이스에서 데이터를 삭제하는 방법을 나타내는 흐름도이고, 도 13은 본 발명의 실시예에 따른 데이터의 삭제 과정의 예를 나타낸다. 도 13의 예에서, 사원번호가 '102'인 사원의 나이 필드가 삭제된다.FIG. 12 is a flowchart illustrating a method of deleting data in a database having a key-value structure according to an embodiment of the present invention, and FIG. 13 illustrates an example of a process of deleting data according to an embodiment of the present invention. In the example of FIG. 13, the age field of the employee whose employee number is '102' is deleted.

본 발명에서 데이터의 삭제는 데이터의 추가를 이용하여 진행된다. 데이터 입력부는 삭제 대상 데이터의 식별값 및 필드명을 입력받는다(S210). 이후, 데이터 입력부는 삭제 대상 데이터의 식별값를 키로 가지는 순방향 색인 데이터에 대하여, 삭제 대상 데이터의 필드명, 타임스탬프 및 삭제 대상 데이터임을 나타내는 필드값의 조합을 밸류 항목으로 추가한다(S220).In the present invention, deletion of data is performed using addition of data. The data input unit receives the identification value and the field name of the data to be deleted (S210). Then, the data input unit adds a combination of the field name of the deletion target data, the time stamp, and the field value indicating the deletion target data to the forward index data having the identification value of the deletion target data as a key (S220).

이때, 삭제 대상 데이터의 타임스탬프는 삭제 대상 데이터의 식별값 및 필드명이 데이터 입력부에 입력된 때의 날짜 및 시간을 나타내는 값이다. 또한, 삭제 대상 데이터임을 나타내는 필드값은 기설정된 값일 수 있고, 예를 들어, 널(null)일 수 있다.At this time, the time stamp of the deletion target data is a value indicating the identification value of the deletion target data and the date and time when the field name is input to the data input unit. In addition, the field value indicating the data to be deleted may be a predetermined value, and may be null, for example.

데이터 입력부는 S220 단계가 성공하면 데이터 삭제 성공 정보를 반환하고(S230), S220 단계가 실패하면 데이터 삭제 실패 정보를 반환한다(S240).If the step S220 is successful, the data input unit returns the data deletion success information (S230). If the step S220 fails, the data input unit returns the data deletion failure information (S240).

이와 같이, 순방향 색인 데이터에 삭제 대상 데이터의 필드명, 타임스탬프 및 기설정된 값을 가지는 밸류 항목을 추가하기만 함으로써 삭제 과정은 완료될 수 있다. 이때, 이전의 타임스탬프를 가지는 밸류 항목은 후술하는 검색 방법에 의하여 검색 결과에서 제외되므로, 실제로는 데이터의 추가가 이루어졌음에도, 사용자에게는 데이터가 삭제된 것으로 보여지게 된다. 또한, 데이터 입력부는, 삭제 대상 데이터의 식별값을 가비지 큐에 입력하여 둘 수 있고, 이전의 타임스탬프를 가지는 밸류 항목은 후술하는 가비지 컬렉션에 의해 제거될 수 있다.In this manner, the deletion process can be completed by merely adding a value item having a field name, a time stamp, and a preset value of deletion target data to the forward index data. At this time, the value item having the previous time stamp is excluded from the search result by the later-described search method. Therefore, even though the data is actually added, the data is shown to the user as deleted. In addition, the data input unit can input the identification value of the data to be deleted into the garbage queue, and the value item having the previous time stamp can be removed by the garbage collection described later.

또한, 위의 예에서, 삭제 대상 데이터의 식별값 및 필드명을 입력받는 것으로 설명하였으나, 본 발명의 다른 실시예에 따른 데이터의 삭제 방법에서는, 삭제 대상 데이터의 식별값만을 입력받도록 구성될 수도 있다. 이후, 삭제 대상 데이터의 식별값을 키로 가지는 순방향 색인 데이터의 밸류 항목에 포함된 모든 필드명에 대하여 삭제 대상 데이터임을 나타내는 필드값(예를 들어, null)을 가지는 밸류 항목을 추가할 수도 있다.In the above example, the identification value and the field name of the deletion target data are inputted. However, in the data deletion method according to another embodiment of the present invention, only the identification value of the deletion target data may be inputted . Thereafter, a value item having a field value (for example, null) indicating deletion target data may be added to all the field names included in the value items of the forward index data having the identification value of the deletion target data as a key.

<데이터의 검색 방법><Data Search Method>

도 14는 본 발명의 실시예에 따른 키-밸류 구조를 가지는 데이터베이스에서 데이터를 검색하는 방법을 나타내는 흐름도이고, 도 15a 내지 도 15b는 본 발명의 실시예에 따른 데이터의 검색 과정의 예를 나타낸다.FIG. 14 is a flowchart illustrating a method of retrieving data in a database having a key-value structure according to an embodiment of the present invention. FIGS. 15A to 15B illustrate examples of retrieving data according to an embodiment of the present invention.

먼저, 데이터 검색부는 검색 대상 데이터의 필드명 및 필드값을 입력받는다(S310). 도 15a의 예에서는, 검색 대상 데이터의 필드명으로 '나이', 필드값으로 '30'이 입력된다.First, the data search unit receives a field name and a field value of search target data (S310). In the example of FIG. 15A, 'Age' is entered as the field name of the search object data and '30' is entered as the field value.

데이터 검색부는 검색 대상 데이터의 필드명 및 필드값의 조합을 키로 가지는 역색인 데이터를 데이터베이스에서 검색하고(S320), 검색된 역색인 데이터의 밸류 항목을 추출한다(S330). 도 15a의 예에서는, 식별값 '101'과 타임스탬프 '<ts 1>'을 가지는 밸류 항목 및 식별값 '103'와 타임스탬프 '<ts 5>'를 가지는 밸류 항목이 추출된다.The data searching unit searches the database for the inverse index data having the combination of the field name and the field value of the search target data as a key (S320), and extracts the value item of the inverse index data (S330). In the example of FIG. 15A, the value item having the identification value '101' and the time stamp '<ts 1>' and the value item having the identification value '103' and the time stamp '<ts 5>' are extracted.

이후, 데이터 검색부는 추출된 밸류 항목에 포함된 식별값을 키로 가지는 순방향 색인 데이터를 상기 데이터베이스에서 검색하고(S340), 검색된 순방향 색인 데이터를 검색 결과로서 반환한다(S350). 도 15b의 예에서는, '101'을 키로 가지는 순방향 색인 데이터와 '103'을 키로 가지는 순방향 색인 데이터가 검색 결과가 된다.Then, the data searching unit searches the database for the forward index data having the identification value included in the extracted value item as the key (S340), and returns the forward index data as the search result (S350). In the example of FIG. 15B, the forward index data having the key '101' and the forward index data having the key '103' are the search results.

이때, 도 15b의 예에서 '101'을 키로 가지는 순방향 색인 데이터에는 검색 대상 데이터의 필드명인 '나이'를 가지는 밸류 항목이 2개 존재한다. "나이 <ts 1> : 30"과 "나이 <ts 2> : 26"이 그것들이다. 여기에서, "나이 <ts 1> : 30"은 "나이 <ts 2> : 26" 보다 이전의 타임스탬프를 가지므로, 갱신된 구 데이터임을 알 수 있다. 본 발명에서는 갱신된 구 데이터를 데이터베이스에서 즉시 삭제하지 않고 가비지 컬렉션을 이용하여 추후에 삭제하기 때문에, 데이터베이스에 구 데이터가 존재할 수 있다. 도 15a 내지 15b의 예에서, "나이=30"을 기준으로 검색하였으나, '101'을 키로 가지는 순방향 색인 데이터는 구 데이터에 의해 검색된 것이므로 검색 결과에서 제외되어야 한다.Here, in the example of FIG. 15B, there are two value items having 'age' as a field name of data to be searched in forward index data having '101' as a key. "Age <ts 1>: 30" and "Age <ts 2>: 26" are those. Here, "Age <ts 1>: 30" has a time stamp earlier than "Age <ts 2>: 26", so that it is known that it is updated old data. In the present invention, since the updated old data is deleted immediately after deletion using the garbage collection instead of immediately deleting the old data in the database, old data may exist in the database. In the example of FIGS. 15A to 15B, the forward index data having "101" as the key is searched based on "age = 30", but it should be excluded from the search result because it is searched by old data.

따라서, 데이터 검색부는 검색 대상 데이터의 필드명과 동일한 필드명를 가지는 검색된 순방향 색인 데이터의 밸류 항목 중 최신의 타임스탬프를 가지는 밸류 항목이 검색 대상 데이터의 필드값과 동일한 필드값을 가지는 경우에 한하여, 검색된 순방향 색인 데이터를 검색 결과로서 반환한다(S350).Therefore, only when the value item having the latest timestamp among the value items of the retrieved forward index data having the same field name as the field name of the retrieval object data has the same field value as the field value of the retrieval object data, The index data is returned as a search result (S350).

즉, '101'을 키로 가지는 순방향 색인 데이터는, '나이'를 필드명으로 가지는 밸류 항목 중에서 최신의 타임스탬프를 가지는 밸류 항목 "나이 <ts 2> : 26"의 필드값이 검색 대상 데이터의 필드값 '26'과 동일하지 않기 때문에 검색 결과에서 제외된다(S360). 따라서, '103'을 키로 가지는 순방향 색인 데이터만 검색 결과에 포함되게 된다(S350).That is, the forward index data having '101' as the key has the field value of the value item "age <ts 2>: 26" having the latest time stamp among the value items having the & Is not the same as the value '26' and is excluded from the search result (S360). Therefore, only the forward index data having '103' as a key is included in the search result (S350).

또한, 검색된 순방향 색인 데이터의 밸류 항목 중 검색 대상 데이터의 필드명과 동일한 필드명을 가지는 밸류 항목 중 최신의 타임스탬프를 가지는 밸류 항목이 상기 검색 대상 데이터의 필드값과 동일한 필드값을 가지지 않는 경우에는, 데이터 검색부는 추출된 역색인 데이터의 밸류 항목 중에서 검색 결과에서 제외된 순방향 데이터의 키를 식별값으로 가지는 밸류 항목을 삭제한다(S370). 즉, 도 9c의 예에서, 추출된 역색인 데이터의 밸류 항목 중 식별값 '101'과 타임스탬프 '<ts 1>'을 가지는 밸류 항목은 삭제되어야 할 구 데이터이므로, 역색인 데이터에서 식별값 '101'과 타임스탬프 '<ts 1>'을 가지는 밸류 항목이 삭제된다.If the value item having the latest time stamp among the value items having the same field name as the field name of the retrieval object data among the value items of the retrieved forward index data does not have the same field value as the field value of the retrieval object data, The data retrieval unit deletes the value item having the key of the forward data that is excluded from the search result among the value items of the extracted inverse index data as the identification value (S370). That is, in the example of FIG. 9C, since the value item having the identification value '101' and the time stamp '<ts 1>' among the value items of the extracted inverse index data is the old data to be deleted, 101 'and the time stamp' <ts 1> 'are deleted.

도 16a 내지 도 16b는 데이터를 검색하는 다른 예를 나타낸다. 도 16a의 예에서는, 검색 대상 데이터의 필드명으로 '나이', 필드값으로 '26'이 입력된다.16A to 16B show another example of retrieving data. In the example of Fig. 16A, 'Age' is entered as the field name of the search object data and '26' is entered as the field value.

데이터 검색부는 필드명과 필드값의 조합인 "나이=26"을 키로 가지는 역색인 데이터를 데이터베이스에서 검색하고, 검색된 역색인 데이터의 밸류 항목인 "101 <ts2>"와 "102 <ts3>"를 추출한다.The data search unit searches the database for the inverse index data having the key "Age = 26", which is a combination of the field name and the field value, and extracts the value items "101 <ts2>" and "102 <ts3>" of the retrieved inverse index data do.

이후, 데이터 검색부는 '101'을 키로 가지는 순방향 색인 데이터와 '102'를 키로 가지는 순방향 색인 데이터를 검색한다. 이때, 도 10b의 예에서 '101'을 키로 가지는 순방향 색인 데이터에는 '이름'을 필드명으로 가지는 밸류 항목과, '나이'를 필드명으로 가지는 밸류 항목이 2개씩 존재한다. 이와 같이, 동일한 필드명을 가지는 밸류 항목 중 타임스탬프가 최신의 것이 아닌 밸류 항목은 가비지 컬렉션에 의해 삭제되어야 할 밸류 항목이다. 따라서, 데이터 검색부는, 동일한 필드명을 가지는 밸류 항목 중 최신의 타임스탬프를 가지는 밸류 항목만을 검색 결과로서 반환한다. 즉, "이름 <ts 2> : 홍길동", "나이 <ts 2> : 26"의 밸류 항목만이 검색 결과에 포함되고, "이름 <ts 1> : 둘리", "나이 <ts 1> : 30"의 밸류 항목은 검색 결과에 포함되지 않는다.Then, the data search unit searches for forward index data having '101' as a key and forward index data having '102' as a key. In the example of FIG. 10B, the forward index data having '101' as a key includes two value items having a name as a field name and a value item having an age as a field name. Thus, a value item of a value item having the same field name that is not latest in time stamp is a value item to be deleted by garbage collection. Therefore, the data search unit returns only the value item having the latest time stamp among the value items having the same field name as the search result. Namely, only the value items of "Name <ts 2>: Hong Kil-dong" and "Age <ts 2>: 26" are included in the search result and "Name <ts 1>: Doodle", "Age <ts 1>: 30 "Is not included in the search result.

도 17은 데이터를 검색하는 또 다른 예를 나타낸다. 데이터 검색부는 검색 대상 데이터의 식별값의 범위를 추가적으로 입력받을 수 있다. 도 17의 예에서는, 검색 대상 데이터의 식별값의 범위로 '102~105', 필드명으로 '나이', 필드값으로 '26'이 입력된다.Figure 17 shows another example of retrieving data. The data search unit may additionally receive a range of identification values of the search target data. In the example of Fig. 17, '102 to 105' is entered as the range of the identification value of the search object data, 'age' is entered as the field name, and '26' is entered as the field value.

데이터 검색부는 필드명과 필드값의 조합인 "나이=26"을 키로 가지는 역색인 데이터를 데이터베이스에서 검색한다. 검색된 역색인 데이터는 "101 <ts2>"와 "102 <ts3>"를 밸류 항목으로 가진다. 이때, "101 <ts2>"의 밸류 항목에 포함된 식별값은 검색 대상 데이터의 식별값의 범위에 포함되지 않는다. The data search unit searches the database for the inverse index data having the key "Age = 26 ", which is a combination of the field name and the field value. The retrieved inverse index data has "101 <ts2>" and "102 <ts3>" as the value items. At this time, the identification value included in the value item of "101 < ts2 >" is not included in the range of the identification value of the search object data.

따라서, 데이터 검색부는, '101'을 키로 가지는 순방향 색인 데이터는 검색하지 않고, '102'를 키로 가지는 순방향 색인 데이터만을 데이터베이스에서 검색한다. 이후의 과정은 앞서 설명한 과정과 동일하다.Therefore, the data retrieval unit does not retrieve forward index data having '101' as a key, but retrieves only forward index data having '102' as a key in the database. The subsequent process is the same as described above.

<< 가비지Garbage 컬렉션 방법> How to Save>

도 18는 본 발명의 실시예에 따른 키-밸류 구조를 가지는 데이터베이스에서 데이터를 가비지 컬렉션하는 방법을 나타내는 흐름도이고, 도 19은 본 발명의 실시예에 따른 가비지 컬렉션하는 과정의 예를 나타낸다.FIG. 18 is a flowchart illustrating a method of garbage collection of data in a database having a key-value structure according to an embodiment of the present invention, and FIG. 19 illustrates an example of a garbage collection process according to an embodiment of the present invention.

가비지 컬렉션부는 임의의 순방향 색인 데이터에 대하여 동일한 필드명을 가지는 밸류 항목이 2 이상 존재하는지 여부를 조사한다(S410). 동일한 필드명을 가지는 밸류 항목 중 최신의 타임스탬프를 가지지 않는 밸류 항목을 추출한다(S420). 추출된 밸류 항목은 가비지 컬렉션의 대상인 가비지 밸류 항목이 된다. 도 19의 예에서는, '102'를 키로 가지는 순방향 색인 데이터 중 "나이 <ts 3> : 26"의 밸류 항목은 가비지 밸류 항목이 된다.The garbage collection unit checks whether there are two or more value items having the same field name for arbitrary forward index data (S410). A value item having the latest time stamp among the value items having the same field name is extracted (S420). The extracted value item becomes a garbage value item that is the object of garbage collection. In the example of FIG. 19, the value item of "Age <ts 3>: 26" among the forward index data having "102" as a key is a garbage value item.

가비지 컬렉션부는 가비지 밸류 항목의 필드값 및 필드명의 조합을 키로 가지는 역색인 데이터를 데이터베이스에서 검색하고(S430), 검색된 역색인 데이터의 밸류 항목 중 가비지 밸류 항목에 대한 순방향 색인 데이터의 키를 식별값으로 가지는 밸류 항목을 삭제한다(S440). 도 19의 예에서는, "나이=26"을 키로 가지는 역색인 데이터의 밸류 항목 중 '102'를 키로 가지는 밸류 항목이 삭제된다.The garbage collection unit searches the database for the inverse index data having the combination of the field value and the field name of the garbage value item as a key (S430), and stores the key of the forward index data for the garbage value item in the value items of the retrieved inverse index data as an identification value The branch value item is deleted (S440). In the example of Fig. 19, a value item having "102" as a key among the value items of the inverse index data having "age = 26" as a key is deleted.

이후, 가비지 컬렉션부는 순방향 색인 데이터에서 가비지 밸류 항목을 삭제한다(S450). 즉, 도 19의 예에서, '102'를 키로 가지는 순방향 색인 데이터에서 "나이 <ts 3> : 26"의 밸류 항목이 삭제된다.Thereafter, the garbage collection unit deletes the garbage value item from the forward index data (S450). That is, in the example of FIG. 19, the value item of "Age <ts 3>: 26" is deleted from the forward index data having "102" as the key.

이와 같이, 중복되는 필드명을 가지는 밸류 항목에 대하여, 상술한 방법으로 밸류 항목을 하나씩 삭제하여, 최신의 타임스탬프를 가지는 밸류 항목만을 유지할 수 있게 된다.As described above, value items having duplicate field names can be deleted one by one in the above-described manner, and only the value items having the latest time stamp can be held.

한편, 도 19의 예에서, '나이'를 필드명으로 가지는 밸류 항목 중 최신의 타임스탬프를 가지는 밸류 항목의 필드값은 'null'로 되어 있다. 즉, '나이' 필드는 상술한 삭제 방법에 의하여 삭제된 필드이므로, 'null'을 필드값으로 가지고 있는 밸류 항목도 가비지 컬렉션의 대상이 된다. 따라서, 가비지 컬렉션부는 순방향 색인 데이터에서 'null'을 필드값으로 가지는 밸류 항목을 삭제한다(S460).On the other hand, in the example of FIG. 19, the field value of the value item having the latest time stamp among the value items having the 'age' as the field name is 'null'. That is, since the 'age' field is a field deleted by the above-described deletion method, a value item having 'null' as a field value is also subjected to garbage collection. Accordingly, the garbage collection unit deletes the value item having 'null' as the field value in the forward index data (S460).

상술한 예에서는, 가비지 컬렉션부가 임의의 순방향 색인 데이터에 대하여 동일한 필드명을 가지는 밸류 항목이 2 이상 존재하는지 여부를 조사하는 것으로 설명하였다. 그러나, 가비지 큐에 저장된 식별값을 키로 가지는 순방향 색인 데이터에 대하여 가비지 컬렉션을 수행하도록 구성할 수도 있다.In the above example, it is described that the garbage collection unit checks whether there are two or more value items having the same field name for arbitrary forward index data. However, garbage collection may be performed on the forward index data having the identification value stored in the garbage queue as a key.

상술한 본 발명의 키-밸류 구조를 가지는 데이터베이스에서 데이터를 추가, 갱신, 삭제하는 방법은 내부적으로는 데이터의 추가 연산만으로 수행되고, 내부적으로 데이터를 수정하는 과정을 수행하지 않기 때문에, 동시 다발적으로 추가, 갱신, 삭제가 요청되어도 서로에 대한 충돌 등의 오류 없이 데이터의 추가, 갱신, 삭제가 가능하게 된다.The method of adding, updating, and deleting data in the database having the above-described key-value structure of the present invention is performed only by the additional operation of data internally and does not perform a process of internally modifying data, Update, and deletion of data without error such as collision with each other even if the addition, update, or deletion is requested.

또한, 데이터가 갱신, 삭제되는 경우에, 실질적인 데이터의 삭제는 추후에 가비지 컬렉션 등을 이용하여 수행되고, 사용자에게는 데이터가 추가된 때에 작업이 완료된 것으로 보여지므로, 사용자 입장에서의 작업의 수행 속도가 빠른 효과가 있다.In addition, when data is updated or deleted, substantial deletion of data is performed later using garbage collection or the like, and since the task is seen to have been completed when data is added to the user, There is a quick effect.

본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구의 범위에 의하여 나타내어지며, 특허청구의 범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.It will be understood by those skilled in the art that the present invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. It is therefore to be understood that the above-described embodiments are illustrative in all aspects and not restrictive. The scope of the present invention is defined by the appended claims rather than the foregoing detailed description, and all changes or modifications derived from the meaning and scope of the claims and the equivalents thereof are included in the scope of the present invention Should be interpreted.

Claims (14)

데이터의 필드명 및 필드값의 조합을 키로 가지고 상기 데이터의 식별값 및 타임스탬프의 조합을 밸류 항목으로 가지는 역색인 데이터, 및 상기 데이터의 식별값을 키로 가지고 상기 데이터의 필드명, 타임스탬프 및 필드값의 조합을 밸류 항목으로 가지는 순방향 색인 데이터를 저장하고 있는, 키-밸류 구조를 가지는 데이터베이스에서 데이터를 검색하는 방법으로서,
(a) 검색 대상 데이터의 필드명 및 필드값을 입력받는 단계,
(b) 상기 검색 대상 데이터의 필드명 및 필드값의 조합을 키로 가지는 역색인 데이터를 상기 데이터베이스에서 검색하는 단계,
(c) 상기 검색된 역색인 데이터의 밸류 항목에 포함된 식별값을 키로 가지는 순방향 색인 데이터를 상기 데이터베이스에서 검색하는 단계, 및
(d) 상기 검색된 순방향 색인 데이터를 검색 결과로서 반환하되, 상기 검색 대상 데이터의 필드명과 동일한 필드명을 가지는 상기 검색된 순방향 색인 데이터의 밸류 항목 중 최신의 타임스탬프를 가지는 밸류 항목이 상기 검색 대상 데이터의 필드값과 동일한 필드값을 가지는 경우에 한하여, 상기 검색된 순방향 색인 데이터를 검색 결과로서 반환하는 단계를 포함하는, 키-밸류 구조를 가지는 데이터베이스에서 데이터를 검색하는 방법.
A time stamp, and a time stamp of the data with a key as a key, a combination of a field name and a field value of data as a key and a combination of an identification value and a time stamp of the data as a value item, Value structure storing a forward index data having a combination of values as a value item, the method comprising the steps of:
(a) receiving a field name and a field value of search target data,
(b) searching in the database for inverse index data having a combination of a field name and a field value of the search target data as a key,
(c) searching the database for forward index data having an identification value included in a value item of the searched inverse index data as a key, and
(d) returning the searched forward index data as a search result, wherein a value item having a latest time stamp among the value items of the searched forward index data having the same field name as the field name of the searched data, And returning the retrieved forward index data as a retrieval result only when the retrieved forward index data has the same field value as the field value.
제 1 항에 있어서,
상기 (d) 단계는,
상기 검색 결과로서의 순방향 색인 데이터의 밸류 항목 중 동일한 필드명을 가지는 밸류 항목이 2 이상 존재하는 경우, 최신의 타임스탬프를 가지는 밸류 항목만을 상기 검색 결과에 포함시키는 단계를 포함하는 것을 특징으로 하는, 키-밸류 구조를 가지는 데이터베이스에서 데이터를 검색하는 방법.
The method according to claim 1,
The step (d)
And when only two value items having the same field name among the value items of the forward index data as the search result exist, including only the value item having the latest time stamp in the search result A method for retrieving data from a database having a value structure.
제 1 항에 있어서,
상기 (d) 단계는,
상기 검색 대상 데이터의 필드명과 동일한 필드명을 가지는 상기 검색된 순방향 색인 데이터의 밸류 항목 중 최신의 타임스탬프를 가지는 밸류 항목이 상기 검색 대상 데이터의 필드값과 동일한 필드값을 가지지 않는 경우에는, 상기 검색된 역색인 데이터의 밸류 항목 중에서 상기 검색된 순방향 데이터의 키를 식별값으로 가지는 밸류 항목을 삭제하는 단계를 포함하는 것을 특징으로 하는, 키-밸류 구조를 가지는 데이터베이스에서 데이터를 검색하는 방법.
The method according to claim 1,
The step (d)
If the value item having the latest time stamp among the value items of the retrieved forward index data having the same field name as the field name of the retrieval object data does not have the same field value as the field value of the retrieval object data, And deleting a value item having a key of the searched forward data as an identification value among the value items of the index data.
제 1 항에 있어서,
상기 (a) 단계는,
검색 대상 데이터의 식별값의 범위를 입력받는 단계를 포함하고,
상기 (c) 단계는,
상기 검색된 역색인 데이터의 밸류 항목에 포함된 식별값 중 상기 검색 대상 데이터의 식별값의 범위에 해당하는 식별값을 키로 가지는 순방향 색인 데이터를 상기 데이터베이스에서 검색하는 것을 특징으로 하는, 키-밸류 구조를 가지는 데이터베이스에서 데이터를 검색하는 방법.
The method according to claim 1,
The step (a)
Inputting a range of identification values of data to be searched,
The step (c)
Value structure having an identification value corresponding to a range of an identification value of the data to be searched as a key among identification values included in a value item of the searched inverse index data in the database. How to retrieve data from a database.
데이터의 필드명 및 필드값의 조합을 키로 가지고 상기 데이터의 식별값 및 타임스탬프의 조합을 밸류 항목으로 가지는 역색인 데이터, 및 상기 데이터의 식별값을 키로 가지고 상기 데이터의 필드명, 타임스탬프 및 필드값의 조합을 밸류 항목으로 가지는 순방향 색인 데이터를 저장하고 있는, 키-밸류 구조를 가지는 데이터베이스에서 데이터를 입력하는 방법으로서,
(a) 입력 데이터의 식별값, 필드명 및 필드값을 입력받는 단계,
(b) 상기 입력 데이터의 필드명 및 필드값의 조합을 키로 가지고, 상기 입력 데이터의 식별값 및 타임스탬프의 조합을 밸류 항목으로 가지는 역색인 데이터를 상기 데이터베이스에 입력하는 단계, 및
(c) 상기 (b) 단계가 성공한 경우, 상기 입력 데이터의 식별값를 키로 가지고, 상기 입력 데이터의 필드명, 타임스탬프 및 필드값의 조합을 밸류 항목으로 가지는 순방향 색인 데이터를 상기 데이터베이스에 입력하는 단계를 포함하는 것을 특징으로 하는, 키-밸류 구조를 가지는 데이터베이스에 데이터를 입력하는 방법.
A time stamp, and a time stamp of the data with a key as a key, a combination of a field name and a field value of data as a key and a combination of an identification value and a time stamp of the data as a value item, 1. A method of inputting data in a database having a key-value structure storing forward index data having a combination of values as a value item,
(a) receiving an identification value, a field name, and a field value of input data;
(b) inputting, into the database, inverse index data having a combination of a field name and a field value of the input data as a key and a combination of an identification value and a time stamp of the input data as a value item; and
(c) inputting the forward index data having the identification value of the input data as a key and having a combination of a field name, a time stamp, and a field value of the input data as a value item, when the step (b) Valued structure, wherein the key-value structure has a key-value structure.
제 5 항에 있어서,
상기 (b) 단계는,
상기 입력 데이터의 필드명 및 필드값의 조합을 키로 가지는 역색인 데이터가 상기 데이터베이스에 기존재하는 경우, 상기 입력 데이터의 식별값 및 타임스탬프의 조합을 상기 기존재하는 역색인 데이터의 밸류 항목으로 추가하는 단계를 포함하는 것을 특징으로 하는, 키-밸류 구조를 가지는 데이터베이스에 데이터를 입력하는 방법.
6. The method of claim 5,
The step (b)
When a reverse index data having a combination of a field name and a field value of the input data is present in the database, a combination of an identification value and a time stamp of the input data is added as a value item of the existing reverse index data Wherein the key-value structure is a key-value structure.
제 6 항에 있어서,
상기 (b) 단계는,
상기 입력 데이터의 필드명 및 필드값의 조합을 키로 가지고 상기 입력 데이터의 식별값에 대응되는 밸류 항목을 가지는 역색인 데이터가 상기 데이터베이스에 기존재하는 경우에는, 상기 입력 데이터의 타임스탬프가 상기 대응되는 밸류 항목의 타임스탬프보다 최신의 것인 경우에 한하여, 상기 입력 데이터의 식별값 및 타임스탬프의 조합을 상기 기존재하는 역색인 데이터의 밸류 항목으로 추가하는 단계를 포함하는 것을 특징으로 하는, 키-밸류 구조를 가지는 데이터베이스에 데이터를 입력하는 방법.
The method according to claim 6,
The step (b)
When there is inverse index data having a value item corresponding to the identification value of the input data in the database with a combination of a field name and a field value of the input data as a key, Adding a combination of an identification value and a time stamp of the input data as a value item of the existing inverse index data only when the time stamp of the value item is newer than the time stamp of the value item. How to enter data into a database with a value structure.
제 6 항에 있어서,
상기 (c) 단계는,
상기 입력 데이터의 식별값를 키로 가지는 순방향 색인 데이터가 상기 데이터베이스에 기존재하는 경우, 상기 입력 데이터의 필드명, 타임스탬프 및 필드값의 조합을 상기 기존재하는 순방향 색인 데이터의 밸류 항목으로 추가하는 단계를 포함하는 것을 특징으로 하는, 키-밸류 구조를 가지는 데이터베이스에 데이터를 입력하는 방법.
The method according to claim 6,
The step (c)
Adding a combination of a field name, a time stamp, and a field value of the input data as a value item of the existing forward index data when forward index data having an identification value of the input data exists as a key in the database, Wherein the key-value structure is a key-value structure.
제 8 항에 있어서,
상기 (c) 단계는,
상기 입력 데이터의 식별값를 키로 가지고 상기 입력 데이터의 필드명 및 필드값의 조합에 대응되는 밸류 항목을 가지는 순방향 색인 데이터가 상기 데이터베이스에 기존재하는 경우에는, 상기 입력 데이터의 타임스탬프가 상기 대응되는 밸류 항목의 타임스탬프보다 최신의 것인 경우에 한하여, 상기 입력 데이터의 필드명, 타임스탬프 및 필드값의 조합을 상기 기존재하는 순방향 색인 데이터의 밸류 항목으로 추가하는 단계를 포함하는 것을 특징으로 하는, 키-밸류 구조를 가지는 데이터베이스에 데이터를 입력하는 방법.
9. The method of claim 8,
The step (c)
When the forward index data having a value item corresponding to the combination of the field name and the field value of the input data is present in the database with the identification value of the input data as a key, Adding a combination of a field name, a time stamp, and a field value of the input data as a value item of the existing forward index data only when the latest entry is newer than the timestamp of the entry. A method for entering data into a database having a key-value structure.
제 5 항에 있어서,
상기 (c) 단계가 성공한 경우, 데이터 입력 성공 정보를 반환하고, 상기 (b) 단계 또는 상기 (c) 단계 중 어느 하나가 실패한 경우, 데이터 입력 실패 정보를 반환하는 단계를 더 포함하는 것을 특징으로 하는, 키-밸류 구조를 가지는 데이터베이스에 데이터를 입력하는 방법.
6. The method of claim 5,
Returning data input success information if the step (c) is successful, and returning data input failure information if either step (b) or step (c) fails. A method for inputting data into a database having a key-value structure.
데이터의 필드명 및 필드값의 조합을 키로 가지고 상기 데이터의 식별값 및 타임스탬프의 조합을 밸류 항목으로 가지는 역색인 데이터, 및 상기 데이터의 식별값을 키로 가지고 상기 데이터의 필드명, 타임스탬프 및 필드값의 조합을 밸류 항목으로 가지는 순방향 색인 데이터를 저장하고 있는, 키-밸류 구조를 가지는 데이터베이스에서 데이터를 삭제하는 방법으로서,
(a) 삭제 대상 데이터의 식별값 및 필드명을 입력받는 단계, 및
(b) 상기 삭제 대상 데이터의 식별값를 키로 가지는 순방향 색인 데이터에 대하여, 상기 삭제 대상 데이터의 필드명, 타임스탬프 및 삭제 대상 데이터임을 나타내는 필드값의 조합을 밸류 항목으로 추가하는 단계를 포함하는, 키-밸류 구조를 가지는 데이터베이스에서 데이터를 삭제하는 방법.
A time stamp, and a time stamp of the data with a key as a key, a combination of a field name and a field value of data as a key and a combination of an identification value and a time stamp of the data as a value item, 1. A method for deleting data in a database having a key-value structure storing forward index data having a combination of values as a value item,
(a) receiving an identification value and a field name of data to be deleted, and
(b) adding, as a value item, a combination of a field name, a time stamp, and a field value indicating deletion target data of the deletion target data to the forward index data having the identification value of the deletion target data as a key A method for deleting data from a database having a value structure.
제 11 항에 있어서,
상기 삭제 대상 데이터임을 나타내는 필드값은 널(null)인 것을 특징으로 하는, 키-밸류 구조를 가지는 데이터베이스에서 데이터를 삭제하는 방법.
12. The method of claim 11,
And wherein the field value indicating that the data to be deleted is null is a method for deleting data in a database having a key-value structure.
데이터의 필드명 및 필드값의 조합을 키로 가지고 상기 데이터의 식별값 및 타임스탬프의 조합을 밸류 항목으로 가지는 역색인 데이터, 및 상기 데이터의 식별값을 키로 가지고 상기 데이터의 필드명, 타임스탬프 및 필드값의 조합을 밸류 항목으로 가지는 순방향 색인 데이터를 저장하고 있는, 키-밸류 구조를 가지는 데이터베이스에서 데이터를 가비지 컬렉션하는 방법으로서,
(a) 상기 데이터베이스에서의 순방향 색인 데이터가 동일한 필드명을 가지는 2 이상의 밸류 항목을 가지는 경우, 상기 2 이상의 밸류 항목 중 최신의 타임스탬프를 가지지 않는 가비지 밸류 항목의 필드값 및 필드명의 조합을 키로 가지는 역색인 데이터를 상기 데이터베이스에서 검색하는 단계,
(b) 상기 검색된 역색인 데이터에서 상기 순방향 색인 데이터의 키를 식별값으로 가지는 밸류 항목을 삭제하는 단계, 및
(c) 상기 순방향 색인 데이터에서 상기 가비지 밸류 항목을 삭제하는 단계를 포함하는 것을 특징으로 하는, 키-밸류 구조를 가지는 데이터베이스에서의 가비지 컬렉션 방법.
A time stamp, and a time stamp of the data with a key as a key, a combination of a field name and a field value of data as a key and a combination of an identification value and a time stamp of the data as a value item, 1. A method for garbage collection of data in a database having a key-value structure storing forward index data having a combination of values as a value item,
(a) when the forward index data in the database has two or more value items having the same field name, the key value of the field value and the combination of field names of the garbage value item having the latest timestamp among the two or more value items Retrieving the inverse index data from the database,
(b) deleting the value item having the key of the forward index data as the identification value from the searched inverse index data, and
(c) deleting the garbage value entry from the forward index data. &lt; Desc / Clms Page number 19 &gt;
제 13 항에 있어서,
(d) 상기 순방향 색인 데이터의 밸류 항목의 필드값이 삭제 대상 데이터임을 나타내는 필드값인 경우, 상기 최신의 타임스탬프를 가지는 밸류 항목을 삭제하는 단계를 더 포함하는, 키-밸류 구조를 가지는 데이터베이스에서의 가비지 컬렉션 방법.
14. The method of claim 13,
(d) if the field value of the value item of the forward index data is a field value indicating that the data item is to be deleted, deleting the value item having the latest time stamp Of garbage collection method.
KR1020120134318A 2012-11-26 2012-11-26 Method for searching, inputting, deleting and garbage collecting of data in database having key-value structure KR101429046B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120134318A KR101429046B1 (en) 2012-11-26 2012-11-26 Method for searching, inputting, deleting and garbage collecting of data in database having key-value structure

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120134318A KR101429046B1 (en) 2012-11-26 2012-11-26 Method for searching, inputting, deleting and garbage collecting of data in database having key-value structure

Publications (2)

Publication Number Publication Date
KR20140067277A KR20140067277A (en) 2014-06-05
KR101429046B1 true KR101429046B1 (en) 2014-08-11

Family

ID=51123549

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120134318A KR101429046B1 (en) 2012-11-26 2012-11-26 Method for searching, inputting, deleting and garbage collecting of data in database having key-value structure

Country Status (1)

Country Link
KR (1) KR101429046B1 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020132642A1 (en) * 2018-12-21 2020-06-25 Home Box Office, Inc. Garbage collection of preloaded time-based graph data
US11204924B2 (en) 2018-12-21 2021-12-21 Home Box Office, Inc. Collection of timepoints and mapping preloaded graphs
US11474974B2 (en) 2018-12-21 2022-10-18 Home Box Office, Inc. Coordinator for preloading time-based content selection graphs
US11474943B2 (en) 2018-12-21 2022-10-18 Home Box Office, Inc. Preloaded content selection graph for rapid retrieval
US11475092B2 (en) 2018-12-21 2022-10-18 Home Box Office, Inc. Preloaded content selection graph validation
US11829294B2 (en) 2018-12-21 2023-11-28 Home Box Office, Inc. Preloaded content selection graph generation

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109753506B (en) * 2018-12-28 2020-09-29 深圳市网心科技有限公司 Data distributed storage method, device, terminal and storage medium
CN116910051B (en) * 2023-09-13 2024-01-02 腾讯科技(深圳)有限公司 Data processing method, device, electronic equipment and computer readable storage medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010072823A (en) 2008-09-17 2010-04-02 Ricoh Co Ltd Database management system and program
JP2012146058A (en) 2011-01-11 2012-08-02 Yahoo Japan Corp Database management device, database management program, database management method, and database management system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010072823A (en) 2008-09-17 2010-04-02 Ricoh Co Ltd Database management system and program
JP2012146058A (en) 2011-01-11 2012-08-02 Yahoo Japan Corp Database management device, database management program, database management method, and database management system

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020132642A1 (en) * 2018-12-21 2020-06-25 Home Box Office, Inc. Garbage collection of preloaded time-based graph data
US11204924B2 (en) 2018-12-21 2021-12-21 Home Box Office, Inc. Collection of timepoints and mapping preloaded graphs
US11269768B2 (en) 2018-12-21 2022-03-08 Home Box Office, Inc. Garbage collection of preloaded time-based graph data
US11474974B2 (en) 2018-12-21 2022-10-18 Home Box Office, Inc. Coordinator for preloading time-based content selection graphs
US11474943B2 (en) 2018-12-21 2022-10-18 Home Box Office, Inc. Preloaded content selection graph for rapid retrieval
US11475092B2 (en) 2018-12-21 2022-10-18 Home Box Office, Inc. Preloaded content selection graph validation
US11720488B2 (en) 2018-12-21 2023-08-08 Home Box Office, Inc. Garbage collection of preloaded time-based graph data
US11748355B2 (en) 2018-12-21 2023-09-05 Home Box Office, Inc. Collection of timepoints and mapping preloaded graphs
US11829294B2 (en) 2018-12-21 2023-11-28 Home Box Office, Inc. Preloaded content selection graph generation
US11907165B2 (en) 2018-12-21 2024-02-20 Home Box Office, Inc. Coordinator for preloading time-based content selection graphs

Also Published As

Publication number Publication date
KR20140067277A (en) 2014-06-05

Similar Documents

Publication Publication Date Title
KR101429046B1 (en) Method for searching, inputting, deleting and garbage collecting of data in database having key-value structure
US11429641B2 (en) Copying data changes to a target database
US11182356B2 (en) Indexing for evolving large-scale datasets in multi-master hybrid transactional and analytical processing systems
US8868512B2 (en) Logging scheme for column-oriented in-memory databases
CN106462586B (en) The method and system that the consistency of Multi version concurrency control based on record is read
US10409864B2 (en) Transaction control block for multiversion concurrency commit status
US20190108182A1 (en) Distributed Transaction Management With Tokens
US9747293B2 (en) Method and system for storage and retrieval of information
US9639542B2 (en) Dynamic mapping of extensible datasets to relational database schemas
US9336262B2 (en) Accelerated transactions with precommit-time early lock release
CN106484906B (en) Distributed object storage system flash-back method and device
US10754854B2 (en) Consistent query of local indexes
US8560500B2 (en) Method and system for removing rows from directory tables
US9576038B1 (en) Consistent query of local indexes
US20150120656A1 (en) Compacting data file histories
US9459969B1 (en) Method and system for enhanced backup database indexing
US9645893B1 (en) Method and system for file recovery using enhanced backup database indexing
US9922043B1 (en) Data management platform
US11163801B2 (en) Execution of queries in relational databases
WO2020192663A1 (en) Data management method and related device
JP2007501476A (en) Database system that does not drop objects and dependent objects
EP3036637A1 (en) Method and system for automatic management of dynamically allocated memory in a computing unit
JP2015176407A (en) Search device, search method, search program and search data structure
US11726979B2 (en) Determining a chronological order of transactions executed in relation to an object stored in a storage system
CN114238241B (en) Metadata processing method and computer system for financial data

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170802

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190805

Year of fee payment: 6