WO2014010038A1 - 情報処理システム - Google Patents

情報処理システム Download PDF

Info

Publication number
WO2014010038A1
WO2014010038A1 PCT/JP2012/067644 JP2012067644W WO2014010038A1 WO 2014010038 A1 WO2014010038 A1 WO 2014010038A1 JP 2012067644 W JP2012067644 W JP 2012067644W WO 2014010038 A1 WO2014010038 A1 WO 2014010038A1
Authority
WO
WIPO (PCT)
Prior art keywords
column
row
processing system
information processing
type page
Prior art date
Application number
PCT/JP2012/067644
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 JP2014524531A priority Critical patent/JPWO2014010038A1/ja
Priority to PCT/JP2012/067644 priority patent/WO2014010038A1/ja
Publication of WO2014010038A1 publication Critical patent/WO2014010038A1/ja

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/22Indexing; Data structures therefor; Storage structures
    • G06F16/221Column-oriented storage; Management thereof

Definitions

  • the present invention relates to an information processing system for accessing a relational database.
  • a column database that stores tables in column units is known.
  • processing such as aggregation of a specific column becomes faster.
  • the values in the columns have the same data type, a high compression rate can be realized and the storage can be used effectively.
  • Patent Document 1 in a column-type relational database, a row ID satisfying the conditions of another column is synchronized with a process of transferring a set of value + row ID related to a certain column from the secondary storage device to the main storage device. Data processing method is disclosed in which only the set of the value + row ID satisfying the condition among the set of the value + row ID being transferred is sent to the main memory. ing.
  • the target of the filtering process that extracts a row satisfying a condition from a table and the join process that joins a plurality of tables are accessed and processed in units of rows on the main memory.
  • the present invention aims to realize efficient access to a database.
  • An information processing system includes a memory device, a storage device, and a database processing engine.
  • the database processing engine converts a column-type page stored in the storage device into a row-type page and stores it in the memory device. Having the module solves the aforementioned problems.
  • the present invention can realize efficient access to the database.
  • FIG. 1 shows an information processing system 100 that is an embodiment of the present invention.
  • the information processing system 100 includes a storage device 101, a database (DB) processing engine 102, at least one central processing unit (CPU) 103, a memory device 104, and a switch 105.
  • the memory device 104 includes a DRAM as a storage element and functions as a main memory of the CPU 103.
  • the storage device 101 includes an HDD and functions as a secondary storage device of the information processing system 100.
  • the storage apparatus 101 is connected to the DB processing engine 102 through an independent I / O bus, and the DB processing engine 102 is connected to each of the CPU 103 and the memory device 104 via the switch 105.
  • the DB processing engine 102 includes a CPU that executes processing, and a storage device that holds programs and data for executing processing in the DB processing engine 102.
  • FIG. 3 shows an example of the structure of a relational database table, which is the processing target of this embodiment.
  • the table of this embodiment is composed of a plurality of rows and a plurality of columns. Each row and column is specified by a row ID that is row identification information and a column ID that is a column identification number.
  • the row ID and column ID are a row number and a column number, respectively.
  • the element where the row with the column number “i” and the column with the column number “j” intersect is called an (i, j) element.
  • FIG. 4 shows an example of processing for the table of this embodiment.
  • the table 400 in FIG. 4 includes four columns with column IDs “1”, “2”, “3”, and “4”, and row IDs “1”, “2”, “3”, “4”, It consists of 8 rows of “5”, “6”, “7”, “8”.
  • the value of the element with column ID “2” and the value of the element with column ID “3” are read, and only the rows that match the conditions are extracted.
  • the elements of column 1, column 2, and column 3 are generated.
  • rows with row IDs “2”, “4”, “5”, and “7” are extracted.
  • FIG. 5 is a schematic diagram of a column type page of the present embodiment.
  • elements belonging to the same column are arranged in order in a fixed-size address space.
  • the column type page storing the column with the column ID “2” has the row ID “1”, the (1,2) element value, and the row ID “2”. ", (2, 2) element value, row ID" 3 ", (3, 2) element value, and so on.
  • one element is described by a set of a row ID and a value stored in a corresponding column in the row indicated by the row ID.
  • FIG. 6 shows a raw page used when the DB processing engine 102 writes the value of the element extracted from the storage device 101 to the memory device 104.
  • each row is arranged in a row unit, such as a row 610 and a row 620, in an address space of a fixed size.
  • each element is described by a pair of column ID and element value such as a pair of column ID 611 and element value 612 and a pair of column ID 613 and element value 614. ing. In this way, column IDs and element values are arranged in order on the row type page. Referring to the table of FIG.
  • data is arranged at consecutive addresses in the order of (1,1) element, (1,2) element, and (1,3) element.
  • the entire table may not fit within a preset size. In that case, the entire table is stored in a plurality of pages, with one page up to the middle row of the table and two pages from the next row.
  • Elements included in the same column have the same data type, and the element values may be duplicated. For this reason, for example, by placing an index of a value appearing in an element stored in the same page at the top of the page, the actual element value can be replaced with the ID of the index.
  • various compression techniques can be applied, and the data size can be compressed.
  • FIG. 7 shows a functional block diagram of the information processing system 100.
  • the database table is stored in the storage apparatus 101 as a column type page 701.
  • a DB buffer 702 is provided in the storage area of the memory device 104.
  • the DB buffer 702 is provided with areas for storing a plurality of row-type pages 703, each area is assigned a DB buffer number, and the row-type pages converted from the column-type pages by the DB processing engine 102 are stored in the DB buffer 702. Cached.
  • a DB buffer table 704 for managing the DB buffer 702 is placed in the memory device 104.
  • a page conversion table 705, a table format 706, a write management table 707, a column-row conversion module 708, and a write module 709 are stored in the storage area 710 of the storage device of the DB processing engine 102.
  • FIG. 8 shows the configuration of the page conversion table 705.
  • Each entry of the page conversion table 705 includes a set of a column number that is column identification information, a column type page number that is identification information of a column type page, and a row type page number that is an identification number of a row type page.
  • the page conversion table 705 associates a row type page number that is identification information when placed in the memory device 104 with a column type page number that is identification information of a column type page stored in the storage device 101. .
  • a column with column number A includes at least two column type pages with column type page numbers a and a ′, and a column type page with a is at least a row type page with row type page numbers 801 and 802.
  • the column type page a ′ corresponds to at least the row type page with the row type page number 803.
  • the number of column-type pages included in one column is up to 10, for example.
  • the column type page with the column type page number j of the column with the column number J corresponds to at least the row type page with the row type page number 808.
  • the row type page number of the page conversion table 705 is searched, and the row type page number becomes 808.
  • FIG. 9 shows the configuration of the DB buffer table 704.
  • the DB buffer table 704 is placed for managing raw pages cached in the memory device 104.
  • Each entry of the DB buffer table 704 includes a DB buffer number that is identification information of the DB buffer, a row type page number of a row type page stored in the DB buffer, and a column number of a valid column of the row type page. Composed of a set. Note that the value of a column with a column number not listed as a valid column is not guaranteed.
  • a dummy value is written by the DB processing engine 102 in a column number column that is not listed as a valid column.
  • FIG. 10 shows the configuration of the table format 706.
  • a table format 706 is placed for each database table handled by the information processing system 100.
  • Each entry of the table format 706 includes a column number, a data type of a value of the element of the column number, and a size of the element of the column of the column number.
  • FIG. 11 shows the configuration of the write management table 707.
  • Each entry of the write management table 707 includes a row type page number of a row type page including a write location, a column number of a write location of the row type page, and a CPU ID which is CPU identification information.
  • each CPU 103 rewrites a certain element, it adds a row type page number of the row type page including the writing location, a column number of the writing location in the row type page, and a CPU ID entry of the CPU performing the rewriting. This prevents duplicate writing by other CPUs.
  • FIG. 12 shows a processing flow of the CPU 103 when reading the table.
  • the CPU 103 reads information included in a specific row type page, that is, a specific element in the row type page, the CPU 103 searches the row type page number and valid column identification number in the DB buffer table 704 (S1201), and accesses them. It is determined whether the target element is cached in the DB buffer 702 (S1202).
  • a specific element in a row type page is specified by a row type page number and a column number of a column included in the row type page. If the access target element is cached, the CPU 103 reads the access target as it is from the DB buffer 102 (S1203).
  • the CPU 103 transmits an access target load request to the DB processing engine 102 (S1204). At that time, as information to be included in the load request, the CPU 103 transmits an empty DB buffer number, a requested row type page number, and a column name. After transmitting the load request, the CPU 103 waits for an I / O completion interrupt from the DB processing engine (S1205), and when receiving the I / O completion interrupt, reads the access target (S1203).
  • FIG. 13 shows a processing flow of the DB processing engine 102 at the time of reading.
  • the column-row conversion module 708 of the DB processing engine 102 searches the page conversion table 705 for the column type page number corresponding to the row type page number and the column name specified in the load request. (S1301).
  • the column-row conversion module 708 transmits a column type page number load request obtained by the search to the storage apparatus 101 (S1302), and waits for an I / O completion notification from the storage apparatus 101 (S1303).
  • the column-row conversion module 708 converts the column type page received by making a load request to the storage apparatus 101 into a row type page (S1304), and transfers the row type page to the DB buffer designated by the load request from the CPU 103. (S1305), an I / O completion notification is issued to the CPU 103 (S1306), and the process is terminated.
  • FIG. 14 shows an example of data conversion by the DB processing engine 102 at the time of reading.
  • the case where the DB processing engine 102 generates the row type page 1410 with the column number “B” and the column number “C” enabled is described.
  • the column-row conversion module 708 of the DB processing engine 102 extracts the element 1421 and the element 1422 that are continuously stored in the column type page 1420 storing the column with the column number “B”, and each row type Write to discrete predetermined addresses on page 1410.
  • the element 1421 is written to the row type page 1410 by the first command from the column-row conversion module 708, and the element 1422 is written by the second command from the column-row conversion module 708.
  • the amount of transfer between the memory device 104 and the DB processing engine 102 increases due to processing of areas between discrete writing locations, whereas the first command and the second command
  • the amount of transfer can be suppressed by writing with two commands. As shown in FIG. 14, the element 1421 and the element 1422 are written at discrete locations on the raw page 1410.
  • a column with a column number “C” is additionally read into a row type page with a valid column number “B”.
  • the DB processing engine 102 sequentially writes the element 1431 and the element 1432 of the column with the column number “C” after the element of the column number “B” of the row page at the predetermined address of the row page. .
  • the elements from the column with the column number “B” and the elements from the column with the column number “C” are written in consecutive locations in the memory area.
  • the CPU 103 can efficiently access the element from the column with the column number “B” and the element from the column with the column number “C”. Further, in the example of FIG. 14, the element from the column with the column number “B” and the element from the column with the column number “C” are written in the consecutive locations in the memory area. Even if it is not, it is efficiently accessed from the CPU 103 by being written on the same row type page. The calculation of the address to be written is performed using the table format 706. Accordingly, since only the read column is transferred and written to the row type page, the actual transfer amount to the main memory is smaller than the size of the row type page, and the processing of the information processing system 100 is efficient. Become. In addition, since the DB buffer 702 is managed with raw pages, the CPU 103 can efficiently access the elements of the table.
  • FIG. 15 shows a processing flow of the CPU 103 when writing to the table.
  • the CPU 103 writes a specific element, a raw page including an element to be accessed is read from the table in advance. This is because the data read from the database is normally rewritten.
  • the CPU 103 transmits a lock request to be accessed to the DB processing engine 102 (S1501). At that time, the CPU 103 notifies the DB processing engine 102 of the row type page number of the row type page to be written, the column number of the column to be written in the row type page to be written, and its own CPU_ID.
  • the CPU 103 Upon receiving the lock acquisition notification (S1502), the CPU 103 writes, that is, rewrites the raw page cached in the DB buffer 702 (S1503). When the rewriting is completed, the acquired lock release request is transmitted to the DB processing engine 102 (S1504), and when the lock release notification is received (S1505), the flow ends.
  • FIG. 16 shows a processing flow of the DB processing engine 102 at the time of writing.
  • the write module 709 of the DB processing engine 102 receives the lock acquisition request from the CPU 103 (S1601)
  • the write module 709 searches the write management table 707 to check whether the column in the requested row type page is registered, that is, the write management table 707. It is determined whether there is an overlap with a column in the row type page in the entry (S1602, S1603). If registered, the writing module 709 transmits a lock acquisition error notification to the CPU 103 (S1604), and ends the flow. If not registered, the writing module 709 registers the row type page number, column number, and requesting CPU ID included in the request as a new entry in the writing management table 707, and sends a lock acquisition notification to the CPU 103. (S1605).
  • the writing module 709 reads out the column type page to be corrected from the storage device 101 based on the page conversion table 705 (S1606), caches it in the storage area 710 of the storage device of the DB processing engine 102, It waits to receive a lock release request from the CPU 103 (S1607).
  • the writing module 709 reads from the DB buffer 702 the row type page whose row type page number was included in the request from the CPU 103, that is, the row type page including the lock target, and the DB processing engine.
  • the data is cached in the storage area 710 of the storage device 102 (S1608).
  • the writing module 709 deletes the corresponding entry from the writing management table 707 and transmits a lock release notification to the CPU 103 (S1609). Finally, the writing module 709 corrects the corresponding part of the column type page read from the storage apparatus 101 using the value of the element rewritten by the CPU 103 in the row type page read from the DB buffer 702, The corrected column type page is written back to the storage apparatus 101 (S1610).
  • Fig. 17 shows an example of data conversion at the time of writing.
  • the writing module 709 of the DB processing engine 102 corrects the corresponding element 1722 of the corresponding column type page 1420 based on the page conversion table 705. Then, write back to the storage apparatus 101.
  • the storage apparatus 101 stores data in a column type, but the DB processing engine 102 locks access to a more specific column in the row type page converted by the DB processing engine 102. Therefore, the interference between CPUs is greatly reduced, and the processing speed of the information processing system 100 is improved.
  • FIG. 2 shows an information processing system 200 as a modification of the information processing system 100.
  • the number of sets of the DB processing engine 102 and the storage apparatus 101 is not limited to one, and a configuration in which one CPU can access a plurality of DB processing engines can be taken.
  • Information processing system 101 Storage device 102: Database (DB) processing engine 103: CPU 104: Memory device 105: Switch 702: DB buffer 704: DB buffer table 705: Page conversion table 706: Table format, 707: Write management table, 708: Column-row conversion module, 709: Write module.
  • DB Database
  • CPU CPU
  • Memory device 105 Switch 702: DB buffer 704: DB buffer table 705: Page conversion table 706: Table format, 707: Write management table, 708: Column-row conversion module, 709: Write module.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

 リレーショナルデータベースで、カラム単位でメモリ装置への転送が行われると、同一のカラムのデータが連続したアドレスに配置されることになり、1つのローにアクセスするにもかかわらず、離散的なアドレスに複数回アクセスしなければならず、アクセスの効率が悪くなる。 本発明の情報処理システムは、メモリ装置と、ストレージ装置と、データベース処理エンジンとを備え、データベース処理エンジンは、ストレージ装置に保存されたカラム型ページをロー型ページに変換してメモリ装置に保存するモジュールを有することで、メモリ装置ではロー型ページで管理されるので、データベースへの効率的なアクセスを実現できる。

Description

情報処理システム
 本発明は、リレーショナルデータベースへのアクセスを行う情報処理システムに関する。
 リレーショナルデータベースのデータ形式として,テーブルをカラム単位で格納するカラム型データベースが知られている。カラム型データベースにおいては、特定のカラムの集計を取るなどの処理が高速になる。また、カラム内の値はデータ型が同じであるために、高圧縮率を実現でき、ストレージを有効に使用することができる。
 特許文献1には、カラム型のリレーショナルデータベースにおいて、あるカラムに関するバリュー+ローIDの集合を二次記憶装置から主記憶装置に転送する処理と同期して、他のカラムの条件を満たしたローIDの集合と転送中のローIDのつき合わせ処理を行い、転送中のバリュー+ローIDの集合の中で、条件を満たしたバリュー+ローIDの集合のみを主記憶に送るデータ処理方式が開示されている。
特開昭63-131227号公報
 一方、リレーショナルデータベースにおいて、テーブルから条件を満たすローを抜き出すフィルター処理や複数のテーブルを結合するジョイン処理の対象は、主記憶上ではロー単位でアクセスされて処理される。
 しかしながら、特許文献1に開示の技術では、カラム単位で主記憶装置への転送が行われるので、同一のカラムのデータが連続したアドレスに配置されることになり、1つのローにアクセスするにもかかわらず、離散的なアドレスに複数回アクセスしなければならず、CPUの負荷が上昇してしまう。ひいては、情報処理システムの処理性能が下がってしまう。
 本発明は、データベースへの効率的なアクセスを実現することを目的とする。
 本発明の情報処理システムは、メモリ装置と、ストレージ装置と、データベース処理エンジンとを備え、データベース処理エンジンは、ストレージ装置に保存されたカラム型ページをロー型ページに変換してメモリ装置に保存するモジュールを有することで、前述の課題を解決する。
 本発明により、データベースへの効率的なアクセスを実現できる。
