JP6680871B2 - Computer and database management method - Google Patents
Computer and database management method Download PDFInfo
- Publication number
- JP6680871B2 JP6680871B2 JP2018511810A JP2018511810A JP6680871B2 JP 6680871 B2 JP6680871 B2 JP 6680871B2 JP 2018511810 A JP2018511810 A JP 2018511810A JP 2018511810 A JP2018511810 A JP 2018511810A JP 6680871 B2 JP6680871 B2 JP 6680871B2
- Authority
- JP
- Japan
- Prior art keywords
- pointer
- record
- index
- stored
- area
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本発明は、概して、データベース管理技術に関する。 The present invention relates generally to database management technology.
一般に、企業活動において、大量に生じる業務データの活用が求められている。このため、膨大なデータの収集、蓄積及び分析に向け、データをカラム形式で格納する(典型的にはデータをカラム方向に圧縮して格納する)カラムストアDB(データベース)の構築が増加している。 Generally, in business activities, it is required to utilize a large amount of business data. Therefore, the construction of a column store DB (database) that stores data in a column format (typically compresses data in the column direction and stores it) is increasing for the collection, storage, and analysis of vast amounts of data. There is.
データが追加(収集)される都度にその追加されたデータをカラム形式で格納すると、処理時間が増大する。なぜなら、追加されたデータを格納するためには、カラム形式で格納されているデータ群を一旦読み出して伸張し、追加データを加えて圧縮する処理が必要になるからである。この問題は、データの追加頻度が高いほど大きい。 If the added data is stored in the column format each time data is added (collected), the processing time increases. This is because in order to store the added data, it is necessary to temporarily read out the data group stored in the column format, decompress it, and add the additional data to compress it. This problem increases as the frequency of adding data increases.
このため、収集されたデータをカラム形式で格納するケースでは、一般に、コンバート方式が採用される。コンバート方式によれば、追加されたデータが一時的にロー形式で格納され、ロー形式で複数のデータが蓄積されてから、それら複数のデータがカラム形式で格納される。データの格納形式をロー形式(ロー指向)からカラム形式(カラム指向)へコンバートする処理を、「コンバート処理」と呼ぶことができる。コンバート処理では、データ格納位置が変更される。すなわち、データが、ロー形式の格納位置からカラム形式の格納位置に移動する。 Therefore, in the case of storing the collected data in the column format, the conversion method is generally adopted. According to the conversion method, the added data is temporarily stored in a row format, a plurality of data is accumulated in the row format, and then the plurality of data are stored in a column format. The process of converting the data storage format from the row format (row-oriented) to the column format (column-oriented) can be called “conversion processing”. In the conversion process, the data storage position is changed. That is, the data is moved from the row storage location to the column storage location.
索引を用いた検索が知られている。索引は、一般に、検索キーとポインタとを保持する。ポインタは、データの格納位置を示す。コンバート処理が行われると、データが移動するため(データ格納位置が変更されるため)、索引の更新が必要となる。索引の更新方式として、以下の2つの方式がある。 Search using an index is known. The index generally holds a search key and a pointer. The pointer indicates the storage location of data. When the conversion process is performed, the data is moved (the data storage position is changed), so that the index needs to be updated. There are the following two methods for updating the index.
(第1の索引更新方式)同一検索キーのポインタをポインタ順にソートする索引管理が知られている。索引において、1以上のリーフノードが、同一検索キーのポインタ集合を保持する。第1の索引更新方式によれば、対象検索キー(移動したデータに対応するポインタに対応した検索キー)を含む全リーフノードの排他ロックが取得され、移動したデータに対応するポインタが更新され、更新後のポインタを含むポインタ集合がポインタ順にソートされ、その後に、上記取得された排他ロックが解除される。 (First Index Update Method) Index management is known in which pointers of the same search key are sorted in pointer order. In the index, one or more leaf nodes hold the same search key pointer set. According to the first index update method, the exclusive lock of all leaf nodes including the target search key (search key corresponding to the pointer corresponding to the moved data) is acquired, the pointer corresponding to the moved data is updated, A pointer set including the updated pointers is sorted in pointer order, and then the acquired exclusive lock is released.
(第2の索引更新方式)マッピング索引が知られている(例えば非特許文献1)。第2の索引更新方式によれば、移動したデータについて、マッピング索引に、移動前の位置を示すポインタと移動後の位置を示すポインタとの組であるポインタセットが登録される。 (Second Index Update Method) A mapping index is known (for example, Non-Patent Document 1). According to the second index updating method, a pointer set, which is a set of a pointer indicating a position before movement and a pointer indicating a position after movement, is registered in the mapping index for the moved data.
第1の索引更新方式によれば、対象検索キーについて排他ロック状態(排他中)の間、対象検索キーに対応するデータの検索処理といった他処理は中断される。このため、全体として処理性能が低下する。 According to the first index updating method, while the exclusive lock state (exclusive) is set for the target search key, other processing such as a search processing of data corresponding to the target search key is suspended. Therefore, the processing performance as a whole is lowered.
第2の索引更新方式によれば、移動したデータ毎にポインタセットがマッピング索引に登録され、結果として、マッピング索引の容量が増大する。索引は、検索性能向上のために作成される付加的な情報であり、マッピング索引も、付加的な情報であるが、そのような付加的な情報の容量として索引容量(通常の索引の容量とマッピング索引の容量との合計)が増大することは好ましくない。また、マッピング索引は、検索において参照され得るため、マッピング索引の容量が増大すると、検索性能が低下し得る。 According to the second index update method, the pointer set is registered in the mapping index for each moved data, and as a result, the capacity of the mapping index increases. The index is additional information created to improve search performance, and the mapping index is also additional information. However, as the capacity of such additional information, the index capacity (normal index capacity and It is not preferable that the total of the mapping index and the capacity) increases. Further, since the mapping index can be referred to in the search, the search performance may decrease as the capacity of the mapping index increases.
以上の理由から、カラムストアDB、特に、収集されたデータをカラム形式で格納する環境には、好ましくない。このような課題は、格納形式をロー形式からカラム形式に変更するためのデータ移動に限らず、他の理由でデータ移動が生じるケースについてもあり得る。 For the above reasons, it is not preferable for the column store DB, particularly for the environment where the collected data is stored in the column format. Such a problem is not limited to the data movement for changing the storage format from the row format to the column format, and may occur in the case where the data movement occurs for other reasons.
計算機が、索引及び表を含んだデータベースの前記表における少なくとも1つのレコードを移動するレコード移動処理を実行する。また、計算機が、レコード移動処理に伴い、索引を更新する索引更新処理を実行する。索引更新処理は、前記レコード移動処理において移動したレコードについて、前記索引における移動前ポインタに移動後ポインタを上書きすることを含む。移動前ポインタは、移動前の格納位置にあるレコードへのポインタである。移動後ポインタは、移動後の格納位置にあるレコードへのポインタである。なお、「計算機」は、1以上の物理計算機であってよく、少なくとも1つの仮想計算機を含んでもよい。 A computer executes a record move process to move at least one record in the table of the database including the index and the table. Further, the computer executes an index update process for updating the index along with the record moving process. The index update process includes overwriting the before-movement pointer in the index with the after-movement pointer for the record moved in the record movement process. The pre-movement pointer is a pointer to the record at the storage position before the movement. The post-movement pointer is a pointer to the record at the storage position after the movement. The “computer” may be one or more physical computers and may include at least one virtual computer.
レコード移動処理に伴う索引更新処理において索引容量の増大が生じず、且つ、索引言更新処理と並行して検索処理のような他処理が可能である。 The index capacity does not increase in the index update processing that accompanies the record movement processing, and other processing such as search processing is possible in parallel with the index word update processing.
DBMS(データベース管理システム)へのクエリの発行元としては、DBMSの内部のコンピュータプログラムであってよいし、外部のコンピュータプログラムであってよい。例えば、クエリ発行元は、DBMSを有するデータベースサーバ(以下、DBサーバ)内で実行されるコンピュータプログラム(例えば、アプリケーションプログラム)であってもよいし、DBサーバに接続されたクライアント計算機等の装置で実行されるコンピュータプログラム(例えば、アプリケーションプログラム)であってもよい。 The issuer of the query to the DBMS (database management system) may be a computer program inside the DBMS or an external computer program. For example, the query issuer may be a computer program (for example, an application program) executed in a database server having a DBMS (hereinafter referred to as a DB server), or a device such as a client computer connected to the DB server. It may be a computer program (for example, an application program) to be executed.
以下の説明では、「インターフェース部」は、1以上のインターフェースを含む。1以上のインターフェースは、1以上の同種のインターフェースデバイス(例えば1以上のNIC(Network Interface Card))であってもよいし2以上の異種のインターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。 In the following description, the “interface unit” includes one or more interfaces. The one or more interfaces may be one or more same type interface devices (for example, one or more NICs (Network Interface Cards)) or two or more different type interface devices (for example, NICs and HBAs (Host Bus Adapters)). It may be.
また、以下の説明では、「記憶資源」は、1以上のメモリを含む。少なくとも1つのメモリは、揮発性メモリであってもよいし不揮発性メモリであってもよい。記憶資源は、1以上のメモリに加えて、1以上のPDEVを含んでもよい。「PDEV」は、物理的な記憶デバイスを意味し、典型的には、不揮発性の記憶デバイス(例えば補助記憶デバイス)でよい。PDEVは、例えば、HDD(Hard Disk Drive)又はSSD(Solid State Drive)でよい。 Further, in the following description, “storage resource” includes one or more memories. The at least one memory may be a volatile memory or a non-volatile memory. Storage resources may include one or more PDEVs in addition to one or more memories. “PDEV” means a physical storage device, which may typically be a non-volatile storage device (eg, auxiliary storage device). The PDEV may be, for example, an HDD (Hard Disk Drive) or SSD (Solid State Drive).
また、以下の説明では、「プロセッサ部」は、1以上のプロセッサを含む。少なくとも1つのプロセッサは、典型的には、CPU(Central Processing Unit)である。プロセッサは、処理の一部または全部を行うハードウェア回路(例えばFPGA(Field-Programmable Gate Array)又はASIC(Application Specific Integrated Circuit))を含んでもよい。 Further, in the following description, the “processor unit” includes one or more processors. At least one processor is typically a CPU (Central Processing Unit). The processor may include a hardware circuit (eg, FPGA (Field-Programmable Gate Array) or ASIC (Application Specific Integrated Circuit)) that performs a part or all of the processing.
また、以下の説明では、「kkk部」の表現にて処理部(機能)を説明することがあるが、処理部は、コンピュータプログラムがプロセッサ部によって実行されることで実現されてもよいし、ハードウェア回路(例えばFPGA又はASIC)によって実現されてもよい。プログラムがプロセッサ部によって処理部が実現される場合、定められた処理が、適宜に記憶資源(例えばメモリ)及び/又は通信インターフェイスデバイス(例えば通信ポート)等を用いながら行われるため、処理部はプロセッサ部の少なくとも一部とされてもよい。処理部を主語として説明された処理は、プロセッサ部あるいはそのプロセッサ部を有する装置が行う処理としてもよい。また、プロセッサ部は、処理の一部または全部を行うハードウェア回路を含んでもよい。プログラムは、プログラムソースからプロセッサにインストールされてもよい。プログラムソースは、例えば、プログラム配布計算機または計算機が読み取り可能な記録媒体(例えば非一時的な記録媒体)であってもよい。各処理部の説明は一例であり、複数の処理部が1つの処理部にまとめられたり、1つの処理部が複数の処理部に分割されたりしてもよい。 Further, in the following description, the processing unit (function) may be described by the expression “kkk unit”, but the processing unit may be realized by executing a computer program by the processor unit, It may be realized by a hardware circuit (for example, FPGA or ASIC). When the processing unit is realized by the processor unit, the processing unit executes the predetermined processing while appropriately using the storage resource (for example, memory) and / or the communication interface device (for example, communication port). It may be at least a part of the part. The processing described with the processing unit as the subject may be processing performed by the processor unit or an apparatus including the processor unit. The processor unit may also include a hardware circuit that performs a part or all of the processing. The program may be installed on the processor from a program source. The program source may be, for example, a program distribution computer or a computer-readable recording medium (for example, a non-transitory recording medium). The description of each processing unit is an example, and a plurality of processing units may be integrated into one processing unit or one processing unit may be divided into a plurality of processing units.
以下、図面を参照しながら、幾つかの実施例を説明する。なお、以下の実施例では、レコード移動はコンバート処理において生じるが、本発明は、コンバート処理以外の理由でレコードが移動する環境にも適用することができる。 Hereinafter, some embodiments will be described with reference to the drawings. In the following embodiments, the record movement occurs in the conversion process, but the present invention can also be applied to an environment in which records move for reasons other than the conversion process.
図1は、実施例1に係る計算機システムの構成を示す。 FIG. 1 shows the configuration of a computer system according to the first embodiment.
DBサーバ101が通信ネットワーク403を介して外部ストレージ装置118に接続されている。通信ネットワーク403を介した通信のプロトコルとしては、例えば、FC(Fibre Channel)、SCSI(Small Computer System Interface)、又は、TCP/IP(Transmission Control Protocol/Internet Protocol)が採用されてよい。 The DB server 101 is connected to the external storage device 118 via the communication network 403. As a protocol for communication via the communication network 403, for example, FC (Fibre Channel), SCSI (Small Computer System Interface), or TCP / IP (Transmission Control Protocol / Internet Protocol) may be adopted.
DBサーバ101は、計算機、例えば、パーソナルコンピュータ、ワークステーション又はメインフレーム、もしくは、これらのいずれかによって構成される仮想的な計算機(仮想マシン)である。DBサーバ101は、ネットワークアダプタ119、メモリ102、ローカル記憶デバイス117及びそれらに接続されたプロセッサ(典型的にはマイクロプロセッサ)116を有する。プロセッサ116は、コンピュータプログラム、例えば、OS(Operating System)114と、DBMS104と、DBMS104にクエリを発行するAP(Application Program)103とを実行する。メモリ102は、プロセッサ116によって実行されるプログラムと、プログラムが使用するデータとを一時的に記憶する。ローカル記憶デバイス117は、プログラム、及びプログラムが使用するデータを格納する。ネットワークアダプタ119は、通信ネットワーク403とDBサーバ101とを接続する。AP103は、DBサーバ101ではなく、通信ネットワーク403に接続される図示しない別の計算機で動作してもよい。 The DB server 101 is a computer, for example, a personal computer, a workstation, a mainframe, or a virtual computer (virtual machine) configured by any of these. The DB server 101 has a network adapter 119, a memory 102, a local storage device 117, and a processor (typically a microprocessor) 116 connected to them. The processor 116 executes a computer program, for example, an OS (Operating System) 114, the DBMS 104, and an AP (Application Program) 103 that issues a query to the DBMS 104. The memory 102 temporarily stores a program executed by the processor 116 and data used by the program. The local storage device 117 stores programs and data used by the programs. The network adapter 119 connects the communication network 403 and the DB server 101. The AP 103 may operate not on the DB server 101 but on another computer (not shown) connected to the communication network 403.
なお、DBサーバ101は、性能面や冗長性の観点から、プロセッサ116、メモリ102、ローカル記憶デバイス117及びネットワークアダプタ119のうちの少なくとも1つの要素を複数備えていてもよい。また、DBサーバ101は、図示しない入力デバイス(例えば、キーボード及びポインティングデバイス)と表示デバイス(例えば液晶ディスプレイ)とを有してよい。入力デバイスと表示デバイスは一体になっていてもよい。 The DB server 101 may include a plurality of at least one element of the processor 116, the memory 102, the local storage device 117, and the network adapter 119 from the viewpoint of performance and redundancy. Further, the DB server 101 may include an input device (for example, a keyboard and a pointing device) (not shown) and a display device (for example, a liquid crystal display). The input device and the display device may be integrated.
DBサーバ101では、DBMS104が、AP103から発行されたクエリを実行する。DBMS104は、クエリの実行する際に、外部ストレージ装置118に格納されたDB122に対するI/O要求をOS114に発行する。OS114が、DBMS104から発行されたI/O要求を、外部ストレージ装置118に送信する。 In the DB server 101, the DBMS 104 executes the query issued by the AP 103. When executing the query, the DBMS 104 issues an I / O request for the DB 122 stored in the external storage device 118 to the OS 114. The OS 114 sends the I / O request issued from the DBMS 104 to the external storage device 118.
外部ストレージ装置118は、記憶デバイス群121を有する装置である。それに代えて、外部ストレージ装置118は、単一の記憶デバイスであってもよい。外部ストレージ装置118は、DBサーバ101が使用するデータ及びプログラムを記憶する。外部ストレージ装置118は、DBサーバ101からI/O要求を受信し、I/O要求に対応した処理を実行し、処理結果をDBサーバ101に送信する。 The external storage device 118 is a device having a storage device group 121. Alternatively, the external storage device 118 may be a single storage device. The external storage device 118 stores data and programs used by the DB server 101. The external storage device 118 receives the I / O request from the DB server 101, executes the process corresponding to the I / O request, and sends the process result to the DB server 101.
外部ストレージ装置118は、ネットワークアダプタ119、記憶デバイス群121及びそれらに接続されたコントローラ120を有する。 The external storage device 118 has a network adapter 119, a storage device group 121, and a controller 120 connected to them.
ネットワークアダプタ119は、外部ストレージ装置118を通信ネットワーク403に接続する。 The network adapter 119 connects the external storage device 118 to the communication network 403.
記憶デバイス群121は、1以上の記憶デバイスを含む。記憶デバイスは、PDEVであって、例えば、磁気ディスク、フラッシュメモリ、その他半導体メモリである。記憶デバイス群121は、RAIDに従い所定のRAIDレベルでデータを記憶するグループであってもよい。記憶デバイス群121の記憶空間に基づいて、論理的な記憶デバイス(論理ボリューム)がDBサーバ101に提供されてもよい。記憶デバイス群121は、DB122を記憶する。 The storage device group 121 includes one or more storage devices. The storage device is a PDEV and is, for example, a magnetic disk, a flash memory, or another semiconductor memory. The storage device group 121 may be a group that stores data at a predetermined RAID level according to RAID. A logical storage device (logical volume) may be provided to the DB server 101 based on the storage space of the storage device group 121. The storage device group 121 stores the DB 122.
コントローラ120は、例えば、メモリ及びプロセッサを含む。コントローラ120は、DBサーバ101からのI/O要求に従って、DB122を記憶した記憶デバイス群121にデータを入出力する。例えば、コントローラ120は、DBサーバ101からの書込み要求に従う書込み対象のデータを記憶デバイス群121に格納する。また、DBサーバ101からの読出し要求に従う読出し対象のデータを記憶デバイス群121から読み出し、そのデータをDBサーバ101に送信する。 The controller 120 includes, for example, a memory and a processor. The controller 120 inputs / outputs data to / from the storage device group 121 storing the DB 122 according to the I / O request from the DB server 101. For example, the controller 120 stores the write-targeted data in the storage device group 121 according to the write request from the DB server 101. Further, the data to be read according to the read request from the DB server 101 is read from the storage device group 121 and the data is transmitted to the DB server 101.
なお、外部ストレージ装置118は、性能面や冗長性確保の観点から、コントローラ120等の要素を複数備えてもよい。 The external storage device 118 may include a plurality of elements such as the controller 120 from the viewpoint of performance and ensuring redundancy.
DBMS104は、業務データを含むDB122を管理する。DB122は、1以上の表124や索引123を含む。表124は1以上のレコードの集合であり、レコードは1以上のカラムから構成される。表124は、カラム形式で格納された複数のレコードを含む。すなわち、DB122は、カラムストアDBであるが、具体的には、表124のうちの1以上のレコードがカラム形式で格納されるDBである。索引123は、表の中の1以上のカラムを対象に作成されるデータ構造であり、当該索引123が対象とするカラムを含む選択条件による表へのアクセスを高速化する。例えば、索引123は、対象とするカラムの値毎にその値を含む表の中のレコードの位置を示すポインタを保持するデータ構造であり、B木構造等が用いられる。 The DBMS 104 manages the DB 122 including business data. The DB 122 includes one or more tables 124 and indexes 123. The table 124 is a set of one or more records, and each record is composed of one or more columns. The table 124 includes a plurality of records stored in a column format. That is, although the DB 122 is a column store DB, specifically, it is a DB in which one or more records in the table 124 are stored in a column format. The index 123 is a data structure created for one or more columns in the table, and speeds up access to the table according to a selection condition including the column targeted by the index 123. For example, the index 123 is a data structure that holds, for each value of the target column, a pointer that indicates the position of a record in the table that includes that value, and a B-tree structure or the like is used.
DBMS104は、クエリ受付部105、クエリ実行プラン生成部106、クエリ実行部107、カラムストア管理部109及び領域制御部427を含む。 The DBMS 104 includes a query reception unit 105, a query execution plan generation unit 106, a query execution unit 107, a column store management unit 109, and an area control unit 427.
クエリ受付部105は、AP105が発行するクエリを受け付ける。クエリは、例えばSQLで記述される。 The query reception unit 105 receives a query issued by the AP 105. The query is described in SQL, for example.
クエリ実行プラン生成部106は、クエリ受付部105が受け付けたクエリについて、該クエリを実行するために必要な1以上のDBオペレーションを表す情報を有するクエリ実行プランを生成する。クエリ実行プランは、例えば、クエリの実行の際に行うべきDBオペレーションについてその実行順序を木構造で定義した情報であり、メモリ102に格納される。また、クエリ実行プランは、DBオペレーション毎に、タスクによる実行の際に要するメモリ資源の量を表す情報を含んでよい。例えば、或る表のレコードを読み出すDBオペレーションを表す情報を含むクエリ実行プランの場合、そのクエリ実行プランは、該表のレコードをメモリ102内に格納するためのメモリ資源量に関する情報を含んでよい。 The query execution plan generation unit 106 generates a query execution plan having, for the query received by the query reception unit 105, information indicating one or more DB operations required to execute the query. The query execution plan is, for example, information that defines the execution order of a DB operation to be performed when executing a query in a tree structure, and is stored in the memory 102. The query execution plan may also include, for each DB operation, information indicating the amount of memory resources required for execution by a task. For example, in the case of a query execution plan that includes information indicating a DB operation that reads a record of a table, the query execution plan may include information regarding the amount of memory resources for storing the record of the table in the memory 102. .
領域制御部427は、DB122内のデータを一時的に格納するための記憶領域(DBバッファ)を管理したり、DB122を格納する複数の論理領域(DBページ)を管理したりする。DBバッファは、メモリ102上に構築されてもよいし、ローカル記憶デバイス117上に構築されてもよい。DBページは、記憶デバイス群121に基づく論理空間の一部でよい。 The area control unit 427 manages a storage area (DB buffer) for temporarily storing data in the DB 122, and manages a plurality of logical areas (DB pages) storing the DB 122. The DB buffer may be built on the memory 102 or the local storage device 117. The DB page may be a part of the logical space based on the storage device group 121.
クエリ実行部107は、クエリ実行プラン生成部106が生成したクエリ実行プランに従って、クエリを実行する。クエリ実行部107は、レコード検索処理を実行する検索部110と、レコードインサート処理を実行するインサート部111と、レコード削除処理を実行する削除部112と、コンバート処理を実行するコンバート部113とを有する。また、クエリ実行部107は、索引123を管理する索引管理部131を有する。索引管理部131は、索引検索処理を実行する索引検索部132と、索引インサート処理(索引へのエントリのインサート)を実行する索引インサート部133と、索引削除処理(索引からのエントリの削除)を実行する索引削除部134と、索引更新処理(コンバート処理におけるレコード移動に伴う処理)を実行する索引コンバート部135を有する。 The query execution unit 107 executes a query according to the query execution plan generated by the query execution plan generation unit 106. The query execution unit 107 includes a search unit 110 that executes a record search process, an insert unit 111 that executes a record insert process, a deletion unit 112 that executes a record deletion process, and a conversion unit 113 that executes a conversion process. . The query execution unit 107 also includes an index management unit 131 that manages the index 123. The index management unit 131 includes an index search unit 132 that executes an index search process, an index insert unit 133 that executes an index insert process (insertion of an entry into an index), and an index delete process (delete an entry from an index). It has an index deleting unit 134 to be executed and an index converting unit 135 to execute an index updating process (a process accompanying record movement in the converting process).
以上が、計算機システムの概要である。なお、例えばDBMS104の構成は、一例である。例えば、或る処理部が複数の処理部に分割されたり、複数の処理部の機能を統合した一つの処理部が構築されたりしてもよい。 The above is the outline of the computer system. Note that, for example, the configuration of the DBMS 104 is an example. For example, a certain processing unit may be divided into a plurality of processing units, or one processing unit that integrates the functions of the plurality of processing units may be constructed.
図2は、索引123とその索引123に対応した表124との一例の模式図(レコード移動前)である。 FIG. 2 is a schematic diagram (before record movement) of an example of the index 123 and the table 124 corresponding to the index 123.
表124には、7個のレコード220〜226が格納されている。このうち、レコード220及びレコード221は、ロー形式で格納されているレコードである。ロー形式で格納されているレコードは、将来的に格納位置が変更され得るレコードの一例である。残りのレコード222〜226は、カラム形式で格納されているレコードである。カラム形式で格納されているレコードは、格納位置が変更され得ないレコードの一例である。本実施例では、ロー形式で格納されるレコードの格納先も、カラム形式で格納されるレコードの格納先も、記憶デバイス群121に基づくDBページであるが、ロー形式で格納されるレコードの格納先は、メモリ102に基づく一時領域でもよい。なお、ロー形式で格納されるレコードは、移動され得るレコード(格納位置が変更され得るレコード)の一例である。すなわち、本実施例では、例えば、データソース(例えば1以上のセンサ)からデータが収集される都度に、収集された1以上のデータに基づくレコード(例えば収集されたデータが含む値を含んだレコード)がロー形式でDBMS104により格納され、ロー形式で格納されたレコードがN件(Nは2以上の整数)以上蓄積された場合に、コンバート部113によりコンバート処理が行われる。コンバート処理では、少なくともN件のレコードの格納形式が、ロー形式からカラム形式に変換される。 The table 124 stores seven records 220 to 226. Of these, the records 220 and 221 are records stored in raw format. The record stored in the row format is an example of a record whose storage position may be changed in the future. The remaining records 222 to 226 are records stored in a column format. The record stored in the column format is an example of a record whose storage position cannot be changed. In this embodiment, both the storage destination of records stored in the row format and the storage destination of records stored in the column format are DB pages based on the storage device group 121. The destination may be a temporary area based on the memory 102. The record stored in the raw format is an example of a record that can be moved (a record whose storage position can be changed). That is, in the present embodiment, for example, each time data is collected from a data source (for example, one or more sensors), a record based on one or more collected data (for example, a record including a value included in the collected data). ) Is stored in the row format by the DBMS 104, and when N or more records (N is an integer of 2 or more) stored in the row format are accumulated, the conversion unit 113 performs the conversion process. In the conversion process, the storage format of at least N records is converted from the row format to the column format.
索引123は、B木構造の複数のノードを有する。複数のノードは、ルートノード251と、リーフノード253と、中間ノード252とを有する。「ルートノード」は、親ノードを有さないノードである。「リーフノード」は、子ノードを有さないノードである。「中間ノード」は、ルートノード及びリーフノード以外のノードである。 The index 123 has a plurality of B-tree structured nodes. The plurality of nodes include a root node 251, a leaf node 253, and an intermediate node 252. A "root node" is a node that has no parent node. A "leaf node" is a node that has no child nodes. The "intermediate node" is a node other than the root node and the leaf node.
各ノードには、検索キー及びポインタセットのうちの少なくとも検索キーが格納される。親ノードにおける検索キーを基に、参照されるべき子ノードが特定される。 At least a search key of the search key and the pointer set is stored in each node. The child node to be referred to is specified based on the search key in the parent node.
リーフノード253は、1以上の検索キーを保持する。リーフノード253には、検索キー毎に、1以上のポインタセットが格納される。「ポインタセット」は、ポインタ数と0以上のポインタとのセットである。ポインタセット内のポインタ数は、そのポインタセット内のポインタの数を表す。図2において、ポインタ数は1桁の整数であり、ポインタは、アルファベット大文字“P”と1桁以上の整数との組である。以下、ポインタ数及びポインタのような有意な情報要素が存在する領域(ノード内領域)を、便宜上、「スロット」と言う。図2の例によれば、スロット204及び207の各々に、ポインタ数が格納されており、スロット205〜206及び208〜210の各々に、ポインタ(例えばレコードの格納位置のアドレス)が格納されている。具体的には、スロット204〜206やスロット207〜210のような連続したスロットに、1つのポインタセットが格納される。すなわち、スロット204内のポインタ数“2”が、そのポインタ数を含んだポインタセット内のポインタ(“P1”及び“P2”)の数を表す。同様に、スロット207内のポインタ数“3”が、そのポインタ数を含んだポインタセット内のポインタ(“P10”、“P11”及び“P13”)の数を表す。なお、本実施例では、ポインタセットはポインタ数を含むが、ポインタセットは必ずしもポインタ数を含まなくてもよい。 The leaf node 253 holds one or more search keys. The leaf node 253 stores one or more pointer sets for each search key. The "pointer set" is a set of the number of pointers and pointers of 0 or more. The number of pointers in the pointer set represents the number of pointers in the pointer set. In FIG. 2, the number of pointers is a one-digit integer, and the pointer is a set of alphabetic capital letters “P” and an integer of one or more digits. Hereinafter, the area (intra-node area) where significant information elements such as the number of pointers and pointers are present is referred to as “slot” for convenience. According to the example of FIG. 2, the number of pointers is stored in each of the slots 204 and 207, and the pointer (for example, the address of the storage position of the record) is stored in each of the slots 205 to 206 and 208 to 210. There is. Specifically, one pointer set is stored in consecutive slots such as the slots 204 to 206 and the slots 207 to 210. That is, the number of pointers "2" in the slot 204 represents the number of pointers ("P1" and "P2") in the pointer set including the number of pointers. Similarly, the number of pointers “3” in the slot 207 represents the number of pointers (“P10”, “P11”, and “P13”) in the pointer set including the number of pointers. In the present embodiment, the pointer set includes the number of pointers, but the pointer set does not necessarily include the number of pointers.
リーフノード253は、検索キー毎にエントリを含む。「エントリ」は、検索キーとその検索キーに対応した1以上のポインタセットとが格納される領域(リーフノードの一部又は全部)を表す便宜上の言葉である。図2の例によれば、リーフノード253は、検索キー“100”に対応したエントリ261と、検索キー“101”に対応したエントリ262とを含む。 The leaf node 253 includes an entry for each search key. The “entry” is a term for convenience indicating an area (a part or all of a leaf node) in which a search key and one or more pointer sets corresponding to the search key are stored. According to the example of FIG. 2, the leaf node 253 includes an entry 261 corresponding to the search key “100” and an entry 262 corresponding to the search key “101”.
また、本実施例では、リーフノード253は、検索キー毎に、非ソートエントリ部分とソートエントリ部分とを有する。非ソートエントリ部分及びソートエントリ部分の各々には、1以上のポインタセットが格納される。図2の例によれば、検索キー“100”に対応したエントリ261が、ポインタセットが格納されるスロット204〜206を含んだ非ソートエントリ部分271と、ポインタセットが格納されるスロット207〜210を含んだソートエントリ部分272とを含む。同様に、検索キー“101”に対応したエントリ262が、非ソートエントリ部分273と、ソートエントリ部分274とを含む。エントリ部分が非ソートエントリ部分であるかソートエントリ部分であるかは、例えば、エントリ部分の所定位置に設定されたフラグの値を参照する等の方法により判別可能である。以下の説明では、検索キー“100”及び“101”のうち、主に、検索キー“100”を例に取る。なお、後述するように、DBページ単位でロックが取得される場合、非ソートエントリ部分271及びソートエントリ部分272は異なるDBページに格納されることが好ましい。例えば、ソートエントリ部分272がDBページ#2に格納されている場合、非ソートエントリ部分271は、それとは異なるDBページ#1に格納されていることが好ましい。1以上の第1DBページに、1以上の検索キーに対応した非ソートエントリ部分が集約され、1以上の第2DBページに、1以上の検索キーに対応したソートエントリ部分が集約されていてもよい。 Further, in this embodiment, the leaf node 253 has a non-sorted entry part and a sorted entry part for each search key. One or more pointer sets are stored in each of the non-sorted entry portion and the sorted entry portion. According to the example of FIG. 2, an entry 261 corresponding to the search key “100” includes a non-sorted entry portion 271 including slots 204 to 206 in which pointer sets are stored, and slots 207 to 210 in which pointer sets are stored. And a sort entry portion 272 including Similarly, the entry 262 corresponding to the search key “101” includes a non-sorted entry portion 273 and a sorted entry portion 274. Whether the entry part is a non-sorted entry part or a sorted entry part can be determined by, for example, referring to the value of a flag set at a predetermined position of the entry part. In the following description, of the search keys “100” and “101”, the search key “100” is mainly taken as an example. As will be described later, when the lock is acquired in DB page units, it is preferable that the non-sorted entry portion 271 and the sorted entry portion 272 be stored in different DB pages. For example, when the sort entry part 272 is stored in the DB page # 2, the non-sort entry part 271 is preferably stored in a different DB page # 1. Non-sorted entry parts corresponding to one or more search keys may be aggregated in one or more first DB pages, and sort entry parts corresponding to one or more search keys may be aggregated in one or more second DB pages. .
ソートエントリ部分272に格納されたポインタはポインタ順(例えばポインタにおける整数値が小さい順)にソートされるが、非ソートエントリ部分271に格納されたポインタはポインタ順にソートされない。非ソートエントリ部分271には、ロー形式で格納されたレコード(検索キー“100”に対応したレコード)のポインタ“P1”及び“P2”、言い換えれば、将来的にレコード格納位置が更新される可能性があるポインタが格納される。ソートエントリ部分272には、カラム形式で格納されたレコード(検索キー“100”に対応したレコード)のポインタ“P10”、“P11”及び“P13”、言い換えれば、将来的にレコード格納位置が更新されないポインタが格納される。 The pointers stored in the sort entry portion 272 are sorted in pointer order (for example, the integer value of the pointer is small), but the pointers stored in the non-sort entry portion 271 are not sorted in pointer order. In the non-sorted entry portion 271, pointers "P1" and "P2" of records (records corresponding to the search key "100") stored in raw format, in other words, record storage positions can be updated in the future. A unique pointer is stored. In the sort entry portion 272, pointers “P10”, “P11”, and “P13” of records (records corresponding to the search key “100”) stored in the column format, in other words, record storage positions will be updated in the future. Not stored pointer.
図2の例は、上述したように、レコード220及び221がロー形式で格納されている。言い換えれば、図2の例は、レコード移動前の状態の一例を示す。 In the example of FIG. 2, as described above, the records 220 and 221 are stored in raw format. In other words, the example of FIG. 2 shows an example of the state before the record movement.
図3は、索引123とその索引123に対応した表124との一例の模式図(レコード移動後)である。 FIG. 3 is a schematic diagram (after moving records) of an example of the index 123 and the table 124 corresponding to the index 123.
ロー形式で格納されているレコード220及び221が、コンバート部113が行うコンバート処理により、カラム形式で格納されたレコード303及び304となる。つまり、ロー形式で格納されたレコード220及び221がそれぞれ移動することで、カラム形式で格納されたレコード304及び303となる。このように格納形式が変更されても直ちにはレコード220及び221は削除されない。 The records 220 and 221 stored in the row format become the records 303 and 304 stored in the column format by the conversion processing performed by the conversion unit 113. That is, the records 220 and 221 stored in the row format are moved to become the records 304 and 303 stored in the column format. Even if the storage format is changed in this way, the records 220 and 221 are not immediately deleted.
コンバート部113は、レコード220に、移動後ポインタ301(“P16”)が、レコード221に移動後ポインタ302(“P15”)が付加される(関連付けられる)。このようなポインタ追記は、レコード移動後にコンバート部113により直ちに行われてよい。なお、移動後ポインタ301〜302は、レコード毎に明示的に記載してもよく、例えば、先頭レコードのみ明示的に記載し、後続レコードはレコードオフセット加算により算出できるようにしてもよい。「移動後ポインタ」とは、レコードの移動後の格納位置を示すポインタである。一方、後述の「移動前ポインタ」とは、レコードの移動前の格納位置を示すポインタである。移動後ポインタ及び移動前ポインタのいずれも、明示的なポインタで表現されてもよいし、基準の格納位置(例えば先頭レコードの格納位置)からのオフセットで表現されてもよい。 The converting unit 113 attaches (associates) the post-movement pointer 301 (“P16”) to the record 220 and the post-movement pointer 302 (“P15”) to the record 221. Such additional pointer writing may be performed immediately by the converting unit 113 after the record is moved. The post-movement pointers 301 to 302 may be explicitly described for each record, for example, only the first record may be explicitly described and the subsequent records may be calculated by adding the record offsets. The “post-movement pointer” is a pointer indicating the storage position of the record after the movement. On the other hand, the “pre-movement pointer” described later is a pointer that indicates the storage position before movement of the record. Both the after-movement pointer and the before-movement pointer may be expressed by an explicit pointer or may be expressed by an offset from a reference storage position (for example, the storage position of the first record).
コンバート処理(レコード移動処理)が完了した後、索引コンバート部135により、索引123の更新処理が実行される。具体的には、索引コンバート部135は、レコード220の移動前ポインタ“P1”が格納されていたスロット205に、移動後ポインタ“P16”を上書きする。同様に、索引コンバート部135は、レコード221の移動前ポインタ“P2”が格納されていたスロット206に、移動後ポインタ“P15”を上書きする。 After the conversion process (record move process) is completed, the index conversion unit 135 executes the update process of the index 123. Specifically, the index conversion unit 135 overwrites the post-movement pointer "P16" on the slot 205 in which the pre-movement pointer "P1" of the record 220 was stored. Similarly, the index conversion unit 135 overwrites the post-movement pointer "P15" on the slot 206 in which the pre-movement pointer "P2" of the record 221 was stored.
これらのポインタ上書き処理は、他の検索処理と並行実行されてよい。例えば、検索部110が、検索処理において、索引123からポインタ上書き前のポインタ“P1”を参照した場合、ポインタ“P1”から特定されるレコード220に付加されている移動後ポインタ“P16”を取得し、その後に、ポインタ“P16”を用いてレコード304を参照できる。一方、検索部110が、検索処理において、索引123からポインタ上書き後のポインタ“P16”を参照した場合、そのポインタ“P16”を用いてレコード304を参照できる。 These pointer overwrite processes may be executed in parallel with other search processes. For example, when the search unit 110 refers to the pointer “P1” before pointer overwriting from the index 123 in the search process, the post-movement pointer “P16” added to the record 220 specified by the pointer “P1” is acquired. After that, the record 304 can be referred to by using the pointer “P16”. On the other hand, when the search unit 110 refers to the pointer “P16” after pointer overwriting from the index 123 in the search process, the record 304 can be referred to using the pointer “P16”.
DBMS104(例えば削除部112)は、コンバート処理(レコード移動処理)の後、それらのレコード220及び221を削除する。削除は、例えば、移動前のレコード220及び221を参照する処理が無くなった時点で行われる。 The DBMS 104 (for example, the deletion unit 112) deletes the records 220 and 221 after the conversion processing (record movement processing). The deletion is performed, for example, when the process of referring to the records 220 and 221 before the movement disappears.
図4は、索引更新処理のフローチャートである。索引更新処理は、索引コンバート部135により実行される。 FIG. 4 is a flowchart of the index update process. The index update process is executed by the index conversion unit 135.
S4001で、索引コンバート部135は、索引123から、移動対象レコード(例えば220)の移動前ポインタ(例えば“P1”)が格納されているスロットを検索する。 In step S4001, the index conversion unit 135 searches the index 123 for a slot in which the pre-movement pointer (for example, “P1”) of the movement target record (for example, 220) is stored.
S4002で、索引コンバート部135は、見つかったスロット(例えば移動前ポインタ“P1”が格納されているスロット)に、移動後ポインタ(例えば“P16”)を上書きする。 In S4002, the index conversion unit 135 overwrites the found pointer (for example, the slot in which the pre-movement pointer “P1” is stored) with the post-movement pointer (for example, “P16”).
図5は、索引検索処理のフローチャートである。索引検索処理は、索引検索部132により実行される。 FIG. 5 is a flowchart of the index search process. The index search process is executed by the index search unit 132.
S5001で、索引検索部132は、索引123から、検索対象キー(例えば“100”)が格納されているエントリ(例えば261)を検索する。 In step S5001, the index search unit 132 searches the index 123 for an entry (for example, 261) in which a search target key (for example, “100”) is stored.
S5002で、索引検索部132は、見つかったエントリから全ポインタを取得する。 In step S5002, the index search unit 132 acquires all pointers from the found entry.
図6は、索引インサート処理のフローチャートである。索引インサート処理は、索引インサート部133により実行される。 FIG. 6 is a flowchart of the index insert process. The index insert processing is executed by the index insert unit 133.
S6001で、索引インサート部133は、索引123から、インサートされたレコードの検索キーが格納されているエントリを検索する。 In step S6001, the index insert unit 133 searches the index 123 for an entry in which the search key of the inserted record is stored.
S6002で、索引インサート部133は、インサートされたレコードがレコード移動される可能性があるか否か(ロー形式で格納されたか否か)を判定する。具体的には、例えば、DBページとして、ロー形式DBページ(ロー形式格納用のDBページ)とカラム形式DBページ(カラム形式格納用のDBページ)とがあり、索引インサート部133は、インサートされたレコードがロー形式DBページに存在するか否かを判定する。 In step S6002, the index insert unit 133 determines whether the inserted record may be moved (whether the inserted record is stored in the raw format). Specifically, for example, there are row format DB pages (DB pages for storing row format) and column format DB pages (DB page for storing column format) as DB pages, and the index insert unit 133 is inserted. It is determined whether the record that exists in the raw format DB page exists.
S6002の判定結果が真の場合(S6002:Y)、S6003で、索引インサート部133は、S6001で見つかったエントリのうちの非ソートエントリ部分の最後尾ポインタを特定する。そして、S6005で、索引インサート部133は、特定した最後尾ポインタの次に、インサートされたレコードの格納位置を示すポインタを追記する。これにより、非ソートエントリ部分のポインタは、常にポインタオフセットにより特定可能となる。例えば、索引検索の最中に、コンバート処理によりポインタが上書きされた場合も、検索処理において、ポインタオフセットによりポインタを一意に特定し、ポインタオフセットをインクリメントしながら検索することで、漏れや重複なく検索処理を実行することが可能となる。 When the determination result of S6002 is true (S6002: Y), the index insertion unit 133 specifies the tail pointer of the non-sorted entry portion of the entries found in S6001 in S6003. Then, in step S6005, the index insert unit 133 adds a pointer indicating the storage position of the inserted record after the identified last pointer. As a result, the pointer of the non-sorted entry portion can always be identified by the pointer offset. For example, even if the pointer is overwritten by the conversion process during the index search, the pointer is uniquely specified by the pointer offset in the search process, and the search is performed while incrementing the pointer offset, so that the search can be performed without omission or duplication. It becomes possible to execute processing.
一方、S6002の判定結果が偽の場合(S6002:N)、S6004で、索引インサート部133は、S6001で見つかったエントリのうちのソートエントリ部分を特定し、特定されたソートエントリ部分から、インサートされたレコードのポインタのインサート位置を特定する。そして、S6005で、索引インサート部133は、特定された位置に、インサートされたレコードのポインタを追記する。 On the other hand, when the determination result of S6002 is false (S6002: N), the index insert unit 133 specifies the sort entry part of the entries found in S6001 and inserts from the specified sort entry part in S6004. Specify the insert position of the pointer of the record that was saved. Then, in S6005, the index insert unit 133 additionally writes the pointer of the inserted record at the specified position.
以上の索引インサート処理において、例えば、以下の処理が行われてよい。 In the above index insert processing, for example, the following processing may be performed.
すなわち、S6004で、索引インサート部133は、特定されたソートエントリ部分(例えば、その非ソートエントリ部分を含んだDBページ)のロック(例えば排他ロック)を取得する。既にロック状態であれば、索引インサート部133は、ロック解除を待つ。そのソートエントリ部分がロック状態の間、S6005で、索引インサート部133は、ポインタを追記し、ソートエントリ部分におけるポインタ集合をポインタ順にソートし、ソート後にロックを解除する。ポインタ追記且つソートが完了するまでロック状態であるため、ロック状態の時間は長い。また、ソートエントリ部分が2以上のDBページに格納されている場合、索引インサート部133は、それら2以上のDBページのロックを取得する。ソートエントリ部分における全てのポインタがソートの対象であるためである。 That is, in S6004, the index insert unit 133 acquires a lock (for example, an exclusive lock) of the identified sort entry portion (for example, a DB page including the non-sort entry portion). If already locked, the index insert unit 133 waits for unlocking. While the sort entry part is in the locked state, in S6005, the index insert part 133 additionally writes pointers, sorts the pointer set in the sort entry part in pointer order, and releases the lock after sorting. Since it is in the locked state until pointer addition and sorting are completed, the locked state takes a long time. In addition, when the sort entry part is stored in two or more DB pages, the index insert unit 133 acquires the lock of those two or more DB pages. This is because all pointers in the sort entry part are targets of sorting.
一方、S6003で、索引インサート部133は、非ソートエントリ部分(例えば、その非ソートエントリ部分を含んだDBページ)のロックを取得する。索引インサート部133は、ロック状態の間にポインタを追記し、ポインタの追記後にそのロックを解除する。ポインタ追記後にロックが解除されるので、ロック状態の時間が短くて済む。また、非ソートエントリ部分が2以上のDBページに格納されていても、その2以上のDBページのうち、ロックは、非ソートエントリ部分におけるポインタ追記部分(最後尾)を含んだDBページについてのみ取得されればよい。非ソートエントリ部分における全てのポインタがソートされることが無いからである。 On the other hand, in step S6003, the index insert unit 133 acquires the lock of the non-sorted entry portion (for example, the DB page including the non-sorted entry portion). The index insert unit 133 additionally writes the pointer during the locked state, and releases the lock after the additional writing of the pointer. Since the lock is released after the pointer is additionally written, the lock time can be shortened. Further, even if the non-sorted entry part is stored in two or more DB pages, the lock is only for the DB page including the pointer added part (last part) in the non-sorted entry part among the two or more DB pages. It should be acquired. This is because all the pointers in the non-sorted entry part are not sorted.
以上のように、ソートエントリ部分はロック取得(排他)がされ、非ソートエントリ部分はロック取得がされないでよい。ロック取得は、上述のように、DBページ単位で行われてよい。この場合、ソートエントリ部分と非ソートエントリ部分は異なるDBページに格納されることが好ましい。 As described above, the lock may be acquired (excluded) in the sort entry part and the lock may not be acquired in the non-sort entry part. The lock acquisition may be performed in DB page units as described above. In this case, it is preferable that the sorted entry portion and the unsorted entry portion are stored in different DB pages.
図7は、索引削除処理のフローチャートである。索引削除処理は、索引削除部134により実行される。 FIG. 7 is a flowchart of the index deletion process. The index deleting process is executed by the index deleting unit 134.
S7001で、索引削除部134は、索引123から、削除対象レコードの検索キーが格納されているエントリを検索する。 In step S7001, the index deletion unit 134 searches the index 123 for an entry in which the search key of the record to be deleted is stored.
S7002で、索引削除部134は、削除対象レコードがレコード移動される可能性があるか否か(ロー形式で格納されたか否か)を判定する。S7002の判定は、図6のS6002と同様の判定である。 In step S7002, the index deletion unit 134 determines whether the deletion target record may be moved (whether it is stored in raw format). The determination of S7002 is the same determination as S6002 of FIG.
S7002の判定結果が偽の場合(S7002:N)、S7003で、索引削除部134は、S7001で見つかったエントリのうちのソートエントリ部分を二分探索し、削除対象レコードのポインタが入っているスロットを検索する。S7003の二分探索により検索対象スロットが見つかった場合(S7004:Y)、索引削除部134は、S7006で、見つかったスロットに入っているポインタを削除する。S7003の二分探索で検索対象スロットが見つらなかった場合(S7004:N)、索引削除部134は、S7005で、S7001で見つかったエントリのうちの非ソートエントリ部分を全探索し、削除対象レコードのポインタが入っているスロットを検索する。そして、索引削除部134は、S7006で、S7005の全探索で見つかったスロットに入っているポインタを削除する。 If the determination result of S7002 is false (S7002: N), the index deleting unit 134 searches the sort entry part of the entries found in S7001 by dichotomy in S7003, and finds the slot containing the pointer of the record to be deleted. Search for. When the search target slot is found by the binary search in S7003 (S7004: Y), the index deleting unit 134 deletes the pointer in the found slot in S7006. If the search target slot is not found in the binary search of S7003 (S7004: N), the index deleting unit 134 searches the unsorted entry portion of the entries found in S7001 in S7005, and deletes the record to be deleted. Search for the slot containing the pointer. Then, in S7006, the index deleting unit 134 deletes the pointer contained in the slot found in the full search in S7005.
S7002の判定結果が真の場合(S7002:Y)、索引削除部134は、S7005で、S7001で見つかったエントリのうちの非ソートエントリ部分を全探索し、削除対象レコードのポインタが入っているスロットを検索する。そして、索引削除部134は、S7006で、S7005の全探索で見つかったスロットに入っているポインタを削除する。 If the determination result of S7002 is true (S7002: Y), the index deleting unit 134 searches the unsorted entry part of the entries found in S7001 in S7005, and the slot containing the pointer of the record to be deleted is included. To search. Then, in S7006, the index deleting unit 134 deletes the pointer contained in the slot found in the full search in S7005.
S7002:Nの場合、非ソートエントリ部分よりも先にソートエントリ部分からスロットが検索される。ソートエントリ部分からの検索の方が、検索コストが低い(検索速度が速い)からである。 S7002: In the case of N, the slot is searched from the sort entry part before the non-sort entry part. This is because the search from the sort entry part has a lower search cost (faster search speed).
図8は、索引更新処理と索引検索処理との並行実行の一例を示すシーケンス図である。 FIG. 8 is a sequence diagram showing an example of parallel execution of the index update process and the index search process.
索引検索部132が、領域制御部108に対して検索対象を含んだDBページAの共有ロックを要求することにより(S804)、DBページAの共有ロックを取得したとする(S805)。DBページAが共有ロック状態の間に、索引コンバート部135が、領域制御部108に対して同一のDBページAの排他ロックを要求した場合、排他ロックの取得待ちとなる。共有ロックが解除されてから(S806)、索引コンバート部135は、排他ロックを取得できる(S811)。 It is assumed that the index search unit 132 acquires the shared lock of the DB page A by requesting the shared lock of the DB page A including the search target from the area control unit 108 (S804) (S805). While the DB page A is in the shared lock state, when the index conversion unit 135 requests the area control unit 108 for the exclusive lock of the same DB page A, the acquisition of the exclusive lock is awaited. After the shared lock is released (S806), the index conversion unit 135 can acquire the exclusive lock (S811).
その後、索引検索部132が、領域制御部108に対してDBページBの共有ロックを要求することにより(S807)、DBページBの共有ロックを取得したとする(S808)。DBページBについて索引検索処理の間、索引コンバート部135は、排他ロック取得済のDBページAについて索引更新処理を並行実行できる。索引コンバート部135は、DBページAの排他ロックを解除し(S812)、索引検索部132が、DBページBの共有ロックを解除する(S809)。 After that, it is assumed that the index search unit 132 acquires the shared lock of the DB page B by requesting the shared lock of the DB page B from the area control unit 108 (S807) (S808). During the index search process for the DB page B, the index conversion unit 135 can execute the index update process for the DB page A for which the exclusive lock has been acquired in parallel. The index conversion unit 135 releases the exclusive lock on the DB page A (S812), and the index search unit 132 releases the shared lock on the DB page B (S809).
図9は、第1レポート901の一例である。 FIG. 9 is an example of the first report 901.
第1レポート901は、例えばDB管理者向けの情報の一例であり、DB容量の推移を表す。第1レポート901は、カラムストア管理部109により表示される。カラムストア管理部109は、DBサーバ101が有する表示デバイスに第1レポート901を表示してもよいし、DBサーバ101に接続された遠隔の計算機に第1レポート901を表示してもよい(第1レポート901の表示用情報をその遠隔の計算機に送信してもよい)。 The first report 901 is an example of information for the DB administrator, for example, and represents the transition of the DB capacity. The first report 901 is displayed by the column store management unit 109. The column store management unit 109 may display the first report 901 on a display device included in the DB server 101, or may display the first report 901 on a remote computer connected to the DB server 101 (the first report 901). 1 Display information of the report 901 may be transmitted to the remote computer).
第1レポート901は、表124の容量902と、索引123の容量903と、容量の推移(例えばグラフ)905と、DB最大容量に達するまでの予測された期間904とを含む。第1レポート901は、レポート記載形式の一例を示したものであり、レポート記載形式を限定するものではない。第1レポート901は、情報が異なる形式で記載されていてもよいし、別の情報が追加で記載されていてもよい。 The first report 901 includes a capacity 902 of the table 124, a capacity 903 of the index 123, a capacity transition (for example, a graph) 905, and a predicted period 904 until the DB maximum capacity is reached. The first report 901 shows an example of the report description format, and does not limit the report description format. In the first report 901, information may be described in a different format, or different information may be additionally described.
表124の容量の推移は、レコードの収集速度(単位時間当たりに追加されるレコード総容量)のような情報に基づきカラムストア管理部109により予測される。索引123の容量の推移は、表124の容量の推移に基づいてカラムストア管理部109により予測される。表124の容量に基づいて索引123の容量を予測できる理由は、本実施例によれば、コンバート処理によって索引123の容量が増大しないためである。 The transition of the capacity of the table 124 is predicted by the column store management unit 109 based on information such as the record collection speed (total record capacity added per unit time). The transition of the capacity of the index 123 is predicted by the column store management unit 109 based on the transition of the capacity of the table 124. The reason that the capacity of the index 123 can be predicted based on the capacity of the table 124 is that the capacity of the index 123 is not increased by the conversion process according to this embodiment.
図10は、第2レポート1001の一例である。 FIG. 10 is an example of the second report 1001.
第2レポート1001は、例えばDB管理者向けの情報の一例であり、DB統計情報に基づくDB性能挙動を表す。第2レポート1001は、カラムストア管理部109により表示される。カラムストア管理部109は、DBサーバ101が有する表示デバイスに第2レポート1001を表示してもよいし、DBサーバ101に接続された遠隔の計算機に第2レポート1001を表示してもよい(第2レポート1001の表示用情報をその遠隔の計算機に送信してもよい)。また、第2レポート1001の形式は、第1レポート901と同様、一例でよい。 The second report 1001 is an example of information for the DB administrator, for example, and represents the DB performance behavior based on the DB statistical information. The second report 1001 is displayed by the column store management unit 109. The column store management unit 109 may display the second report 1001 on the display device of the DB server 101, or may display the second report 1001 on a remote computer connected to the DB server 101 (the first report 1001). 2 The display information of the report 1001 may be transmitted to the remote computer). Also, the format of the second report 1001 may be an example, like the first report 901.
DB統計情報は、例えば、インサート実行回数1002、削除実行回数1003、コンバート実行回数1004、検索処理中においてインサート処理により待ちが発生した回数1005、検索処理中において削除処理により待ちが発生した回数1006、及び、検索処理中においてコンバート処理により待ちが発生した回数1007が記載されている。 The DB statistical information includes, for example, the number of insert executions 1002, the number of deletion executions 1003, the number of conversion executions 1004, the number of waits 1005 caused by the insert processing during the search processing, the number 1006 of waits caused by the deletion processing during the search processing, In addition, the number of times 1007 the wait occurs due to the conversion process during the search process is described.
図10の例によれば、コンバート処理により待ちが発生するケースは、スロットにポインタを上書きするときであり、上述したように、検索処理のような他処理をコンバート処理と並行実行することができる。このため、コンバート処理により待ちが発生した回数1007は、コンバート実行回数1004に比してかなり低い。なお、もし、コンバート処理により待ちが発生した回数1007が多い場合、DBページのサイズを小さくすることが、対処の一例である。 According to the example of FIG. 10, the case where waiting occurs due to the conversion process is when the pointer is overwritten in the slot, and as described above, another process such as the search process can be executed in parallel with the conversion process. . For this reason, the number 1007 of waits generated by the conversion process is considerably lower than the number 1004 of conversion executions. It should be noted that if the number 1007 of waits generated by the conversion process is large, reducing the size of the DB page is an example of coping measures.
以上、実施例1によれば、コンバート処理によって索引容量が増大せず、且つ、コンバート処理と並行して同一検索キーについて検索処理が可能である。つまり、索引容量の増大と処理性能の低下の両方を回避することができる。 As described above, according to the first embodiment, the index capacity is not increased by the conversion process, and the search process can be performed for the same search key in parallel with the conversion process. That is, both an increase in index capacity and a decrease in processing performance can be avoided.
実施例2を説明する。その際、実施例1との相違点を主に説明し、実施例1との共通点については説明を省略又は簡略する。 Example 2 will be described. At that time, differences from the first embodiment will be mainly described, and description of common points with the first embodiment will be omitted or simplified.
図11は、実施例2に係る索引123とその索引123に対応した表124との一例の模式図(レコード移動後)である。 FIG. 11 is a schematic diagram (after moving records) of an example of the index 123 and the table 124 corresponding to the index 123 according to the second embodiment.
索引1123のリーフエントリ1253は、検索キー毎にエントリを有するが、エントリは、非ソートエントリ部分を有しソートエントリ部分を有しない。つまり、エントリには、ポインタ順にポイントがソートされる領域が無い。例えば、検索キー“100”に対応したエントリ1261には、ポインタ数“5”が格納されたスロット1107と、5つのポインタ“P16”、“P15”、“P10”、“P11”及び“P13”がそれぞれ格納された5つのポインタ1101〜1105がある。移動前ポインタ“P1”及び“P2”に移動後ポインタ“P16”及び“P15”がそれぞれ上書きされるが、移動後ポインタ“P16”及び“P15”を含む上述の5つのポインタは、ポインタ順にソートされない。 The leaf entry 1253 of the index 1123 has an entry for each search key, but the entry has a non-sorted entry portion and does not have a sorted entry portion. That is, the entry does not have an area in which the points are sorted in pointer order. For example, the entry 1261 corresponding to the search key “100” has a slot 1107 in which the number of pointers “5” is stored, and five pointers “P16”, “P15”, “P10”, “P11” and “P13”. There are five pointers 1101 to 1105 in which are respectively stored. The pre-movement pointers "P1" and "P2" are overwritten by the post-movement pointers "P16" and "P15", respectively, but the above-mentioned five pointers including the post-movement pointers "P16" and "P15" are sorted in pointer order. Not done.
図12は、実施例2に係る索引インサート処理のフローチャートである。 FIG. 12 is a flowchart of the index insert process according to the second embodiment.
S12001で、索引インサート部1133は、索引1123から、インサートされたレコードの検索キーが格納されているエントリを検索する。 In step S12001, the index insert unit 1133 searches the index 1123 for an entry in which the search key of the inserted record is stored.
S12002で、索引インサート部1133は、見つかったエントリの最後尾ポインタを特定する。 In S12002, the index insert unit 1133 identifies the tail pointer of the found entry.
S12003で、索引インサート部1133は、特定された最後尾ポインタの次に、インサートされたレコードのポインタを追記する。 In step S12003, the index insert unit 1133 additionally writes the pointer of the inserted record after the identified last pointer.
図13は、実施例2に係る索引削除処理のフローチャートである。 FIG. 13 is a flowchart of the index deletion process according to the second embodiment.
S13001で、索引削除部1134は、索引1123から、削除対象レコードのキーが格納されているエントリを検索する。 In step S13001, the index deletion unit 1134 searches the index 1123 for an entry in which the key of the record to be deleted is stored.
S13002で、索引インサート部1133は、S13001で見つかったエントリ(ポインタ群)を全探索し、削除対象レコードのポインタが入っているスロットを検索する。 In S13002, the index insert unit 1133 searches all the entries (pointer group) found in S13001 and searches for the slot containing the pointer of the record to be deleted.
S13003で、索引インサート部1133は、S13002の全探索により見つかったスロットに入っているポインタを削除する。 In S13003, the index insert unit 1133 deletes the pointer contained in the slot found by the full search in S13002.
以上、実施例2でも、コンバート処理によって索引容量が増大せず、且つ、コンバート処理と並行して同一検索キーについて検索処理が可能である。また、実施例2によれば、常に全探索が必要なため実施例1よりも削除処理量が増えるが、実施例1に比べて索引構造の簡略化が可能である。また、分析のようなケースでは、複数のレコードをまとめて削除することが多く、個別にレコードを削除するケースは少ないと考えられるので、そのようなケースでは、削除処理量が増えることは格別のデメリットにはならないと考えられる。 As described above, also in the second embodiment, the index capacity is not increased by the conversion process, and the search process can be performed on the same search key in parallel with the conversion process. Further, according to the second embodiment, since the total search is always required, the deletion processing amount is larger than that of the first embodiment, but the index structure can be simplified as compared with the first embodiment. In addition, in cases like analysis, it is likely that multiple records will be deleted together, and it is unlikely that individual records will be deleted.Therefore, in such cases, the increase in the amount of deletion processing is exceptional. It is not considered to be a disadvantage.
以上、幾つかの実施例を説明したが、本発明は、それらの実施例に限定されるものでなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。 Although some embodiments have been described above, it is needless to say that the present invention is not limited to these embodiments and can be variously modified without departing from the scope of the invention.
例えば、実施例1及び2のいずれも、ダイナミックミーティングのように会議中にオンデマンド分析を行って意志決定時間を短縮するケースに適用することが期待できる。 For example, both of the first and second embodiments can be expected to be applied to the case where the on-demand analysis is performed during the conference to shorten the decision-making time, such as a dynamic meeting.
Claims (12)
前記インターフェース部に接続された1以上のプロセッサを含むプロセッサ部と
を有し、
前記プロセッサ部が、前記表における少なくとも1つのレコードを移動するレコード移動処理に伴い、前記索引を更新する索引更新処理を実行し、
前記プロセッサ部が、前記索引更新処理において、前記レコード移動処理において移動したレコードについて、前記索引における移動前ポインタに移動後ポインタを上書きし、
前記移動前ポインタは、移動前の格納位置にあるレコードへのポインタであり、
前記移動後ポインタは、移動後の格納位置にあるレコードへのポインタであり、
前記索引は、木構造になった複数のノードを含み、
前記複数のノードのうちの1以上のリーフノードに、キー毎のポインタが格納され、
前記1以上のリーフノードが、キー毎に、
そのキーに対応した移動され得るレコードへのポインタが格納されポインタ順にポインタがソートされない領域である第1の領域と、
そのキーに対応した移動され得ないレコードへのポインタが格納されポインタ順にポインタがソートされている領域である第2の領域と
を有する、
計算機。 An interface section including one or more interfaces including an interface to a database including an index and a table,
A processor unit including one or more processors connected to the interface unit,
The processor unit executes an index update process of updating the index, along with a record move process of moving at least one record in the table,
In the index update process, the processor unit overwrites the post-movement pointer on the pre-movement pointer in the index for the record moved in the record movement process,
The pre-movement pointer is a pointer to a record at the storage position before the movement,
The after-movement pointer is a pointer to the record at the storage position after movement,
The index includes a plurality of nodes in a tree structure,
A pointer for each key is stored in one or more leaf nodes of the plurality of nodes,
The one or more leaf nodes are
A first area which is an area in which a pointer to a movable record corresponding to the key is stored and the pointer is not sorted in pointer order;
A second area which is an area in which a pointer to an immovable record corresponding to the key is stored and the pointer is sorted in pointer order,
calculator.
前記第1の領域についての探索は、全探索であり、
前記第2の領域についての探索は、二分探索であり、
前記索引削除処理において、前記削除対象のポインタが移動され得ないレコードへのポインタである場合に、前記第2の領域についての探索を行い、探索により見つからなかった場合に、前記第1の領域についての探索を行う
請求項1記載の計算機。 The processor unit executes an index deletion process that is a process of searching for a pointer to be deleted from the index and deleting the found pointer,
The search for the first region is a full search,
Search for the second region, Ri binary search der,
In the index deletion processing, when the pointer to be deleted is a pointer to a record that cannot be moved, a search is performed on the second area, and when the pointer is not found by the search, the first area is searched. The computer according to claim 1.
請求項2記載の計算機。 The processor unit deletes the moved record from the storage position before the move, after executing the index update process accompanying the record move process,
The computer according to claim 2.
請求項1記載の計算機。 When a record stored in a raw format is added, the processor unit stores a pointer to the record next to the last pointer of the first area,
The computer according to claim 1.
請求項1記載の計算機。 When searching for a pointer from the first area, the processor unit searches while incrementing the pointer offset,
The computer according to claim 1.
前記プロセッサ部は、ページ単位でロックを取得し、
前記第1の領域が、前記第2の領域が格納される1以上のページと別の1以上のページに格納されている、
請求項1記載の計算機。 The logical space in which the database is stored is composed of multiple pages,
The processor unit acquires a lock in page units,
The first area is stored in one or more pages different from the one or more pages in which the second area is stored,
The computer according to claim 1.
前記第2の領域にポインタを格納する場合、前記第2の領域を含んだ全てのページのロックを取得し、
前記第1の領域にポインタを格納する場合、前記第1の領域を含んだ1以上のページのうちの、そのポインタが格納される場所を含んだページのみのロックを取得する、
請求項6記載の計算機。 The processor unit is
When a pointer is stored in the second area, locks of all pages including the second area are acquired,
When a pointer is stored in the first area, a lock is acquired only on a page including a place where the pointer is stored among one or more pages including the first area,
The computer according to claim 6.
前記移動され得ないレコードは、カラム形式で格納された複数のレコードの各々であり、
前記プロセッサ部が、前記2以上のレコードの格納形式をロー形式からカラム形式に変換するコンバート処理を実行し、
前記コンバート処理は、前記レコード移動処理及び前記索引更新処理を含む、
請求項1記載の計算機。 The record that can be moved is each of two or more records stored in raw format,
The record that cannot be moved is each of a plurality of records stored in a column format,
The processor unit executes a conversion process for converting the storage format of the two or more records from a row format to a column format,
The conversion processing includes the record movement processing and the index update processing,
The computer according to claim 1.
前記プロセッサ部は、N件以上のレコードが蓄積される都度に、少なくともN件のレコードの格納形式をロー形式からカラム形式に変換する前記コンバート処理を実行する、
請求項8記載の計算機。 The processor unit stores records based on one or more collected data in raw format each time data is collected from a data source,
The processor unit executes the conversion process for converting the storage format of at least N records from a row format to a column format each time N or more records are accumulated.
The computer according to claim 8.
各キーについて、前記第1の領域が、前記第2の領域が格納される1以上のページと別の1以上のページに格納されており、
前記プロセッサ部は、
前記第2の領域にポインタを格納する場合、前記第2の領域を含んだ全てのページのロックを取得し、
前記第1の領域にポインタを格納する場合、前記第1の領域を含んだ1以上のページのうちの、そのポインタが格納される場所を含んだページのみのロックを取得する、
請求項8記載の計算機。 The logical space in which the database is stored is composed of multiple pages,
For each key, the first area is stored on one or more pages other than the one or more pages on which the second area is stored,
The processor unit is
When a pointer is stored in the second area, locks of all pages including the second area are acquired,
When a pointer is stored in the first area, a lock is acquired only on a page including a place where the pointer is stored among one or more pages including the first area,
The computer according to claim 8.
前記レコード移動処理に伴い、前記索引を更新する索引更新処理を実行し、
前記索引更新処理は、前記レコード移動処理において移動したレコードについて、前記索引における移動前ポインタに移動後ポインタを上書きすることを含み、
前記移動前ポインタは、移動前の格納位置にあるレコードへのポインタであり、
前記移動後ポインタは、移動後の格納位置にあるレコードへのポインタであり、
前記索引は、木構造になった複数のノードを含み、
前記複数のノードのうちの1以上のリーフノードに、キー毎のポインタが格納され、
前記1以上のリーフノードが、キー毎に、
そのキーに対応した移動され得るレコードへのポインタが格納されポインタ順にポインタがソートされない領域である第1の領域と、
そのキーに対応した移動され得ないレコードへのポインタが格納されポインタ順にポインタがソートされている領域である第2の領域と
を有する、
データベース管理方法。 Performing a record move operation to move at least one record in said table of a database containing an index and a table,
With the record moving process, an index updating process for updating the index is executed,
The index update process includes overwriting the before-movement pointer in the index with the after-movement pointer for the record moved in the record movement process,
The pre-movement pointer is a pointer to a record at the storage position before the movement,
The after-movement pointer is a pointer to the record at the storage position after movement,
The index includes a plurality of nodes in a tree structure,
A pointer for each key is stored in one or more leaf nodes of the plurality of nodes,
The one or more leaf nodes are
A first area which is an area in which a pointer to a movable record corresponding to the key is stored and the pointer is not sorted in pointer order;
A second area which is an area in which a pointer to an immovable record corresponding to the key is stored and the pointer is sorted in pointer order,
Database management method.
(a)索引及び表を含んだデータベースの前記表における少なくとも1つのレコードを移動するレコード移動処理を実行する、
(b)前記レコード移動処理に伴い、前記索引を更新する索引更新処理を実行する、
前記索引更新処理は、前記レコード移動処理において移動したレコードについて、前記索引における移動前ポインタに移動後ポインタを上書きすることを含み、
前記移動前ポインタは、移動前の格納位置にあるレコードへのポインタであり、
前記移動後ポインタは、移動後の格納位置にあるレコードへのポインタであり、
前記索引は、木構造になった複数のノードを含み、
前記複数のノードのうちの1以上のリーフノードに、キー毎のポインタが格納され、
前記1以上のリーフノードが、キー毎に、
そのキーに対応した移動され得るレコードへのポインタが格納されポインタ順にポインタがソートされない領域である第1の領域と、
そのキーに対応した移動され得ないレコードへのポインタが格納されポインタ順にポインタがソートされている領域である第2の領域と
を有する、
を記録したコンピュータ読取り可能な非一時的な記録媒体。 A computer program that causes a computer to execute the following (a) and (b):
(A) performing a record move process of moving at least one record in the table of the database including the index and the table,
(B) executing an index update process for updating the index along with the record movement process,
The index update process includes overwriting the before-movement pointer in the index with the after-movement pointer for the record moved in the record movement process,
The pre-movement pointer is a pointer to a record at the storage position before the movement,
The after-movement pointer is a pointer to the record at the storage position after movement,
The index includes a plurality of nodes in a tree structure,
A pointer for each key is stored in one or more leaf nodes of the plurality of nodes,
The one or more leaf nodes are
A first area which is an area in which a pointer to a movable record corresponding to the key is stored and the pointer is not sorted in pointer order;
A second area which is an area in which a pointer to an immovable record corresponding to the key is stored and the pointer is sorted in pointer order,
A computer-readable non-transitory recording medium on which is recorded.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2016/061861 WO2017179140A1 (en) | 2016-04-13 | 2016-04-13 | Computer and database management method |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPWO2017179140A1 JPWO2017179140A1 (en) | 2019-01-10 |
| JP6680871B2 true JP6680871B2 (en) | 2020-04-15 |
Family
ID=60042752
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2018511810A Active JP6680871B2 (en) | 2016-04-13 | 2016-04-13 | Computer and database management method |
Country Status (2)
| Country | Link |
|---|---|
| JP (1) | JP6680871B2 (en) |
| WO (1) | WO2017179140A1 (en) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP6707754B2 (en) * | 2017-11-30 | 2020-06-10 | 株式会社日立製作所 | Database management system and method |
| EP4095717A1 (en) * | 2021-05-26 | 2022-11-30 | Microsoft Technology Licensing, LLC | Tree-based data structure |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4139613B2 (en) * | 2002-03-18 | 2008-08-27 | 株式会社日立製作所 | Data processing method |
| JP6006740B2 (en) * | 2014-02-27 | 2016-10-12 | ウイングアーク1st株式会社 | Index management device |
| JP6287441B2 (en) * | 2014-03-26 | 2018-03-07 | 日本電気株式会社 | Database device |
-
2016
- 2016-04-13 WO PCT/JP2016/061861 patent/WO2017179140A1/en not_active Ceased
- 2016-04-13 JP JP2018511810A patent/JP6680871B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| WO2017179140A1 (en) | 2017-10-19 |
| JPWO2017179140A1 (en) | 2019-01-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR101938953B1 (en) | Flash optimized columnar data layout and data access algorithms for big data query engines | |
| US10740036B2 (en) | Unified architecture for hybrid database storage using fragments | |
| US10248676B2 (en) | Efficient B-Tree data serialization | |
| US10496319B2 (en) | Lifecycle management for data in non-volatile memory including blocking creation of a database savepoint and associating non-volatile memory block identifiers with database column fragments | |
| US20220255014A1 (en) | Trie-Based Indices for Databases | |
| US9043334B2 (en) | Method and system for accessing files on a storage system | |
| US9043293B2 (en) | Table boundary detection in data blocks for compression | |
| CN114253908A (en) | Data management method and device of key value storage system | |
| US20140136510A1 (en) | Hybrid table implementation by using buffer pool as permanent in-memory storage for memory-resident data | |
| US20160350302A1 (en) | Dynamically splitting a range of a node in a distributed hash table | |
| US9348833B2 (en) | Consolidation for updated/deleted records in old fragments | |
| CN113094374A (en) | Distributed storage and retrieval method and device and computer equipment | |
| CN102722449A (en) | Key-Value local storage method and system based on solid state disk (SSD) | |
| JP6479186B2 (en) | Computer system and database management method | |
| US10810174B2 (en) | Database management system, database server, and database management method | |
| US9430503B1 (en) | Coalescing transactional same-block writes for virtual block maps | |
| US20180075116A1 (en) | Information processing system, control device, and computer-readable recording medium having processing program recorded therein | |
| US20050229032A1 (en) | Method for rearranging logical volume | |
| JP6726690B2 (en) | Performing multidimensional search, content-associative retrieval, and keyword-based retrieval and retrieval on losslessly reduced data using basic data sieves | |
| Liu et al. | TSCache: an efficient flash-based caching scheme for time-series data workloads | |
| US9576008B2 (en) | System and method for search indexing | |
| US10585802B1 (en) | Method and system for caching directories in a storage system | |
| JP6680871B2 (en) | Computer and database management method | |
| EP3696688B1 (en) | Locking based on categorical memory allocation | |
| CN111444179B (en) | Data processing method, device, storage medium and server |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180907 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190528 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190709 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20191001 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20191217 |
|
| A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20191225 |
|
| 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: 20200218 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200319 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 6680871 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |