WO2018069998A1 - 処理単位サイズ算出プログラム、処理単位サイズ算出方法及び処理単位サイズ算出装置 - Google Patents

処理単位サイズ算出プログラム、処理単位サイズ算出方法及び処理単位サイズ算出装置 Download PDF

Info

Publication number
WO2018069998A1
WO2018069998A1 PCT/JP2016/080282 JP2016080282W WO2018069998A1 WO 2018069998 A1 WO2018069998 A1 WO 2018069998A1 JP 2016080282 W JP2016080282 W JP 2016080282W WO 2018069998 A1 WO2018069998 A1 WO 2018069998A1
Authority
WO
WIPO (PCT)
Prior art keywords
processing unit
processing
size
database
information
Prior art date
Application number
PCT/JP2016/080282
Other languages
English (en)
French (fr)
Inventor
栄二 関
Original Assignee
富士通株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 富士通株式会社 filed Critical 富士通株式会社
Priority to JP2018544625A priority Critical patent/JP6690728B2/ja
Priority to PCT/JP2016/080282 priority patent/WO2018069998A1/ja
Publication of WO2018069998A1 publication Critical patent/WO2018069998A1/ja
Priority to US16/374,253 priority patent/US11372883B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2315Optimistic concurrency control
    • G06F16/2329Optimistic concurrency control using versioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3452Performance evaluation by statistical analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/221Column-oriented storage; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Definitions

  • the present invention relates to a processing unit size calculation program, a processing unit size calculation method, and a processing unit size calculation device.
  • OLTP Online Transaction Processing
  • OLAP Online Analytical Processing
  • FIG. 10 is a diagram showing the characteristics of OLTP and OLAP.
  • a row type indicates a row type database that collectively stores data included in one row
  • a column type indicates a column type that collectively stores data included in one column. Indicates the database.
  • the database management system ensures the consistency of the database to be backed up, enabling backup in a simple work process. There is technology to do.
  • It also stores a weighted directed graph with the data format as a node, the conversion method as a branch, and the cost of data conversion as a weight. There is a technique for obtaining a combination.
  • MVCC Multi Version Concurrency Control
  • a lock mechanism may be used for concurrency control, but MVCC has an advantage that the acquisition of the read lock and the acquisition of the write lock do not compete with each other compared to the lock mechanism.
  • FIG. 11 is a diagram for explaining the problem of row-wise MVCC. As shown in FIG. 11, the time required for the aggregation process is shorter in the column type database than in the row type database. For this reason, the overhead of MVCC cannot be ignored in a column type database.
  • the present invention aims to reduce the execution cost of multi-version simultaneous execution control.
  • the processing unit size calculation program stores the size of a logical unit in relation to a database management system that performs a reflection process in which information related to an operation performed on a row database is reflected in a column database in a predetermined processing unit. Is calculated.
  • the processing unit size calculation program first causes a computer to execute processing for calculating a processing unit reference value based on two pieces of information.
  • One of the two pieces of information is information related to the processing cost of multi-version simultaneous execution control performed in units of processing in the database management system.
  • the other one of the two pieces of information is information related to the processing cost of the process of converting the information related to the operation performed on the row type database after the execution of the reflection process to the column type database.
  • the processing unit size calculation program causes the computer to execute processing for calculating the size of the processing unit based on the processing unit reference value and information on the deviation of the number of effective rows included in the plurality of processing units.
  • the present invention can reduce the execution cost of multi-version simultaneous execution control.
  • FIG. 1 is a diagram for explaining IMCS that synchronously reflects an update by an OLTP query.
  • FIG. 2 is a diagram showing a copy of data from the original table to the IMCS.
  • FIG. 3 is a diagram for explaining the local ROS.
  • FIG. 4 is a diagram illustrating a functional configuration of the RDBMS according to the embodiment.
  • FIG. 5A is a diagram illustrating an example in which updates are performed so as to equalize extents.
  • FIG. 5B is a diagram illustrating an example in which data of the same extent is updated until there is no more data.
  • FIG. 6 is a diagram illustrating the association between bias and EX.
  • FIG. 7 is a diagram showing an algorithm for calculating ⁇ max .
  • FIG. 1 is a diagram for explaining IMCS that synchronously reflects an update by an OLTP query.
  • FIG. 2 is a diagram showing a copy of data from the original table to the IMCS.
  • FIG. 3 is a diagram for explaining
  • FIG. 8 is a flowchart showing the processing procedure of the size determination process.
  • FIG. 9 is a diagram illustrating a hardware configuration of a computer that executes an RDBMS.
  • FIG. 10 is a diagram showing characteristics of OLTP and OLAP.
  • FIG. 11 is a diagram for explaining the problem of row-wise MVCC.
  • FIG. 1 is a diagram for explaining IMCS that synchronously reflects an update by an OLTP query.
  • the DB buffer 1a has a ROS (Read Optimized Storage) 15 that is a column type data structure.
  • the DB buffer 1a is an area on the main memory that stores the original table 11 which is a row type database.
  • the DB buffer 1a has a WOS (Write Optimized Storage) 13 that is a row type data structure as a write buffer in order to maintain update performance.
  • WOS Write Optimized Storage
  • the back end unit 12 inserts data into the original table 11.
  • the back-end unit 12 is a module that performs processing for database operations (insertion, update, deletion).
  • writing to the WOS 13 is performed in synchronization with the insertion of data into the original table 11.
  • no data is written in the WOS 13, and only a TID (Tuple-ID) indicating the position of a row (tuple) in the original table 11 is written.
  • FIG. 2 is a diagram showing a copy of data from the original table 11 to the IMCS.
  • a TID is added to each row.
  • the WOS 13 stores the difference between the original table 11 and the ROS 15 using the TID.
  • the ROS 15 stores data for each extent.
  • the ROS 15 also stores a correspondence table between CRID (Columnar Record ID) indicating the row number in the ROS 15 and TID.
  • FIG. 3 is a diagram for explaining the local ROS.
  • an SQL processor 18 is a module that processes SQL and searches a database.
  • the SQL processor 18 when the SQL processor 18 receives the SQL, it converts the WOS 13 to create a local ROS 18a. Then, the SQL processor 18 searches the global ROS 15a and the local ROS 18a together, and outputs the result.
  • the global ROS 15 a is the ROS 15 converted from the WOS 13.
  • FIG. 4 is a diagram illustrating a functional configuration of the RDBMS according to the embodiment.
  • the RDBMS 1 according to the embodiment includes an original table 11, a back-end unit 12, a WOS 13, a first conversion unit 14 a, a second conversion unit 14 b, a ROS 15, and a meta information storage unit 16. And a deletion vector 17 and an SQL processor 18.
  • the RDBMS 1 includes a system table 19 and a size determination unit 20.
  • the original table 11 is a row type database.
  • the original table 11 includes a plurality of tables.
  • the back end unit 12 inserts data into the original table 11 and updates and deletes data in the original table 11. Further, the back end unit 12 updates the WOS 13 in synchronization with the operation of the original table 11.
  • the WOS 13 memorize
  • the WOS 13 includes data WOS 13a and white-out WOS 13b.
  • the data WOS 13a stores the TID of the inserted row. Further, the data WOS 13a stores the TID of a newly created row as the updated row for the updated row.
  • the whiteout WOS 13b stores the TID of the deleted line. Also, the whiteout WOS 13b stores the TID of the deleted pre-update row regarding the updated row.
  • the first conversion unit 14a converts the data WOS 13a and updates the ROS 15 and the meta information storage unit 16.
  • the extent size is variable, and is determined by the size determination unit 20 after the processing by the first conversion unit 14a is completed.
  • the determined size is written into the meta information storage unit 16, and is used when the first conversion unit 14a performs processing next time.
  • the first conversion unit 14a converts only visible data from all existing transactions. Here, “visible” means not uncommitted.
  • the WOS conversion unit 14 illustrated in FIG. 1 corresponds to the first conversion unit 14a. Also, the first conversion unit 14a allocates a transaction ID to the created extent.
  • the second conversion unit 14b converts the whiteout WOS 13b and updates the deletion vector 17 and the meta information storage unit 16.
  • the ROS 15 is a database in which the data of the original table 11 is converted into a column type.
  • the ROS 15 is a set of extents. Column aggregation processing and the like are performed using the ROS 15.
  • the meta information storage unit 16 stores meta information related to IMCS. For example, the meta information storage unit 16 stores the size of each extent, the transaction ID of each extent, and the size determined by the size determination unit 20.
  • the deletion vector 17 is a bit vector indicating the position of the deleted data. There is one deletion vector 17 corresponding to one extent.
  • the SQL processor 18 processes the SQL and searches the database. When the SQL processor 18 receives the SQL, it converts the WOS 13 to create a local ROS 18a. In addition, the SQL processor 18 includes an MVCC unit 18b.
  • the MVCC unit 18b performs MVCC.
  • the MVCC unit 18b performs MVCC in batch for each extent.
  • the MVCC unit 18b performs MVCC control by comparing the transaction ID allocated to the extent by the first conversion unit 14a with the transaction ID of the SQL processor 18.
  • the first conversion unit 14a completes a part of the MVCC processing by converting only visible data from all existing transactions. Further, the MVCC unit 18b minimizes the MVCC in the extent by skipping rows deleted only by bit operation using the deletion vector 17.
  • the system table 19 stores information related to the RDBMS 1. For example, the system table 19 stores the number of rows in each table.
  • the size determination unit 20 determines the extent size.
  • the size determination unit 20 determines the extent size in two stages. In the first stage, the size determination unit 20 determines the best extent size when it is assumed that only insertion processing for the total number of data has been performed. In the second stage, the size determination unit 20 corrects the extent size determined in the first stage based on the influence of the update process.
  • the size determination unit 20 includes a first determination unit 21 that performs a first-stage process and a second determination unit 22 that performs a second-stage process.
  • the first determination unit 21 corresponds to the first calculation unit in the claims
  • the second determination unit 22 corresponds to the second calculation unit in the claims.
  • the first determination unit 21 determines the extent size based on the cost related to the extent size.
  • the costs related to the extent size include the cost of MVCC and the cost of conversion to the local ROS 18a.
  • MVCCCC is a single MVCC cost and time.
  • MVCCC is a constant based on actual measurement.
  • N is the number of rows of all data.
  • EX is the extent size. The cost of MVCC is smaller as the extent size is larger.
  • the cost for conversion to the local ROS 18a is calculated by the following equation (2) because the average size of WOS 13 is EX / 2.
  • LROS is the cost per line of the conversion to the local ROS 18a and is the time. LROS is a constant based on actual measurement.
  • the cost of converting to the local ROS 18a is larger as EX is larger.
  • the cost Cost of MVCC is calculated by the following equation (3).
  • Cost differential Cost ′ is expressed by the following equation (4).
  • Cost ′ 0, and EX that minimizes the cost of MVCC is calculated by the following equation (5).
  • C is a constant value.
  • the second determination unit 22 corrects the extent size determined by the first determination unit 21 based on the influence of the update process.
  • the second determination unit 22 corrects the extent size determined by the first determination unit 21 based on the influence of the update process.
  • FIG. 5A is a diagram showing an example in which updating is performed so as to equalize extents.
  • FIG. 5A (a) shows a case where the filled portion is updated from the initial state, that is, a case where the update is performed so as to equalize the three extents.
  • the filled part is blank.
  • blank lines are indicated by dotted lines.
  • a new (new) extent is created with three update data. Then, when the filled portion in FIG. 5A (b) is updated, the filled portion becomes a blank line as shown in FIG. 5A (c), and a new (new) extent is created with three update data.
  • FIG. 5B is a diagram showing an example in which data of the same extent is updated until there is no more data. As shown in FIG. 5B, when the filled portion is updated, a new extent is generated and an extent in which all data is updated is deleted, so that the number of extents does not increase.
  • FIG. 6 is a diagram illustrating the association between bias and EX.
  • EX Max represents the maximum value of EX, and is a value when there is no update shown in Expression (5).
  • the second determination unit 22 calculates the actual bias and the maximum value of the bias, and determines EX by multiplying EX Max by (actual bias) / (maximum value of the bias).
  • the second determination unit 22 calculates the number of deleted rows of each extent using the deletion vector 17, and calculates the number of valid rows of each extent from the number of rows of extents and the number of deleted rows. Then, the second determination unit 22 calculates the effective row number deviation ⁇ and the effective row number deviation maximum value ⁇ max to calculate EX.
  • the deviation ⁇ of the number of effective rows is calculated by the following equation (6).
  • EX [m] (1 ⁇ m ⁇ M) is the size of each extent
  • M is the number of extents
  • DEL [m] is the number of deleted rows of each extent
  • EX [M] -DEL [m] is the number of valid rows of each extent
  • REST AV is the average value of the number of valid rows.
  • FIG. 7 is a diagram showing an algorithm for calculating ⁇ max . As illustrated in FIG. 7, the second determination unit 22 puts extent sizes into the array size [] in ascending order (1).
  • FIG. 8 is a flowchart showing the processing procedure of the size determination process.
  • the size determination unit 20 acquires the number of rows of the current table from the system table 19 (step S1), and obtains the best extent size EX max when there is no update (step S2).
  • step S3 the size determining unit 20 scans the deletion vector 17 and confirms the number of deleted rows for each extent and sets it to DEL [m] (step S3). Then, the size determining unit 20 confirms the size of each extent from the information in the meta information storage unit 16 and sets it to EX [m] (step S4). Note that the order of the processing in step S3 and step S4 may be reversed.
  • step S5 the size determination unit 20 obtains the deviation ⁇ of the number of effective rows (step S5) and obtains the maximum value ⁇ max of the deviation of the number of effective rows (step S6). Note that the order of the processing in step S5 and step S6 may be reversed.
  • the size determining unit 20 calculates an appropriate extent size f ( ⁇ ) using the function f (step S7).
  • the function f is a function satisfying f (x 1 ) ⁇ f (x 2 ) when 0 ⁇ x ⁇ ⁇ max and 1 ⁇ f (x) ⁇ EX max and x 1 ⁇ x 2 .
  • the function f is defined by the following formula (7).
  • EXmin is a user-defined constant value and an appropriate lower limit value of the extent size.
  • the size determination unit 20 can determine the size of the extent using the effective row number deviation ⁇ , the effective row number deviation maximum value ⁇ max , and the function f.
  • FIG. 9 is a diagram illustrating a hardware configuration of a computer that executes the RDBMS 1.
  • the computer 50 includes a main memory 51, a CPU 52, a LAN (Local Area Network) interface 53, and an HDD (Hard Disk Drive) 54.
  • the computer 50 includes a super IO (Input Output) 55, a DVI (Digital Visual Interface) 56, and an ODD (Optical Disk Drive) 57.
  • the main memory 51 is a memory for storing a program and a program execution result.
  • the CPU 52 is a central processing unit that reads a program from the main memory 51 and executes it.
  • the CPU 52 includes a chip set having a memory controller.
  • the LAN interface 53 is an interface for connecting the computer 50 to another computer via a LAN.
  • the HDD 54 is a disk device that stores programs and data
  • the super IO 55 is an interface for connecting an input device such as a mouse or a keyboard.
  • the DVI 56 is an interface for connecting a liquid crystal display device
  • the ODD 57 is a device for reading / writing a DVD.
  • the LAN interface 53 is connected to the CPU 52 by PCI Express (PCIe), and the HDD 54 and ODD 57 are connected to the CPU 52 by SATA (Serial Advanced Technology Attachment).
  • the super IO 55 is connected to the CPU 52 by LPC (Low Pin Count).
  • the RDBMS 1 executed in the computer 50 is stored in a DVD, read from the DVD by the ODD 57, and installed in the computer 50.
  • the RDBMS 1 is stored in a database or the like of another computer system connected via the LAN interface 53, read from these databases, and installed in the computer 50.
  • the installed RDBMS 1 is stored in the HDD 54, read into the main memory 51, and executed by the CPU 52.
  • the first determination unit 21 performs updating using the total number of data rows (N), one MVCC cost (MVCCC), and one cost LROS for conversion to the local ROS 18a. If not, the best extent size EX Max is calculated. Then, the second determination unit 22 calculates the size of the extent using EX Max and information related to the deviation in the number of valid rows. Therefore, RDBMS1 can lower the MVCC cost.
  • the second determination unit 22 calculates the extent size using EX Max , the effective row number deviation ⁇ , the effective row number deviation maximum value ⁇ max , and the function f. Therefore, the second determination unit 22 can reflect the update bias in the calculation of the extent size.
  • the second conversion unit 14b converts the whiteout WOS 13b to create the deletion vector 17, and the second determination unit 22 calculates the number of valid rows of each extent using the deletion vector 17. Therefore, the second determination unit 22 can efficiently perform the process of calculating the number of valid rows for each extent.
  • the first conversion unit 14a updates the ROS 15 by converting only visible data from all existing transactions. Therefore, the MVCC unit 18b can perform MVCC efficiently.
  • the WOS 13 includes the data WOS 13a and the white-out WOS 13b has been described.
  • the WOS 13 may have information regarding operations on the original table 11 in other forms.