本発明の実施例である情報処理システムの例を示す図である。 本発明の実施例である情報処理システムの例を示す図である。 テーブルの構成例を示す図である。 テーブルに対する処理例を示す図である。 カラム型ページの模式図である。 ロー型ページの模式図である。 本発明の実施例の機能ブロック図である。 ページ変換テーブルの構成を示す図である。 DBバッファテーブルの構成を示す図である。 テーブルフォーマットの構成を示す図である。 ロー管理テーブルの構成を示す図である。 読み出し時のCPUの処理フローを示す図である。 読み出し時のDB処理エンジンの処理フローを示す図である。 読み出しの際のDB処理エンジン102によるデータの変換の例を示す図である。 書き込み時のCPUの処理フローを示す図である。 書き込み時のDB処理エンジンの処理フローを示す図である。 書き込み時のデータの変換例を示す図である。
 図1に本発明の実施例である情報処理システム100を示す。情報処理システム100は、ストレージ装置101と、データベース(DB)処理エンジン102と、少なくともひとつの中央処理装置(CPU)103と、メモリ装置104と、スイッチ105とを備える。メモリ装置104は、記憶素子としてDRAMを含み、CPU103の主記憶として働く。ストレージ装置101は、HDDを含み、情報処理システム100の二次記憶装置として働く。ストレージ装置101は、独立したI/Oバスを通じてDB処理エンジン102に接続されており、該DB処理エンジン102はCPU103のそれぞれと、メモリ装置104とにスイッチ105を介して接続されている。DB処理エンジン102は、処理を実行するCPUと、DB処理エンジン102での処理を実行するためのプログラムやデータを保持する記憶装置を有する。
 図3に、本実施例の処理対象である、リレーショナルデータベースのテーブルの構造の例を示す。本実施例のテーブルは複数のローおよび複数のカラムから構成される。ローおよびカラムは、それぞれロー識別情報であるローIDおよびカラム識別番号であるカラムIDで特定される。本実施例では、ローIDおよびカラムIDは、それぞれロー番号およびカラム番号である。カラム番号「i」のローとカラム番号「j」のカラムの交わる要素を(i,j)エレメントと呼ぶ。
 図4に、本実施例のテーブルに対する処理の一例を示す。図4のテーブル400は、カラムIDが「1」、「2」、「3」、「4」の4つのカラムと、ローIDが「1」、「2」、「3」、「4」、「5」、「6」、「7」、「8」の8つのローから構成されている。図4に示した処理では、各ローについて、カラムIDが「2」のエレメントの値と、カラムIDが「3」のエレメントの値を読み、条件に合致するローのみを抜き出し、抜き出したローのカラム1、カラム2、カラム3のエレメントを生成している。図4では、ローIDが「2」、「4」、「5」、「7」のローが抜き出されている。
 本実施例のテーブルのデータは、論理的に連続なデータであるカラム型ページでストレージ装置101に格納される。図5は、本実施例のカラム型ページの模式図である。図5に示すカラム型ページは、一定のサイズのアドレス空間に同一のカラムに属するエレメントが順に配置されている。図3のテーブルで説明すれば、カラムIDが「2」のカラムを格納しているカラム型ページは、ローIDである「1」、(1,2)エレメントの値、ローIDである「2」、(2,2)エレメントの値、ローIDである「3」、(3,2)エレメントの値というようにして順に配置される。このように、図5のカラム型ページでは、1つのエレメントは、ローIDと該ローIDが示すローの内で該当するカラムに格納されている値の組によって記述される。
 DB処理エンジン102がストレージ装置101から取り出したエレメントの値を、メモリ装置104に書き込む際に用いるロー型ページを図6に示す。図6のロー型ページには、一定のサイズのアドレス空間に、ロー610、ロー620のようにロー単位で各ローが配置されている。さらに、例えば、ロー610の領域の中に、各エレメントは、カラムID611とエレメントの値612の組、カラムID613とエレメントの値614の組のように、カラムIDとエレメントの値の組によって記述されている。このように、ロー型ページには、カラムIDとエレメントの値が順に配置されている。図3のテーブルで説明すれば、(1,1)エレメント、(1,2)エレメント、(1,3)エレメントの順に連続したアドレスにデータが配置されている。なお、カラム型ページおよびロー型ページのいずれの場合にも、予め設定したサイズにテーブル全体が収まらないことが発生する。その場合には、テーブルの途中のローまでを1ページ、次のローからを2ページというようにして、複数のページでテーブル全体を格納する。
 同一のカラムに含まれるエレメントは同一のデータ型であり、また、エレメントの値が重複していたりする。このため、例えば、同じページに格納されたエレメントに出現する値のインデックスをページの先頭に配置することで、実際のエレメントの値はインデックスのIDに置き換えることができる。ストレージ装置101にカラム型でデータを保存することで、各種の圧縮技術を適用でき、データサイズを圧縮することができる。
 図7に、情報処理システム100の機能ブロック図を示す。データベースのテーブルはストレージ装置101にカラム型ページ701として格納される。メモリ装置104の記憶領域には、DBバッファ702が設けられ、CPU103がストレージ装置101に格納されたテーブルのデータにアクセスする場合には、DBバッファ702にキャッシュしてからアクセスを行う。DBバッファ702には、複数のロー型ページ703を格納する領域が用意されて、各領域にはDBバッファ番号が振られており、DB処理エンジン102によってカラム型ページから変換されたロー型ページがキャッシュされる。さらに、メモリ装置104には、DBバッファ702を管理するためのDBバッファテーブル704が置かれる。また、DB処理エンジン102の記憶装置の記憶領域710には、ページ変換テーブル705と、テーブルフォーマット706と、書き込み管理テーブル707と、カラム-ロー変換モジュール708と、書き込みモジュール709とが格納される。
 図8にページ変換テーブル705の構成を示す。ページ変換テーブル705の各エントリーは、カラムの識別情報であるカラム番号、カラム型ページの識別情報であるカラム型ページ番号、およびロー型ページの識別番号であるロー型ページ番号の組で構成される。ページ変換テーブル705は、メモリ装置104に置かれる際の識別情報であるロー型ページ番号と、ストレージ装置101に格納されているカラム型ページの識別情報であるカラム型ページ番号を対応づけるものである。
 例えば、カラム番号がAのカラムは、少なくともカラム型ページ番号がa、a’の2つのカラム型ページを含み、aのカラム型ページは、少なくともロー型ページ番号が801および802のロー型ページに対応し、a’のカラム型ページは、少なくともロー型ページ番号が803のロー型ページに対応している。一つのカラムに含まれるカラム型ページの数は、例えば10までである。また例えば、カラム番号がJのカラムのカラム型ページ番号jのカラム型ページは、少なくともロー型ページ番号808のロー型ページに対応している。逆に、例えば、特定のロー型ページであるロー型ページ番号808のロー型ページにアクセスする場合には、ページ変換テーブル705のロー型ページ番号を検索し、ロー型ページ番号が808となっているエントリーを集めることで、ロー型ページを生成するために必要なカラム型ページを見つけることができる。
 図9にDBバッファテーブル704の構成を示す。DBバッファテーブル704は、メモリ装置104にキャッシュされているロー型ページを管理するために置かれている。DBバッファテーブル704の各エントリーは、DBバッファの識別情報であるDBバッファ番号、該DBバッファに格納されているロー型ページのロー型ページ番号、および該ロー型ページの有効なカラムのカラム番号の組で構成される。なお、有効なカラムに挙げられていないカラム番号のカラムに関しては、その値は保障されない。DBバッファ702では、有効なカラムに挙げられていないカラム番号のカラムの箇所には、ダミーの値がDB処理エンジン102によって書き込まれる。
 図10にテーブルフォーマット706の構成を示す。情報処理システム100で取り扱うデータベースのテーブルごとにテーブルフォーマット706が置かれる。テーブルフォーマット706の各エントリーはカラム番号、該カラム番号のカラムのエレメントの値のデータ型、および該カラム番号のカラムのエレメントのサイズで構成されている。
 図11に書き込み管理テーブル707の構成を示す。書き込み管理テーブル707の各エントリーは、書き込み箇所を含むロー型ページのロー型ページ番号と、該ロー型ページの書き込み箇所のカラム番号と、CPUの識別情報であるCPU IDで構成されている。各CPU103が、あるエレメントを書き換えるときに、書き込み箇所を含むロー型ページのロー型ページ番号と、該ロー型ページ内の書き込み箇所のカラム番号と、書き換えを行うCPUのCPU IDのエントリーを追加することによって、他のCPUによる重複した書き込みを防ぐ。
 以下に、情報処理システム100のテーブルの読み出しの場合と、テーブルへの書き込みの場合の動作フローを説明する。
 図12に、テーブルの読み出し時のCPU103の処理フローを示す。CPU103は特定のロー型ページに含まれる情報、すなわちロー型ページ内の特定のエレメントを読み出しする際、DBバッファテーブル704のロー型ページ番号と有効なカラムの識別番号を検索し(S1201)、アクセス対象のエレメントがDBバッファ702にキャッシュされているかを判定する(S1202)。ロー型ページ内の特定のエレメントは、ロー型ページ番号と該ロー型ページ内に含まれるカラムのカラム番号で特定される。アクセス対象のエレメントがキャッシュされている場合には、CPU103は、そのままアクセス対象をDBバッファ102から読み出しする(S1203)。一方、アクセス対象のエレメントがキャッシュされていない場合には、CPU103は、DB処理エンジン102にアクセス対象のロードリクエストを送信する(S1204)。その際に、ロードリクエストに含める情報として、CPU103は、空きDBバッファ番号と、リクエストするロー型ページ番号およびカラム名と、を送信する。CPU103は、ロードリクエスト送信後は、DB処理エンジンからのI/O完了割込みを待ち(S1205)、I/O完了割込みを受信すると、アクセス対象を読み出す(S1203)。
 図13に、読み出し時のDB処理エンジン102の処理フローを示す。DB処理エンジン102のカラム-ロー変換モジュール708は、CPU103からロードリクエストを受信すると、ページ変換テーブル705から、ロードリクエストで指示されたロー型ページ番号とカラム名に対応するカラム型ページ番号を検索する(S1301)。次に、カラム-ロー変換モジュール708は、ストレージ装置101に検索で得たカラム型ページ番号のロードリクエストを送信し(S1302)、ストレージ装置101からのI/O完了通知を待つ(S1303)。カラム-ロー変換モジュール708は、ストレージ装置101にロードリクエストして受信したカラム型ページをロー型ページに変換し(S1304)、CPU103からのロードリクエストで指示されたDBバッファへロー型ページを転送し(S1305)、CPU103へのI/O完了通知を発行し(S1306)、処理を終了する。
 図14に、読み出しの際のDB処理エンジン102によるデータの変換の例を示す。DB処理エンジン102が、ロー型ページ1410を、カラム番号「B」のカラム、カラム番号「C」のカラムを有効にして生成する場合を用いて説明する。DB処理エンジン102のカラム-ロー変換モジュール708は、カラム番号「B」のカラムを格納しているカラム型ページ1420で連続して格納されているエレメント1421、エレメント1422を抽出して、それぞれロー型ページ1410の離散した所定のアドレスに書き込む。この際に、カラム-ロー変換モジュール708からの第1のコマンドでエレメント1421がロー型ページ1410に書き込まれ、カラム-ロー変換モジュール708からの第2のコマンドでエレメント1422が書き込まれる。一つのコマンドで書き込みを行うと離散した書き込み箇所の間の領域の処理のためにメモリ装置104とDB処理エンジン102の間の転送量が多くなるのに対して、第1のコマンドと第2のコマンドの2つのコマンドで書き込みを行うことで、転送量を抑えることができる。図14に示したように、エレメント1421とエレメント1422はロー型ページ1410の離散した箇所に書き込まれる。
 既にDBバッファ702にキャッシュされているロー型ページの有効でないカラムを追加的に読み出す場合、例えばカラム番号「B」のカラムが有効なロー型ページにカラム番号「C」のカラムを追加的に読み出す場合には、DB処理エンジン102はロー型ページのカラム番号「B」カラムのエレメントの後ろにカラム番号「C」のカラムのエレメント1431、エレメント1432をそれぞれ順に、ロー型ページの所定のアドレスに書き込む。図14の例では、ロー型ページ1410には、カラム番号「B」のカラムからのエレメントとカラム番号「C」のカラムからのエレメントがメモリ領域の連続した箇所に書き込まれる。これにより、CPU103は、カラム番号「B」のカラムからのエレメントとカラム番号「C」のカラムからのエレメントに効率よくアクセスすることができる。また、図14の例では、カラム番号「B」のカラムからのエレメントとカラム番号「C」のカラムからのエレメントがメモリ領域の連続した箇所に書き込まれるとしたが、メモリ領域の連続した箇所でなくても、同じロー型ページに書き込まれることで、CPU103から効率よくアクセスされる。書き込むべきアドレスの計算はテーブルフォーマット706を使用して行われる。したがって、読み出されたカラムのみロー型ページに転送され、書き出されているため、実際の主記憶への転送量はロー型ページのサイズに比べて小さくなり、情報処理システム100の処理が効率的になる。また、DBバッファ702ではロー型ページで管理されるので、CPU103は効率的にテーブルのエレメントにアクセスできる。
 図15にテーブルへの書き込みの際のCPU103の処理フローを示す。ここで、CPU103が特定のエレメントを書き込みする際、予めアクセス対象のエレメントを含むロー型ページをテーブルから読み出している状態を仮定する。通常、データベースから読み出したデータに書き換えが行われるからである。CPU103は、アクセス対象のロック要求をDB処理エンジン102に送信する(S1501)。その際に、CPU103は、書き込みを行うロー型ページのロー型ページ番号と、書き込みを行うロー型ページの内の書き込みを行うカラムのカラム番号と、自身のCPU_IDをDB処理エンジン102に通知する。CPU103はロック取得通知を受信すると(S1502)、DBバッファ702にキャッシュされたロー型ページに対して書き込み、すなわち書き換えを行う(S1503)。書き換えが完了すると、取得したロックの解除要求をDB処理エンジン102に送信し(S1504)、ロック解除通知を受信(S1505)すると、フローを終了する。
 図16に書き込み時のDB処理エンジン102の処理フローを示す。DB処理エンジン102の書き込みモジュール709は、CPU103からロック取得要求を受信(S1601)すると、書き込み管理テーブル707を検索し、要求されたロー型ページ内のカラムが登録されているか、すなわち書き込み管理テーブル707のエントリーにあるロー型ページ内のカラムと重複があるかを判定する(S1602,S1603)。登録がされている場合、書き込みモジュール709は、CPU103にロック取得エラー通知を送信(S1604)し、フローを終了する。登録がされていない場合、書き込みモジュール709は、書き込み管理テーブル707に新規エントリーとして、要求に含まれているロー型ページ番号、カラム番号、要求元CPU IDを登録し、CPU103にロック取得通知を送信する(S1605)。
 次に、書き込みモジュール709は、ページ変換テーブル705に基づいて、修正の対象となるカラム型ページをストレージ装置101から読み出し(S1606)、DB処理エンジン102の記憶装置の記憶領域710内にキャッシュし、CPU103からのロック解除要求を受信するのを待つ(S1607)。書き込みモジュール709は、ロック解除要求を受信すると、CPU103からの要求にそのロー型ページ番号が含まれていたロー型ページ、すなわちロック対象を含んだロー型ページをDBバッファ702から読み出し、DB処理エンジン102の記憶装置の記憶領域710内にキャッシュする(S1608)。そして、書き込みモジュール709は、書き込み管理テーブル707から該当するエントリーを削除し、CPU103にロック解除通知を送信する(S1609)。書き込みモジュール709は、最後に、DBバッファ702から読み出したロー型ページにあるCPU103によって書き換えのあったエレメントの値を使用して、ストレージ装置101から読み出したカラム型ページの該当する箇所を修正し、修正後のカラム型ページをストレージ装置101に書き戻す(S1610)。
 図17に書き込み時のデータの変換例を示す。CPU103が、ロー型ページ1410において、ロー1720のエレメント1721の値を書き換えると、DB処理エンジン102の書き込みモジュール709は、ページ変換テーブル705に基づいて対応するカラム型ページ1420の対応するエレメント1722を修正し、ストレージ装置101に書き戻す。
 複数のCPU103による重複したアクセスを禁止するために、ストレージに格納されている単位、すなわちカラム型ページ単位でロックを掛けるとすれば、ロックの影響が該カラム型ページへのアクセスの全てに広がってしまう。これに対して、本実施例では、ストレージ装置101ではカラム型で保存しているが、DB処理エンジン102でこれを変換したロー型ページ内のさらに特定のカラムへのアクセスに対してロックを掛けるので、CPU間の干渉が大幅に低減し、情報処理システム100の処理速度が向上する。
 図2に、情報処理システム100の変形例として情報処理システム200を示す。図2に示すように、本発明では、必ずしも全てのCPU103が一つのメモリ装置104を共有する必要は無い。また、図2に示すように、DB処理エンジン102とストレージ装置101の組も一つに限定されず、一つのCPUが複数のDB処理エンジンにアクセス可能な構成も取り得る。
 100:情報処理システム、101:ストレージ装置、102:データベース(DB)処理エンジン、103:CPU、104:メモリ装置、105:スイッチ、702:DBバッファ、704:DBバッファテーブル、705:ページ変換テーブル、706:テーブルフォーマット、707:書き込み管理テーブル、708:カラム-ロー変換モジュール、709:書き込みモジュール。

