JP6181247B1 - Database management apparatus, database management method, and database management program - Google Patents

Database management apparatus, database management method, and database management program Download PDF

Info

Publication number
JP6181247B1
JP6181247B1 JP2016131596A JP2016131596A JP6181247B1 JP 6181247 B1 JP6181247 B1 JP 6181247B1 JP 2016131596 A JP2016131596 A JP 2016131596A JP 2016131596 A JP2016131596 A JP 2016131596A JP 6181247 B1 JP6181247 B1 JP 6181247B1
Authority
JP
Japan
Prior art keywords
record
representative
data
expiration date
index
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
JP2016131596A
Other languages
Japanese (ja)
Other versions
JP2018005552A (en
Inventor
誠 嶋村
誠 嶋村
基孝 金松
基孝 金松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2016131596A priority Critical patent/JP6181247B1/en
Application granted granted Critical
Publication of JP6181247B1 publication Critical patent/JP6181247B1/en
Publication of JP2018005552A publication Critical patent/JP2018005552A/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】無効レコードの削除に関する処理負荷を軽減することができるデータベース管理装置、データベース管理方法、およびデータベース管理プログラムを提供することである。【解決手段】実施形態のデータベース管理装置は、データ処理部と、代表有効期限決定部と、削除部とを持つ。データ処理部は、記憶装置に対してデータの書き込みまたは読み出しを行う。代表有効期限決定部は、前記データ処理部が扱うデータに対してそれぞれ割り当てられた有効期限に基づいて、前記データをグループ化したデータグループの代表有効期限を決定する。削除部は、前記代表有効期限決定部により決定された代表有効期限に基づいて、削除対象の前記データグループを抽出し、前記抽出した削除対象の前記データグループに含まれるデータのうち前記有効期限を徒過したデータを削除する。【選択図】図1To provide a database management apparatus, a database management method, and a database management program capable of reducing processing load related to deletion of invalid records. According to one embodiment, a database management apparatus includes a data processing unit, a representative expiration date determination unit, and a deletion unit. The data processing unit writes or reads data to or from the storage device. The representative expiration date determination unit determines a representative expiration date of a data group in which the data is grouped based on the expiration dates assigned to the data handled by the data processing unit. The deletion unit extracts the data group to be deleted based on the representative expiration date determined by the representative expiration date determination unit, and determines the expiration date among the data included in the extracted data group to be deleted. Delete the missing data. [Selection] Figure 1

Description

本発明の実施形態は、データベース管理装置、データベース管理方法、およびデータベース管理プログラムに関する。   Embodiments described herein relate generally to a database management apparatus, a database management method, and a database management program.

データベースを管理するシステムでは、データベースにレコードを登録する場合に、そのレコードを利用できる有効期限を設定し、有効期限を徒過したレコード(無効レコード)を所定のタイミングで削除する場合がある。無効レコードを削除する手法としては、例えば定期的にデータベース内の全レコードをスキャンし、有効期限を徒過したレコードを削除する手法(ガベージコレクション)がある。しかしながら、従来の技術では、全レコードをスキャンするために、無効レコードを削除する処理負荷が増大する場合があった。   In a system that manages a database, when a record is registered in the database, an expiration date in which the record can be used is set, and a record that has passed the expiration date (invalid record) may be deleted at a predetermined timing. As a technique for deleting invalid records, for example, there is a technique (garbage collection) in which all records in a database are periodically scanned and records that have expired are deleted. However, in the conventional technique, in order to scan all records, the processing load for deleting invalid records may increase.

特開2010−267028号公報JP 2010-267028 A

本発明が解決しようとする課題は、無効レコードの削除に関する処理負荷を軽減することができるデータベース管理装置、データベース管理方法、およびデータベース管理プログラムを提供することである。   The problem to be solved by the present invention is to provide a database management device, a database management method, and a database management program that can reduce the processing load related to deletion of invalid records.

実施形態のデータベース管理装置は、データ処理部と、代表有効期限決定部と、削除部とを持つ。データ処理部は、記憶装置に対してデータの書き込みまたは読み出しを行う。代表有効期限決定部は、前記データ処理部が扱うデータに対してそれぞれ割り当てられた有効期限に基づいて、前記データをグループ化したデータグループの代表有効期限を決定する。削除部は、前記代表有効期限決定部により決定された代表有効期限に基づいて、削除対象の前記データグループを抽出し、前記抽出した削除対象の前記データグループに含まれるデータのうち前記有効期限を徒過したデータを削除する。   The database management apparatus according to the embodiment includes a data processing unit, a representative expiration date determination unit, and a deletion unit. The data processing unit writes or reads data to or from the storage device. The representative expiration date determination unit determines a representative expiration date of a data group in which the data is grouped based on the expiration dates assigned to the data handled by the data processing unit. The deletion unit extracts the data group to be deleted based on the representative expiration date determined by the representative expiration date determination unit, and determines the expiration date among the data included in the extracted data group to be deleted. Delete the missing data.

本実施形態のデータベース管理装置100を備えるデータベース管理システム1の機能構成例を示す図。The figure which shows the function structural example of the database management system 1 provided with the database management apparatus 100 of this embodiment. レコード管理情報150Aの内容の一例を示す図。The figure which shows an example of the content of the record management information 150A. 第1インデックス150Bの内容の一例を示す図。The figure which shows an example of the content of the 1st index 150B. 第2インデックス150Cの内容の一例を示す図。The figure which shows an example of the content of the 2nd index 150C. データベース管理装置100におけるレコードアクセス時の動作例を説明するための図。The figure for demonstrating the operation example at the time of the record access in the database management apparatus 100. FIG. データベース管理装置100におけるガベージコレクション処理の動作例を説明するための図。The figure for demonstrating the operation example of the garbage collection process in the database management apparatus. 代表TTL値を設定する第1の実施例を示す図。The figure which shows the 1st Example which sets a representative TTL value. 代表TTL値を設定する第2の実施例を示す図。The figure which shows the 2nd Example which sets a representative TTL value. 代表TTL値を設定する第3の実施例を示す図。The figure which shows the 3rd Example which sets a representative TTL value. 削除対象ページの抽出例を説明するための図。The figure for demonstrating the example of extraction of the deletion object page. 削除処理実行後の各ページの様子とインデックスの更新例を示す図。The figure which shows the state of each page after deletion process execution, and the update example of an index. ページにレコードが追加された場合のインデックスの生成例を示す図。The figure which shows the production | generation example of an index when a record is added to the page. データベース管理装置100におけるレコード書き込み処理(新規登録)の一例を示すフローチャート。5 is a flowchart showing an example of a record writing process (new registration) in the database management apparatus 100. インデックス生成処理の一例を示すフローチャート。The flowchart which shows an example of an index production | generation process. データベース管理装置100におけるレコード書き込み処理(更新)の一例を示すフローチャート。5 is a flowchart showing an example of record writing processing (update) in the database management apparatus 100. データベース管理装置100におけるレコード読み出し処理の一例を示すフローチャート。5 is a flowchart showing an example of a record reading process in the database management apparatus 100. データベース管理装置100におけるレコード削除処理の一例を示すフローチャート。5 is a flowchart showing an example of a record deletion process in the database management apparatus 100. データベース管理装置100における無効レコード削除処理の一例を示すフローチャート。10 is a flowchart showing an example of invalid record deletion processing in the database management apparatus 100.

以下、実施形態のデータベース管理装置、データベース管理方法、およびデータベース管理プログラムを、図面を参照して説明する。   Hereinafter, a database management device, a database management method, and a database management program according to embodiments will be described with reference to the drawings.

図1は、本実施形態のデータベース管理装置100を備えるデータベース管理システム1の機能構成例を示す図である。図1に示すデータベース管理システム1は、データベース管理装置100と、記憶装置200と、クライアント300とを備える。データベース管理装置100、記憶装置200、およびクライアント300のそれぞれは、インターネットやLAN(Local Area Network)、WAN(Wide Area Network)等を含む通信ネットワークを介して通信する。   FIG. 1 is a diagram illustrating a functional configuration example of a database management system 1 including a database management apparatus 100 according to the present embodiment. The database management system 1 illustrated in FIG. 1 includes a database management device 100, a storage device 200, and a client 300. Each of the database management device 100, the storage device 200, and the client 300 communicates via a communication network including the Internet, a LAN (Local Area Network), a WAN (Wide Area Network), and the like.

図1に示すデータベース管理システム1において、記憶装置200およびクライアント300の一方または双方は、データベース管理装置100と統合されてもよい。また、図1の例では、データベース管理装置100を使用する装置として1つのクライアント300を示しているが、複数のクライアント300が1つのデータベース管理装置100を使用してもよい。   In the database management system 1 shown in FIG. 1, one or both of the storage device 200 and the client 300 may be integrated with the database management device 100. In the example of FIG. 1, one client 300 is shown as an apparatus that uses the database management apparatus 100, but a plurality of clients 300 may use one database management apparatus 100.

データベース管理装置100は、ユーザが使用するクライアント300からの設定情報の入力や、処理を実行するための指示の入力を受け付け、受け付けた内容に基づいて、記憶装置200に対するI/O命令を発行する。また、データベース管理装置100は、処理結果等の情報をクライアント300に出力する。   The database management apparatus 100 accepts input of setting information from the client 300 used by the user and an instruction for executing processing, and issues an I / O command to the storage device 200 based on the accepted content. . Further, the database management apparatus 100 outputs information such as processing results to the client 300.

データベース管理装置100は、レコード管理部(データ処理部)110と、インデックス管理部(代表有効期限決定部)120と、無効レコード削除部(削除部)130と、通信部140と、記憶部150とを備える。また、これらの構成要素のうち記憶部150を除くものは、例えば、コンピュータにおけるCPU(Central Processing Unit)等のプロセッサが、記憶部150等のプログラムメモリに格納されたプログラム(ソフトウェア)を実行することで実現される。また、これらの機能部のうち一部または全部は、LSI(Large Scale Integration)やASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)等のハードウェアによって実現されてもよく、ソフトウェアとハードウェアとの協働により実現されてもよい。また、記憶部150は、RAM(Random Access Memory)やROM(Read Only Memory)、HDD(Hard Disk Drive)、フラッシュメモリ等により実現される。記憶部150には、レコード管理情報150A、第1インデックス150B、および第2インデックス150C等の情報が記憶される。   The database management apparatus 100 includes a record management unit (data processing unit) 110, an index management unit (representative expiration date determination unit) 120, an invalid record deletion unit (deletion unit) 130, a communication unit 140, and a storage unit 150. Is provided. In addition, among these constituent elements, except for the storage unit 150, for example, a processor such as a CPU (Central Processing Unit) in a computer executes a program (software) stored in a program memory such as the storage unit 150. It is realized with. Some or all of these functional units may be realized by hardware such as LSI (Large Scale Integration), ASIC (Application Specific Integrated Circuit), and FPGA (Field-Programmable Gate Array). It may be realized by cooperation with hardware. The storage unit 150 is realized by a RAM (Random Access Memory), a ROM (Read Only Memory), a HDD (Hard Disk Drive), a flash memory, or the like. The storage unit 150 stores information such as the record management information 150A, the first index 150B, and the second index 150C.

レコード管理部110は、クライアント300から書き込み指示されたデータを記憶装置200に書き込んだり、読み出し指示されたデータを記憶装置200から読み出したり、削除指示されたデータを記憶装置200から削除する処理を行う。また、本実施形態では、クライアント300が、書き込み、読み出し、または削除等を指示する一単位のデータを、レコードと称する。レコードは、例えば、レコードを識別する識別情報(レコードID)と、それに関連付けられたデータ本体部とを含む。レコードは、固定長でもよく、可変長でもよい。   The record management unit 110 performs processing for writing data instructed to be written from the client 300 to the storage device 200, reading data instructed to be read from the storage device 200, and deleting data instructed to be deleted from the storage device 200. . In the present embodiment, one unit of data that the client 300 instructs to write, read, or delete is referred to as a record. The record includes, for example, identification information (record ID) for identifying the record and a data main body portion associated therewith. The record may be fixed length or variable length.