Abstract

SQLプロセッサ(18)が、SQLを受け取ると、WOS(13)を変換してローカルROS(18a)を作成する。また、第1決定部(21)が、全データ行数(N)、1回分のMVCCコスト(MVCCC)、ローカルROS(18a)への変換の1回分のコストLROSを用いて更新がない場合の最良エクステントサイズEXMaxを算出する。そして、第2決定部(22)が、EXMaxと有効行数の偏りに関する情報とを用いて検索コストが最小になるエクステントのサイズを算出する。

Description

処理単位サイズ算出プログラム、処理単位サイズ算出方法及び処理単位サイズ算出装置
 本発明は、処理単位サイズ算出プログラム、処理単位サイズ算出方法及び処理単位サイズ算出装置に関する。
 リレーショナルデータベース管理システム(Relational Database Management System:RDBMS)では、OLTP(Online Transaction Processing)とOLAP(Online Analytical Processing)の2つの処理が行われる。OLTPは、データの挿入・更新・削除を行う処理であり、OLAPは、すでに蓄積されたデータに統計処理等を行う処理である。
 図10は、OLTPとOLAPの特徴を示す図である。図10において、行型とは、1つの行に含まれるデータをまとめて記憶する行型のデータベースを示し、列(カラム)型とは、1つの列に含まれるデータをまとめて記憶する列型のデータベースを示す。
 図10に示すように、OLTPでは、更新処理が発生するが、OLAPと比較して少数のデータに対する検索が行われる。したがって、OLTPでは、行型を用いる方が列型を用いるより処理が速い。一方、OLAPでは、特定の列に関する集計等で大量データの集計が行われる。したがって、OLAPでは、列型を用いる方が行型を用いるより処理が速い。このため、データの挿入、更新及び削除の操作は行型のデータベースに対して行われ、日毎、週毎等非同期に行型のデータベースのデータを列型のデータベースに移す処理が行われる。
 近年、直近の集計データをビジネスに生かすことが求められている。例えば、午前の売り上げ状況に基づいて、午後の配送計画を策定することが行われる。このため、行型のデータベースと列型のデータベースの両方の利点を備えたデータベース管理システムに対するニーズが高まっている。
 なお、データ領域に格納されるページの更新をシャドウ領域から取得される空きページを用いて行い、コミット時毎にシャドウ領域の有効ページのリストを用いてデータ領域を更新することで、データの断片化を防止する技術がある。
 また、バックアップ開始と終了の間、複数のトランザクションが最新のバージョンを更新していても、データベース管理システムがバックアップ対象であるデータベースの一貫性を保障することで、単純な作業工程でバックアップを可能とする技術がある。
 また、データベースの各表領域に配置されているセグメント毎の次に割り当てられるエクステントサイズの最大値と各表領域の連続未使用領域の空き容量とを比較することによって、新たなエクステントの割り当ての差異の記憶容量不足を事前に察知する技術がある。
 また、データ形式を節点とし、変換方法を枝とし、データ変換にかかるコストを重みとする重み付き有向グラフを記憶し、データ変換の組合わせを有向グラフの最短路問題を解くことによって最適なデータ変換の組合せを取得する技術がある。