Claims (8)

  1.  メモリ装置と、
     ストレージ装置と、
     データベース処理エンジンとを備え、
     前記データベース処理エンジンは、
     前記ストレージに保存された論理的に連続な第1データを読み出し、前記第1データから抽出した第1エレメントを第1コマンドで、前記第1データから抽出した第2エレメントを第2コマンドで、離散的に前記メモリ装置のメモリ領域に書き込むモジュールを有することを特徴とする情報処理システム。
  2.  請求項1に記載の情報処理システムにおいて、
     前記モジュールは、さらに、
     前記ストレージに保存された論理的に連続な第2データを読み出し、前記第2データから抽出した第3エレメントを前記第1エレメントの前記メモリ領域への書き込み箇所と連続した箇所に書き込むことを特徴とする情報処理システム。
  3.  請求項2に記載の情報処理システムにおいて、
     前記第1データおよび前記第2データは、カラム型ページであり、
     前記第1エレメントおよび前記第3エレメントは同一のロー型ページに属することを特徴とする情報処理システム。
  4.  請求項1に記載の情報処理システムにおいて、
     前記メモリ装置はDRAMを含み、
     前記ストレージ装置はHDDを含むことを特徴とする情報処理システム。
  5.  請求項1に記載の情報処理システムにおいて、
     中央処理装置を有し、
     前記メモリ装置は前記中央処理装置の主記憶であることを特徴とする情報処理システム。
  6.  メモリ装置と、
     ストレージ装置と、
     データベース処理エンジンとを備え、
     前記データベース処理エンジンは、
     前記ストレージ装置に保存されたカラム型ページをロー型ページに変換して前記メモリ装置に保存するモジュールを有することを特徴とする情報処理システム。
  7.  請求項6に記載の情報処理システムにおいて、
     複数の中央処理装置を有し、
     前記データベース処理エンジンは、
     前記ロー型ページ内のカラム毎に各中央処理装置からのアクセスの有効無効を管理することを特徴とする情報処理システム。
  8.  請求項6に記載の情報処理システムにおいて、
     前記メモリ装置はDRAMを含み、
     前記ストレージ装置はHDDを含むことを特徴とする情報処理システム。