レコード管理部110は、レコードを、例えば一以上のレコードを包含するページ、および一以上のページを包含するテーブル等で表現される論理的な階層構造で管理する。この階層構造は、レコード管理情報150Aによって把握される。ここで、ページとは、1または複数のレコードが割り当て可能な固定長の記憶領域を持つ仮想的な記憶領域を示すものである。また、テーブルとは、1又は複数のページが割り当て可能な固定長の記憶領域を持つ仮想的な記憶領域を示すものである。テーブルまたはページは、それぞれレコードをグループ化したデータグループの一例である。以下の説明では、ページがデータグループであるものとする。   The record management unit 110 manages records in a logical hierarchical structure represented by, for example, a page including one or more records and a table including one or more pages. This hierarchical structure is grasped by the record management information 150A. Here, the page indicates a virtual storage area having a fixed-length storage area to which one or a plurality of records can be allocated. The table indicates a virtual storage area having a fixed-length storage area to which one or a plurality of pages can be allocated. A table or page is an example of a data group obtained by grouping records. In the following description, it is assumed that the page is a data group.

図2は、レコード管理情報150Aの内容の一例を示す図である。レコード管理情報150Aは、例えば、テーブルごとに、「ページID」、「レコードID」、および「TTL(Time To Live)値」が互いに対応付けられた情報である。「ページID」は、ページを識別する識別情報である。レコード管理部110は、記憶装置200に対してレコードの書き込みを行う場合に、レコードごとにTTL値を設定し、レコード管理情報150Aに追加する。「TTL値」は、レコードの有効期限を認識可能な情報の一例である。TTL値は、例えば、そのレコードがいつまで有効であるかを示す時刻情報である。TTL値は、クライアント300から指定されてもよく、データベース管理装置100において設定されてもよい。   FIG. 2 is a diagram illustrating an example of the contents of the record management information 150A. The record management information 150A is, for example, information in which “page ID”, “record ID”, and “TTL (Time To Live) value” are associated with each other for each table. “Page ID” is identification information for identifying a page. When writing a record to the storage device 200, the record management unit 110 sets a TTL value for each record and adds it to the record management information 150A. The “TTL value” is an example of information that can recognize the expiration date of the record. The TTL value is time information indicating, for example, how long the record is valid. The TTL value may be specified by the client 300 or may be set in the database management apparatus 100.

図2に示すTTL値は、時刻型の値(例えば、日時情報)が設定される。また、TTL値は、例えばレコードに対するアクセス時刻からの有効期間(例えば、最終アクセス時刻より24時間といった情報)が設定されてもよい。   As the TTL value shown in FIG. 2, a time type value (for example, date information) is set. In addition, for the TTL value, for example, a valid period from the access time to the record (for example, information such as 24 hours from the last access time) may be set.

なお、レコード管理部110は、レコード管理情報に記憶されたレコードIDに対応する論理アドレスから、記憶装置200の物理アドレスに変換する変換部を備えていてもよい。また、本実施形態では、TTL値が設定されない状態で記憶装置200にレコードが記憶される場合もあり得る。この場合、レコード管理部110は、レコード管理情報150AのTTL値を空欄等にして登録してもよく、そのレコードに関する情報をレコード管理情報150Aに登録しなくてもよい。   Note that the record management unit 110 may include a conversion unit that converts a logical address corresponding to the record ID stored in the record management information into a physical address of the storage device 200. In the present embodiment, a record may be stored in the storage device 200 in a state where the TTL value is not set. In this case, the record management unit 110 may register the TTL value of the record management information 150A with a blank or the like, and may not register information regarding the record in the record management information 150A.

インデックス管理部120は、レコード管理部110によって、記憶装置200にレコードが書き込まれたり、レコードが削除された場合に、各レコードを管理するためのインデックス(索引情報)を生成する。また、インデックス管理部120は、レコードに対してそれぞれ割り当てられたTTL値に基づいて、データをグループ化したデータグループの代表有効期限(代表TTL値)を決定し、決定した情報をインデックスに格納する。また、インデックス管理部120は、無効レコード削除部130によって、記憶装置200内の無効レコードが削除された場合にも、インデックスを更新する。本実施形態では、インデックスは、第1インデックス150Bと、第2インデックス150Cとを含むものとする。   The index management unit 120 generates an index (index information) for managing each record when the record management unit 110 writes a record to the storage device 200 or deletes the record. Further, the index management unit 120 determines the representative expiration date (representative TTL value) of the data group in which the data is grouped based on the TTL value assigned to each record, and stores the determined information in the index. . The index management unit 120 also updates the index when the invalid record deletion unit 130 deletes an invalid record in the storage device 200. In the present embodiment, the index includes a first index 150B and a second index 150C.

図3は、第1インデックス150Bの内容の一例を示す図である。第1インデックス150Bは、例えば、「代表TTL値」および「ページID」が互いに対応付けられた情報である。「代表TTL値」とは、レコード管理情報150Aで管理されるページごとの代表有効期限である。代表有効期限は、各ページのそれぞれに記憶されたレコードに割り当てられたTTL値等に基づいて決定される期限情報であり、無効レコードを削除する際の一次検索に用いられる。なお、代表TTL値の設定手法については後述する。「代表TTL値」なるデータは、例えば各レコードに対するTTL値と同様のデータ形式で表現される。   FIG. 3 is a diagram illustrating an example of the contents of the first index 150B. The first index 150B is information in which “representative TTL value” and “page ID” are associated with each other, for example. The “representative TTL value” is a representative expiration date for each page managed by the record management information 150A. The representative expiration date is expiration date information determined based on a TTL value assigned to a record stored in each page, and is used for a primary search when an invalid record is deleted. A method for setting the representative TTL value will be described later. The data “representative TTL value” is expressed, for example, in the same data format as the TTL value for each record.

第1インデックス150Bは、例えば代表TTL値を検索条件(キー)として、代表有効期限を徒過したページが検索できるように構成される。第1インデックス150Bは、例えば無効レコード削除部130により、ページ単位でガベージコレクション処理(コンパクション、バキューム、ページ再編成ともいう)を実現するために用いられるインデックスである。   The first index 150B is configured such that, for example, a page that has passed the representative expiration date can be searched using the representative TTL value as a search condition (key). The first index 150B is an index that is used, for example, by the invalid record deletion unit 130 to realize garbage collection processing (also referred to as compaction, vacuum, or page reorganization) in units of pages.

図4は、第2インデックス150Cの内容の一例を示す図である。第2インデックス150Cは、例えば、「ページID」、「代表TTL値」、および「付加情報」が互いに対応付けられた情報である。「付加情報」とは、例えば過去の代表TTL値、ページ内の全レコードにおけるTTL値の最大、最小、平均、レコード数、各レコードのレコード長の総和、および代表TTL値を求めるための規則等のうち、少なくとも1つを含む情報である。また、「付加情報」は、例えばインデックス管理部120において、代表TTL値を再計算し、第1インデックス150Bを更新するのに用いられる情報である。   FIG. 4 is a diagram illustrating an example of the contents of the second index 150C. The second index 150C is information in which “page ID”, “representative TTL value”, and “additional information” are associated with each other, for example. “Additional information” means, for example, past representative TTL values, maximum, minimum, average, number of records, total record length of each record in all records in the page, rules for obtaining representative TTL values, etc. Information including at least one of them. The “additional information” is information used to recalculate the representative TTL value and update the first index 150B in the index management unit 120, for example.

なお、インデックス管理部120は、上述した第1インデックス150Bおよび第2インデックス150Cを1つのインデックスとして管理してもよく、他の情報を含むインデックスを生成してもよい。   The index management unit 120 may manage the first index 150B and the second index 150C described above as one index, or may generate an index including other information.

無効レコード削除部130は、第1インデックス150Bに基づいて、削除対象のページを抽出し、抽出した削除対象のページに含まれるレコードのうち有効期限を徒過したレコード(無効レコード)を削除する。無効レコードの削除とは、例えば記憶装置200のデータ記憶領域210に記憶されている無効レコードを削除するとともに、レコード管理情報150Aから該当する無効レコードの管理情報を削除することである。   The invalid record deletion unit 130 extracts pages to be deleted based on the first index 150B, and deletes records (invalid records) that have passed the expiration date from among the records included in the extracted pages to be deleted. The deletion of the invalid record is, for example, deleting the invalid record stored in the data storage area 210 of the storage device 200 and deleting the management information of the corresponding invalid record from the record management information 150A.

なお、無効レコード削除部130は、例えば無効レコードの削除を、ガベージコレクション処理として定期的に実施してもよく、レコード管理情報150Aまたは記憶装置200のデータ量が閾値を超えた場合に実施してもよく、クライアント300からの指示で実施してもよい。   The invalid record deletion unit 130 may periodically delete the invalid record as a garbage collection process, for example, when the record management information 150A or the data amount of the storage device 200 exceeds a threshold value. Alternatively, it may be performed according to an instruction from the client 300.

通信部140は、他のデータベース管理装置100、記憶装置200、およびクライアント300のうち、少なくとも1つと通信ネットワークを介してデータの送受信を行う通信インターフェースである。   The communication unit 140 is a communication interface that transmits / receives data to / from at least one of the other database management device 100, the storage device 200, and the client 300 via a communication network.

記憶部150は、図1に示す情報の他、データベース管理装置100における各種設定情報や、データベース管理に関する各種処理の実行経過または実行結果等により得られる情報、ログ情報、エラー情報等を記憶する。   In addition to the information shown in FIG. 1, the storage unit 150 stores various setting information in the database management apparatus 100, information obtained from the execution progress or execution results of various processes related to database management, log information, error information, and the like.

記憶装置200は、例えばデータベース管理装置100により管理されるストレージ装置である。記憶装置200は、例えば、ハードディスク(ディスク装置)、フラッシュメモリと、制御回路とを備える。記憶装置200は、データ記憶領域210を備える。データ記憶領域210は、レコードを不揮発に保持する。   The storage device 200 is a storage device managed by the database management device 100, for example. The storage device 200 includes, for example, a hard disk (disk device), a flash memory, and a control circuit. The storage device 200 includes a data storage area 210. The data storage area 210 holds records in a nonvolatile manner.

クライアント300は、データベース管理装置100に指示を送信し、応答を取得する。例えば、クライアント300は、データベース管理装置100にデータの読み書き、削除を行わせるためのコマンドを出力する。クライアント300は、例えばPC(Personal Computer)やタブレット端末、携帯電話等の情報処理装置である。クライアント300は、データベース管理装置100のユーザによって使用される情報処理装置であってもよく、更に別の装置から受信したコマンド等に基づいて、データベース管理装置100に各種コマンドを送信する装置であってもよい。また、クライアント300は、内部において情報処理した結果に基づいて、各種コマンドを生成してデータベース管理装置100に送信する装置であってもよい。   The client 300 transmits an instruction to the database management apparatus 100 and acquires a response. For example, the client 300 outputs a command for causing the database management apparatus 100 to read / write / delete data. The client 300 is an information processing apparatus such as a PC (Personal Computer), a tablet terminal, or a mobile phone. The client 300 may be an information processing apparatus used by a user of the database management apparatus 100, and is an apparatus that transmits various commands to the database management apparatus 100 based on commands received from another apparatus. Also good. Further, the client 300 may be a device that generates various commands based on the result of information processing inside and transmits the commands to the database management device 100.

クライアント300は、データベース管理装置100に対して、データの書き込みを指示するライトコマンド、データの読み出しを指示するリードコマンド、データの削除を指示する削除コマンド等を送信する。また、クライアント300は、データベース管理装置100から指示した内容に対する処理結果を取得する。   The client 300 transmits to the database management apparatus 100 a write command for instructing data writing, a read command for instructing data reading, a deletion command for instructing data deletion, and the like. In addition, the client 300 acquires a processing result for the content instructed from the database management apparatus 100.

以下、データベース管理装置100におけるデータベース管理の各種動作について説明する。図5は、データベース管理装置100におけるレコードアクセス時の動作例を説明するための図である。本実施例において、レコードアクセスとは、レコードの書き込み処理を指すものとする。また、レコードの書き込み処理には、レコードの新規登録と更新との双方が含まれる。   Hereinafter, various operations of database management in the database management apparatus 100 will be described. FIG. 5 is a diagram for explaining an operation example at the time of record access in the database management apparatus 100. In this embodiment, record access refers to record write processing. The record writing process includes both new registration and update of records.