特開2006-106868号公報 特開2002-318717号公報 特開2001-175513号公報 特開2001-75844号公報
 OLTPによる更新データを同期的に利用するOLAPにおいては、OLTPトランザクションと共存するためにMVCC(Multi Version Concurrency Control:多版同時実行制御)が必要になる。ここで、MVCCとは、マルチユーザ環境において、データ整合性の維持にデータベースの多版を利用する技術である。同時実行制御には、ロック機構が用いられることもあるが、ロック機構と比較すると、MVCCには、読み込みロックの獲得と書き込みロックの獲得が競合しないという利点がある。
 しかしながら、従来の行単位のMVCCには、オーバーヘッドが無視できないという問題がある。図11は、行単位のMVCCの問題を説明する図である。図11に示すように、集計処理にかかる時間は、行型のデータベースと比較して列型のデータベースでは短い。このため、列型のデータベースでは、MVCCのオーバーヘッドが無視できなくなる。
 本発明は、1つの側面では、多版同時実行制御の実行コストを下げることを目的とする。
 1つの態様では、処理単位サイズ算出プログラムは、行型のデータベースに対して行われた操作に関する情報を所定の処理単位で列型のデータベースに反映させる反映処理を行うデータベース管理システムに関して理単位のサイズを算出する。処理単位サイズ算出プログラムは、まず、二つの情報に基づき、処理単位基準値を算出する処理をコンピュータに実行させる。二つの情報のうち一つは、データベース管理システムにおいて処理単位で行われる多版同時実行制御の処理コストに関する情報である。二つの情報のうち他の一つは、反映処理が前回実行された後に行型のデータベースに対して行われた操作に関する情報を列型のデータベースの形態に変換する処理の処理コストに関する情報である。そして、処理単位サイズ算出プログラムは、処理単位基準値、及び、複数の処理単位に含まれる有効行数の偏りに関する情報に基づき、処理単位のサイズを算出する処理をコンピュータに実行させる。
 本発明は、1つの側面では、多版同時実行制御の実行コストを下げることができる。