PCT/JP2012/067644 2012-07-11 2012-07-11 情報処理システム WO2014010038A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014524531A JPWO2014010038A1 (ja) 2012-07-11 2012-07-11 情報処理システム
PCT/JP2012/067644 WO2014010038A1 (ja) 2012-07-11 2012-07-11 情報処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/067644 WO2014010038A1 (ja) 2012-07-11 2012-07-11 情報処理システム

Publications (1)

Publication Number Publication Date
WO2014010038A1 true WO2014010038A1 (ja) 2014-01-16

Family

ID=49915541

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/067644 WO2014010038A1 (ja) 2012-07-11 2012-07-11 情報処理システム

Country Status (2)

Country Link
JP (1) JPWO2014010038A1 (ja)
WO (1) WO2014010038A1 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018513454A (ja) * 2015-03-20 2018-05-24 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation カラム・ストアにおける挿入およびポイント・クエリ・オペレーションの効率的パフォーマンス
JP2019204250A (ja) * 2018-05-23 2019-11-28 株式会社日立製作所 アプリケーションサーバおよびサーバによる業務アプリケーションの実行方法
US10592556B2 (en) 2013-06-14 2020-03-17 International Business Machines Corporation On-the-fly encoding method for efficient grouping and aggregation
US10831736B2 (en) 2015-03-27 2020-11-10 International Business Machines Corporation Fast multi-tier indexing supporting dynamic update
US11061878B2 (en) 2015-03-20 2021-07-13 International Business Machines Corporation Parallel build of non-partitioned join hash tables and non-enforced N:1 join hash tables
US11080260B2 (en) 2015-03-27 2021-08-03 International Business Machines Corporation Concurrent reads and inserts into a data structure without latching or waiting by readers

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110016157A1 (en) * 2009-07-14 2011-01-20 Vertica Systems, Inc. Database Storage Architecture
US20120084274A1 (en) * 2010-10-05 2012-04-05 Frank Renkes Distributed Transaction Management With Tokens

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9626421B2 (en) * 2007-09-21 2017-04-18 Hasso-Plattner-Institut Fur Softwaresystemtechnik Gmbh ETL-less zero-redundancy system and method for reporting OLTP data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110016157A1 (en) * 2009-07-14 2011-01-20 Vertica Systems, Inc. Database Storage Architecture
US20120084274A1 (en) * 2010-10-05 2012-04-05 Frank Renkes Distributed Transaction Management With Tokens

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
MASARU FUKUZAWA: "Column Store Database no Shori Seino to Denryoku no Kankei ni Tsuite", DAI 3 KAI FORUM ON DATA ENGINEERING AND INFORMATION MANAGEMENT RONBUNSHU, 1 March 2011 (2011-03-01), pages 1 - 4 *
RAVISHANKAR RAMAMURTHY: "A Case for Fractured Mirrors", 28TH INTERNATIONAL CONFERENCE ON VERY LARGE DATA BASES, VERY LARGE DATA BASE ENDOWMENT INC., 2002, pages 1 - 12, Retrieved from the Internet <URL:http://www.vldb.org/conf/2002> *
TORU MORIYAMA ET AL.: "Saishin IT o Yomi Toku", NIKKEI COMPUTER, no. 804, 15 March 2012 (2012-03-15), pages 100 - 101 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10592556B2 (en) 2013-06-14 2020-03-17 International Business Machines Corporation On-the-fly encoding method for efficient grouping and aggregation
JP2018513454A (ja) * 2015-03-20 2018-05-24 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation カラム・ストアにおける挿入およびポイント・クエリ・オペレーションの効率的パフォーマンス
US10650011B2 (en) 2015-03-20 2020-05-12 International Business Machines Corporation Efficient performance of insert and point query operations in a column store
US11061878B2 (en) 2015-03-20 2021-07-13 International Business Machines Corporation Parallel build of non-partitioned join hash tables and non-enforced N:1 join hash tables
US10831736B2 (en) 2015-03-27 2020-11-10 International Business Machines Corporation Fast multi-tier indexing supporting dynamic update
US11080260B2 (en) 2015-03-27 2021-08-03 International Business Machines Corporation Concurrent reads and inserts into a data structure without latching or waiting by readers
JP2019204250A (ja) * 2018-05-23 2019-11-28 株式会社日立製作所 アプリケーションサーバおよびサーバによる業務アプリケーションの実行方法
JP7266970B2 (ja) 2018-05-23 2023-05-01 株式会社日立製作所 アプリケーションサーバおよびサーバによる業務アプリケーションの実行方法