図5において、クライアント300は、レコードの書き込み指示に対応するコマンド(書き込みコマンド)をデータベース管理装置100に出力する(1)。レコード管理部110は、レコード管理情報150Aに書き込み対象のレコードに関する情報を登録する(2)。また、レコード管理部110は、記憶装置200のデータ記憶領域210に書き込み指示されたレコードの書き込み命令を出力する(3)。なお、上記(2)と(3)の順序は逆であってもよく、同時であってもよい。   In FIG. 5, the client 300 outputs a command (write command) corresponding to the record write instruction to the database management apparatus 100 (1). The record management unit 110 registers information related to the record to be written in the record management information 150A (2). In addition, the record management unit 110 outputs a record write command instructed to write to the data storage area 210 of the storage device 200 (3). Note that the order of the above (2) and (3) may be reversed or simultaneous.

また、レコード管理部110は、書き込んだレコードに関する情報およびインデックスの登録指示(または更新指示)をインデックス管理部120に出力する(4)。レコードに関する情報とは、書き込んだレコードに関連付けられたレコードID、書き込んだレコードが属するページID、およびTTL値であるが、例えばレコード管理情報150Aに記憶された管理情報のうち、書き込んだレコードが属するページIDに関連付けられた全レコードの管理情報でもよい。   Also, the record management unit 110 outputs information related to the written record and an index registration instruction (or update instruction) to the index management unit 120 (4). The information related to the record is a record ID associated with the written record, a page ID to which the written record belongs, and a TTL value. For example, the written record belongs to the management information stored in the record management information 150A. The management information of all records associated with the page ID may be used.

インデックス管理部120は、レコード管理部110により得られる情報に基づいて、第1インデックス150Bおよび第2インデックス150Cを生成(新規作成または更新)する(5)、(6)。   The index management unit 120 generates (newly creates or updates) the first index 150B and the second index 150C based on the information obtained by the record management unit 110 (5) and (6).

また、インデックス管理部120は、書き込んだレコードに対する第1インデックス150Bおよび第2インデックス150Cの生成が終了すると、データの書き込み処理が完了したことを示す情報をクライアント300に出力する(7)。   Further, when the generation of the first index 150B and the second index 150C for the written record is completed, the index management unit 120 outputs information indicating that the data writing process is completed to the client 300 (7).

次に、データベース管理装置100におけるガベージコレクション処理の実行時の動作について、図を用いて説明する。図6は、データベース管理装置100におけるガベージコレクション処理の動作例を説明するための図である。   Next, an operation at the time of executing the garbage collection process in the database management apparatus 100 will be described with reference to the drawings. FIG. 6 is a diagram for explaining an operation example of the garbage collection processing in the database management apparatus 100.

無効レコード削除部130は、定期的に、ガベージコレクション処理による無効レコードの削除処理を行う。無効レコード削除部130は、削除処理を実行するタイミングで第1インデックス150Bを参照し(8)、ページIDごとに設定される代表TTL値と、現在時刻とを比較する。比較の結果、現在時刻が代表TTL値を超えている場合、無効レコード削除部130は、その代表TTL値を持つページIDを、無効レコードを削除する対象のページとして抽出する。   The invalid record deletion unit 130 periodically performs invalid record deletion processing by garbage collection processing. The invalid record deletion unit 130 refers to the first index 150B at the timing of executing the deletion process (8), and compares the representative TTL value set for each page ID with the current time. As a result of the comparison, when the current time exceeds the representative TTL value, the invalid record deletion unit 130 extracts the page ID having the representative TTL value as a target page from which the invalid record is deleted.

なお、無効レコード削除部130は、削除処理の時間を調整するため、1回の削除処理で削除対象とするページの最大数を制限してもよい。その場合、無効レコード削除部130は、現在時刻と代表TTL値とを比較し、代表TTL値からの経過時間が大きいページ順に、最大数を超えない数のページIDを抽出する。   Note that the invalid record deletion unit 130 may limit the maximum number of pages to be deleted in one deletion process in order to adjust the deletion process time. In this case, the invalid record deletion unit 130 compares the current time with the representative TTL value, and extracts a number of page IDs that do not exceed the maximum number in the order of pages in which the elapsed time from the representative TTL value is large.

次に、無効レコード削除部130は、レコード管理情報150Aを参照し、削除対象のページに記憶された各レコードのTTL値と現在時刻とを比較し、現在時刻よりも前のTTL値が設定されたレコードの管理情報を削除する(9)。また、無効レコード削除部130は、レコード管理情報150Aに対して上述の削除処理を行うとともに、記憶装置200に記憶された対象レコードを削除する(10)。なお、上記(9)および(10)では、レコード管理情報150Aを参照して削除対象のレコードが抽出された場合に、記憶装置200に記憶された対象レコードを削除した後に、レコード管理情報150Aの管理情報を削除してもよく、またその逆でもよい。   Next, the invalid record deletion unit 130 refers to the record management information 150A, compares the TTL value of each record stored in the page to be deleted with the current time, and sets a TTL value before the current time. The management information of the recorded record is deleted (9). Further, the invalid record deletion unit 130 performs the above-described deletion processing on the record management information 150A and deletes the target record stored in the storage device 200 (10). In (9) and (10) above, when a record to be deleted is extracted with reference to the record management information 150A, the record of the record management information 150A is deleted after deleting the target record stored in the storage device 200. The management information may be deleted and vice versa.

次に、無効レコード削除部130は、インデックス管理部120に第1インデックス150Bおよび第2インデックス150Cを更新する指示を出力する(11)。なお、無効レコード削除部130は、第1インデックス150Bおよび第2インデックス150Cの更新指示とともに、どのページIDのどのレコードが削除されたかを示す情報等をインデックス管理部120に出力する。   Next, the invalid record deletion unit 130 outputs an instruction to update the first index 150B and the second index 150C to the index management unit 120 (11). The invalid record deletion unit 130 outputs, to the index management unit 120, information indicating which record of which page ID has been deleted, as well as instructions for updating the first index 150B and the second index 150C.

インデックス管理部120は、第2インデックス150Cに記憶された情報を参照し、削除対象となったページIDに対する削除前の代表TTL値や付加情報を用いて、第1インデックス150Bを更新する(12)、また、インデックス管理部120は、第1インデックス150Bを生成する際に用いた情報等に基づいて、付加情報を更新し、更新した付加情報を含む第2インデックス150Cを生成する(13)。   The index management unit 120 refers to the information stored in the second index 150C, and updates the first index 150B using the representative TTL value and additional information before deletion for the page ID to be deleted (12). Further, the index management unit 120 updates the additional information based on the information used when generating the first index 150B, and generates the second index 150C including the updated additional information (13).

上述した処理により、ガベージコレクション処理により無効レコードを削除する場合に、レコード管理情報150Aの各レコードを全スキャンするのではなく、ページ単位で大まかに削除の必要性を判定し、無効レコードがページ内にそれほど多くない場合には、無効レコードの物理的な削除を遅延させることができる。これにより、無効レコードの削除に関する処理負荷を軽減することができる。   By deleting the invalid record by the garbage collection process by the above-described process, it is not necessary to scan all the records of the record management information 150A, but roughly determines the necessity of deletion in units of pages, and the invalid record is in the page. If not so many, the physical deletion of invalid records can be delayed. As a result, the processing load related to deletion of invalid records can be reduced.

また、第1インデックス150Bおよび第2インデックス150Cを用いてページごとにインデックス情報を管理することで、インデックスのデータ量を軽減させることができる。   Further, by managing the index information for each page using the first index 150B and the second index 150C, the data amount of the index can be reduced.

次に、上述した代表TTL値の設定について、具体的に説明する。
(代表TTL値を設定する第1の実施例)
図7は、代表TTL値を設定する第1の実施例を示す図である。第1の実施例では、ページ内の各データのそれぞれに割り当てられたTTL値のうち一部または全部に対して統計処理を行った値に基づいて、ページごとに代表TTL値を設定する。例えば、第1の実施例では、同一のページに属するそれぞれのレコードに割り当てられたTTL値に対する割合を基準に、代表TTL値T(P)を設定する。図7において、横軸を時刻とし、Tminは、同一ページ内に含まれる各レコードのTTL値の最小値を示し、Tmaxは、同一ページ内に含まれる各レコードのTTL値の最大値を示す。
Next, the setting of the representative TTL value described above will be specifically described.
(First embodiment for setting a representative TTL value)
FIG. 7 is a diagram showing a first embodiment for setting a representative TTL value. In the first embodiment, a representative TTL value is set for each page based on a value obtained by performing statistical processing on some or all of the TTL values assigned to each data in the page. For example, in the first embodiment, the representative TTL value T (P) is set on the basis of the ratio to the TTL value assigned to each record belonging to the same page. In FIG. 7, the horizontal axis represents time, Tmin indicates the minimum value of the TTL value of each record included in the same page, and Tmax indicates the maximum value of the TTL value of each record included in the same page.

第1の実施例において、割合に対する閾値aを0≦a≦1とする。レコード管理部110は、各ページ内における全レコードのうち、無効レコードの割合がaを超えたときに、削除対象のページとして抽出されるように、代表TTL値T(P)とする。この閾値は、クライアント300から指定されてもよく、インデックス管理部120に予め設定されていてもよい。   In the first embodiment, the threshold value a for the ratio is set to 0 ≦ a ≦ 1. The record management unit 110 sets the representative TTL value T (P) so that when the ratio of invalid records exceeds a among all records in each page, it is extracted as a page to be deleted. This threshold value may be specified by the client 300 or may be set in the index management unit 120 in advance.

例えば、上述した閾値a=0.3とした場合、図7に示すように、そのページ内に含まれる無効レコード数が全レコード数の30%を超えないページについては、無効レコードの削除処理が実行されず、無効レコード数が全レコード数の30%を超えるページについては、無効レコードの削除処理が実行されるように代表TTL値T(P)を設定する。この場合、インデックス管理部120は、例えば、ページ内の全レコードをTTL値でソートし、TTL値の小さい(時刻の早い)方から数えて全レコード数の30%を超えた最初のレコードのTTL値を代表TTL値T(P)に設定する。   For example, when the above-described threshold value a = 0.3, as shown in FIG. 7, the invalid record deletion process is performed for a page in which the number of invalid records included in the page does not exceed 30% of the total number of records. For pages that are not executed and the number of invalid records exceeds 30% of the total number of records, the representative TTL value T (P) is set so that invalid record deletion processing is executed. In this case, for example, the index management unit 120 sorts all the records in the page by the TTL value, and counts the TTL of the first record that exceeds 30% of the total number of records when counting from the smaller TTL value (earlier time). The value is set to the representative TTL value T (P).

また、インデックス管理部120は、ページ内のTmaxとTminとの差分を算出し、その差分値の30%の値と、代表TTL値未満のレコード数C1および代表TTL値以上のレコード数C2の割合とを乗じた値を、Tminに加算することで、代表TTL値T(P)を計算してもよい(T(P)=0.3×(C2/C1)×(Tmax−Tmin)+Tmin)。   Further, the index management unit 120 calculates the difference between Tmax and Tmin in the page, and the ratio of the difference value of 30% and the number of records C1 less than the representative TTL value and the number of records C2 greater than or equal to the representative TTL value. A representative TTL value T (P) may be calculated by adding a value obtained by multiplying to Tmin (T (P) = 0.3 × (C2 / C1) × (Tmax−Tmin) + Tmin). .

なお、閾値a=0とした場合、代表TTL値T(P)は、図7に示すTminと一致する。したがって、ガベージコレクション処理による無効レコードの削除を実行する周期が速くなり、ガベージコレクション処理が厳密になるが、削除処理における処理負荷は高くなる。   When the threshold value a = 0, the representative TTL value T (P) matches Tmin shown in FIG. Therefore, the cycle for executing the deletion of invalid records by the garbage collection process becomes fast and the garbage collection process becomes strict, but the processing load in the deletion process increases.

また、閾値a=1とした場合、代表TTL値T(P)は、図7に示すTmaxと一致する。この場合、ページ中の全レコードが無効レコードになるまで削除操作を遅延させることができるため、ガベージコレクション処理による負荷は最大限軽減できるが、それまで無効レコードがページ内に残ったままとなる。   When the threshold value a = 1, the representative TTL value T (P) matches Tmax shown in FIG. In this case, since the deletion operation can be delayed until all the records in the page become invalid records, the load due to the garbage collection process can be reduced to the maximum, but the invalid records remain in the page until then.