図1は、OLTPクエリによる更新を同期的に反映させるIMCSを説明する図である。 図2は、オリジナルテーブルからIMCSへのデータのコピーを示す図である。 図3は、ローカルROSを説明する図である。 図4は、実施例に係るRDBMSの機能構成を示す図である。 図5Aは、エクステントを均すように更新が行われる例を示す図である。 図5Bは、データがなくなるまで同一エクステントのデータが更新される例を示す図である。 図6は、偏りとEXの対応付けを示す図である。 図7は、σmaxを計算するアルゴリズムを示す図である。 図8は、サイズ決定処理の処理手順を示すフローチャートである。 図9は、RDBMSを実行するコンピュータのハードウェア構成を示す図である。 図10は、OLTPとOLAPの特徴を示す図である。 図11は、行単位のMVCCの問題を説明する図である。
 以下に、本願の開示する処理単位サイズ算出プログラム、処理単位サイズ算出方法及び処理単位サイズ算出装置の実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
 まず、IMCS(In-Memory Column Store)について説明する。図1は、OLTPクエリによる更新を同期的に反映させるIMCSを説明する図である。図1に示すように、IMCSでは、DBバッファ1aは、列型のデータ構造であるROS(Read Optimized Storage)15を有する。DBバッファ1aは、行型のデータベースであるオリジナルテーブル11を記憶するメインメモリ上の領域である。また、DBバッファ1aは、更新性能を維持するために、書き込みバッファとしての行型のデータ構造であるWOS(Write Optimized Storage)13を有する。
 データベースへのデータの挿入(INSERT)が指示されると、バックエンド部12は、オリジナルテーブル11へのデータの挿入を行う。ここで、バックエンド部12は、データベースの操作(挿入、更新、削除)に対する処理を行うモジュールである。また、オリジナルテーブル11へのデータの挿入と同期してWOS13への書き込みが行われる。ただし、WOS13には、データは書き込まれることはなく、オリジナルテーブル11内の行(タプル)の位置を示すTID(Tuple-ID)だけが書き込まれる。
 そして、非同期の処理としてWOS13からROS15への変換がエクステントという単位でWOS変換部14によって行われる。このとき、WOS13が記憶するTIDに基づいてオリジナルテーブル11からデータが取り出され、ROS15にエクステント毎に書き込まれ、ROS15に書込まれた行はWOS13から削除される。
 図2は、オリジナルテーブル11からIMCSへのデータのコピーを示す図である。図2に示すように、オリジナルテーブル11では、各行にTIDが付加されている。WOS13は、オリジナルテーブル11とROS15の差分をTIDを用いて記憶する。また、ROS15は、エクステント毎にデータを記憶する。ROS15は、ROS15での行番号を示すCRID(Columnar Record ID)とTIDの対応表も記憶する。
 検索時には、WOS13は、一時的に列型のデータに変換され、ROS15と合わせて検索される。一時的に変換された列型のデータは、ローカルROSと呼ばれる。図3は、ローカルROSを説明する図である。図3において、SQLプロセッサ18は、SQLを処理してデータベースの検索を行うモジュールである。
 図3に示すように、SQLプロセッサ18は、SQLを受け取ると、WOS13を変換してローカルROS18aを作成する。そして、SQLプロセッサ18は、グローバルROS15aとローカルROS18aを合わせて検索を行い、結果を出力する。ここで、グローバルROS15aは、WOS13から変換済のROS15である。
 次に、実施例に係るRDBMSの機能構成について説明する。図4は、実施例に係るRDBMSの機能構成を示す図である。図4に示すように、実施例に係るRDBMS1は、オリジナルテーブル11と、バックエンド部12と、WOS13と、第1変換部14aと、第2変換部14bと、ROS15と、メタ情報記憶部16と、削除ベクトル17と、SQLプロセッサ18とを有する。また、RDBMS1は、システムテーブル19と、サイズ決定部20とを有する。
 オリジナルテーブル11は、行型のデータベースである。オリジナルテーブル11には複数のテーブルが含まれる。バックエンド部12は、オリジナルテーブル11へのデータの挿入、オリジナルテーブル11のデータの更新及び削除を行う。また、バックエンド部12は、オリジナルテーブル11の操作と同期してWOS13を更新する。
 WOS13は、オリジナルテーブル11とROS15との差分をTIDを用いて記憶する。WOS13には、データWOS13aと、ホワイトアウトWOS13bとが含まれる。データWOS13aは、挿入された行のTIDを記憶する。また、データWOS13aは、更新された行に関して、更新後の行として新たに作成された行のTIDを記憶する。ホワイトアウトWOS13bは、削除された行のTIDを記憶する。また、ホワイトアウトWOS13bは、更新された行に関して、削除された更新前の行のTIDを記憶する。
 第1変換部14aは、データWOS13aのサイズがエクステントのサイズになると、データWOS13aを変換してROS15とメタ情報記憶部16を更新する。なお、エクステントのサイズは、可変であり、第1変換部14aによる処理が終了後、サイズ決定部20により決定される。決定されたサイズは、メタ情報記憶部16に書き込まれ、次に第1変換部14aが処理を行うときに利用される。また、第1変換部14aは、現存する全トランザクションから可視のデータのみを変換する。ここで、「可視」とは、未コミットでないことを意味する。なお、図1に示したWOS変換部14は、第1変換部14aに対応する。また、第1変換部14aは、作成されたエクステントにトランザクションIDを割り振る。
 第2変換部14bは、ホワイトアウトWOS13bを変換して削除ベクトル17とメタ情報記憶部16を更新する。
 ROS15は、オリジナルテーブル11のデータが列型に変換されたデータベースである。ROS15は、エクステントの集合である。列の集計処理等は、ROS15を用いて行われる。
 メタ情報記憶部16は、IMCSに関するメタ情報を記憶する。メタ情報記憶部16は、例えば、各エクステントのサイズ、各エクステントのトランザクションID、サイズ決定部20により決定されたサイズを記憶する。
 削除ベクトル17は、削除されたデータの位置を示すビットベクトルである。1つのエクステントに対応して1つの削除ベクトル17がある。
 SQLプロセッサ18は、SQLを処理してデータベースの検索を行う。SQLプロセッサ18は、SQLを受け取ると、WOS13を変換してローカルROS18aを作成する。また、SQLプロセッサ18は、MVCC部18bを有する。
 MVCC部18bは、MVCCを行う。MVCC部18bは、エクステント単位で一括でMVCCを行う。MVCC部18bは、エクステントに第1変換部14aによって割り振られたトランザクションIDとSQLプロセッサ18が有するトランザクションIDを比較することでMVCC制御を行う。
 なお、第1変換部14aは、現存する全トランザクションから可視のデータのみを変換することで、MVCC処理の一部を完了している。また、MVCC部18bは、削除ベクトル17を用いてビット演算のみで削除された行を読み飛ばすことで、エクステント内MVCCを極小化する。
 システムテーブル19は、RDBMS1に関する情報を記憶する。システムテーブル19は、例えば、各テーブルの行数を記憶する。
 サイズ決定部20は、エクステントサイズを決定する。サイズ決定部20は、2段階でエクステントサイズを決定する。第1段階では、サイズ決定部20は、全データ数分の挿入処理のみが行われたと仮定した場合の最良のエクステントサイズを決定する。第2段階では、サイズ決定部20は、第1段階で決定したエクステントサイズを更新処理が与える影響に基づいて補正する。サイズ決定部20は、第1段階の処理を行う第1決定部21と、第2段階の処理を行う第2決定部22とを有する。第1決定部21は請求項の第1算出部に対応し、第2決定部22は請求項の第2算出部に対応する。
 第1決定部21は、エクステントサイズが関係するコストに基づいてエクステントサイズを決定する。エクステントサイズが関係するコストには、MVCCのコストと、ローカルROS18aへ変換するコストがある。
 MVCCのコストは、エクステント一つ毎に一回発生し、以下の式(1)で計算される。