Also Published As

Publication number Publication date
JPWO2014010038A1 (ja) 2016-06-20

Similar Documents

Publication Publication Date Title
US10387673B2 (en) Fully managed account level blob data encryption in a distributed storage environment
WO2014010038A1 (ja) 情報処理システム
US9659050B2 (en) Delta store giving row-level versioning semantics to a non-row-level versioning underlying store
CN103294710B (zh) 一种数据存取方法和装置
CN102662992B (zh) 一种海量小文件的存储、访问方法及装置
US9519664B1 (en) Index structure navigation using page versions for read-only nodes
TWI664541B (zh) 用於自主記憶體搜尋之方法及系統
CN103379159B (zh) 一种分布式Web站点数据同步的方法
EP2534571B1 (en) Method and system for dynamically replicating data within a distributed storage system
US8380663B2 (en) Data integrity in a database environment through background synchronization
US9110820B1 (en) Hybrid data storage system in an HPC exascale environment
US9081784B2 (en) Delta indexing method for hierarchy file storage
CN104331453A (zh) 一种分布式文件系统及分布式文件系统的构建方法
CN107153644A (zh) 一种数据同步方法及装置
WO2022105585A1 (zh) 数据存储方法、装置、设备及存储介质
CN102917005B (zh) 一种支持事务的海量存储访问方法及装置
WO2015118865A1 (ja) 情報処理装置、情報処理システム及びデータアクセス方法
US10394459B2 (en) Data storage device for filtering page in two steps, system including the same, and method of operating the same
WO2015156000A1 (ja) 計算機システム、データの検査方法及び計算機
US20240037104A1 (en) A system and method for hierarchical database operation accelerator
CN103365987A (zh) 一种基于共享磁盘架构的集群数据库系统及数据处理方法
CN107741947A (zh) 基于hdfs文件系统的随机数密钥的存储与获取方法
US9483200B2 (en) System and method for optical cold storage wherein plurality of first and second chunks are encoded and placed on different optical disks
US8793455B2 (en) Storage apparatus, control method for storage apparatus, and storage system
CN105930520A (zh) 一种基于集群文件系统的缓存保护方法

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: 12881065

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2014524531

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: 12881065

Country of ref document: EP

Kind code of ref document: A1