ここで、第1の実施例において、1レコードごとに3レコードまで書き込んだ場合の代表TTL値T(P)の設定例について説明する。例えば、第1の実施例において、あるページに最初のレコードR1が書き込まれた場合、インデックス管理部120は、Tmin=0とし、TmaxをレコードR1のTTL値(T(R1))とする。また、インデックス管理部120は、代表TTL値T(P)=T(R1)とする。   Here, an example of setting the representative TTL value T (P) when up to three records are written for each record in the first embodiment will be described. For example, in the first embodiment, when the first record R1 is written in a certain page, the index management unit 120 sets Tmin = 0 and Tmax is the TTL value (T (R1)) of the record R1. Further, the index management unit 120 sets the representative TTL value T (P) = T (R1).

次に、同一ページに2番目のレコードR2が書き込まれた場合、インデックス管理部120は、TminをレコードR1およびR2のTTL値のうち最も早い方に設定する(Tmin=min(T(R1),T(R2))。また、インデックス管理部120は、TmaxをレコードR1およびR2のTTL値のうち最も遅い方に設定する(Tmax=max(T(R1),T(R2))。   Next, when the second record R2 is written on the same page, the index management unit 120 sets Tmin to the earliest of the TTL values of the records R1 and R2 (Tmin = min (T (R1), In addition, the index management unit 120 sets Tmax to the latest of the TTL values of the records R1 and R2 (Tmax = max (T (R1), T (R2))).

また、インデックス管理部120は、代表TTL値未満のレコード数C1を1とし、代表TTL値以上のレコード数C2を1として、上述した計算式「T(P)=a×(C2/C1)×(Tmax−Tmin)+Tmin」から代表TTL値T(P)を計算する。また、インデックス管理部120は、上述したレコードR2の書き込み時に使用した情報を付加情報として第2インデックス150Cに保存する。このときの付加情報は、Tmin、Tmax、C1、およびC2である。これにより、インデックス管理部120は、ページ内で代表TTL値T(P)を更新する場合に、対象のページ内の全レコードをスキャンせずに、迅速にTmin、Tmax、C1、C2等を取得することができる。   Further, the index management unit 120 sets the number of records C1 less than the representative TTL value to 1, and sets the number of records C2 greater than or equal to the representative TTL value to 1, and calculates the above-described formula “T (P) = a × (C2 / C1) × The representative TTL value T (P) is calculated from (Tmax−Tmin) + Tmin ”. Further, the index management unit 120 stores the information used at the time of writing the record R2 described above in the second index 150C as additional information. The additional information at this time is Tmin, Tmax, C1, and C2. As a result, when updating the representative TTL value T (P) in the page, the index management unit 120 quickly acquires Tmin, Tmax, C1, C2, etc. without scanning all the records in the target page. can do.

更に、同一ページに3番目のレコードR3を書き込む場合、インデックス管理部120は、レコードR3のTTL値T(R3)と、第2インデックス150Cから取得したTmin、Tmaxとを比較して、新たなTminとTmaxを決定するとともに、C1およびC2のいずれかを更新する。また、インデックス管理部120は、レコードR3を登録したページの代表TTL値T(P)を、上述した計算式を用いて再計算する。以下、レコードが書き込まれるごとに同様の処理を行う。   Furthermore, when writing the third record R3 on the same page, the index management unit 120 compares the TTL value T (R3) of the record R3 with the Tmin and Tmax acquired from the second index 150C, and creates a new Tmin. And Tmax are determined, and one of C1 and C2 is updated. Further, the index management unit 120 recalculates the representative TTL value T (P) of the page in which the record R3 is registered using the above-described calculation formula. Thereafter, the same processing is performed every time a record is written.

このように、第1の実施例では、ページ内における全レコードのTTL値の割合(閾値a)に基づいて、代表TTL値T(P)を設定することができる。したがって、例えば記憶装置200の空き容量等に応じて閾値aを動的に変化させることで、適切なタイミングでガベージコレクション処理を実施することができるため、処理負荷を軽減することができる。   Thus, in the first embodiment, the representative TTL value T (P) can be set based on the ratio (threshold value a) of the TTL values of all records in the page. Therefore, for example, by dynamically changing the threshold value a in accordance with the free capacity of the storage device 200 and the like, the garbage collection process can be performed at an appropriate timing, so that the processing load can be reduced.

(代表TTL値を設定する第2の実施例)
次に、代表TTL値を設定する第2の実施例について説明する。図8は、代表TTL値を設定する第2の実施例を示す図である。第2の実施例では、同一のページに属するそれぞれのレコードに割り当てられたTTL値から最大値と最小値とを取得し、取得した最大値および最小値の一方または双方に対する割合に基づいて、代表TTL値を設定する。例えば、インデックス管理部120は、図8に示すように、割合を示す閾値aを0≦a≦1とし、TTL値の最小値から最大値までの区間を「a:1−a」で内分した時刻を代表TTL値T(P)として設定する。
(Second embodiment for setting a representative TTL value)
Next, a second embodiment for setting the representative TTL value will be described. FIG. 8 is a diagram showing a second embodiment for setting a representative TTL value. In the second embodiment, the maximum value and the minimum value are acquired from the TTL values assigned to the respective records belonging to the same page, and based on the ratio to one or both of the acquired maximum value and minimum value, the representative value is obtained. Set the TTL value. For example, as shown in FIG. 8, the index management unit 120 sets the threshold value a indicating the ratio to 0 ≦ a ≦ 1, and internally divides the interval from the minimum value of the TTL value to the maximum value with “a: 1−a”. The set time is set as the representative TTL value T (P).

ここで、第2の実施例において、1レコードごとに3レコードまで書き込んだ場合の代表TTL値T(P)の設定例について説明する。例えば、第1の実施例において、あるページに最初のレコードR1が書き込まれた場合、インデックス管理部120は、Tmin=0とし、TmaxをレコードR1のTTL値(T(R1))とする。また、インデックス管理部120は、代表TTL値T(P)=T(R1)とする。   Here, an example of setting the representative TTL value T (P) when up to three records are written for each record in the second embodiment will be described. For example, in the first embodiment, when the first record R1 is written in a certain page, the index management unit 120 sets Tmin = 0 and Tmax is the TTL value (T (R1)) of the record R1. Further, the index management unit 120 sets the representative TTL value T (P) = T (R1).

次に、同一ページに2番目のレコードR2が書き込まれた場合、インデックス管理部120は、TminをレコードR1およびR2のTTL値のうち最も早い方に設定する(Tmin=min(T(R1),T(R2))。また、インデックス管理部120は、TmaxをレコードR1およびR2のTTL値のうち最も遅い方に設定する(Tmax=max(T(R1),T(R2))。   Next, when the second record R2 is written on the same page, the index management unit 120 sets Tmin to the earliest of the TTL values of the records R1 and R2 (Tmin = min (T (R1), In addition, the index management unit 120 sets Tmax to the latest of the TTL values of the records R1 and R2 (Tmax = max (T (R1), T (R2))).

また、第2の実施例において、インデックス管理部120は、ページ内のTmaxとTminとの差分を算出し、その差分値に閾値aを乗じた値を、Tminに加算することで代表TTL値T(P)を計算する(T(P)=a×(Tmax−Tmin)+Tmin)。また、インデックス管理部120は、上述したレコードR2の書き込み時に使用した情報を付加情報Dして第2インデックス150Cに保存する。このときの付加情報は、TminおよびTmaxである。   In the second embodiment, the index management unit 120 calculates the difference between Tmax and Tmin in the page, and adds a value obtained by multiplying the difference value by the threshold value a to the Tmin, thereby representing the representative TTL value T (P) is calculated (T (P) = a × (Tmax−Tmin) + Tmin). Further, the index management unit 120 stores the information used at the time of writing the record R2 as additional information D in the second index 150C. The additional information at this time is Tmin and Tmax.

更に、同一ページに3番目のレコードR3を書き込む場合、インデックス管理部120は、レコードR3のTTL値T(R3)と、第2インデックス150Cから取得したTmin、Tmaxとを比較して、新たなTminとTmaxとを決定する。また、インデックス管理部120は、レコードR3を登録したページの代表TTL値T(P)を上述した計算式を用いて再計算する。以下、レコードが書き込まれるごとに同様の処理を行う。なお、インデックス管理部120は、代表TTL値T(P)の計算において、上述したTTL値の最小値または最大値のうち、いずれかの値を任意に設定してもよい。   Furthermore, when writing the third record R3 on the same page, the index management unit 120 compares the TTL value T (R3) of the record R3 with the Tmin and Tmax acquired from the second index 150C, and creates a new Tmin. And Tmax are determined. Further, the index management unit 120 recalculates the representative TTL value T (P) of the page in which the record R3 is registered using the above-described calculation formula. Thereafter, the same processing is performed every time a record is written. Note that the index management unit 120 may arbitrarily set one of the above-described minimum or maximum TTL values in the calculation of the representative TTL value T (P).

このように、第2の実施例では、ページ内における全レコードのTTL値の最大値と最小値とのうち一方または双方に基づいて、代表TTL値T(P)を設定することで、ページ内の無効レコードを適切なタイミングで削除することができる。したがって、適切なタイミングでガベージコレクション処理を実施することができるため、処理負荷を軽減することができる。   As described above, in the second embodiment, the representative TTL value T (P) is set on the basis of one or both of the maximum value and the minimum value of the TTL values of all the records in the page. Invalid records can be deleted at an appropriate time. Therefore, since the garbage collection process can be performed at an appropriate timing, the processing load can be reduced.

(代表TTL値を設定する第3の実施例)
次に、代表TTL値を設定する第3の実施例について説明する。図9は、代表TTL値を設定する第3の実施例を示す図である。第3の実施例では、同一のページに属するそれぞれのレコードのサイズ(レコード長)に基づいて代表TTL値T(P)を設定する。例えば、インデックス管理部120は、そのページにおける各レコードのレコード長とTTL値との積の総和S(P)、および各レコードのレコード長の総和L(P)を計算し、代表TTL値T(P)をS(P)/L(P)として設定する。また、第3の実施例における付加情報D(P)は、L(P)とする。
(Third embodiment for setting a representative TTL value)
Next, a third embodiment for setting the representative TTL value will be described. FIG. 9 is a diagram showing a third embodiment for setting a representative TTL value. In the third embodiment, the representative TTL value T (P) is set based on the size (record length) of each record belonging to the same page. For example, the index management unit 120 calculates the sum S (P) of the product of the record length of each record in the page and the TTL value, and the sum L (P) of the record length of each record, and represents the representative TTL value T ( P) is set as S (P) / L (P). Further, the additional information D (P) in the third embodiment is L (P).

例えば、第3の実施例において、レコード長L(R)、TTL値T(R)のレコードを追加する場合、インデックス管理部120は、新しいページ代表有効期限T(P’)を、「T(P’)=S(P’)/L(P’)=(T(P)×D(P)+T(R)×L(R))/(D(P)+L(R))」として計算する。ここでの付加情報D(P)は、L(P)と等価であるため、そのページ内の全てのレコードのレコード長の総和を保持している。なお、上記の計算式において、初回のレコード追加時は、D(P)=0として計算される。   For example, in the third embodiment, when adding a record having a record length L (R) and a TTL value T (R), the index management unit 120 sets a new page representative expiration date T (P ′) to “T ( P ′) = S (P ′) / L (P ′) = (T (P) × D (P) + T (R) × L (R)) / (D (P) + L (R)) ” To do. Since the additional information D (P) here is equivalent to L (P), it holds the total record length of all the records in the page. In the above calculation formula, when the first record is added, it is calculated as D (P) = 0.

ここで、第3の実施例において、1レコードごとに3レコードまで書き込んだ場合の代表TTL値T(P)の設定例について説明する。第1の実施例において、あるページに最初のレコードR1(レコード長L(R1))が書き込まれた場合、インデックス管理部120は、代表TTL値T(P)をレコードR1のTTL値T(R1)とする。また、インデックス管理部120は、上述したレコードR1の書き込み時に使用した情報を付加情報D(P)として第2インデックス150Cに保存する。このときの付加情報D(P)は、L(R1)である。   Here, an example of setting the representative TTL value T (P) when up to three records are written for each record in the third embodiment will be described. In the first embodiment, when the first record R1 (record length L (R1)) is written on a page, the index management unit 120 sets the representative TTL value T (P) to the TTL value T (R1) of the record R1. ). Further, the index management unit 120 stores the information used at the time of writing the record R1 described above in the second index 150C as additional information D (P). The additional information D (P) at this time is L (R1).

次に、同一ページに、2番目のレコードR2(レコード長L(R2)(例えば、L(R2)>L(R1)))が書き込まれた場合、インデックス管理部120は、代表TTL値T(P)、これまで追加したレコード長の総和D(P)、レコードR2のTTL値T(R2)、およびレコード長L(R2)を用いて、計算した値T(P’)で代表TTL値T(P)を再設定する(T(P’)=(T(P)×D(P)+T(R2)×L(R2))/(D(P)+L(R2)))。なお、付加情報D(P)は、例えば第2インデックス150Cから取得される。また、レコードR2の書き込み後の付加情報D(P)は、「D(P)=D(P)+L(R2)」として設定される。すなわち、図9に示すように、再設定されたページ有効期限T(P’)は、T(P)とT(R2)をL(R2):L(P)に内分する値として設定される。   Next, when the second record R2 (record length L (R2) (for example, L (R2)> L (R1))) is written on the same page, the index management unit 120 displays the representative TTL value T ( P), using the total value D (P) of the record lengths added so far, the TTL value T (R2) of the record R2, and the record length L (R2), the calculated value T (P ′) represents the representative TTL value T (P) is reset (T (P ′) = (T (P) × D (P) + T (R2) × L (R2)) / (D (P) + L (R2))). Note that the additional information D (P) is acquired from, for example, the second index 150C. Further, the additional information D (P) after writing the record R2 is set as “D (P) = D (P) + L (R2)”. That is, as shown in FIG. 9, the reset page expiration date T (P ′) is set as a value that internally divides T (P) and T (R2) into L (R2): L (P). The

更に、同一ページに新しいレコードR3(レコード長L(R3))が書き込まれた場合、インデックス管理部120は、代表TTL値T(P)、これまで追加したレコード長の総和D(P)、レコードR3のTTL値T(R3)、およびレコード長L(R3)を用いて、上述した計算式によって同様にT(P’)を計算し、計算した値で代表TTL値T(P)を再設定する。以下、レコードが書き込まれるごとに同様の処理を行う。   Furthermore, when a new record R3 (record length L (R3)) is written on the same page, the index management unit 120 displays the representative TTL value T (P), the total sum D (P) of the record lengths added so far, Using the TTL value T (R3) of R3 and the record length L (R3), T (P ′) is calculated in the same manner by the above-described formula, and the representative TTL value T (P) is reset with the calculated value. To do. Thereafter, the same processing is performed every time a record is written.

なお、第3の実施例においては、例えば、ユーザ等により指定可能な係数(重み)を用いて計算してもよい。例えば、インデックス管理部120は、係数βを設定し、設定した計数βをレコードのTTL値T(R)に付加して代表TTL値T(P)を計算してもよい(β×T(R))。この場合、インデックス管理部120は、新しいページ代表有効期限T(P’)を「T(P’)=(T(P)×D(P)+β×T(R)×L(R))/(D(P)+L(R))」として計算する。   In the third embodiment, for example, calculation may be performed using a coefficient (weight) that can be specified by the user or the like. For example, the index management unit 120 may set the coefficient β, add the set count β to the TTL value T (R) of the record, and calculate the representative TTL value T (P) (β × T (R) )). In this case, the index management unit 120 sets the new page representative expiration date T (P ′) to “T (P ′) = (T (P) × D (P) + β × T (R) × L (R)) / Calculate as (D (P) + L (R)) ".

これにより、インデックス管理部120は、レコードサイズと、有効期限とのうち、いずれかの値を優先させることができる。例えば、上述の例において、係数βを、β>1とした場合には有効期限を優先させることができ、β<1の場合にはレコード長を優先させることができる。   Thereby, the index management part 120 can give priority to either value among a record size and an expiration date. For example, in the above-described example, when the coefficient β is β> 1, the expiration date can be prioritized, and when β <1, the record length can be prioritized.

このように、第3の実施例では、ページ内における各レコードのレコードサイズに基づいて、代表TTL値T(P)を設定することで、例えばレコードサイズが大きいレコードが多いページを優先して、ガベージコレクション処理を実施することができる。   As described above, in the third embodiment, by setting the representative TTL value T (P) based on the record size of each record in the page, for example, a page with many records having a large record size is given priority. A garbage collection process can be performed.

なお、本実施形態における代表TTL値の設定例は、上述した第1〜第3の実施例に限定されるものではなく、例えば各実施例のうち、全部または一部を他の実施例と組み合わせてもよい。また、インデックス管理部120は、同一のページに属するそれぞれのレコードのうち、ランダムに選択したレコードのTTL値を代表TTL値に設定してもよい。また、インデックス管理部120は、クライアント300からの指示やデータの種類、用途等に応じて各実施例を動的に変更させてもよい。上述した各実施例では、インデックス管理部120が代表TTL値の設定を行うが、これに代えてレコード管理部110が行ってもよい。   In addition, the setting example of the representative TTL value in the present embodiment is not limited to the first to third examples described above, and for example, all or a part of each example is combined with another example. May be. The index management unit 120 may set the TTL value of a randomly selected record among the records belonging to the same page as the representative TTL value. Further, the index management unit 120 may dynamically change each embodiment according to the instruction from the client 300, the type of data, the usage, and the like. In each of the above-described embodiments, the index management unit 120 sets the representative TTL value, but the record management unit 110 may perform this instead.

次に、ガベージコレクション処理における無効レコードの削除の具体例について、図を用いて説明する。図10は、削除対象ページの抽出例を説明するための図である。なお、図10(A)は、レコード管理情報150Aで管理される記憶装置200に記憶されたレコードの一例を示す。図10(A)の例では、各ページ(ID(P))に記憶されたレコードが示されている。また、図10(B)は、第1インデックス150Bを示し、図10(C)は、第2インデックス150Cを示す。   Next, a specific example of deleting invalid records in the garbage collection process will be described with reference to the drawings. FIG. 10 is a diagram for explaining an example of extracting a deletion target page. FIG. 10A shows an example of a record stored in the storage device 200 managed by the record management information 150A. In the example of FIG. 10A, records stored in each page (ID (P)) are shown. FIG. 10B shows the first index 150B, and FIG. 10C shows the second index 150C.

なお、以下の例では、便宜上、レコード管理情報150A内にある複数のページのうち、ページID(P)=1〜3のそれぞれに含まれるレコード例を示すが、レコード数については、これに限定されるものではない。また、代表TTL値の設定については、上述した第1の実施例における設定手法を用いるものとし、無効レコードの割合の閾値a=0.3とする。また、現在の時刻を「1/20 22:30:00」として説明する。   In the following example, for convenience, a record example included in each of page IDs (P) = 1 to 3 among a plurality of pages in the record management information 150A is shown, but the number of records is limited to this. Is not to be done. For setting the representative TTL value, the setting method in the first embodiment described above is used, and the threshold a for the ratio of invalid records is set to 0.3. Also, the current time will be described as “1/20 22:30”.

図10(A)の例では、ページID(P)=1として、Record1−1〜Record1−6が示されているが、レコード数については、これに限定されない。ここで、Record1−1〜Record1−4は、無効レコードであり、Record1−5およびRecord1−6は、有効期限を徒過していないレコード(有効レコード)であるとする。   In the example of FIG. 10A, Record 1-1 to Record 1-6 are shown with page ID (P) = 1, but the number of records is not limited to this. Here, it is assumed that Records 1-1 to Records 1-4 are invalid records, and Records 1-5 and Records 1-6 are records that have not expired (valid records).

インデックス管理部120は、第1の実施例における設定手法により、Record1−5に設定されたTTL値を、代表TTL値T(P)に設定したとする。この場合、インデックス管理部120は、Record1−5に設定されたTTL値を、ページID(ID(P))と対応付けて第1インデックス150Bに出力する。また、インデックス管理部120は、上述した代表TTL値T(P)と、ページID(ID(P))と、代表TTL値の設定時に用いた情報を含む付加情報D(P)とを対応付けて第2インデックス150Cに出力する。   Assume that the index management unit 120 sets the TTL value set in Record 1-5 to the representative TTL value T (P) by the setting method in the first embodiment. In this case, the index management unit 120 outputs the TTL value set in Record 1-5 to the first index 150B in association with the page ID (ID (P)). Also, the index management unit 120 associates the above-described representative TTL value T (P), page ID (ID (P)), and additional information D (P) including information used when setting the representative TTL value. To the second index 150C.

また、ページID(P)=2において、Record2−1〜Record2−3は、無効レコードであり、Record2−4〜Record2−6は、有効レコードであるとする。また、インデックス管理部120は、第1の実施例における設定手法により、Record2−3に設定されたTTL値を、代表TTL値T(P)に設定したとする。この場合、インデックス管理部120は、Record2−3に設定されたTTL値を、ページID(ID(P))と対応付けて第1インデックス150Bに出力する。また、インデックス管理部120は、上述した代表TTL値T(P)と、ページID(ID(P))と、代表TTL値の設定時に用いた情報を含む付加情報D(P)とを対応付けて第2インデックス150Cに出力する。   Further, in the page ID (P) = 2, it is assumed that Records 2-1 to 2-3 are invalid records, and Records 2-4 to 2-6 are valid records. Further, it is assumed that the index management unit 120 sets the TTL value set in Record 2-3 to the representative TTL value T (P) by the setting method in the first embodiment. In this case, the index management unit 120 outputs the TTL value set in Record 2-3 to the first index 150B in association with the page ID (ID (P)). Also, the index management unit 120 associates the above-described representative TTL value T (P), page ID (ID (P)), and additional information D (P) including information used when setting the representative TTL value. To the second index 150C.

また、ページID(P)=3において、Record3−1〜Record3−5は、無効レコードであり、Record3−6は、有効レコードであるとする。また、インデックス管理部120は、第1の実施例における設定手法により、Record3−5に設定されたTTL値を、代表TTL値T(P)に設定したとする。この場合、インデックス管理部120は、Record3−5に設定されたTTL値を、ページID(ID(P))と対応付けて第1インデックス150Bに出力する。また、インデックス管理部120は、上述した代表TTL値T(P)と、ページID(ID(P))と、代表TTL値の設定時に用いた情報を含む付加情報D(P)とを対応付けて第2インデックス150Cに出力する。   In addition, in the page ID (P) = 3, it is assumed that Records 3-1 to 3-5 are invalid records and Record 3-6 is a valid record. Further, it is assumed that the index management unit 120 sets the TTL value set in Record 3-5 to the representative TTL value T (P) by the setting method in the first embodiment. In this case, the index management unit 120 outputs the TTL value set in Record 3-5 to the first index 150B in association with the page ID (ID (P)). Also, the index management unit 120 associates the above-described representative TTL value T (P), page ID (ID (P)), and additional information D (P) including information used when setting the representative TTL value. To the second index 150C.

第1インデックス150Bには、上述した各ページを代表する代表TTL値(T(P))と、ページID(ID(P))とが対応付けられて保存される。また、第1インデックス150Bは、例えば代表TTL値ごとに昇順にソートされる。   In the first index 150B, the representative TTL value (T (P)) representing each page described above and the page ID (ID (P)) are stored in association with each other. The first index 150B is sorted in ascending order, for example, for each representative TTL value.

また、第2インデックス150Cには、ページID(ID(P))を基準に、代表TTL値T(P)と、付加情報D(P)とが対応付けられて保存される。付加情報A1〜A3の内容としては、例えば上述したTmin、Tmax、C1、C2であるが、これに限定されるものではない。また、第2インデックス150Cは、例えばページID(P)ごとに昇順にソートされる。   The second index 150C stores the representative TTL value T (P) and the additional information D (P) in association with each other on the basis of the page ID (ID (P)). The contents of the additional information A1 to A3 are, for example, Tmin, Tmax, C1, and C2 described above, but are not limited thereto. The second index 150C is sorted in ascending order, for example, for each page ID (P).

無効レコード削除部130は、上述した第1インデックス150Bを用いて削除対象のページを抽出し、抽出したページ内に存在する有効期限を徒過したレコードの削除を行う。例えば、図10(B)の例の場合、現在時刻「1/20 22:30:00」より前の代表TTL値を有するページIDは、ID(P)=2および3となる。したがって、無効レコード削除部130は、ID(P)=2および3に含まれるレコードから無効レコードを削除する。   The invalid record deletion unit 130 extracts a page to be deleted using the first index 150B described above, and deletes a record that has expired and exists in the extracted page. For example, in the case of the example of FIG. 10B, page IDs having a representative TTL value before the current time “1/20 22:30” are ID (P) = 2 and 3. Therefore, the invalid record deletion unit 130 deletes invalid records from the records included in ID (P) = 2 and 3.

図11は、削除処理実行後の各ページの様子とインデックスの更新例を示す図である。図11の例では、上述した図10の例のうち、ID(P)=2および3に対して無効レコードを削除した各ページの様子と、無効レコードの削除後に、第1インデックス150Bおよび第2インデックス150Cの再生成を行った例を示す。   FIG. 11 is a diagram illustrating a state of each page after execution of the deletion process and an index update example. In the example of FIG. 11, in the example of FIG. 10 described above, the state of each page in which the invalid record is deleted for ID (P) = 2 and 3, and the first index 150B and the second index after the invalid record is deleted. An example in which the index 150C is regenerated is shown.

図11(A)において、ID(P)=2には、Record2−4〜Record2−6が、有効レコードとして存在する。この場合、インデックス管理部120は、上述した第1の実施例に示す設定手法により、Record2−5に設定されたTTL値を代表TTL値T(P)として設定し、ページID(ID(P))とともに第1インデックス150Bに出力する。また、インデックス管理部120は、上述した代表TTL値T(P)と、ページID(ID(P))と、付加情報D(P)とを、第2インデックス150Cに出力する。   In FIG. 11A, Record2-4 to Record2-6 exist as valid records at ID (P) = 2. In this case, the index management unit 120 sets the TTL value set in Record 2-5 as the representative TTL value T (P) by the setting method shown in the first embodiment described above, and the page ID (ID (P) ) And the first index 150B. Further, the index management unit 120 outputs the above-described representative TTL value T (P), page ID (ID (P)), and additional information D (P) to the second index 150C.

また、ID(P)=3には、Record3−6が、有効レコードとして存在する。この場合、ページ内のレコードが1つしか存在しないため、インデックス管理部120は、Record3−6に設定されたTTL値を代表TTL値T(P)として、ページID(ID(P))とともに第1インデックス150Bに出力する。また、インデックス管理部120は、上述した代表TTL値と、ページIDと、付加情報D(P)とを、第2インデックス150Cに出力する。   In addition, Record 3-6 exists as a valid record at ID (P) = 3. In this case, since there is only one record in the page, the index management unit 120 uses the TTL value set in Record 3-6 as the representative TTL value T (P) and the page ID (ID (P)). 1 index is output to 150B. Also, the index management unit 120 outputs the above-described representative TTL value, page ID, and additional information D (P) to the second index 150C.

無効レコード削除部130は、新たに生成した第1インデックス150Bおよび第2インデックス150Cに基づいて、所定のタイミングで無効レコードの削除を行うページを抽出し、抽出したページに対して有効期限切れのレコードの削除を行う。   The invalid record deletion unit 130 extracts a page from which invalid records are deleted at a predetermined timing based on the newly generated first index 150B and second index 150C, and records an expired record with respect to the extracted page. Perform deletion.

また、図12は、ページにレコードが追加された場合のインデックスの生成例を示す図である。図12では、図10に示す各ページのうち、ページID(P)=1に対して新規に1つのレコード(Record1−7)を追加した例を示す。   FIG. 12 is a diagram illustrating an example of index generation when a record is added to a page. FIG. 12 shows an example in which one record (Record 1-7) is newly added to page ID (P) = 1 among the pages shown in FIG.

この場合、インデックス管理部120は、レコードの追加されたページID(P)=1に対し、代表TTL値の再計算を行い、計算された代表TTL値に基づいて、第1インデックス150Bおよび第2インデックス150Cを更新する。なお、ID(P)=2および3については、図10と同じ内容であるため、第1インデックス150Bおよび第2インデックス150Cに含まれる対象のデータについては更新されず、ID(P)=1に対応するデータに対して更新が行われる。   In this case, the index management unit 120 performs recalculation of the representative TTL value for the page ID (P) = 1 to which the record is added, and based on the calculated representative TTL value, the first index 150B and the second index TTL value are calculated. The index 150C is updated. Since ID (P) = 2 and 3 have the same contents as in FIG. 10, the target data included in the first index 150B and the second index 150C is not updated, and ID (P) = 1. Updates are made to the corresponding data.

例えば、インデックス管理部120は、上述した第1の実施例の設定手法により、新たに追加したレコード(Record1−7)のTTL値を代表TTL値として設定したとする。この場合、インデックス管理部120は、第1インデックス150Bおよび第2インデックス150CにおけるID(P)=1における管理情報を更新する。これにより、無効レコード削除部130は、更新された第1インデックス150Bを用いて無効レコードの削除を行うページを抽出することができ、抽出したページに含まれる無効レコードを削除することができる。なお、図12の例では、現在時刻を「1/20 22:30:00」とした場合、削除対象のページは、ID(P)=1〜3となる。   For example, it is assumed that the index management unit 120 sets the TTL value of the newly added record (Record 1-7) as the representative TTL value by the setting method of the first embodiment described above. In this case, the index management unit 120 updates the management information for ID (P) = 1 in the first index 150B and the second index 150C. Accordingly, the invalid record deletion unit 130 can extract a page from which the invalid record is deleted using the updated first index 150B, and can delete the invalid record included in the extracted page. In the example of FIG. 12, if the current time is “1/20 22:30”, the pages to be deleted are ID (P) = 1-3.

次に、データベース管理装置100の各種処理内容について、フローチャートを用いて具体的に説明する。図13は、データベース管理装置100におけるレコード書き込み処理(新規登録)の一例を示すフローチャートである。図13の例において、レコード管理部110は、クライアント300からレコードの書き込み指示を受け付ける(ステップS100)。   Next, various processing contents of the database management apparatus 100 will be specifically described with reference to flowcharts. FIG. 13 is a flowchart illustrating an example of a record writing process (new registration) in the database management apparatus 100. In the example of FIG. 13, the record management unit 110 receives a record write instruction from the client 300 (step S100).

次に、レコード管理部110は、レコードに関する管理情報を記憶部150に記憶されたレコード管理情報150Aに書き込む(ステップS102)。なお、ステップS102の処理では、レコード管理部110は、そのレコードを記憶したテーブルおよびページの情報をレコード管理情報150Aに書き込む。管理情報には、上述したようにページIDと、レコードIDと、必要に応じてTTL値とを含む。   Next, the record management unit 110 writes the management information regarding the record in the record management information 150A stored in the storage unit 150 (step S102). In the process of step S102, the record management unit 110 writes the table and page information storing the record in the record management information 150A. As described above, the management information includes a page ID, a record ID, and a TTL value as necessary.

次に、レコード管理部110は、レコードを記憶装置200に書き込む(ステップS104)。ステップS104では、レコード管理部110は、レコード管理情報150AのページIDやレコードIDに対応して割り当てられたデータ記憶領域210の領域にレコードを書き込む。なお、レコード管理部110は、記憶装置200に対してレコードを書き込ませるコマンドを発行する。上述したステップS102およびステップS104の処理は、逆の順序で行ってもよく、同時に行ってもよい。   Next, the record management unit 110 writes a record in the storage device 200 (step S104). In step S104, the record management unit 110 writes a record in the area of the data storage area 210 allocated corresponding to the page ID and record ID of the record management information 150A. Note that the record management unit 110 issues a command for writing a record to the storage device 200. The processes in steps S102 and S104 described above may be performed in the reverse order or simultaneously.

次に、レコード管理部110は、レコードの書き込みに成功したか否かを判定する(ステップS106)。レコードの書き込みに成功した場合、レコード管理部110は、書き込まれたレコードにTTL値が設定されているか否かを判定する(ステップS108)。TTL値が設定されている場合、レコード管理部110は、書き込んだレコードに割り当てたページIDと、レコードIDと、TTL値とを、インデックス生成指示とともにインデックス管理部120に通知し、インデックス管理部120におけるインデックス生成処理を実行する(ステップS110)、インデックス生成処理の詳細については、後述する。   Next, the record management unit 110 determines whether the record has been successfully written (step S106). When the record is successfully written, the record management unit 110 determines whether a TTL value is set for the written record (step S108). When the TTL value is set, the record management unit 110 notifies the index management unit 120 of the page ID assigned to the written record, the record ID, and the TTL value together with the index generation instruction. The index generation process is executed (step S110). Details of the index generation process will be described later.

ステップS108の処理において、TTL値が設定されていない場合、またはステップS110の処理後、レコード管理部110は、レコードの書き込みが成功したことを示す情報をクライアント300に出力する(ステップS112)。また、上述したステップS106の処理において、レコードの書き込みに成功しなかった場合、レコード管理部110は、書き込みが失敗した原因に対応するエラー情報をクライアント300に出力する(ステップS114)。書き込みが失敗した原因としては、例えば記憶装置200の空き容量が不足している場合があるが、これに限定されるものではない。   When the TTL value is not set in the process of step S108, or after the process of step S110, the record management unit 110 outputs information indicating that the record has been successfully written to the client 300 (step S112). If the record writing is not successful in the process of step S106 described above, the record management unit 110 outputs error information corresponding to the cause of the writing failure to the client 300 (step S114). As a cause of the writing failure, for example, there is a case where the free capacity of the storage device 200 is insufficient, but it is not limited to this.

図14は、インデックス生成処理の一例を示すフローチャートである。図14の例において、インデックス管理部120は、インデックス生成指示を受け付ける(ステップS200)。インデックス管理部120は、インデックス生成指示とともに受け付けたページIDが記憶部150に記憶された第1インデックス150Bに存在するか否かを判定する(ステップS202)。   FIG. 14 is a flowchart illustrating an example of the index generation process. In the example of FIG. 14, the index management unit 120 accepts an index generation instruction (step S200). The index management unit 120 determines whether or not the page ID received together with the index generation instruction exists in the first index 150B stored in the storage unit 150 (step S202).

ページIDが第1インデックス150Bに存在する場合、第1インデックス150Bの対象ページに対応するインデックスを更新する(ステップS204)。なお、ステップS204の処理では、記憶部150に記憶された第2インデックス150Cの付加情報を用いてインデックスを更新してもよい。また、第1インデックス150Bを更新した後、第2インデックス150Cを更新してもよい。   When the page ID exists in the first index 150B, the index corresponding to the target page of the first index 150B is updated (step S204). In the process of step S204, the index may be updated using the additional information of the second index 150C stored in the storage unit 150. Further, the second index 150C may be updated after the first index 150B is updated.

また、ページIDが第1インデックス150Bに存在しない場合、第1インデックス150Bに、該当ページIDに対するインデックスを新規作成する(ステップS206)。作成された第1インデックス150Bは、記憶部150に記憶される。なお、ステップS206の処理では、第1インデックス150Bを新規作成した後、第2インデックス150Cを新規作成してもよい。この場合、作成された第2インデックス150Cも、記憶部150に記憶される。   If the page ID does not exist in the first index 150B, an index for the corresponding page ID is newly created in the first index 150B (step S206). The created first index 150B is stored in the storage unit 150. In the process of step S206, the second index 150C may be newly created after the first index 150B is newly created. In this case, the created second index 150C is also stored in the storage unit 150.

次に、データベース管理装置100におけるレコード書き込み処理(更新)の一例について、フローチャートを用いて説明する。図15は、データベース管理装置100におけるレコード書き込み処理(更新)の一例を示すフローチャートである。なお、以下の説明では、上述した書き込み処理(新規登録)と区別するため、更新に関する書き込み指示を更新指示として説明する。   Next, an example of record write processing (update) in the database management apparatus 100 will be described using a flowchart. FIG. 15 is a flowchart illustrating an example of record write processing (update) in the database management apparatus 100. In the following description, a write instruction related to update will be described as an update instruction in order to distinguish from the above-described write process (new registration).

図15の例において、レコード管理部110は、レコードの更新指示を受け付けると、(ステップS300)、記憶部150に記憶されたレコード管理情報150Aから対象レコードの管理情報を抽出し、抽出した管理情報を更新する(ステップS302)。なお、ステップS302の処理では、例えばTTL値が更新された場合には、レコード内のTTL値を更新する。また、レコード管理部110は、記憶装置200に記憶されたレコードを更新する。(ステップS304)。なお、上述したステップS302およびステップS304の処理は、逆の順序で行ってもよく、同時に行ってもよい。   In the example of FIG. 15, when the record management unit 110 receives a record update instruction (step S300), the record management unit 110 extracts the management information of the target record from the record management information 150A stored in the storage unit 150, and extracts the extracted management information. Is updated (step S302). In the process of step S302, for example, when the TTL value is updated, the TTL value in the record is updated. Further, the record management unit 110 updates the record stored in the storage device 200. (Step S304). Note that the processes in steps S302 and S304 described above may be performed in the reverse order, or may be performed simultaneously.

次に、レコード管理部110は、レコードの更新に成功したか否かを判定する(ステップS306)。レコードの更新に成功した場合、レコード管理部110は、更新したレコードにTTL値が設定されていたか否かを判定する(ステップS308)。TTL値が設定されていた場合、レコード管理部110は、そのレコードが属するページID、レコードID、およびTTL値を、インデックス管理部120に出力し、上述したインデックス生成処理を行う(ステップS310)。   Next, the record management unit 110 determines whether or not the record update is successful (step S306). When the record update is successful, the record management unit 110 determines whether a TTL value has been set for the updated record (step S308). When the TTL value is set, the record management unit 110 outputs the page ID, record ID, and TTL value to which the record belongs to the index management unit 120, and performs the above-described index generation process (step S310).

ステップS308の処理において、更新したレコードにTTL値が設定されていない場合、またはステップS310の処理後、レコード管理部110は、レコードの更新が成功したことを示す情報をクライアント300に出力する(ステップS312)。また、上述したステップS306の処理において、削除が成功しなかった場合、レコード管理部110は、削除が失敗した原因に対応するエラー情報をクライアント300に出力する(ステップS314)。更新が失敗した原因としては、例えば、記憶装置200が排他制御されていてアクセスできない場合があるが、これに限定されるものではない。   In the process of step S308, when the TTL value is not set in the updated record or after the process of step S310, the record management unit 110 outputs information indicating that the record update is successful to the client 300 (step S308). S312). If the deletion is not successful in the process of step S306 described above, the record management unit 110 outputs error information corresponding to the cause of the deletion failure to the client 300 (step S314). As a cause of the update failure, for example, the storage device 200 may be inaccessible and cannot be accessed, but is not limited thereto.

次に、データベース管理装置100におけるレコード読み出し処理についてフローチャートを用いて説明する。図16は、データベース管理装置100におけるレコード読み出し処理の一例を示すフローチャートである。   Next, a record reading process in the database management apparatus 100 will be described using a flowchart. FIG. 16 is a flowchart illustrating an example of a record reading process in the database management apparatus 100.

図16の例において、レコード管理部110は、クライアント300からのレコードの読み出し指示を受け付けると(ステップS400)、記憶部150に記憶されたレコード管理情報150Aを参照し、対象レコードの管理情報を取得する(ステップS402)。   In the example of FIG. 16, when the record management unit 110 receives a record read instruction from the client 300 (step S400), the record management unit 110 refers to the record management information 150A stored in the storage unit 150 and acquires the management information of the target record. (Step S402).

次に、レコード管理部110は、対象レコードの管理情報の取得に成功したか否かを判定する(ステップS404)。管理情報の取得に成功した場合、レコード管理部110は、その対象レコードのTTL値を取得し(ステップS406)、現在時刻がTTL値を超えているか否かを判定する(ステップS408)。   Next, the record management unit 110 determines whether the management information of the target record has been successfully acquired (step S404). When the management information is successfully acquired, the record management unit 110 acquires the TTL value of the target record (step S406), and determines whether the current time exceeds the TTL value (step S408).

現在時刻がTTL値を超えている場合、そのレコードは有効期限を徒過しているため、レコード管理部110は、レコードが存在しない旨のエラー情報をクライアント300に出力する(ステップS410)。また、現在時刻がTTL値を超えていない場合、有効レコードであるため、レコード管理部110は、記憶装置200から対象レコードを取得し、取得した対象レコードをクライアント300に出力する(ステップS412)。   If the current time exceeds the TTL value, the record has passed the expiration date, and the record management unit 110 outputs error information indicating that no record exists to the client 300 (step S410). If the current time does not exceed the TTL value, the record management unit 110 acquires the target record from the storage device 200 and outputs the acquired target record to the client 300 (step S412).

また、ステップS404の処理において、管理情報の取得に成功しなかった場合、失敗した原因に基づくエラー情報をクライアント300に出力する(ステップS414)。管理情報の取得が失敗した原因としては、例えばレコード管理情報150Aに対象レコードの管理情報が存在していない場合があるが、これに限定されるものではない。   If the management information is not successfully acquired in the process of step S404, error information based on the cause of the failure is output to the client 300 (step S414). For example, the management information of the target record may not exist in the record management information 150A as a cause of the failure in acquiring the management information, but is not limited thereto.

次に、データベース管理装置100におけるレコード削除処理の一例についてフローチャートを用いて説明する。図17は、データベース管理装置100におけるレコード削除処理の一例を示すフローチャートである。なお、図17の例は、例えばガベージコレクション処理における周期的なレコードの削除ではなく、クライアント300からの削除指示に基づいて、対応するレコードを削除する処理である。この処理において、削除されるレコードは、有効レコードでも無効レコードでもよい。   Next, an example of record deletion processing in the database management apparatus 100 will be described using a flowchart. FIG. 17 is a flowchart illustrating an example of a record deletion process in the database management apparatus 100. Note that the example of FIG. 17 is a process of deleting a corresponding record based on a deletion instruction from the client 300 instead of a periodic record deletion in the garbage collection process, for example. In this processing, the record to be deleted may be a valid record or an invalid record.

図17の例において、レコード管理部110は、レコードの削除指示を受け付けると(ステップS500)、記憶部150に記憶されたレコード管理情報150Aを参照し、対象レコードの管理情報を削除する(ステップS502)。また、レコード管理部110は、対象レコードを記憶装置200から削除する(ステップS504)。なお、上述したステップS502およびステップS504の処理は、逆の順序で行ってもよく、同時に行ってもよい。   In the example of FIG. 17, when receiving a record deletion instruction (step S500), the record management unit 110 refers to the record management information 150A stored in the storage unit 150 and deletes the management information of the target record (step S502). ). In addition, the record management unit 110 deletes the target record from the storage device 200 (step S504). Note that the above-described processing of step S502 and step S504 may be performed in the reverse order, or may be performed simultaneously.

次に、レコード管理部110は、レコードの削除に成功したか否かを判定する(ステップS506)。レコードの削除に成功した場合、レコード管理部110は、削除したレコードにTTL値が設定されていたか否かを判定する(ステップS508)。TTL値が設定されていた場合、そのレコードが属するページID、レコードID、およびTTL値を、インデックス管理部120に出力し、上述したインデックス生成処理を行う(ステップS510)。   Next, the record management unit 110 determines whether or not the record has been successfully deleted (step S506). If the record is successfully deleted, the record management unit 110 determines whether a TTL value has been set for the deleted record (step S508). If the TTL value has been set, the page ID to which the record belongs, the record ID, and the TTL value are output to the index management unit 120, and the above-described index generation processing is performed (step S510).

ステップS508の処理において、TTL値が設定されていない場合、またはステップS510の処理後、レコード管理部110は、レコードの削除が成功したことを示す情報をクライアント300に出力する(ステップS512)。また、上述したステップS506の処理において、削除が成功しなかった場合、レコード管理部110は、削除が失敗した原因に対応するエラー情報をクライアント300に出力する(ステップS514)。削除が失敗した原因としては、例えば対象レコードがすでに削除されている場合があるが、これに限定されるものではない。   If the TTL value is not set in the process of step S508, or after the process of step S510, the record management unit 110 outputs information indicating that the record has been successfully deleted to the client 300 (step S512). If the deletion is not successful in the process of step S506 described above, the record management unit 110 outputs error information corresponding to the cause of the deletion failure to the client 300 (step S514). The cause of the deletion failure may be, for example, that the target record has already been deleted, but is not limited to this.

次に、データベース管理装置100における無効レコード削除処理についてフローチャートを用いて説明する。図18は、データベース管理装置100における無効レコード削除処理の一例を示すフローチャートである。図18では、ガベージコレクション処理のように、周期的に行われる無効レコードの削除処理の一例を示す。   Next, the invalid record deletion process in the database management apparatus 100 will be described using a flowchart. FIG. 18 is a flowchart illustrating an example of invalid record deletion processing in the database management apparatus 100. FIG. 18 shows an example of invalid record deletion processing that is performed periodically, such as garbage collection processing.

図18の例において、無効レコード削除部130は、第1インデックス150Bにエントリが存在するか否かを判定する(ステップS600)。なお、エントリとは、第1インデックス150Bに含まれる「代表TTL値」と「ページID」との組を含む情報である。第1インデックス150Bにエントリが存在する場合、無効レコード削除部130は、第1インデックス150Bの中からエントリを1つ取得し(ステップS602)、取得したエントリの代表TTL値を取得する(ステップS604)。   In the example of FIG. 18, the invalid record deletion unit 130 determines whether an entry exists in the first index 150B (step S600). The entry is information including a set of “representative TTL value” and “page ID” included in the first index 150B. If there is an entry in the first index 150B, the invalid record deletion unit 130 acquires one entry from the first index 150B (step S602), and acquires a representative TTL value of the acquired entry (step S604). .

次に、無効レコード削除部130は、現在時刻が代表TTL値を超えているか否かを判定する(ステップS606)。現在時刻が代表TTL値を超えている場合、無効レコード削除部130は、レコード管理情報150Aを参照し、そのエントリに対応するページIDに属する全レコードをスキャンし、無効レコードを削除する(ステップS608)。また、無効レコード削除部130は、記憶装置200に記憶された対象レコードを削除する(ステップS610)。なお、上述したステップS608およびステップS610の処理は、逆の順序で行ってもよく、同時に行ってもよい。   Next, the invalid record deletion unit 130 determines whether or not the current time exceeds the representative TTL value (step S606). When the current time exceeds the representative TTL value, the invalid record deletion unit 130 refers to the record management information 150A, scans all records belonging to the page ID corresponding to the entry, and deletes the invalid record (step S608). ). Further, the invalid record deletion unit 130 deletes the target record stored in the storage device 200 (step S610). Note that the above-described processing of step S608 and step S610 may be performed in the reverse order, or may be performed simultaneously.

次に、無効レコード削除部130は、削除されたレコードが属していたページID、そのページIDに属するレコードのレコードIDおよびTTL値を、インデックス管理部120に出力し、インデックス管理部120により、インデックスを更新させる(ステップS612)。ステップS612の処理では、例えば上述したインデックス生成処理と同様に、第1インデックス150Bおよび第2インデックス150Cを更新する。   Next, the invalid record deletion unit 130 outputs the page ID to which the deleted record belongs, the record ID of the record belonging to the page ID, and the TTL value to the index management unit 120. Is updated (step S612). In the process of step S612, for example, the first index 150B and the second index 150C are updated as in the index generation process described above.

ステップS606の処理において、現在時刻が代表TTL値を超えていない場合、または、ステップS612の処理後、無効レコード削除部130は、第1インデックス150B内の全てのエントリに対して処理を行ったか否かを判定する(ステップS614)。   In the process of step S606, if the current time does not exceed the representative TTL value, or after the process of step S612, the invalid record deletion unit 130 has processed all entries in the first index 150B. Is determined (step S614).

全てのエントリに対して処理されていない場合、無効レコード削除部130は、ステップS602の処理に戻り、まだ処理されていない他のエントリを1つ取得して、以降の処理を行う。また、無効レコード削除部130は、第1インデックス150Bにおいて、スエントリが存在しない場合、また、ステップS614の処理において、第1インデックス150B内の全てのエントリに対して処理された場合、本フローチャートの処理を終了する。また、ステップS600において、第1インデックス150Bにエントリが存在しない場合にも、本フローチャートの処理を終了する。また、図18の例において、1回の削除処理で削除可能なレコードの最大数が設定される場合、レコードの削除数が最大数に達した時点で、無効レコードの削除処理を終了してもよい。これにより、無効レコード削除部130は、無効レコードの削除処理に要する時間を調整することができる。   If all the entries have not been processed, the invalid record deleting unit 130 returns to the process of step S602, acquires one other entry that has not been processed, and performs the subsequent processes. Further, the invalid record deletion unit 130, when there is no entry in the first index 150B, or when processing is performed for all entries in the first index 150B in the process of step S614, The process ends. Also, in step S600, the process of this flowchart is also terminated when there is no entry in the first index 150B. In the example of FIG. 18, when the maximum number of records that can be deleted by one deletion process is set, the deletion process of invalid records may be terminated when the maximum number of records has been deleted. Good. As a result, the invalid record deletion unit 130 can adjust the time required for the invalid record deletion process.

以上説明した少なくとも一つの実施形態によれば、記憶装置200に対してレコードの書き込みまたは読み出しを行うレコード管理部110と、レコード管理部110が扱うレコードに対してそれぞれ割り当てられた有効期限に基づいて、レコードをグループ化したデータグループの代表有効期限を決定するインデックス管理部120と、インデックス管理部120により決定された代表有効期限に基づいて、削除対象のデータグループを抽出し、抽出した削除対象のデータグループに含まれるデータのうち有効期限を徒過したデータを削除する無効レコード削除部130とを持つことにより、無効レコードの削除に関する処理負荷を軽減することができる。   According to at least one embodiment described above, based on the record management unit 110 that writes or reads records to / from the storage device 200, and the expiration dates assigned to the records handled by the record management unit 110, respectively. The index management unit 120 that determines the representative expiration date of the data group in which the records are grouped, and the deletion-target data group is extracted based on the representative expiration date determined by the index management unit 120, and the deletion target By having the invalid record deletion unit 130 that deletes the data that has passed the expiration date among the data included in the data group, the processing load related to the deletion of the invalid record can be reduced.

具体的には、少なくとも一つの実施形態によれば、無効レコードがデータグループ内にそれほど多くない場合(閾値以下の場合)には、無効レコードの物理的な削除を遅延させることができる。また、少なくとも一つの実施形態によれば、ページ等のデータグループ単位でインデックスのエントリを管理するため、インデックスのデータ量を軽減することができる。また、少なくとも一つの実施形態によれば、ページ内にレコードが有効期限順に整列されていない場合でも、スキャン対象のページを限定することができ、効率的に無効レコードを削除することができる。   Specifically, according to at least one embodiment, when there are not many invalid records in the data group (when the number is equal to or less than a threshold value), physical deletion of invalid records can be delayed. Also, according to at least one embodiment, index entries are managed in units of data groups such as pages, so that the amount of index data can be reduced. Further, according to at least one embodiment, even when records are not arranged in the order of expiration date, pages to be scanned can be limited, and invalid records can be efficiently deleted.

なお、上述したデータベース管理システム1は、複数の分散化されたデータベース管理装置100で構成された場合でも、上述した各種処理と同様の処理を行うことができ、それによって同様の効果を得ることができる。   The above-described database management system 1 can perform the same processes as the above-described various processes even when configured by a plurality of distributed database management apparatuses 100, thereby obtaining the same effects. it can.

本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。   Although several embodiments of the present invention have been described, these embodiments are presented by way of example and are not intended to limit the scope of the invention. These embodiments can be implemented in various other forms, and various omissions, replacements, and changes can be made without departing from the spirit of the invention. These embodiments and their modifications are included in the scope and gist of the invention, and are also included in the invention described in the claims and the equivalents thereof.

1…データベース管理システム、100…データベース管理装置、110…レコード管理部(データ処理部)、120…インデックス管理部(代表有効期限決定部)、130…無効レコード削除部(削除部)、140…通信部、150…記憶部、200…記憶装置、210…データ記憶領域、300…クライアント DESCRIPTION OF SYMBOLS 1 ... Database management system, 100 ... Database management apparatus, 110 ... Record management part (data processing part), 120 ... Index management part (representative expiration date determination part), 130 ... Invalid record deletion part (deletion part), 140 ... Communication 150, storage unit, 200 ... storage device, 210 ... data storage area, 300 ... client

Claims (9)

記憶装置に対してデータの書き込みまたは読み出しを行うデータ処理部と、
前記データ処理部が扱うデータに対してそれぞれ割り当てられた有効期限に基づいて、前記データをグループ化したデータグループの代表有効期限を決定する代表有効期限決定部と、
前記代表有効期限決定部により決定された代表有効期限に基づいて、削除対象の前記データグループを抽出し、前記抽出した削除対象の前記データグループに含まれるデータのうち前記有効期限を徒過したデータを削除する削除部と、
を備えるデータベース管理装置。
A data processing unit for writing or reading data to or from the storage device;
A representative expiration date determination unit that determines a representative expiration date of a data group in which the data is grouped based on an expiration date assigned to each of the data handled by the data processing unit;
Based on the representative expiration date determined by the representative expiration date determination unit, the data group to be deleted is extracted, and the data that has passed the expiration date among the data included in the extracted data group to be deleted Delete part to delete,
A database management device comprising:
前記代表有効期限決定部は、前記データグループと、前記データグループの代表有効期限とを関連付けて管理する索引情報を生成し、
前記削除部は、前記索引情報に基づいて、前記代表有効期限を徒過したデータグループを抽出する、
請求項1に記載のデータベース管理装置。
The representative expiration date determination unit generates index information for managing the data group and the representative expiration date of the data group in association with each other,
The deletion unit extracts a data group that has passed the representative expiration date based on the index information.
The database management device according to claim 1.
前記索引情報は、前記代表有効期限を再生成するための付加情報を更に含み、
前記代表有効期限決定部は、前記データグループ内のデータが更新された場合に、前記付加情報に基づいて前記代表有効期限を再生成する、
請求項2に記載のデータベース管理装置。
The index information further includes additional information for regenerating the representative expiration date,
The representative expiration date determining unit regenerates the representative expiration date based on the additional information when data in the data group is updated.
The database management device according to claim 2.
前記代表有効期限決定部は、前記データ処理部が前記記憶装置に対してデータの書き込みまたは削除を行った場合に、前記索引情報を更新する、
請求項2または3に記載のデータベース管理装置。
The representative expiration date determining unit updates the index information when the data processing unit writes or deletes data in the storage device.
The database management apparatus according to claim 2 or 3.
前記代表有効期限決定部は、同一のデータグループに属するそれぞれのデータに割り当てられた有効期限のうち一部または全部に対して統計処理を行った値に基づいて、前記データグループの代表有効期限を設定する、
請求項1から4のうち、いずれか1項に記載のデータベース管理装置。
The representative expiration date determining unit determines the representative expiration date of the data group based on a value obtained by performing statistical processing on a part or all of the expiration dates assigned to the respective data belonging to the same data group. Set,
The database management device according to any one of claims 1 to 4.
前記代表有効期限決定部は、同一のデータグループに属するそれぞれのデータに割り当てられた有効期限の最大値と最小値とを取得し、取得した最大値および最小値の一方または双方に基づいて、前記データグループの代表有効期限を設定する、
請求項1から5のうち、いずれか1項に記載のデータベース管理装置。
The representative expiration date determining unit acquires the maximum value and minimum value of the expiration date assigned to each data belonging to the same data group, and based on one or both of the acquired maximum value and minimum value, Set a representative expiry date for the data group,
The database management device according to any one of claims 1 to 5.
前記代表有効期限決定部は、同一のデータグループに属するそれぞれのデータに割り当てられた有効期限と、前記データグループ内の各データのサイズとに基づいて、前記データグループの代表有効期限を設定する、
請求項1から6のうち、いずれか1項に記載のデータベース管理装置。
The representative expiration date determination unit sets the representative expiration date of the data group based on the expiration date assigned to each data belonging to the same data group and the size of each data in the data group;
The database management apparatus according to any one of claims 1 to 6.
データベース管理装置のコンピュータが、
記憶装置に対してデータの書き込みまたは読み出しを行い、
前記書き込みまたは読み出しを行うデータに対してそれぞれ割り当てられた有効期限に基づいて、前記データをグループ化したデータグループの代表有効期限を決定し、
決定された前記代表有効期限に基づいて、削除対象の前記データグループを抽出し、前記抽出した削除対象の前記データグループに含まれるデータのうち前記有効期限を徒過したデータを削除する、
データベース管理方法。
The computer of the database management device
Write or read data to the storage device,
Based on the expiration date assigned to each of the data to be written or read, determine a representative expiration date of a data group in which the data is grouped,
Extracting the data group to be deleted based on the determined representative expiration date, and deleting the data that has passed the expiration date from the data included in the extracted data group to be deleted,
Database management method.
データベース管理装置のコンピュータに、
記憶装置に対してデータの書き込みまたは読み出しを行わせ、
前記書き込みまたは読み出しを行うデータに対してそれぞれ割り当てられた有効期限に基づいて、前記データをグループ化したデータグループの代表有効期限を決定させ、
決定された前記代表有効期限に基づいて、削除対象の前記データグループを抽出し、前記抽出した削除対象の前記データグループに含まれるデータのうち前記有効期限を徒過したデータを削除させる、
データベース管理プログラム。
In the computer of the database management device,
Write or read data to the storage device,
Based on the validity period assigned to each of the data to be written or read, the representative validity period of the data group in which the data is grouped is determined,
Based on the determined representative expiration date, the data group to be deleted is extracted, and data that has passed the expiration date is deleted from the data included in the extracted data group to be deleted.
Database management program.
JP2016131596A 2016-07-01 2016-07-01 Database management apparatus, database management method, and database management program Active JP6181247B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016131596A JP6181247B1 (en) 2016-07-01 2016-07-01 Database management apparatus, database management method, and database management program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016131596A JP6181247B1 (en) 2016-07-01 2016-07-01 Database management apparatus, database management method, and database management program

Publications (2)

Publication Number Publication Date
JP6181247B1 true JP6181247B1 (en) 2017-08-16
JP2018005552A JP2018005552A (en) 2018-01-11

Family

ID=59604908

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016131596A Active JP6181247B1 (en) 2016-07-01 2016-07-01 Database management apparatus, database management method, and database management program

Country Status (1)

Country Link
JP (1) JP6181247B1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109359030B (en) * 2018-09-04 2023-05-26 中国平安人寿保险股份有限公司 Method and device for monitoring failure object of test library, computer device and storage medium
US10963454B2 (en) 2018-09-24 2021-03-30 Salesforce.Com, Inc. System and method for bulk removal of records in a database
US11163737B2 (en) * 2018-11-21 2021-11-02 Google Llc Storage and structured search of historical security data

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006350599A (en) * 2005-06-15 2006-12-28 Hitachi Ltd Storage system and data migration method thereof
US20150113206A1 (en) * 2013-10-18 2015-04-23 Sandisk Enterprise Ip Llc Biasing for Wear Leveling in Storage Systems
JP2015172862A (en) * 2014-03-12 2015-10-01 日本電気株式会社 Information processing device for controlling data life cycle, data life cycle control method, and program for the same
JP2015185162A (en) * 2014-03-25 2015-10-22 横河電機株式会社 Data storage management apparatus and data storage management method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006350599A (en) * 2005-06-15 2006-12-28 Hitachi Ltd Storage system and data migration method thereof
US20150113206A1 (en) * 2013-10-18 2015-04-23 Sandisk Enterprise Ip Llc Biasing for Wear Leveling in Storage Systems
JP2015172862A (en) * 2014-03-12 2015-10-01 日本電気株式会社 Information processing device for controlling data life cycle, data life cycle control method, and program for the same
JP2015185162A (en) * 2014-03-25 2015-10-22 横河電機株式会社 Data storage management apparatus and data storage management method

Also Published As

Publication number Publication date
JP2018005552A (en) 2018-01-11

Similar Documents

Publication Publication Date Title
TWI702506B (en) System, machine readable medium, and machine-implemenated method for merge tree garbage metrics
TWI682274B (en) Key-value store tree
US20200349139A1 (en) Stream selection for multi-stream storage devices
US20200334294A1 (en) Merge tree modifications for maintenance operations
US11238098B2 (en) Heterogenous key-value sets in tree database
US10642515B2 (en) Data storage method, electronic device, and computer non-volatile storage medium
CN108932236B (en) File management method and device
JP6181247B1 (en) Database management apparatus, database management method, and database management program
JP6527462B2 (en) Compression device, compression method, recording medium and decompression device
JP2012256318A (en) Method and device for optimally processing n sort query in multi-range scan
JP2010061518A (en) Apparatus and method for storing data and program
US20130218851A1 (en) Storage system, data management device, method and program
CN110990394B (en) Method, device and storage medium for counting number of rows of distributed column database table
JP4508157B2 (en) Index file search device, search method, search program, and recording medium recording the same
CN113656411B (en) Method and device for storing graph data

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170620

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170719

R151 Written notification of patent or utility model registration

Ref document number: 6181247

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151