Figure JPOXMLDOC01-appb-M000001
ここで、MVCCCは、1回分のMVCCコストであり、時間である。MVCCCは、実測に基づく定数である。Nは、全データの行数である。EXは、エクステントサイズである。MVCCのコストは、エクステントサイズが大きいほど小さい。
 ローカルROS18aへ変換するコストは、WOS13の平均サイズがEX/2であることから、以下の式(2)で計算される。
Figure JPOXMLDOC01-appb-M000002
ここで、LROSは、ローカルROS18aへの変換の1行あたりのコストであり、時間である。LROSは、実測に基づく定数である。ローカルROS18aへ変換するコストは、EXが大きいほど大きい。
 MVCCのコストと、ローカルROS18aへ変換するコストから、MVCCのコストCostは、以下の式(3)で計算される。
Figure JPOXMLDOC01-appb-M000003
 また、Costの微分Cost’は、以下の式(4)となる。
Figure JPOXMLDOC01-appb-M000004
 Costは定数値であるからCost’=0であり、MVCCのコストが最小となるEXは、以下の式(5)で計算される。式(5)において、Cは定数値である。
Figure JPOXMLDOC01-appb-M000005
 第2決定部22は、第1決定部21が決定したエクステントサイズを更新処理が与える影響に基づいて修正する。更新が発生した場合、全データ数が同じであっても、更新による行の削除と追加が発生するため、無効なデータ(空行)により、MVCCの必要なデータ量が増える。データ量の増え方は、更新の偏りに依存する。
 最悪のケースとして、エクステントを均すように更新が行われると、有効データが1つのエクステントが並び、実質データ数はN×EXとなる。この場合、式(3)においてNがN×EXとなるため、EXが小さいほどCostは小さくなる。したがって、EX=1となる。
 図5Aは、エクステントを均すように更新が行われる例を示す図である。図5Aは、EX=3、N=9の場合を示す。図5A(a)は、初期状態から塗り潰し部分に更新が行われた場合、すなわち、3つのエクステントを均すように更新が行われた場合を示す。
 塗り潰し部分に更新が行われると、塗り潰し部分は空行となる。図5A(b)では、空行は点線で示される。また、図5A(b)では、3つの更新データで新たな(new)エクステントが作成される。そして、図5A(b)の塗り潰し部分に更新が行われると、図5A(c)に示すように、塗り潰し部分は空行となり、3つの更新データで新たな(new)エクステントが作成される。
 そして、図5A(c)の塗り潰し部分に更新が行われると、図5A(d)に示すように、塗り潰し部分は空行となり、3つの更新データで新たな(new)エクステントが作成される。同様に、図5A(d)の塗り潰し部分に更新が行われると、図5A(e)に示すように、塗り潰し部分は空行となり、3つの更新データで新たな(new)エクステントが作成される。
 そして、図5A(e)の塗り潰し部分に更新が行われると、図5A(f)に示すように、左端のエクステントは、有効な行がなくなるため、削除(delete)される。このため、エクステントの数は増えない。すなわち、エクステント数は(N-EX)+1=7まで増える。
 一方、最良のケースとして、データがなくなるまで同一エクステントのデータが更新されると、実質データ数はNのままであり、最良のエクステントサイズは式(5)に示す値となる。
 図5Bは、データがなくなるまで同一エクステントのデータが更新される例を示す図である。図5Bに示すように、塗り潰し部分に更新が行われた場合、新たなエクステントが生成されるとともに、全てのデータが更新されたエクステントが削除されるため、エクステントの数は増えない。
 第2決定部22は、EX=1の場合(最悪のケース)を偏りが0の場合に対応付け、EXが最大の場合(最良のケース)を偏りの最大値に対応付ける。図6は、偏りとEXの対応付けを示す図である。図6において、EXMaxはEXの最大値を示し、式(5)に示す更新がない場合の値である。第2決定部22は、実際の偏りと偏りの最大値を計算し、EXMaxに(実際の偏り)/(偏りの最大値)を乗じることによってEXを決定する。
 例えば、第2決定部22は、削除ベクトル17を用いて各エクステントの削除行数を計算し、エクステントの行数と削除行数から各エクステントの有効行数を計算する。そして、第2決定部22は、有効行数の偏りσと、有効行数の偏りの最大値σmaxを計算し、EXを算出する。
 有効行数の偏りσは、以下の式(6)で計算される。
Figure JPOXMLDOC01-appb-M000006
ここで、EX[m](1≦m≦M)は、各エクステントのサイズであり、Mはエクステントの数であり、DEL[m]は、各エクステントの削除行数であり、EX[M]-DEL[m]は、各エクステントの有効行数であり、RESTAVは、有効行数の平均値である。
 また、σmaxは、小さなエクステントから順に削除行を詰めた場合の有効行数の偏りとして計算される。図7は、σmaxを計算するアルゴリズムを示す図である。図7に示すように、第2決定部22は、配列size[]にエクステントのサイズを小さい順に入れる(1)。
 そして、サイズ決定部20は、del_numにrest_delを超えないようにsize[i]から削除した行数を記憶し(2)、size[i]から削除した行数del_numをi=1から順番に削除行の総数rest_delから引いていく(3)。また、第2決定部22は、有効行数の偏りをi=1から順番にsumに集計していく(4)。そして、M個全てのエクステントについて偏りの集計が完了すると、第2決定部22は、sum/Mをσmaxとする(5)。
 次に、サイズ決定処理の処理手順について説明する。図8は、サイズ決定処理の処理手順を示すフローチャートである。図8に示すように、サイズ決定部20は、システムテーブル19から現在のテーブルの行数を取得し(ステップS1)、更新がない場合の最良のエクステントサイズEXmaxを求める(ステップS2)。
 そして、サイズ決定部20は、削除ベクトル17を走査し、エクステント毎の削除行数を確認してDEL[m]とする(ステップS3)。そして、サイズ決定部20は、メタ情報記憶部16の情報から各エクステントのサイズを確認してEX[m]とする(ステップS4)。なお、ステップS3とステップS4の処理の順番は逆でもよい。
 そして、サイズ決定部20は、有効行数の偏りσを求め(ステップS5)、有効行数の偏りの最大値σmaxを求める(ステップS6)。なお、ステップS5とステップS6の処理の順番は逆でもよい。
 そして、サイズ決定部20は、関数fにより適切なエクステントサイズf(σ)を計算する(ステップS7)。ここで関数fは、0≦x≦σmaxにおいて、1≦f(x)≦EXmax、かつ、x1≦x2ならばf(x1)≦f(x2)を満たす関数である。例えば、関数fは、以下の式(7)で定義される。なお、EXminはユーザ定義の定数値であり、エクステントサイズの適当な下限値である。
Figure JPOXMLDOC01-appb-M000007
 このように、サイズ決定部20は、有効行数の偏りσ、有効行数の偏りの最大値σmax、関数fを用いてエクステントのサイズを決定することができる。
 次に、RDBMS1を実行するコンピュータについて説明する。図9は、RDBMS1を実行するコンピュータのハードウェア構成を示す図である。図9に示すように、コンピュータ50は、メインメモリ51と、CPU52と、LAN(Local Area Network)インタフェース53と、HDD(Hard Disk Drive)54とを有する。また、コンピュータ50は、スーパーIO(Input Output)55と、DVI(Digital Visual Interface)56と、ODD(Optical Disk Drive)57とを有する。
 メインメモリ51は、プログラムやプログラムの実行途中結果などを記憶するメモリである。CPU52は、メインメモリ51からプログラムを読出して実行する中央処理装置である。CPU52は、メモリコントローラを有するチップセットを含む。
 LANインタフェース53は、コンピュータ50をLAN経由で他のコンピュータに接続するためのインタフェースである。HDD54は、プログラムやデータを格納するディスク装置であり、スーパーIO55は、マウスやキーボードなどの入力装置を接続するためのインタフェースである。DVI56は、液晶表示装置を接続するインタフェースであり、ODD57は、DVDの読み書きを行う装置である。
 LANインタフェース53は、PCIエクスプレス(PCIe)によりCPU52に接続され、HDD54及びODD57は、SATA(Serial Advanced Technology Attachment)によりCPU52に接続される。スーパーIO55は、LPC(Low Pin Count)によりCPU52に接続される。
 そして、コンピュータ50において実行されるRDBMS1は、DVDに記憶され、ODD57によってDVDから読出されてコンピュータ50にインストールされる。あるいは、RDBMS1は、LANインタフェース53を介して接続された他のコンピュータシステムのデータベースなどに記憶され、これらのデータベースから読出されてコンピュータ50にインストールされる。そして、インストールされたRDBMS1は、HDD54に記憶され、メインメモリ51に読出されてCPU52によって実行される。
 上述してきたように、実施例では、第1決定部21が、全データ行数(N)、1回分のMVCCコスト(MVCCC)、ローカルROS18aへの変換の1回分のコストLROSを用いて更新がない場合の最良エクステントサイズEXMaxを算出する。そして、第2決定部22が、EXMaxと有効行数の偏りに関する情報とを用いてエクステントのサイズを算出する。したがって、RDBMS1は、MVCCコストを下げることができる。
 また、実施例では、第2決定部22は、EXMax、有効行数の偏りσ、有効行数の偏りの最大値σmax、関数fを用いてエクステントのサイズを算出する。したがって、第2決定部22は、更新の偏りをエクステントサイズの算出に反映することができる。
 また、実施例では、第2変換部14bが、ホワイトアウトWOS13bを変換して削除ベクトル17を作成し、第2決定部22は、削除ベクトル17を用いて各エクステントの有効行数を算出する。したがって、第2決定部22は、各エクステントの有効行数を算出する処理を効率よく行うことができる。
 また、実施例では、第1変換部14aは、現存する全トランザクションから可視のデータのみを変換してROS15を更新する。したがって、MVCC部18bは、MVCCを効率よく行うことができる。
 なお、実施例では、WOS13がデータWOS13aとホワイトアウトWOS13bを有する場合について説明したが、WOS13は他の形態でオリジナルテーブル11への操作に関する情報を有してよい。
  1  RDBMS
  1a  DBバッファ
 11  オリジナルテーブル
 12  バックエンド部
 13  WOS
 13a  データWOS
 13b  ホワイトアウトWOS
 14  WOS変換部
 14a  第1変換部
 14b  第2変換部
 15  ROS
 15a  グローバルROS
 16  メタ情報記憶部
 17  削除ベクトル
 18  SQLプロセッサ
 18a  ローカルROS
 18b  MVCC部
 19  システムテーブル
 20  サイズ決定部
 21  第1決定部
 22  第2決定部
 50  コンピュータ
 51  メインメモリ
 52  CPU
 53  LANインタフェース
 54  HDD
 55  スーパーIO
 56  DVI
 57  ODD

Claims (6)

  1.  行型のデータベースに対して行われた操作に関する情報を所定の処理単位で列型のデータベースに反映させる反映処理を行うデータベース管理システムにおける処理単位サイズ算出プログラムであって、
     前記データベース管理システムにおいて前記処理単位で行われる多版同時実行制御の処理コストに関する情報、及び、前記反映処理が前回実行された後に前記行型のデータベースに対して行われた操作に関する情報を前記列型のデータベースの形態に変換する処理の処理コストに関する情報に基づき、処理単位基準値を算出し、
     前記処理単位基準値、及び、複数の前記処理単位に含まれる有効行数の偏りに関する情報に基づき、前記処理単位のサイズを算出する
     処理をコンピュータに実行させることを特徴とする処理単位サイズ算出プログラム。
  2.  前記処理単位のサイズを算出する処理は、前記偏りと該偏りの最大値との割合に基づき、前記処理単位のサイズを算出することを特徴とする請求項1に記載の処理単位サイズ算出プログラム。
  3.  前記反映処理は、削除された行を表す削除ベクトルを前記処理単位毎に作成し、
     前記処理単位のサイズを算出する処理は、前記削除ベクトルを用いて、前記偏りを算出することを特徴とする請求項2に記載の処理単位サイズ算出プログラム。
  4.  前記反映処理は、現存する全トランザクションから可視のデータを前記列型のデータベースに反映させることを特徴とする請求項1、2又は3に記載の処理単位サイズ算出プログラム。
  5.  行型のデータベースに対して行われた操作に関する情報を所定の処理単位で列型のデータベースに反映させる反映処理を行うデータベース管理システムにおける処理単位サイズ算出方法であって、
     前記データベース管理システムにおいて前記処理単位で行われる多版同時実行制御の処理コストに関する情報、及び、前記反映処理が前回実行された後に前記行型のデータベースに対して行われた操作に関する情報を前記列型のデータベースの形態に変換する処理の処理コストに関する情報に基づき、処理単位基準値を算出し、
     前記処理単位基準値、及び、複数の前記処理単位に含まれる有効行数の偏りに関する情報に基づき、前記処理単位のサイズを算出する
     処理をコンピュータが実行することを特徴とする処理単位サイズ算出方法。
  6.  行型のデータベースに対して行われた操作に関する情報を所定の処理単位で列型のデータベースに反映させる反映処理を行うデータベース管理システムにおける処理単位サイズ算出装置であって、
     前記データベース管理システムにおいて前記処理単位で行われる多版同時実行制御の処理コストに関する情報、及び、前記反映処理が前回実行された後に前記行型のデータベースに対して行われた操作に関する情報を前記列型のデータベースの形態に変換する処理の処理コストに関する情報に基づき、処理単位基準値を算出する第1算出部と、
     前記第1算出部により算出された処理単位基準値、及び、複数の前記処理単位に含まれる有効行数の偏りに関する情報に基づき、前記処理単位のサイズを算出する第2算出部と
     を有することを特徴とする処理単位サイズ算出装置。
PCT/JP2016/080282 2016-10-12 2016-10-12 処理単位サイズ算出プログラム、処理単位サイズ算出方法及び処理単位サイズ算出装置 WO2018069998A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2018544625A JP6690728B2 (ja) 2016-10-12 2016-10-12 処理単位サイズ算出プログラム、処理単位サイズ算出方法及び処理単位サイズ算出装置
PCT/JP2016/080282 WO2018069998A1 (ja) 2016-10-12 2016-10-12 処理単位サイズ算出プログラム、処理単位サイズ算出方法及び処理単位サイズ算出装置
US16/374,253 US11372883B2 (en) 2016-10-12 2019-04-03 Apparatus for calculating size of processing unit, method for calculating size of processing unit, and non-transitory computer-readable storage medium for storing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/080282 WO2018069998A1 (ja) 2016-10-12 2016-10-12 処理単位サイズ算出プログラム、処理単位サイズ算出方法及び処理単位サイズ算出装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/374,253 Continuation US11372883B2 (en) 2016-10-12 2019-04-03 Apparatus for calculating size of processing unit, method for calculating size of processing unit, and non-transitory computer-readable storage medium for storing program

Publications (1)

Publication Number Publication Date
WO2018069998A1 true WO2018069998A1 (ja) 2018-04-19

Family

ID=61905271

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/080282 WO2018069998A1 (ja) 2016-10-12 2016-10-12 処理単位サイズ算出プログラム、処理単位サイズ算出方法及び処理単位サイズ算出装置

Country Status (3)

Country Link
US (1) US11372883B2 (ja)
JP (1) JP6690728B2 (ja)
WO (1) WO2018069998A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6897248B2 (ja) * 2017-04-06 2021-06-30 富士通株式会社 更新反映プログラム、更新反映方法及び更新反映装置
US11599463B2 (en) * 2020-03-25 2023-03-07 Ocient Holdings LLC Servicing queries during data ingress

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001075844A (ja) 1999-08-31 2001-03-23 Nec Corp データ変換装置及びその記録媒体
JP3620385B2 (ja) 1999-12-22 2005-02-16 日本電気株式会社 データベース容量監視装置およびデータベース容量監視方法
JP2002318717A (ja) 2001-04-19 2002-10-31 Ricoh Co Ltd データベースシステム
JP2003223350A (ja) 2002-01-29 2003-08-08 Ricoh Co Ltd データベースシステム
JP4314126B2 (ja) 2004-02-20 2009-08-12 株式会社東芝 同時実行制御方法及び装置
US7953749B2 (en) * 2004-05-11 2011-05-31 Oracel International Corporation Providing the timing of the last committed change to a row in a database table
JP4104586B2 (ja) 2004-09-30 2008-06-18 株式会社東芝 ファイル管理機能を備えたファイルシステム及びファイル管理方法
US9740762B2 (en) * 2011-04-01 2017-08-22 Mongodb, Inc. System and method for optimizing data migration in a partitioned database
US9805108B2 (en) * 2010-12-23 2017-10-31 Mongodb, Inc. Large distributed database clustering systems and methods
US20150006466A1 (en) * 2013-06-27 2015-01-01 Andreas Tonder Multiversion concurrency control for columnar database and mixed OLTP/OLAP workload
US20160078085A1 (en) * 2014-09-17 2016-03-17 Futurewei Technologies, Inc. Method and system for adaptively building and updating a column store database from a row store database based on query demands
US10671594B2 (en) * 2014-09-17 2020-06-02 Futurewei Technologies, Inc. Statement based migration for adaptively building and updating a column store database from a row store database based on query demands using disparate database systems
US9836507B2 (en) * 2014-09-17 2017-12-05 Futurewei Technologies, Inc. Method and system for adaptively building a column store database from a temporal row store database based on query demands

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MINORU NAKAMURA ET AL.: "PostgreSQL o Base to shita Column Store Kiko no Jitsugen Kento", DEIM FORUM 2015- THE 7TH FORUM ON DATA ENGINEERING AND INFORMATION MANAGEMENT- DATABASE SOCIETY OF JAPAN, 4 March 2015 (2015-03-04), XP055604521, Retrieved from the Internet <URL:http://db-event.jpn.org/deim2015/paper/195.pdf> [retrieved on 20161216] *
TAKUSHI HASHIDA ET AL.: "Concurrency control technique for OLXP system based on PostgreSQL", WEBDB FORUM 2015- INFORMATION PROCESSING SOCIETY OF JAPAN, 17 November 2015 (2015-11-17), pages 64 - 71, XP055604529 *

Also Published As

Publication number Publication date
US20190228018A1 (en) 2019-07-25
JP6690728B2 (ja) 2020-04-28
US11372883B2 (en) 2022-06-28
JPWO2018069998A1 (ja) 2019-06-24

Similar Documents

Publication Publication Date Title
US11461331B2 (en) ETL-less zero-redundancy system and method for reporting OLTP data
US9953051B2 (en) Multi-version concurrency control method in database and database system
US9916313B2 (en) Mapping of extensible datasets to relational database schemas
CN107077495B (zh) 数据库管理系统中的高性能事务
EP3026579B1 (en) Forced ordering of a dictionary storing row identifier values
US10042910B2 (en) Database table re-partitioning using two active partition specifications
US6161109A (en) Accumulating changes in a database management system by copying the data object to the image copy if the data object identifier of the data object is greater than the image identifier of the image copy
Larson et al. Enhancements to SQL server column stores
US8977597B2 (en) Generating and applying redo records
US9208191B2 (en) Lock-free, scalable read access to shared data structures
US20100257181A1 (en) Dynamic Hash Table for Efficient Data Access In A Relational Database System
US8560500B2 (en) Method and system for removing rows from directory tables
US9053153B2 (en) Inter-query parallelization of constraint checking
US10521117B2 (en) Unified table delta dictionary memory size and load time optimization
US10289709B2 (en) Interleaved storage of dictionary blocks in a page chain
US11372883B2 (en) Apparatus for calculating size of processing unit, method for calculating size of processing unit, and non-transitory computer-readable storage medium for storing program
JP6897248B2 (ja) 更新反映プログラム、更新反映方法及び更新反映装置
CN116303495A (zh) 一种支持并行更新的数据库系统及方法
US20180150498A1 (en) Database management device, information processing system, and database management method
JP7024432B2 (ja) データベース管理システム、データ変換プログラム、データ変換方法及びデータ変換装置
US20230229657A1 (en) Zero Copy Optimization for SELECT * Queries

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16918984

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2018544625

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16918984

Country of ref document: EP

Kind code of ref document: A1