JP6536237B2 - Control information setting apparatus, control information setting method, and control information setting program - Google Patents

Control information setting apparatus, control information setting method, and control information setting program Download PDF

Info

Publication number
JP6536237B2
JP6536237B2 JP2015138761A JP2015138761A JP6536237B2 JP 6536237 B2 JP6536237 B2 JP 6536237B2 JP 2015138761 A JP2015138761 A JP 2015138761A JP 2015138761 A JP2015138761 A JP 2015138761A JP 6536237 B2 JP6536237 B2 JP 6536237B2
Authority
JP
Japan
Prior art keywords
information
log
control information
state
reachable
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015138761A
Other languages
Japanese (ja)
Other versions
JP2017021576A (en
Inventor
堀川 隆
隆 堀川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2015138761A priority Critical patent/JP6536237B2/en
Publication of JP2017021576A publication Critical patent/JP2017021576A/en
Application granted granted Critical
Publication of JP6536237B2 publication Critical patent/JP6536237B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Description

本発明は、たとえば、複数の装置に共有されているログバッファを管理する制御情報設定装置等に関する。   The present invention relates to, for example, a control information setting device that manages a log buffer shared by a plurality of devices.

ファイルや、データベース(以降、本願では、「DB」と称する場合がある)等に情報を書込む情報システムの内、高い信頼性を必要とする情報システムは、書込み操作に関する情報をログ情報として、ファイルやデータベースと異なるログバッファに記録する方式を採用することが多い。たとえば、高い信頼性を必要とする情報システムは、書込みが完了した情報を消失することが許されないシステムである。データベース管理システムは、高い信頼性が要求される情報システムの一例である。   Among information systems that write information in files, databases (hereinafter, may be referred to as "DB" in the present application), etc., an information system requiring high reliability uses information about write operations as log information, In many cases, a method of recording in a log buffer different from files and databases is adopted. For example, an information system requiring high reliability is a system in which it is not permissible to lose information that has been written. A database management system is an example of an information system that requires high reliability.

たとえば、特許文献1乃至特許文献3は、高い信頼性が要求されるデータベース管理システムの一例を開示している。   For example, Patent Documents 1 to 3 disclose an example of a database management system that requires high reliability.

特許文献1に開示されたデータベース管理システムは、共有DBデータ管理部と、データ処理部と、先読み部とを有する。共有DBデータ管理部は、データ処理部がデータを取得する要求に応じて、該データに関する排他制御を実行した後に、該データを取得する処理を実行する。共有DBデータ管理部は、さらに、先読み部がデータを先読みする要求に応じて、先読み対象であるデータを読み取る。   The database management system disclosed in Patent Document 1 includes a shared DB data management unit, a data processing unit, and a prefetch unit. The shared DB data management unit executes the process of acquiring the data after executing exclusive control on the data in response to a request for the data processing unit to acquire the data. The shared DB data management unit further reads data to be prefetched in response to a request that the prefetch unit prefetches data.

特許文献2に開示されたデータベース管理システムは、共有DBデータ管理部と、データ処理部と、先読み部とを有する。共有DBデータ管理部は、先読み部がデータを参照する要求に応じて、該要求に関連付けされた処理、及び、該要求に関連付けされた下限値を特定する。共有DBデータ管理部は、現在の時刻と、最新の入出力処理が実行された時刻との間の期間が、特定した下限値よりも短い場合に、該期間が特定した下限値以上になるまで、特定された処理を中断する。共有DBデータ管理部は、さらに、データ処理部がデータを取得する要求に応じて、該データに関する排他制御と、該データの取得処理とを実行する。   The database management system disclosed in Patent Document 2 includes a shared DB data management unit, a data processing unit, and a prefetch unit. The shared DB data management unit specifies the process associated with the request and the lower limit value associated with the request in response to the request for the prefetching unit to refer to the data. If the period between the current time and the time at which the latest input / output processing was performed is shorter than the specified lower limit, the shared DB data management unit continues until the period reaches the specified lower limit , Interrupt the identified process. The shared DB data management unit further executes exclusive control on the data and acquisition processing of the data in response to a request for the data processing unit to acquire the data.

特許文献3に開示されたデータベース管理装置は、複数のデータを含むデータセットを管理する複数の計算機を有する。複数の計算機のうち、第1計算機は、第1データを格納する要求に応じて、該第1データをメモリに格納し、さらに、該第1データを複製である第1複製データを作成する。第1計算機は、第2計算機に複製データを格納できる成功確率に基づき、第1複製データを第2計算機に送信する回数を算出する。第1計算機は、算出した回数分、第1複製データを第2計算機に送信する。   The database management apparatus disclosed in Patent Document 3 has a plurality of computers that manage data sets including a plurality of data. Among the plurality of computers, the first computer stores the first data in the memory in response to a request for storing the first data, and further creates first copy data which is a copy of the first data. The first computer calculates the number of times of transmitting the first copy data to the second computer based on the success probability that the copy data can be stored in the second computer. The first computer transmits the first duplicate data to the second computer for the calculated number of times.

以降、説明の便宜上、本願明細書においては、ファイルやデータベース等に情報を格納(保存)する操作を「書込み」と表すとする。書込み操作に関するログ情報を、データベース等とは異なるログ記録媒体に格納(保存)する操作を「記録」と表すとする。また、並行と、擬似並行とを含めて、「並行」と表すとする。   Hereinafter, for convenience of description, in the specification of the present application, an operation of storing (saving) information in a file, a database, or the like will be referred to as “writing”. An operation of storing (saving) log information regarding a writing operation in a log recording medium different from a database or the like is referred to as "recording". In addition, it is assumed that “parallel” includes “parallel” and “pseudo-parallel”.

データベースシステムにおいては、複数のデータベースに対する処理要求(トランザクション)が、並行して実行されることが多い。たとえば、該データベースシステムにおいて、トランザクションに関する処理を実行する複数のプロセスは並行に動作する。複数のプロセスが並行に動作する場合であっても、該データベースシステムは、トランザクションに関する処理を正しく実行する必要がある。したがって、該データベースシステムにおいて、複数のプロセスは、ファイルやデータベースへの書込み操作、及び、該書込み操作に関するログ情報の記録を、相互に矛盾することなく実行する必要がある。   In database systems, processing requests (transactions) for a plurality of databases are often executed in parallel. For example, in the database system, a plurality of processes performing processing related to transactions operate in parallel. Even when multiple processes operate in parallel, the database system needs to properly execute the processing for transactions. Therefore, in the database system, a plurality of processes need to execute write operations to files and databases, and record log information regarding the write operations without contradiction.

この処理を実現する一例について説明する。データベースシステムは、ログ情報を記録する可能性のある全プロセスがアクセス可能な共有メモリに、ログ情報を記録可能なログバッファと、その制御情報とを有する。データベースシステムにて処理を実行する各プロセスは、相互のプロセスの整合性を保ちながら、書込み操作に関するログ情報をログバッファに記録する。   An example for realizing this process will be described. The database system has a log buffer capable of recording log information and its control information in a shared memory accessible to all processes that may record log information. Each process executing processing in the database system records log information regarding the write operation in the log buffer while maintaining the consistency of the processes with each other.

次に、該ログバッファを実現なメモリ素子について説明する。   Next, a memory device that realizes the log buffer will be described.

計算機システムを構成するメモリ素子として、DRAMとは異なるメモリ素子が提供されている。尚、DRAMは、Dynamic_Random_Access_Memoryの略称を表す。該メモリ素子は、以下の特性を有する、すなわち、
計算機システムに電源が供給されなくなった場合であっても、電源が供給されていた期間に保持していたデータが消失しないという特性(不揮発性)、
中央演算処理装置(CPU)に対する機械語命令により、直接、該メモリ素子にデータを読み書きできるという特性(バイトアドレッサブル)。
A memory device different from a DRAM is provided as a memory device constituting a computer system. Note that DRAM represents an abbreviation of Dynamic_Random_Access_Memory. The memory element has the following characteristics:
Even if power is not supplied to the computer system, the characteristic (nonvolatile) that the data held in the period when the power is supplied is not lost,
A feature (byte addressable) that data can be read from or written to the memory element directly by a machine language instruction to a central processing unit (CPU).

該メモリ素子は、たとえば、PRAMやMRAM等の不揮発性等の特性を有するメモリ素子を用いる態様によって実現することができる。また、該メモリ素子は、たとえば、揮発性のメモリ素子と、バッテリー及びSSD等の不揮発性ではあるがバイトアドレッサブルではないブロックアクセス型素子を組み合わす態様によって実現することができる。該組み合わす態様を採用している計算機システムは、電源が供給されなくなった場合に、バッテリーから供給される電力を用いて、揮発性のメモリ素子に記録されたデータを、不揮発性のブロックアクセス型素子に格納する。該計算機システムは、電源が復旧した場合に、ブロックアクセス型素子に格納されているデータを揮発性のメモリ素子に格納する。該組み合わせる態様によれば、実際には揮発性のメモリ素子であっても、不揮発性のメモリのように扱うことができるので、不揮発性を実現することができる。   The memory device can be realized, for example, by using a memory device having characteristics such as non-volatility, such as PRAM and MRAM. The memory device can be realized, for example, by combining a volatile memory device and a non-volatile but not byte addressable block access device such as a battery and an SSD. A computer system adopting the combination aspect uses non-volatile block access type data recorded in volatile memory elements using power supplied from a battery when power is not supplied. Store in the device. The computer system stores data stored in the block access type element in the volatile memory element when the power is restored. According to this combination aspect, even a volatile memory element can be treated as a non-volatile memory in actuality, so non-volatility can be realized.

上記の記載において、PRAMは、Parameter_Random_Access_Memoryの略称を表す。MRAMは、Magnetoresistive_Random_Access_Memoryの略称を表す。SSDは、Solid_State_Driveの略称を表す。   In the above description, PRAM represents an abbreviation of Parameter_Random_Access_Memory. MRAM stands for Magnetoresistive_Random_Access_Memory. SSD stands for Solid_State_Drive.

以降、説明の便宜上、不揮発性を実現する態様によらず、不揮発性を有するメモリ素子を、「不揮発性メモリ(NVRAM)」と表す。   Hereinafter, for convenience of description, the memory element having nonvolatileity is referred to as “nonvolatile memory (NVRAM)” regardless of the aspect of realizing nonvolatileity.

次に、データベースシステムにおけるログバッファとして、上述したような不揮発性メモリを用いる例について説明する。   Next, an example of using the non-volatile memory as described above as the log buffer in the database system will be described.

非特許文献1には、不揮発性メモリをログバッファとして用いる方式が開示されている。非特許文献1によれば、複数のプロセスは、ログバッファに関する排他制御によって、該ログバッファに関する排他制御権を取得し、取得した排他制御権を有している期間内に、該ログバッファの末尾に続く記憶領域(ログ記憶領域)を確保する操作(以降、「ログ領域確保操作」と表す)を実行する。ログ領域確保操作にて確保される記憶領域は、たとえば、格納する対象であるログ情報のサイズ(長さ、大きさ)を表すデータ(以降、「レングス(length)」と表す)を記憶可能なレングス領域と、該ログ情報に関する格納処理を実行している状態を表すフラグを記憶可能なフラグ領域とを含む。以降、該フラグを「コピー中フラグ」と表す。   Non-Patent Document 1 discloses a method using nonvolatile memory as a log buffer. According to Non-Patent Document 1, a plurality of processes acquire exclusive control of the log buffer by exclusive control of the log buffer, and the end of the log buffer is acquired within a period in which the acquired exclusive control is acquired. An operation (hereinafter, referred to as “log area securing operation”) for securing a storage area (log storage area) following “b” is executed. The storage area secured by the log area securing operation can store, for example, data representing the size (length, size) of log information to be stored (hereinafter referred to as “length”). It includes a length area, and a flag area capable of storing a flag representing a state in which storage processing related to the log information is being performed. Hereinafter, the flag is referred to as "copying flag".

ログバッファに関する制御を取得したプロセスは、確保した記憶領域にログ情報を記録する。   The process that has acquired control regarding the log buffer records log information in the secured storage area.

該ログ領域確保操作は、たとえば、次に示す機能1及び機能2によって実現することができる。すなわち、
機能1:ログバッファに関する制御情報(たとえば、ログバッファの末尾を示すポインタ)を更新する機能、
機能2:該ログ情報のサイズを、確保した記憶領域のうちレングス領域に記録し、格納処理中であることを表す値を、確保した記憶領域のうちフラグ領域に記録する。
The log area securing operation can be realized, for example, by the following function 1 and function 2. That is,
Function 1: A function of updating control information on the log buffer (for example, a pointer indicating the end of the log buffer),
Function 2: The size of the log information is recorded in the length area of the secured storage area, and a value indicating that storage processing is in progress is recorded in the flag area of the secured storage area.

非特許文献1によれば、データベース管理システムは、自システムにおいて障害が発生した場合に、データベースのある一時点(チェックポイント)における内容を格納したファイルと、該チェックポイント以降の操作履歴を記録したログ情報とを参照する。該データベース管理システムは、該チェックポイントまでのデータを、参照した該ファイルに基づき復旧し、その後、参照したログ情報における書込み操作を、該ファイルに対して実行することにより、該障害が発生する直前におけるデータベースの内容を復旧する。   According to Non-Patent Document 1, when a failure occurs in the own system, the database management system records a file storing contents at a certain temporary point (check point) of the database and an operation history after the check point Refer to log information. The database management system restores data up to the checkpoint based on the referenced file, and then performs a write operation on the referenced log information on the file to immediately before the failure occurs. Restore the contents of the database in.

非特許文献2は、複数のログバッファを用いることにより、競合を低減する方法を開示している。   Non Patent Literature 2 discloses a method of reducing contention by using a plurality of log buffers.

特許第5261809号Patent No. 5261809 特許第5098120号Patent No. 5098120 特許第5548829号Patent No. 5548829

Fang、 Ru and Hsiao、 Hui―I and_He、 Bin and Mohan、 C and Wang、 Yun,「High_performance_database_logging_using_storage_class_memory」, Data_Engineering(ICDE)、2011、IEEE_27th_International_Conference、p1221―1231Fang, Ru and Hsiao, Hui-I and He, Bin and Mohan, C and Wang, Yun, "High_performance_database_logging_using_storage_class_memory", Data_Engineering (ICDE), 2011, IEEE_27th_International_Conference, p1221-1231 Wang、 Tianzheng and Johnson、 Ryan、「Scalable logging through emerging non―volatile memory」、Very Large Data Bases (VLDB) 2014、p865―876Wang, Tianzheng and Johnson, Ryan, “Scalable logging through emerging non-volatile memory,” Very Large Data Bases (VLDB) 2014, p865-876 Intel 64 and IA−32 Architectures Software Developers Manual Volume 2A: Instruction Set Reference、 A−M、(http://www.tel.com/Assets/PDF/manual/253666.pdf)Intel 64 and IA-32 Architectures Software Developers Manual Volume 2A: Instruction Set Reference, AM, (http://www.tel.com/Assets/PDF/manual/253666.pdf)

データベースに対する複数の処理要求を管理するデータベース管理システムは、上述したように、たとえば、ログ情報等、複数の情報処理装置に共有されているログバッファに関して、排他制御を実行する。これは、該データベース管理システムが、複数の情報処理装置に共有されているログバッファに関して、正しく処理を実行する必要があるからである。   As described above, the database management system that manages a plurality of processing requests for the database performs exclusive control on log buffers such as log information shared with a plurality of information processing apparatuses. This is because the database management system needs to correctly execute processing regarding the log buffer shared by a plurality of information processing apparatuses.

データベース管理システムは、たとえ、該処理要求に応じた処理を実行する複数の演算装置を有していたとしても、排他制御を実行している期間においては、逐次的に該処理を実行しなければならない。たとえば、特許文献1乃至特許文献3、非特許文献1、及び、非特許文献2に開示された装置(システム、方式)は、該排他制御権を有している期間内に、共有されているログバッファに関して逐次的に多くの処理を実行する。   Even if the database management system has a plurality of arithmetic units that execute processing according to the processing request, the database management system must execute the processing sequentially while the exclusive control is being performed. It does not. For example, the devices (systems and systems) disclosed in Patent Document 1 to Patent Document 3, Non-Patent Document 1 and Non-Patent Document 2 are shared during the period in which the exclusive control right is held. Performs many processes sequentially on the log buffer.

しかし、データベース管理システムが、排他制御権を有している期間内において、逐次的に処理を実行しなければならないので、たとえば、特許文献1乃至特許文献3、非特許文献1、及び、非特許文献2に開示された装置は、処理効率が低下してしまう。   However, since the database management system has to execute processing sequentially while having the exclusive control right, for example, patent documents 1 to 3, non-patent documents 1 and non-patent documents The apparatus disclosed in Document 2 has a reduced processing efficiency.

そこで、本発明の主たる目的は、ログバッファに対する処理要求を短期間に処理可能にする制御情報を記憶領域に効率よく設定する制御情報設定装置等を提供することである。   Therefore, a main object of the present invention is to provide a control information setting apparatus and the like for efficiently setting control information in a storage area, which can process a processing request for a log buffer in a short period of time.

前述の目的を達成するために、本発明の一態様において、制御情報設定装置は、
ログ情報と、そのログ情報に所定の順序で続くログ情報を参照することが可能な状態を表す可達状態であるか、または、参照することが不可能な状態を表す不可達状態であるかを表す可達情報、及び、前記ログ情報のサイズを表すサイズ情報を含む制御情報とを関連付けた状態で記憶可能な記憶領域が論理的に前記順序に並べられたログバッファと、
前記ログバッファにおいて、前記ログ情報を記録する記録処理を割り当て済みの記憶領域と、前記記録処理が割り当てられていない記憶領域との境界を表す記憶領域に記録されている第1制御情報から前記可達情報を読み取り、前記第1制御情報に含まれている前記可達情報に前記不可達状態を設定するとともに、前記第1制御情報に含まれている前記サイズ情報にあるサイズを設定し、読み取った前記可達情報が前記可達状態である場合に、前記ログバッファにおける前記順序に従い、前記サイズ情報が所定の条件を満たすことを表す第2制御情報を特定し、特定した第2制御情報に含まれている可達情報を前記可達状態に設定する可達情報設定手段と
を備える。
In order to achieve the above object, in one aspect of the present invention, a control information setting device includes:
Whether the log information and the reachable state representing the state where it is possible to refer to the log information that follows the log information in a predetermined order, or the unreachable state representing the state where it is impossible to refer A log buffer in which storage areas that can be stored are logically arranged in the above order in a state in which they are associated with reachable information representing H, and control information including size information representing the size of the log information;
In the log buffer, the first control information is recorded from a first control information recorded in a storage area representing a boundary between a storage area to which the recording process for recording the log information has been allocated and a storage area to which the recording process is not allocated. The delivery information is read, the unreachable state is set to the reachable information included in the first control information, and a size is set to the size information included in the first control information, When the reachable information is in the reachable state, the second control information specifying that the size information satisfies the predetermined condition is specified according to the order in the log buffer, and the specified second control information is specified. And a reachable information setting unit that sets the included reachable information to the reachable state.

また、本発明の他の見地として、制御情報設定方法は、
ログ情報と、そのログ情報に所定の順序で続くログ情報を参照することが可能な状態を表す可達状態であるか、または、参照することが不可能な状態を表す不可達状態であるかを表す可達情報、及び、前記ログ情報のサイズを表すサイズ情報を含む制御情報とを関連付けた状態で記憶可能な記憶領域が論理的に前記順序に並べられたログバッファに関して、
前記ログバッファにおいて、前記ログ情報を記録する記録処理を割り当て済みの記憶領域と、前記記録処理が割り当てられていない記憶領域との境界を表す記憶領域に記録されている第1制御情報から前記可達情報を読み取り、前記第1制御情報に含まれている前記可達情報に前記不可達状態を設定するとともに、前記第1制御情報に含まれている前記サイズ情報にあるサイズを設定し、読み取った前記可達情報が前記可達状態である場合に、前記ログバッファにおける前記順序に従い、前記サイズ情報が所定の条件を満たすことを表す第2制御情報を特定し、特定した第2制御情報に含まれている可達情報を前記可達状態に設定する。
Further, as another aspect of the present invention, a control information setting method is:
Whether the log information and the reachable state representing the state where it is possible to refer to the log information that follows the log information in a predetermined order, or the unreachable state representing the state where it is impossible to refer With regard to a log buffer in which storage areas that can be stored are logically arranged in the above-described order in association with reachable information representing the control information and control information including size information representing the size of the log information.
In the log buffer, the first control information is recorded from a first control information recorded in a storage area representing a boundary between a storage area to which the recording process for recording the log information has been allocated and a storage area to which the recording process is not allocated. The delivery information is read, the unreachable state is set to the reachable information included in the first control information, and a size is set to the size information included in the first control information, When the reachable information is in the reachable state, the second control information specifying that the size information satisfies the predetermined condition is specified according to the order in the log buffer, and the specified second control information is specified. The included reachable information is set to the reachable state.

さらに、同目的は、係る制御情報設定プログラム、及び、そのプログラムを記録するコンピュータが読み取り可能な記録媒体によっても実現される。   Furthermore, the same object is also realized by the control information setting program and a computer readable recording medium for recording the program.

本発明に係る制御情報設定装置等によれば、ログバッファに対する処理要求を短期間に処理可能にする制御情報を記憶領域に効率よく設定することができる。   According to the control information setting apparatus and the like according to the present invention, it is possible to efficiently set, in the storage area, control information that enables processing of a processing request to the log buffer in a short period of time.

本発明の第1の実施形態に係るデータベース管理装置が有する構成を示すブロック図である。It is a block diagram which shows the structure which the database management apparatus which concerns on the 1st Embodiment of this invention has. 第1の実施形態に係るログバッファが有する構成を概念的に示す図である。It is a figure which shows notionally the structure which the log buffer which concerns on 1st Embodiment has. 第1の実施形態に係るログ情報が有する構成を示すブロック図である。It is a block diagram which shows the structure which the log information which concerns on 1st Embodiment has. ログバッファ情報記憶部が有する構成を示すブロック図である。It is a block diagram which shows the structure which a log buffer information storage part has. 第1の実施形態に係るデータベース管理装置における処理の流れを示すフローチャート(1/2)である。It is a flowchart (1/2) which shows the flow of the process in the database management apparatus which concerns on 1st Embodiment. 第1の実施形態に係るデータベース管理装置における処理の流れを示すフローチャート(2/2)である。It is a flowchart (2/2) which shows the flow of the process in the database management apparatus which concerns on 1st Embodiment. 制御情報の一例を概念的に表す図である。It is a figure which represents an example of control information notionally. データベース管理装置における処理の流れを示すフローチャートを表す。Fig. 7 shows a flowchart showing the flow of processing in the database management device. 第1の実施形態に係る先頭位置算出部における処理の流れを表すフローチャートである。It is a flowchart showing the flow of the process in the head position calculation part which concerns on 1st Embodiment. 第1の実施形態に係るログ処理部(1/3)における処理の流れを表すフローチャートである。It is a flowchart showing the flow of the process in the log process part (1/3) which concerns on 1st Embodiment. 第1の実施形態に係るログ処理部(2/3)における処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the process in the log process part (2/3) which concerns on 1st Embodiment. 第1の実施形態に係るログ処理部(3/3)における処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the process in the log process part (3/3) which concerns on 1st Embodiment. 第1の実施形態に係る可達位置情報更新部における処理の流れを表すフローチャートである。It is a flowchart showing the flow of the process in the delivery location information update part which concerns on 1st Embodiment. 第1の実施形態に係る可達位置情報更新部における処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the process in the delivery location information update part which concerns on 1st Embodiment. 第1の実施形態に係る完了位置情報更新部における処理の流れを表すフローチャートである。It is a flowchart showing the flow of the process in the completion positional information update part which concerns on 1st Embodiment. 本発明の第2の実施形態に係るデータベース管理装置が有する構成を示すブロック図である。It is a block diagram which shows the structure which the database management apparatus which concerns on the 2nd Embodiment of this invention has. 第2の実施形態に係る制御情報設定装置151における処理の流れを示すフローチャートである。It is a flow chart which shows a flow of processing in control information setting device 151 concerning a 2nd embodiment. 本発明の各実施形態に係るデータベース管理装置を実現可能な計算処理装置のハードウェア構成例を、概略的に示すブロック図である。It is a block diagram showing roughly an example of hardware constitutions of a calculation processing device which can realize a database management device concerning each embodiment of the present invention.

まず、本発明の各実施形態に係るデータベース管理装置における機能の一部を実現可能なマルチプロセッサ命令について説明する。マルチプロセッサ命令は、たとえば、非特許文献3に、米国インテル社のx86プロセッサに関する命令である「cmpxchg」命令が開示されている。尚、「cmpxchg」命令は、Compare_and_Exchange命令を表す。「cmpxchg」命令を、Compare_and_Swap(Cas)命令と称することもある。尚、機能の一部を実現可能なマルチプロセッサ命令は、上述した例に限定されない。   First, multiprocessor instructions capable of realizing part of the functions in the database management apparatus according to each embodiment of the present invention will be described. As a multiprocessor instruction, for example, Non-Patent Document 3 discloses a "cmpxchg" instruction which is an instruction related to an Intel x86 processor. The "cmpxchg" instruction represents a Compare_and_Exchange instruction. The "cmpxchg" instruction may also be referred to as a Compare_and_Swap (Cas) instruction. The multiprocessor instruction capable of realizing a part of the function is not limited to the above-described example.

「cmpxchg」命令は、たとえば、ある記憶領域の位置を表す位置情報、第1の値、及び、第2の値なる3つのオペランドを含む。位置情報は、たとえば、データベースシステムにおけるレジスタ(eaxレジスタ、64bit_modeの場合にraxレジスタ、以下同様)を表す名称である。説明の便宜上、位置情報は、eaxレジスタであるとする。「cmpxchg」命令は、処理1及び処理3に示す一連の操作をアトミック(後述)に実行する命令である。   The "cmpxchg" instruction includes, for example, three operands of position information indicating the position of a certain storage area, a first value, and a second value. The position information is, for example, a name representing a register (eax register, rax register in the case of 64 bit_mode, and so on) in the database system. For convenience of explanation, the position information is assumed to be an eax register. The “cmpxchg” instruction is an instruction that atomically executes a series of operations shown in process 1 and process 3 (described later).

処理1:第1の値を読み取る、
処理2:読み取った第1の値が、eaxレジスタに格納されている値に一致する場合に、第2の値を、第1の値を格納していたメモリ領域に格納する、
処理3:読み取った第1の値が、eaxレジスタに格納されている値に一致しない場合に、読み取った第1の値をeaxレジスタに格納する。
Process 1: Read the first value,
Process 2: When the read first value matches the value stored in the eax register, the second value is stored in the memory area storing the first value.
Process 3: When the read first value does not match the value stored in the eax register, the read first value is stored in the eax register.

次に、アトミックについて説明する。アトミックな処理とは、あるプロセッサが記憶領域に対する一連の処理を実行している間に、該あるプロセッサとは異なるプロセッサが、該記憶領域に対する処理を実行できないことを、ハードウェアによって保証している処理であることを表す。たとえば、「cmpxchg」命令は、あるプロセッサが、該記憶領域に対して処理1乃至処理3を実行している間に、他のプロセッサが、該記憶領域をアクセスしないことをハードウェアによって保証している処理であることを表す。   Next, atomic will be described. In atomic processing, hardware guarantees that a processor different from the one processor can not execute the processing for the storage area while the processor performs a series of processing for the storage area. Indicates that it is a process. For example, the “cmpxchg” instruction ensures by hardware that one processor does not access the storage area while another processor is executing the processing 1 to the processing 3 while the processing is executed to the storage area. Indicates that the process is

次に、本発明を実施する実施形態について図面を参照しながら詳細に説明する。   Next, embodiments of the present invention will be described in detail with reference to the drawings.

<第1の実施形態>
図1を参照しながら、本発明の第1の実施形態に係るデータベース管理装置101が有する構成について詳細に説明する。図1は、本発明の第1の実施形態に係るデータベース管理装置101が有する構成を示すブロック図である。
First Embodiment
The configuration of the database management apparatus 101 according to the first embodiment of the present invention will be described in detail with reference to FIG. FIG. 1 is a block diagram showing a configuration of the database management apparatus 101 according to the first embodiment of the present invention.

本発明の第1の実施形態に係るデータベース管理装置101は、大別して、複数のトランザクション実行部と、ログバッファ112と、ログバッファ情報記憶部111とを有する。複数のトランザクション実行部は、たとえば、トランザクション実行部107、トランザクション実行部109、及び、トランザクション実行部110である。トランザクション実行部107は、ログ処理部102と、メモリ108とを有する。ログ処理部102は、先頭位置算出部103と、ログ情報保存部104とを有する。ログ情報保存部104は、可達位置情報更新部105と、完了位置情報更新部106とを有する。トランザクション実行部109、及び、トランザクション実行部110は、トランザクション実行部107と同様の構成を有することとする。   The database management apparatus 101 according to the first embodiment of the present invention roughly includes a plurality of transaction execution units, a log buffer 112, and a log buffer information storage unit 111. The plurality of transaction execution units are, for example, a transaction execution unit 107, a transaction execution unit 109, and a transaction execution unit 110. The transaction execution unit 107 has a log processing unit 102 and a memory 108. The log processing unit 102 includes a head position calculation unit 103 and a log information storage unit 104. The log information storage unit 104 has a delivery position information update unit 105 and a completion position information update unit 106. The transaction execution unit 109 and the transaction execution unit 110 have the same configuration as the transaction execution unit 107.

尚、図1に例示したデータベース管理装置101は、3台のトランザクション実行部を有するが、必ずしも、3台でなくともよい。   Although the database management apparatus 101 illustrated in FIG. 1 has three transaction execution units, it does not have to be three.

ログバッファ112は、たとえば、不揮発性を有するメモリ素子を表すNVRAMを用いて実現される。図2を参照しながら、ログバッファ112が有する構成について詳細に説明する。図2は、第1の実施形態に係るログバッファ112が有する構成を概念的に示す図である。   The log buffer 112 is implemented using, for example, an NVRAM that represents a non-volatile memory element. The configuration of the log buffer 112 will be described in detail with reference to FIG. FIG. 2 is a diagram conceptually showing the structure of the log buffer 112 according to the first embodiment.

ログバッファ112は、たとえば、ログ情報に関する書込み操作において出力されたログ情報と、該ログ情報に関する制御情報とが関連付けされたログ情報セットを、少なくとも1つ格納することができる。図2に示す例において、ログバッファ112は、ログ情報1及び制御情報1が関連付けされた情報を表す第1ログ情報セット、ログ情報2及び制御情報2が関連付けされた情報を表す第2ログ情報セット等を含む。   The log buffer 112 can store, for example, at least one log information set in which log information output in a write operation related to log information and control information related to the log information are associated. In the example illustrated in FIG. 2, the log buffer 112 includes a first log information set representing information associated with the log information 1 and the control information 1, and second log information representing information associated with the log information 2 and the control information 2. Includes sets, etc.

ログ情報セットは、ログバッファ112において、制御情報、該制御情報に関連付けされたログ情報の順に記録されていてもよい。尚、本実施形態において、ログバッファ112においては、制御情報と、該制御情報に関連付けされたログ情報とが、少なくとも論理的に、記録された順に記憶されているとする。たとえば、制御情報は、上述した「cas」命令を適用可能なサイズであり、たとえば、1ワードの大きさを有する情報である。   The log information set may be recorded in the log buffer 112 in the order of control information and log information associated with the control information. In the present embodiment, it is assumed that the control information and the log information associated with the control information are stored in the log buffer 112 at least logically in the order of recording. For example, the control information is a size to which the above-described "cas" instruction can be applied, for example, information having a size of one word.

図3を参照しながら、ログ情報に関する制御情報について詳細に説明する。図3は、第1の実施形態に係るログ情報が有する構成を示すブロック図である。   Control information related to log information will be described in detail with reference to FIG. FIG. 3 is a block diagram showing a configuration of log information according to the first embodiment.

制御情報は、可達情報と、記録操作完了情報と、記録操作状態情報と、サイズ(長さ、レングス、大きさ)情報とを含む。すなわち、制御情報は、可達情報を含むデータ構造を有する。   The control information includes reachable information, recording operation completion information, recording operation state information, and size (length, length, size) information. That is, the control information has a data structure including reachable information.

可達情報は、ログバッファ112における各ログ情報セットに関して、後順に位置するログ情報セットを参照することが可能であるか否かを表す情報である。すなわち、可達情報は、ログバッファ112において、所定の順序にて、あるログ情報セットに続くログ情報セットを参照することが可能な状態を表す可達状態であるか、または、参照することが不可能な状態を表す不可達状態であるかを表す情報である。たとえば、後順に位置するログ情報セットを参照することが可能な状態は、1(有効)であり、後順に位置するログ情報セットを参照することが不可能な値は、0(無効)である。可達情報は、後述の可達位置情報(後述)を更新するか否かを判定する場合に参照される情報(たとえば、フラグ)である。以降の説明においては、説明の便宜上、可達情報を格納可能な記憶領域を変数「rflag」と表すとする。後順に位置するログ情報セットを参照することが可能な状態を「可達状態」と表すとする。また、後順に位置するログ情報セットを参照することが不可能な状態を「不可達状態」とする。変数「rflag」は、ログバッファ112、または、メモリ108における特定の記憶領域を表すとする。尚、可達情報を、たとえば、可達状態制御フラグと表してもよい。たとえば、可達情報は、該可達情報を含む制御情報に関連付けされたログ情報に関する処理が割り当てられる以前においては可達状態であり、該処理が割り当てられた以降においては不可達状態である。   The reachable information is information indicating whether or not it is possible to refer to log information sets located in a later order with respect to each log information set in the log buffer 112. That is, in the log buffer 112, the reachable information may be in a reachable state representing a state where it is possible to refer to the log information set following a certain log information set in a predetermined order, or may be referred to. It is information indicating whether it is an unreachable state representing an impossible state. For example, the state where it is possible to refer to the log information set located in back order is 1 (valid), and the value where it is impossible to refer to the log information set located in back order is 0 (invalid) . The reachable information is information (for example, a flag) that is referred to when it is determined whether to update the later-described reachable position information (described later). In the following description, for convenience of explanation, it is assumed that a storage area capable of storing reachable information is represented as a variable “rflag”. The state where it is possible to refer to the log information set located in the later order is referred to as the “delivery state”. In addition, a state in which it is impossible to refer to the log information sets located in the later order is referred to as an “unreachable state”. The variable “rflag” represents the log buffer 112 or a specific storage area in the memory 108. The reachable information may be expressed as, for example, a reachable state control flag. For example, the reachable information is in the reachable state before the process related to the log information associated with the control information including the reachable information is assigned, and is in the unreachable state after the process is assigned.

記録操作完了情報は、ログ情報をログバッファ112に記録する処理が完了する以前であるか否かを表す情報である。たとえば、ログ情報をログバッファ112に記録する処理が完了する以前の状態は1(有効)であり、処理が完了した以降の状態である場合に、値は0(無効)である。記録操作完了情報は、後述の完了位置情報(後述)を更新するか否かを判定する場合に参照される情報(たとえば、フラグ)である。以降の説明においては、記録操作完了情報を格納可能な記憶領域を変数「cflag」と表すとする。処理を完了する以前の状態を「未完了状態」と表すとする。また、処理完了以降の状態を「完了状態」と表すとする。たとえば、変数「cflag」は、ログバッファ112、または、メモリ108における特定の記憶領域を表す。尚、記録操作完了情報を、たとえば、完了制御フラグと表してもよい。たとえば、記録操作完了情報は、該記録操作完了情報を含む制御情報に関連付けされたログ情報に関する処理が完了以前である場合に未完了状態を表し、完了以降にて完了状態を表す。   The recording operation completion information is information indicating whether or not the process of recording log information in the log buffer 112 is completed. For example, the state before the process of recording the log information in the log buffer 112 is complete is 1 (valid), and the value is 0 (invalid) when the process is complete. The recording operation completion information is information (for example, a flag) that is referred to when it is determined whether to update completion position information (described later) described later. In the following description, a storage area capable of storing the recording operation completion information is represented as a variable "cflag". It is assumed that a state before the process is completed is referred to as an “incomplete state”. Further, a state after the completion of the process is referred to as a "completed state". For example, the variable "cflag" represents the log buffer 112 or a specific storage area in the memory 108. The recording operation completion information may be expressed as, for example, a completion control flag. For example, the recording operation completion information indicates the uncompleted state when the process related to the log information associated with the control information including the recording operation completion information is before completion, and indicates the completion state after the completion.

記録操作状態情報は、ログ情報をログバッファ112に記録する処理を実行している状態であるか否かを表す情報である。たとえば、処理している状態は、1であり、処理していない状態は、0である。以降の説明においては、記録操作状態情報を格納可能な記憶領域を変数「inCopy」と表すとする。たとえば、変数「inCopy」は、ログバッファ112、または、メモリ108における特定の記憶領域を表す。尚、記録操作状態情報を、処理中フラグと表してもよい。さらに、以降の説明においては、処理を実行している状態を「処理中状態」と表すとする。処理を実行していない状態を「非処理中状態」と表すとする。   The recording operation state information is information indicating whether or not processing for recording log information in the log buffer 112 is being performed. For example, the processing state is 1 and the non-processing state is 0. In the following description, the storage area capable of storing the recording operation state information is represented as a variable “inCopy”. For example, the variable "inCopy" represents the log buffer 112 or a specific storage area in the memory 108. The recording operation state information may be expressed as an in-process flag. Furthermore, in the following description, the state in which the process is being executed is referred to as the “in-process state”. A state in which the process is not executed is represented as a "non-processing state".

サイズ情報は、ログ情報に関するサイズ(大きさ、長さ、レングス)を表す。以降の説明においては、サイズ情報を格納可能な記憶領域を、変数「length」とも表す。たとえば、変数「length」は、ログバッファ112、または、メモリ108における特定の記憶領域を表す。   The size information indicates the size (size, length, length) of the log information. In the following description, a storage area capable of storing size information is also referred to as a variable “length”. For example, the variable "length" represents the log buffer 112 or a specific storage area in the memory 108.

次に、図4を参照しながら、ログバッファ情報記憶部111が有する構成について説明する。図4は、ログバッファ情報記憶部111が有する構成を示すブロック図である。   Next, the configuration of the log buffer information storage unit 111 will be described with reference to FIG. FIG. 4 is a block diagram showing a configuration of the log buffer information storage unit 111.

ログバッファ情報記憶部111は、可達位置情報と、完了位置情報と、先頭位置情報とを含む。   The log buffer information storage unit 111 includes reachable position information, complete position information, and head position information.

可達位置情報は、ログバッファ112において、ログ情報を記録する処理が開始された状態を表す可達状態を含むログ情報セットのうち、位置が最も後順に位置するログ情報セットを記憶している位置を表す。以降においては、説明の便宜上、ログバッファ情報記憶部111のうち、可達位置情報を記憶可能な記憶領域を変数「ReachableUpTo」と表すとする。   The reachable position information stores, in the log buffer 112, among the log information sets including the reachable state representing the state where the process of recording the log information has been started, the log information set at which the position is located in the rearmost order is stored. Represents a position. Hereinafter, for convenience of explanation, it is assumed that a storage area in the log buffer information storage unit 111 capable of storing reachable position information is represented as a variable “ReachableUpTo”.

完了位置情報は、ログバッファ112において、ログ情報を記録する処理が完了した状態を表す完了状態にあるログ情報セットのうち、位置が最も後順に位置するログ情報セットを記憶している位置を表す。以降においては、説明の便宜上、ログバッファ情報記憶部111のうち、完了位置情報を記憶可能な記憶領域を変数「FinishedUpTo」と表す。   The completion position information indicates the position in the log buffer 112 in which the processing for recording the log information is completed, and among the log information sets in the completion state, the position at which the log information set is located at the rearmost position is stored. . Hereinafter, for convenience of explanation, a storage area in the log buffer information storage unit 111 capable of storing the completed position information is represented as a variable “FinishedUpTo”.

先頭位置情報は、ログバッファ112において、まだ、ログ情報を記録する処理が割り当てられていないログ情報セットを記憶可能な位置を表す。以降においては、説明の便宜上、ログバッファ情報記憶部111のうち、先頭位置情報を記憶可能な記憶領域を変数「TAIL」と表すとする。   The head position information indicates a position where the log buffer 112 can store a log information set that has not yet been assigned a process of recording log information. Hereinafter, for convenience of explanation, it is assumed that a storage area of the log buffer information storage unit 111 which can store the head position information is represented as a variable “TAIL”.

説明の便宜上、本実施形態においては、ログバッファ112は、N個のログ情報セットが格納されているとする。また、ログ情報を一意に識別可能なログ識別子は、ログバッファ112におけるログ情報セットの順番であるとする。たとえば、図2に示す例においては、ログ情報I(ただし、Iは、自然数を表す)、及び、制御情報Iが関連付けされた情報を表す第Iログ情報セットと表す。また、先頭位置情報は、新たなログ情報セットを記憶可能な領域のうち、N個のログ情報セットが格納されている記憶領域に最も近い位置(この例の場合に、(N+1)番目のログ情報セット)を表すとする。   For convenience of explanation, in the present embodiment, it is assumed that the log buffer 112 stores N log information sets. Also, it is assumed that the log identifier that can uniquely identify the log information is the order of the log information set in the log buffer 112. For example, in the example shown in FIG. 2, it is represented as log information I (however, I represents a natural number), and an I-th log information set representing information associated with control information I. Also, the head position information is the position closest to the storage area where N log information sets are stored among the areas capable of storing a new log information set (in the case of this example, the (N + 1) th log Let's say that it represents an information set.

以降の説明において、さらに、(N+1)番目のログ情報セットに含まれている制御情報に関して、変数「rflag」は1(すなわち、可達状態)を記憶しており、変数「cflag」は1(すなわち、未完了状態)を記憶しているとする。さらに、該制御情報に関して、変数「inCopy」は、0(すなわち、非処理中状態)を記憶しており、変数「length」は、0を記憶しているとする。   In the following description, further, regarding control information included in the (N + 1) th log information set, the variable “rflag” stores 1 (that is, the reachable state), and the variable “cflag” is 1 ((1) That is, it is assumed that the uncompleted state is stored. Furthermore, regarding the control information, it is assumed that the variable “inCopy” stores 0 (that is, a non-processing state) and the variable “length” stores 0.

次に、図5及び図6を参照しながら、本実施形態に係るデータベース管理装置101における処理について説明する。図5及び図6は、第1の実施形態に係るデータベース管理装置101における処理の流れを示すフローチャートである。   Next, processing in the database management apparatus 101 according to the present embodiment will be described with reference to FIGS. 5 and 6. 5 and 6 are flowcharts showing the flow of processing in the database management apparatus 101 according to the first embodiment.

トランザクション実行部107は、データベースに対して実行される検索処理等に関するトランザクションを指示する要求に応じて、該トランザクションに関する処理を実行する(ステップS101)。   The transaction execution unit 107 executes a process related to the transaction in response to a request for instructing a transaction related to a search process or the like to be executed on the database (step S101).

ステップS101に示す処理において、たとえば、トランザクション実行部107は、ある書込み操作に関するログ情報が格納されている記憶領域を指し示す位置情報と、該ログ情報のサイズを表すサイズ情報とを先頭位置算出部103に対して出力する(ステップS102)。   In the process shown in step S101, for example, the transaction execution unit 107 starts position information indicating position information indicating a storage area in which log information related to a certain write operation is stored and size information indicating the size of the log information. Output (step S102).

先頭位置算出部103は、トランザクション実行部107が出力したサイズ情報を入力する。先頭位置算出部103は、複数のトランザクション実行部に共有されているログバッファ情報記憶部111のうち、先頭位置情報を記憶している記憶領域(たとえば、変数「TAIL」)に関する処理を優先的に実行することができる排他制御権を取得する(ステップS103)。先頭位置算出部103は、取得した排他制御権を有している期間内に、変数「TAIL」に格納されている先頭位置情報を読み取る(ステップS104)。   The start position calculation unit 103 inputs the size information output by the transaction execution unit 107. The start position calculation unit 103 gives priority to the process related to the storage area (for example, variable “TAIL”) storing the start position information in the log buffer information storage unit 111 shared by the plurality of transaction execution units. The exclusive control right that can be executed is acquired (step S103). The start position calculation unit 103 reads the start position information stored in the variable “TAIL” within a period in which the acquired exclusive control right is held (step S104).

先頭位置算出部103は、入力した該サイズ情報が表すサイズと、読み取った先頭位置情報とを足し算し(ステップS105)、足し算した結果算出された値を、取得した排他制御権を有している期間内に、ログバッファ情報記憶部111における変数「TAIL」に格納する(ステップS106)。先頭位置算出部103は、取得した排他制御権を解放する(ステップS107)。先頭位置算出部103は、ステップS104にて読み取った先頭位置情報を、第1先頭情報としてログ情報保存部104に対して出力する(ステップS108)。   The start position calculation unit 103 adds the size represented by the input size information and the read start position information (step S105), and has the acquired exclusive control right as a value calculated as a result of addition. Within the period, it is stored in the variable “TAIL” in the log buffer information storage unit 111 (step S106). The start position calculation unit 103 releases the acquired exclusive control right (step S107). The start position calculation unit 103 outputs the start position information read in step S104 to the log information storage unit 104 as first start information (step S108).

尚、先頭位置算出部103が取得する情報は、該排他制御権を用いた制御によって、複数のトランザクション実行部において、相互に異なっている。また、先頭位置算出部103が排他制御権を解放することによって、他のトランザクション実行部(たとえば、トランザクション実行部109、または、トランザクション実行部110)における先頭位置算出部は、先頭位置情報を取得することができる。   The information acquired by the start position calculation unit 103 is different among the plurality of transaction execution units under the control using the exclusive control right. In addition, the head position calculation unit in another transaction execution unit (for example, the transaction execution unit 109 or the transaction execution unit 110) acquires head position information by releasing the exclusive control right by the head position calculation unit 103. be able to.

ログ情報保存部104は、先頭位置算出部103が出力した第1先頭情報、トランザクション実行部107が出力したログ情報のサイズ、及び、トランザクション実行部107が出力した位置情報を入力する。ログ情報保存部104は、ログバッファ112のうち、読み取った先頭位置情報(すなわち、(N+1)番目のログ情報セットを格納している位置)を起点とする記憶領域に格納されている制御情報を読み取り、読み取った該制御情報に含まれている可達情報をメモリ108に格納する。   The log information storage unit 104 inputs the first head information output by the head position calculation unit 103, the size of log information output by the transaction execution unit 107, and the position information output by the transaction execution unit 107. The log information storage unit 104 stores the control information stored in the storage area starting from the read head position information in the log buffer 112 (that is, the position where the (N + 1) th log information set is stored). The readability information included in the read and read control information is stored in the memory 108.

ログ情報保存部104は、不可達状態、入力した制御情報に含まれている記録操作完了情報、処理中状態、及び、入力したログ情報のサイズを含む制御情報(以降、「第2制御情報」と表す)を作成する(ステップS111)。ログ情報保存部104は、作成した第2制御情報を、入力した第1先頭情報を起点とする記憶領域に記録する(ステップS112)。   The log information storage unit 104 is control information including the unreachable state, the recording operation completion information included in the input control information, the processing in progress state, and the size of the input log information (hereinafter referred to as “second control information”). Is represented (step S111). The log information storage unit 104 records the created second control information in the storage area starting from the input first head information (step S112).

ログ情報保存部104は、メモリ108に格納した可達情報が可達状態である場合に(ステップS113にてYES)、可達位置情報を更新する操作(後述)を可達位置情報更新部105に指示する(ステップS114)。ログ情報保存部104は、メモリ108に格納した可達情報が可達状態でない場合に(ステップS113にてNO)、可達位置情報を更新する操作を可達位置情報更新部105に指示しない。   When the deliverable information stored in the memory 108 is in the deliverable state (YES in step S113), the log information storage unit 104 performs an operation (described later) for updating the deliverable position information to the deliverable position information update unit 105. (Step S114). When the reachable information stored in the memory 108 is not in the reachable state (NO in step S113), the log information storage unit 104 does not instruct the reachable position information update unit 105 to update the reachable position information.

ログ情報保存部104は、ログバッファ112のうち、ステップS111に先立って入力した第1先頭情報を起点とする記憶領域に、ステップS111に先立って入力した位置情報を起点とする記憶領域に格納されているログ情報を記録する(ステップS115)。ログ情報保存部104は、読み取った第1先頭情報を起点とする記憶領域に格納されている制御情報を読み取り、読み取った該制御情報に含まれている記録操作完了情報をメモリ108に格納する(ステップS116)。ログ情報保存部104は、ステップS116にて読み取った制御情報における可達情報、完了状態、非処理中状態、及び、該制御情報におけるログ情報のサイズを含む制御情報(以降、「第3制御情報」と表す)を作成する(ステップS117)。   The log information storage unit 104 is stored in the storage area starting from the first head information input prior to step S111 in the log buffer 112 and in the storage area starting from position information input prior to step S111. Log information is recorded (step S115). The log information storage unit 104 reads the control information stored in the storage area starting from the read first head information, and stores the recording operation completion information included in the read control information in the memory 108 (see FIG. Step S116). The log information storage unit 104 controls the control information including the reachable information in the control information read in step S116, the completed state, the non-processing state, and the size of the log information in the control information (hereinafter referred to as “third control information Is represented (step S117).

ログ情報保存部104は、ステップS116にてメモリ108に格納した記録操作完了情報が未完了状態である場合に(ステップS118にてYES)、完了位置情報を更新する処理(後述)を完了位置情報更新部106に指示する(ステップS119)。ログ情報保存部104は、ステップS116にてメモリ108に格納した記録操作完了情報が未完了状態でない場合に(ステップS118にてNO)、完了位置情報を更新する処理を完了位置情報更新部106に指示しない。   When the recording operation completion information stored in the memory 108 in step S116 is in the uncompleted state (YES in step S118), the log information storage unit 104 completes the processing (described later) of updating the completion position information. It instructs the updating unit 106 (step S119). When the recording operation completion information stored in the memory 108 in step S116 is not in the uncompleted state (NO in step S118), the log information storage unit 104 causes the completion position information updating unit 106 to update the completion position information. I do not instruct.

ログ情報保存部104は、入力した第1先頭情報及び入力したサイズを加えた値(すなわち、第2先頭情報)と、ログバッファ情報記憶部111に格納されている可達位置情報とを比較する。ログ情報保存部104は、可達位置情報が、第2先頭情報以上である場合に(ステップS120にてYES)、ログ情報を記録する操作を終了する。これに対して、ログ情報保存部104は、可達位置情報が、第2先頭情報未満である場合に(ステップS120にてNO)、可達位置情報が第2先頭情報以上になるまで待つ待ち合わせ処理を実行する(ステップS121)。   The log information storage unit 104 compares the value obtained by adding the input first head information and the input size (that is, the second head information) with the reachable position information stored in the log buffer information storage unit 111. . If the reachable position information is equal to or greater than the second head information (YES in step S120), the log information storage unit 104 ends the operation of recording the log information. On the other hand, when the reachable position information is less than the second head information (NO in step S120), the log information storage unit 104 waits until the reachable position information becomes equal to or more than the second head information. A process is performed (step S121).

次に、複数のプロセッサを有する情報処理装置の場合の例を参照しながら本実施形態に係る処理について説明する。   Next, processing according to the present embodiment will be described with reference to an example of an information processing apparatus having a plurality of processors.

説明の便宜上、制御情報は、マルチプロセッサ命令によるアトミック操作にて扱うことができるデータを表すとする。また、マルチプロセッサ命令によるアトミック操作は、たとえば、上述した「cmpxchg」命令を用いて実現することができる。この例においては、排他制御権を取得する処理を「LockAcquire」と表し、取得した排他制御権を解放する処理を「LockRelease」と表すとする。   For convenience of explanation, control information represents data that can be handled by atomic operations by multiprocessor instructions. Also, atomic operations by multiprocessor instructions can be implemented, for example, using the "cmpxchg" instruction described above. In this example, the process of acquiring the exclusive control right is represented as "LockAcquire", and the process of releasing the acquired exclusive control right is represented as "LockRelease".

排他制御権を取得する処理、及び、排他制御権を解放する処理は、マルチプロセッサ命令を介したアトミック操作を用いて実装されることが多い。尚、排他制御権を取得する処理、及び、取得した排他制御権を解放する処理を実現する方法には、様々な方法がある。ここでは、排他制御権を実現する方法に関する詳細な説明を省略する。   The process of acquiring the exclusive control right and the process of releasing the exclusive control right are often implemented using atomic operations via multiprocessor instructions. There are various methods for realizing the process of acquiring the exclusive control right and the process of releasing the acquired exclusive control right. Here, the detailed description of the method for realizing the exclusive control right is omitted.

さらに、データベース管理装置101は、N番目のログ情報セットまでログバッファ112に記録する処理を完了し、その後、新たなトランザクションを処理していない場合の例を参照しながら、本実施形態に係るデータベース管理装置101における処理について説明する。また、該例において、変数「ReachableUpTo」、変数「FinishedUpTo」、及び、変数「TAIL」は、まず、(N+1)番目のログ情報セットが記録される記憶領域を表す位置を記憶しているとする。   Furthermore, the database management apparatus 101 completes the process of recording in the log buffer 112 up to the N-th log information set, and then refers to the database according to the present embodiment with reference to an example in the case where a new transaction is not processed. The process in the management apparatus 101 will be described. Further, in this example, it is assumed that the variable “ReachableUpTo”, the variable “FinishedUpTo”, and the variable “TAIL” first store a position representing a storage area where the (N + 1) th log information set is recorded. .

また、該例においては、図7に示すように、(N+1)番目のログ情報セットに含まれている制御情報に関して、可達情報を記録可能な変数「rflag」は、可達状態(すなわち、1)を記録しているとする。図7は、制御情報の一例を概念的に表す図である。記録操作完了情報を記録可能な変数「cflag」は、未完了状態(すなわち、1)を記録しているとする。該制御情報に関して、記録操作状態情報を記録可能な変数「inCopy」は、非処理中状態(すなわち、0)を記録しているとする。サイズ情報を記録可能な変数「length」は、0を記録しているとする。すなわち、(N+1)番目のログ情報セットに含まれている制御情報において、可達情報は可達状態であり、記録操作完了情報は未完了状態であるとする。また、該(N+1)番目のログ情報セットに含まれている制御情報において、記録操作状態情報は非処理中状態であり、サイズ情報は0であるとする。   Also, in the example, as shown in FIG. 7, regarding the control information included in the (N + 1) th log information set, the variable “rflag” capable of recording the reachable information is in the reachable state (ie, Suppose that 1) is recorded. FIG. 7 is a diagram conceptually illustrating an example of control information. It is assumed that the variable “cflag” capable of recording the recording operation completion information records the uncompleted state (ie, 1). Regarding the control information, it is assumed that the variable “inCopy” capable of recording the recording operation state information records the non-processing state (ie, 0). It is assumed that the variable “length” capable of recording size information records 0. That is, in the control information included in the (N + 1) th log information set, the reachable information is in the reachable state, and the recording operation completion information is in the uncompleted state. Further, in the control information included in the (N + 1) th log information set, the recording operation state information is in the non-processing state, and the size information is 0.

各プロセスは、共有メモリ(図1に不図示)における領域に割り当てられているとする。すなわち、該共有メモリは、第I(ただし、1≦I≦n)プロセスに関する記憶領域を含む。第Iプロセスは、トランザクション実行部107によるトランザクション処理の実行に伴って発生するログ情報を、第Iプロセスに割り当てられた記憶領域におけるログ情報領域に格納する。   Each process is assumed to be allocated to an area in a shared memory (not shown in FIG. 1). That is, the shared memory includes a storage area for the I-th (where 1 ≦ I ≦ n) process. The process I stores log information generated along with execution of transaction processing by the transaction execution unit 107 in the log information area in the storage area allocated to the process I.

図8を参照しながら、データベース管理装置101における処理について説明する。図8は、データベース管理装置101における処理の流れを示すフローチャートを表す。   The process in the database management apparatus 101 will be described with reference to FIG. FIG. 8 shows a flowchart showing the flow of processing in the database management apparatus 101.

データベース管理装置101における処理は、大別して、ログ情報セットを記録する記憶領域を示す第1先頭情報を算出する処理(ステップS125)と、算出した第1先頭情報が指し示す領域にログ情報セットを記録する処理(ステップS126)とを含む。   The process in the database management apparatus 101 is roughly divided into a process of calculating first head information indicating a storage area for recording a log information set (step S125), and a log information set is recorded in an area indicated by the calculated first head information. And (step S126).

ステップS125及びステップS126に示す処理について、処理の概要を説明する。   An outline of the process will be described for the processes shown in step S125 and step S126.

ステップS125:
先頭位置算出部103は、たとえば、トランザクション実行部107が出力した該サイズ情報を入力する。先頭位置算出部103は、ログバッファ情報記憶部111における先頭位置情報を読み取り、読み取った先頭位置情報(すなわち、上記の第1先頭情報)をログ情報保存部104に対して出力する。先頭位置算出部103が実行する処理は、たとえば、記憶領域を確保可能な「reserve」関数を用いて実現することができる。「reserve」関数は、たとえば、ログ情報のサイズを表す情報を入力とし、入力されたサイズ分の記憶領域を確保する関数を表す。
Step S125:
The start position calculation unit 103 receives, for example, the size information output from the transaction execution unit 107. The head position calculation unit 103 reads the head position information in the log buffer information storage unit 111, and outputs the read head position information (that is, the first head information described above) to the log information storage unit 104. The process performed by the start position calculation unit 103 can be realized, for example, using a “reserve” function that can reserve a storage area. The "reserve" function represents, for example, a function that receives information indicating the size of log information and reserves a storage area for the input size.

ステップS126:
ログ情報保存部104は、先頭位置算出部103が出力した第1先頭情報、トランザクション実行部107が出力したログ情報のサイズ、及び、トランザクション実行部107が出力した位置情報を入力する。ログ情報保存部104は、該位置情報に格納されているログ情報に関するログ情報セットを、ログバッファ112において入力した第1先頭情報が表す記憶領域に記録する。
Step S126:
The log information storage unit 104 inputs the first head information output by the head position calculation unit 103, the size of log information output by the transaction execution unit 107, and the position information output by the transaction execution unit 107. The log information storage unit 104 records the log information set related to the log information stored in the position information in the storage area represented by the first head information input in the log buffer 112.

ログ情報保存部104が実行する処理は、たとえば、データを記憶領域に記憶可能なcopy関数を用いて実現することができる。ログ情報保存部104は、たとえば、copy関数に従い処理することによって、以下の入力1乃至入力3に示す3つ情報を入力する。   The processing executed by the log information storage unit 104 can be realized, for example, using a copy function capable of storing data in a storage area. The log information storage unit 104 inputs three pieces of information shown in the following input 1 to input 3 by processing according to the copy function, for example.

入力1:記憶領域に記録するログ情報が格納されているプロセス固有メモリにおける位置(第1位置)を示す情報、
入力2:該ログ情報のサイズを示すサイズ情報、
入力3:ログ領域確保操作等により確保された記憶領域の位置(第2位置)を示す情報。
Input 1: Information indicating a position (first position) in the process-specific memory where log information to be recorded in the storage area is stored,
Input 2: Size information indicating the size of the log information
Input 3: Information indicating the position (second position) of the storage area secured by the log area securing operation or the like.

ログ情報保存部104は、たとえば、copy関数に従い処理することによって、第1位置を起点とする記憶領域に格納されているログ情報を、受信したサイズ分、第2位置を起点とする記憶領域に記録する。   The log information storage unit 104 processes the log information stored in the storage area starting from the first position into the storage area starting from the second position, for example, by processing according to the copy function. Record.

次に、ステップS125及びステップS126における処理を詳細に説明する前に、メモリ108等における記憶領域を表す変数について説明する。   Next, before describing the processes in steps S125 and S126 in detail, variables representing a storage area in the memory 108 or the like will be described.

説明の便宜上、当該各トランザクション実行部において、変数「myLSN」、変数「myLog」、変数「myLength」、変数「nextLSN」、変数「myTurn」、変数「oldv」、及び、変数「newv」は、自トランザクション実行部内のメモリにおける特定の記憶領域を表すとする。また、bufferは、ログバッファ112を表すとする。さらに、buffer[myLSN]は、ログバッファ112のうち、変数「myLSN」に格納されている値によって指示される記憶領域を表すとする。   For convenience of explanation, in each relevant transaction execution unit, the variables "myLSN", "myLog", "myLength", "nextLSN", "myTurn", "oldv", and "newv" It is assumed that a specific storage area in the memory in the transaction execution unit is represented. Also, buffer represents the log buffer 112. Furthermore, buffer [myLSN] represents a storage area of the log buffer 112 indicated by the value stored in the variable “myLSN”.

制御情報に関して、可達情報は、たとえば、ログバッファ112における記憶領域を表す変数「rflag」に格納されているとする。記録操作完了情報は、たとえば、ログバッファ112における記憶領域を表す変数「cflag」に格納されているとする。記録操作状態情報は、たとえば、ログバッファ112における記憶領域を表す変数「inCopy」に格納されているとする。サイズ情報は、たとえば、ログバッファ112における記憶領域を表す変数「length」に格納されているとする。   Regarding control information, assume that reachability information is stored, for example, in a variable "rflag" that represents a storage area in the log buffer 112. It is assumed that the recording operation completion information is stored, for example, in a variable "cflag" that represents a storage area in the log buffer 112. For example, it is assumed that the recording operation state information is stored in a variable “inCopy” that represents a storage area in the log buffer 112. The size information is assumed to be stored, for example, in a variable "length" that represents a storage area in the log buffer 112.

可達位置情報は、ログバッファ情報記憶部111における記憶領域を表す変数「ReachableUpTo」に格納されているとする。完了位置情報は、ログバッファ情報記憶部111における記憶領域を表す変数「FinishedUpTo」に格納されているとする。先頭位置情報は、ログバッファ情報記憶部111における記憶領域を表す変数「TAIL」に格納されているとする。   It is assumed that the reachable position information is stored in a variable “ReachableUpTo” that represents a storage area in the log buffer information storage unit 111. It is assumed that the completed position information is stored in a variable “FinishedUpTo” representing a storage area in the log buffer information storage unit 111. It is assumed that the head position information is stored in a variable “TAIL” that represents a storage area in the log buffer information storage unit 111.

図9を参照しながら、先頭位置算出部103が実行するステップS125(図8)に示した処理について、さらに、詳細に説明する。図9は、第1の実施形態に係る先頭位置算出部103における処理を表すフローチャートである。   The process shown in step S125 (FIG. 8) performed by the start position calculation unit 103 will be described in more detail with reference to FIG. FIG. 9 is a flowchart showing processing in the head position calculation unit 103 according to the first embodiment.

先頭位置算出部103は、ログバッファ情報記憶部111のうち、先頭位置情報が格納されている変数「TAIL」に関する排他制御権を取得する(ステップS131)。先頭位置算出部103は、取得した排他制御権を有している期間内に、該変数「TAIL」に格納されている先頭位置情報を読み取る(ステップS132)。先頭位置算出部103は、読み取った先頭位置情報を、変数「myLSN」に格納する(ステップS133)。先頭位置算出部103は、読み取った先頭位置情報に、入力したサイズ情報に含まれるサイズを足し算し(ステップS134)、算出した値を、取得した排他制御権を有している期間内に、ログバッファ情報記憶部111における変数「TAIL」に格納する(ステップS135)。先頭位置算出部103は、取得した排他制御権を解放し(ステップS136)、変数「myLSN」に格納した値(すなわち、第1先頭情報)を、ログ情報保存部104に対して出力する(ステップS137)。   The start position calculation unit 103 acquires the exclusive control right regarding the variable “TAIL” in which the start position information is stored in the log buffer information storage unit 111 (step S131). The start position calculation unit 103 reads the start position information stored in the variable “TAIL” within a period in which the acquired exclusive control right is held (step S132). The start position calculation unit 103 stores the read start position information in the variable “myLSN” (step S133). The start position calculation unit 103 adds the size included in the input size information to the read start position information (step S134), and the calculated value is stored in the log during the period in which the acquired exclusive control right is held. The variable “TAIL” in the buffer information storage unit 111 is stored (step S135). The start position calculation unit 103 releases the acquired exclusive control right (step S136), and outputs the value stored in the variable “myLSN” (that is, the first start information) to the log information storage unit 104 (step S137).

すなわち、ステップS131乃至ステップS137に示す処理によって、先頭位置算出部103は、ログバッファ112において、ログ情報が割り当てられていない記憶領域を指し示す第1先頭情報を出力し、さらに、該先頭位置情報に関する記憶領域を更新する。尚、ステップS131乃至ステップS137に示す処理において、先頭位置算出部103は、たとえば、「reserve」関数にて指示された処理と同様の処理を実行することにより先頭位置情報を読み取る。先頭位置算出部103は、たとえば、関数「Lock_Acquire」にて指示された処理と同様の処理を実行することにより排他制御権を取得する。   That is, by the processing shown in steps S131 to S137, the head position calculation unit 103 outputs the first head information indicating the storage area to which the log information is not allocated in the log buffer 112, and further relates to the head position information. Update the storage area. In the processes shown in steps S131 to S137, for example, the start position calculation unit 103 reads the start position information by executing the same process as the process instructed by the "reserve" function. The start position calculation unit 103 acquires the exclusive control right, for example, by executing the same process as the process instructed by the function “Lock_Acquire”.

図10を参照しながら、ステップS126(図8)にてログ情報保存部104が実行する処理について、さらに詳細に説明する。図10は、第1の実施形態に係るログ処理部102における処理を表すフローチャート(1/3)である。   The process executed by the log information storage unit 104 in step S126 (FIG. 8) will be described in more detail with reference to FIG. FIG. 10 is a flowchart (1/3) showing the process in the log processing unit 102 according to the first embodiment.

ログ情報保存部104は、トランザクション実行部107が出力した位置情報と、トランザクション実行部107が出力したサイズ情報と、先頭位置算出部103が出力した第1先頭情報とを入力する。より具体的に、ログ情報保存部104は、入力した位置情報を変数「myLog」に格納し、入力したサイズ情報を、変数「myLength」に格納し、入力した第1先頭情報を、変数「myLSN」に格納する。   The log information storage unit 104 inputs the position information output by the transaction execution unit 107, the size information output by the transaction execution unit 107, and the first head information output by the head position calculation unit 103. More specifically, the log information storage unit 104 stores the input position information in the variable "myLog", stores the input size information in the variable "myLength", and inputs the first head information input, the variable "myLSN" Store in

ログ情報保存部104は、入力した第1先頭情報と、入力したサイズ情報とを足し算することにより、次に、ログ情報セットを記録可能な先頭位置情報(すなわち、「第2先頭情報」)を算出する。より具体的に、ログ情報保存部104は、該サイズ情報を格納している変数「myLength」に格納されている値と、該第1先頭情報を格納している変数「myLSN」に格納されている値を足し算(ステップS141)し、算出された結果(すなわち、「第2先頭情報」)を変数「nextLSN」に格納する(ステップS142)。   The log information storage unit 104 adds the input first head information and the input size information, and then adds head position information (that is, “second head information”) to which the log information set can be recorded. calculate. More specifically, the log information storage unit 104 stores the value stored in the variable "myLength" storing the size information and the variable "myLSN" storing the first head information. Are added (step S141), and the calculated result (that is, "the second head information") is stored in the variable "nextLSN" (step S142).

次に、ログ情報保存部104は、ログバッファ112において、入力した第1先頭情報が表す記憶領域に記録されているログ情報セット、及び、該ログ情報セットに含まれている制御情報(以降、「第1制御情報」と表す)を読み取る。より具体的に、ログ情報保存部104は、記憶領域buffer[myLSN]に格納されているログ情報セットを読み取り(ステップS143)、読み取ったログ情報セットのうち、第1制御情報を変数「oldv」に格納する(ステップS144)。   Next, the log information storage unit 104 sets the log information set recorded in the storage area represented by the input first head information in the log buffer 112, and the control information included in the log information set (hereinafter referred to as “the log information set”). Read “1st control information”. More specifically, the log information storage unit 104 reads the log information set stored in the storage area buffer [myLSN] (step S143), and among the read log information set, sets the first control information to the variable “oldv”. (Step S144).

次に、ログ情報保存部104は、読み取った第1制御情報に含まれている可達情報を読み取り、読み取った可達情報をメモリ108に格納する。より具体的に、ログ情報保存部104は、変数「oldv」に格納されている第1制御情報のうち、変数「rflag」に格納されている可達情報を読み取り、読み取った可達情報を変数「myTurn」に格納する(ステップS145)。   Next, the log information storage unit 104 reads the reachable information included in the read first control information, and stores the read reachability information in the memory 108. More specifically, the log information storage unit 104 reads the reachable information stored in the variable "rflag" among the first control information stored in the variable "oldv", and reads the read deliverable information as a variable. It stores in "myTurn" (step S145).

次に、ログ情報保存部104は、不可達状態、入力した制御情報に含まれている記録操作完了情報、処理中状態、及び、入力したログ情報のサイズ情報が表すサイズを含む制御情報(以降、「第2制御情報」と表す)を作成する。より具体的に、ログ情報保存部104は、変数「oldv」に格納されている第1制御情報を、変数「newv」に格納する(ステップS146)。ログ情報保存部104は、変数「newv」に含まれている変数「length」に、変数「myLength」におけるサイズ情報を格納する(ステップS147)。さらに、ログ情報保存部104は、変数「newv」に含まれている変数「inCopy」に、処理中状態(たとえば、1)を格納する。さらに、ログ情報保存部104は、変数「newv」に含まれている変数「rflag」に、不可達状態(たとえば、0)を格納する(ステップS148)。   Next, the log information storage unit 104 includes control information including the unreachable state, the recording operation completion information included in the input control information, the processing in progress state, and the size represented by the size information of the input log information , “2nd control information” is created. More specifically, the log information storage unit 104 stores the first control information stored in the variable "oldv" in the variable "newv" (step S146). The log information storage unit 104 stores the size information of the variable "myLength" in the variable "length" included in the variable "newv" (step S147). Furthermore, the log information storage unit 104 stores the in-processing state (for example, 1) in the variable “inCopy” included in the variable “newv”. Furthermore, the log information storage unit 104 stores the unreachable state (for example, 0) in the variable "rflag" included in the variable "newv" (step S148).

次に、ログ情報保存部104は、「cas」命令にて実行される処理と同様の処理を実行することにより、入力した第1先頭情報が表す記憶領域に、第2制御情報を格納する。   Next, the log information storage unit 104 stores the second control information in the storage area represented by the input first head information by executing the same process as the process executed by the “cas” instruction.

第2制御情報を格納する処理について詳細に説明する。ログ情報保存部104は、入力した第1先頭情報が表す記憶領域に記録されているログ情報セットにおける制御情報(以降、「第3制御情報」と表す)を読み取り、読み取った第3制御情報と、第1制御情報とが一致するか否かを判定する。   The process of storing the second control information will be described in detail. The log information storage unit 104 reads control information (hereinafter referred to as “third control information”) in the log information set recorded in the storage area represented by the input first head information, and the read third control information and , It is determined whether or not the first control information matches.

第1制御情報と、第3制御情報とが一致する場合に、ログ情報保存部104は、入力した第1先頭情報が表す記憶領域に、第2制御情報を格納する。すなわち、この場合に、ログ情報保存部104は、不可達状態、入力した制御情報に含まれている記録操作完了情報、処理中状態、及び、入力したログ情報のサイズ情報が表すサイズを含む制御情報を、該ログ情報セットが格納されている記憶領域に格納する。   When the first control information and the third control information match, the log information storage unit 104 stores the second control information in the storage area represented by the input first head information. That is, in this case, the log information storage unit 104 performs control including the unreachable state, the recording operation completion information included in the input control information, the processing in progress state, and the size represented by the size information of the input log information. The information is stored in a storage area in which the log information set is stored.

第3制御情報と、第1制御情報とが一致しない場合に、ログ情報保存部104は、読み取った第3制御情報を第1制御情報に設定する。その後、ログ情報保存部104は、上述した読み取った第1制御情報に含まれている可達情報を読み取る処理(ステップS145に相当)、乃至、第3制御情報と第1制御情報とが一致するか否かを判定する処理(ステップS149(後述)に相当)を実行する。すなわち、ログ情報保存部104は、入力した第1先頭情報が表す記憶領域に、作成した第2制御情報を格納するまで、ステップS145乃至ステップS150(後述)に示す処理を実行する。   If the third control information does not match the first control information, the log information storage unit 104 sets the read third control information as the first control information. Thereafter, the log information storage unit 104 reads out the reachable information included in the read first control information (corresponding to step S145), or the third control information matches the first control information. A process (corresponding to step S149 (described later)) is executed to determine whether or not this is the case. That is, the log information storage unit 104 executes the processing shown in step S145 to step S150 (described later) until the created second control information is stored in the storage area represented by the input first head information.

上述したような「cas」命令にて実行される処理と同様の処理が、アトミックに実行される。より具体的に、「cas」命令にて実行される処理と同様の処理を実行する処理について説明する。   A process similar to the process executed by the “cas” instruction as described above is performed atomically. More specifically, a process of executing the same process as the process executed by the “cas” instruction will be described.

ログ情報保存部104は、変数「oldv」に格納されている第1制御情報と、記憶領域buffer[myLSN]に格納されている制御情報とが一致しているか否かを判定する(ステップS149)。   The log information storage unit 104 determines whether the first control information stored in the variable “oldv” matches the control information stored in the storage area buffer [myLSN] (step S149). .

ログ情報保存部104は、変数「oldv」に格納されている第1制御情報と、記憶領域buffer[myLSN]に格納されている第3制御情報とが一致している場合に(ステップS149にてYES)、変数「newv」に格納されている第2制御情報を、記憶領域buffer[myLSN]に記録する(ステップS151)。   When the first control information stored in the variable “oldv” matches the third control information stored in the storage area buffer [myLSN] (in step S149) YES), the second control information stored in the variable "newv" is recorded in the storage area buffer [myLSN] (step S151).

ログ情報保存部104は、記憶領域buffer[myLSN]に格納されている第3制御情報が、変数「oldv」に格納されている第1制御情報と一致していない場合に(ステップS149にてNO)、記憶領域buffer[myLSN]に記録されている第3制御情報を変数「oldv」に格納する(ステップS150)。その後、ログ情報保存部104は、ステップS145乃至ステップS149に示す処理を実行する。   If the third control information stored in storage area buffer [myLSN] does not match the first control information stored in variable “oldv” (NO in step S 149) And the third control information recorded in the storage area buffer [myLSN] is stored in the variable “oldv” (step S150). Thereafter, the log information storage unit 104 executes the processes shown in steps S145 to S149.

すなわち、ステップS149及びステップS150に示す処理が、「cas」命令にて実行される処理と同様にアトミックに実行される。   That is, the processes shown in step S149 and step S150 are performed atomically in the same manner as the process executed by the "cas" instruction.

次に、ログ情報保存部104は、ステップS145にて読み取った可達情報が可達状態である場合に、ログバッファ情報記憶部111に格納されている可達位置情報を更新する更新操作(後述)を可達位置情報更新部105に指示する。ログ情報保存部104は、たとえば、第2先頭情報を、可達位置情報更新部105に対して出力することにより、更新操作を可達位置情報更新部105に指示する。ログ情報保存部104は、ステップS145にて読み取った可達情報が可達状態でない場合に、ログバッファ情報記憶部111格納されている可達位置情報を更新する更新操作を可達位置情報更新部105に指示しない。   Next, when the reachable information read in step S145 is in the reachable state, the log information storage unit 104 updates the reachable position information stored in the log buffer information storage unit 111 (described later). ) To the delivery location information updating unit 105. The log information storage unit 104 instructs, for example, the reachable position information update unit 105 to perform an update operation by outputting the second head information to the reachable position information update unit 105. The log information storage unit 104 updates the reachable position information stored in the log buffer information storage unit 111 when the reachable information read in step S145 is not in the reachable state. Do not instruct 105.

より具体的に、ログ情報保存部104は、変数「myTurn」に格納されている可達情報を読み取り、読み取った可達情報が、可達状態であるか否かを判定する(ステップS152)。該可達情報が可達状態である場合に(ステップS152にてYES)、ログ情報保存部104は、変数「nextLSN」に格納されている第2先頭情報を可達位置情報更新部105に対して出力することにより、可達位置情報に関する更新操作を可達位置情報更新部105に指示する(ステップS153)。すなわち、ログ情報保存部104は、変数「ReachableUpTo」に格納されている可達位置情報を更新する処理を、可達位置情報更新部105に指示する。これに対して、該可達情報が可達状態でない場合に(ステップS152にてNO)、ログ情報保存部104は、可達位置情報に関する更新操作を、可達位置情報更新部105に指示しない。   More specifically, the log information storage unit 104 reads the reachable information stored in the variable "myTurn", and determines whether the read reachable information is in the reachable state (step S152). When the reachable information is in the reachable state (YES in step S152), the log information storage unit 104 sends the second head information stored in the variable “nextLSN” to the reachable position information update unit 105. By outputting the information, the delivery position information updating unit 105 is instructed to perform an update operation regarding the delivery position information (step S153). That is, the log information storage unit 104 instructs the reachable position information update unit 105 to update the reachable position information stored in the variable “ReachableUpTo”. On the other hand, when the reachable information is not in the reachable state (NO in step S152), the log information storage unit 104 does not instruct the reachable position information update unit 105 to perform an update operation regarding the reachable position information. .

次に、ログ情報保存部104は、ログバッファ112のうち、入力した第1先頭情報を起点とする記憶領域に、入力した位置情報を起点とする記憶領域に格納されているログ情報を記録する。より具体的に、ログ情報保存部104は、変数「myLog」に格納されている位置情報が表す記憶領域に格納されているログ情報を、記憶領域buffer[myLSN]に、変数「myLength」に格納されている値のサイズ分だけ記録する(ステップS154)。   Next, the log information storage unit 104 records the log information stored in the storage area starting from the input position information in the storage area starting from the input first head information in the log buffer 112. . More specifically, the log information storage unit 104 stores the log information stored in the storage area represented by the position information stored in the variable "myLog" in the storage area buffer [myLSN] in the variable "myLength". Only the size of the value being recorded is recorded (step S154).

図11を参照しながら、ステップS154に後続する処理について詳細に説明する。図11は、第1の実施形態に係るログ処理部102における処理の流れを示すフローチャート(2/3)である。   The process following step S154 will be described in detail with reference to FIG. FIG. 11 is a flowchart (2/3) showing the flow of processing in the log processing unit 102 according to the first embodiment.

ログバッファ情報記憶部111は、ログバッファ112において、入力した第1先頭情報が表す記憶領域に記録されているログ情報セット、及び、該ログ情報セットに含まれている制御情報(以降、「第4制御情報」と表す)を読み取る。より具体的に、ログ情報保存部104は、変数「myLSN」に格納されている第1先頭情報が指し示す記憶領域buffer[myLSN]からログ情報セットを読み取り、読み取ったログ情報セットにおける第4制御情報を変数「oldv」に格納する(ステップS160)。   In the log buffer 112, the log buffer information storage unit 111 stores a log information set recorded in a storage area represented by the input first head information, and control information included in the log information set (hereinafter referred to as “ 4) Read "Control information". More specifically, the log information storage unit 104 reads the log information set from the storage area buffer [myLSN] indicated by the first head information stored in the variable “myLSN”, and the fourth control information in the read log information set Are stored in the variable "oldv" (step S160).

次に、ログバッファ情報記憶部111は、読み取った第4制御情報に格納されている記録操作完了情報を読み取る。より具体的に、ログ情報保存部104は、変数「oldv」に含まれている変数「cflag」から記録操作完了情報を読み取り(ステップS161)、読み取った記録操作完了情報を、たとえば、変数「myTurn」に格納する(ステップS162)。   Next, the log buffer information storage unit 111 reads the recording operation completion information stored in the read fourth control information. More specifically, the log information storage unit 104 reads the recording operation completion information from the variable "cflag" included in the variable "oldv" (step S161), and, for example, the variable "myTurn" (Step S162).

次に、ログ情報保存部104は、不可達状態、完了状態、非処理中状態、及び、第3制御情報に格納されているサイズ情報を含む制御情報(以降、「第5制御情報」と表す)を作成する。より具体的に、ログ情報保存部104は、変数「oldv」に格納されている制御情報を、変数「newv」に格納する(ステップS163)。ログ情報保存部104は、変数「newv」における変数「inCopy」に、処理中でないことを表す非処理中状態(たとえば、0)を格納し(ステップS164)、変数「newv」における変数「cflag」に、完了したことを表す完了状態(たとえば、0)を格納する(ステップS165)。さらに、ログ情報保存部104は、変数「newv」における変数「rflag」に、可達状態でないことを表す不可達状態(たとえば、0)を格納する(ステップS166)。   Next, the log information storage unit 104 represents control information including the unreachable state, the complete state, the non-processing state, and the size information stored in the third control information (hereinafter referred to as “fifth control information”). Create). More specifically, the log information storage unit 104 stores the control information stored in the variable "oldv" in the variable "newv" (step S163). The log information storage unit 104 stores the non-processing state (for example, 0) representing not being processed in the variable “inCopy” in the variable “newv” (step S164), and the variable “cflag” in the variable “newv” Stores a completion status (for example, 0) indicating completion (step S165). Furthermore, the log information storage unit 104 stores the unreachable state (for example, 0) indicating that the state is not the reachable state in the variable “rflag” of the variable “newv” (step S166).

次に、ログ情報保存部104は、「cas」命令にて実行される処理と同様の処理を実行することにより、入力した第1先頭情報が表す記憶領域に、第5制御情報を記録する。   Next, the log information storage unit 104 records the fifth control information in the storage area represented by the input first head information by executing the same process as the process executed by the “cas” instruction.

第5制御情報を記録する処理について詳細に説明する。ログ情報保存部104は、入力した第1先頭情報が表す記憶領域に記録されているログ情報セットにおける制御情報(以降、「第6制御情報」と表す)を読み取り、読み取った第6制御情報と、第4制御情報とが一致するか否かを判定する。   The process of recording the fifth control information will be described in detail. The log information storage unit 104 reads control information (hereinafter referred to as “sixth control information”) in the log information set recorded in the storage area represented by the input first head information, and the read sixth control information , It is determined whether the fourth control information matches.

第6制御情報と、第4制御情報とが一致する場合に、ログ情報保存部104は、入力した第1先頭情報が表す記憶領域に、第5制御情報を記録する。すなわち、この場合に、ログ情報保存部104は、可達状態でないことを表す情報、完了状態、記録操作中でないことを表す情報、及び、入力したログ情報のサイズ情報が表すサイズを含む第5制御情報を、該ログ情報セットが格納されている記憶領域に記録する。   When the sixth control information matches the fourth control information, the log information storage unit 104 records fifth control information in the storage area represented by the input first head information. That is, in this case, the log information storage unit 104 includes the fifth information including the information indicating that it is not in the reachable state, the completion state, the information indicating that the recording operation is not in progress, and the size indicated by the size information of the input log information. Control information is recorded in a storage area in which the log information set is stored.

第6制御情報と、第4制御情報とが一致しない場合に、ログ情報保存部104は、読み取った第6制御情報を第4制御情報として設定し、その後、記録操作完了情報を読み取る処理、乃至、第6制御情報と第4制御情報とを比較する処理を実行する。すなわち、ログ情報保存部104は、入力した第1先頭情報が表す記憶領域に、作成した制御情報を記録するまで該処理を繰り返す。   If the sixth control information does not match the fourth control information, the log information storage unit 104 sets the read sixth control information as the fourth control information, and then reads the recording operation completion information, or , And the process of comparing the sixth control information with the fourth control information. That is, the log information storage unit 104 repeats the process until the created control information is recorded in the storage area represented by the input first head information.

ログ情報保存部104は、上述したような「cas」命令にて実行される処理と同様の処理を、アトミックに実行する。   The log information storage unit 104 atomically executes the same process as the process executed by the “cas” instruction as described above.

より具体的に、「cas」命令にて実行される処理と同様の処理を実行する処理について説明する。ログ情報保存部104は、変数「oldv」に格納されている第4制御情報が、記憶領域buffer[myLSN]に格納されている第6制御情報と一致するか否かを判定する(ステップS167)。ログ情報保存部104は、記憶領域buffer[myLSN]に格納されている第6制御情報が、変数「oldv」に格納されている第4制御情報と一致する場合に(ステップS167にてYES)、変数「newv」に格納されている第5制御情報を、記憶領域buffer[myLSN]に記録する(ステップS169)。   More specifically, a process of executing the same process as the process executed by the “cas” instruction will be described. The log information storage unit 104 determines whether the fourth control information stored in the variable “oldv” matches the sixth control information stored in the storage area buffer [myLSN] (step S167). . If the sixth control information stored in the storage area buffer [myLSN] matches the fourth control information stored in the variable “oldv” (YES in step S 167), the log information storage unit 104, The fifth control information stored in the variable "newv" is recorded in the storage area buffer [myLSN] (step S169).

記憶領域buffer[myLSN]に格納されている第6制御情報が、変数「oldv」に格納されている第4制御情報に一致しない場合に(ステップS167にてNO)、ログ情報保存部104は、記憶領域buffer[myLSN]に格納されている第6制御情報を変数「oldv」に格納する(ステップS168)。その後、ログ情報保存部104は、ステップS162乃至ステップS167に示す処理を実行する。   If the sixth control information stored in the storage area buffer [myLSN] does not match the fourth control information stored in the variable “oldv” (NO in step S 167), the log information storage unit 104 The sixth control information stored in the storage area buffer [myLSN] is stored in the variable “oldv” (step S168). Thereafter, the log information storage unit 104 executes the processes shown in steps S162 to S167.

ログ情報保存部104は、上述したような「cas」命令にて実行される処理と同様の処理を、アトミックに実行する。   The log information storage unit 104 atomically executes the same process as the process executed by the “cas” instruction as described above.

次に、ログ情報保存部104は、ステップS162にて読み取った記録操作完了情報が完了以前を表す未完了状態である場合に、ログバッファ情報記憶部111における完了位置情報を更新する更新操作(後述)を完了位置情報更新部106に指示する。ログ情報保存部104は、たとえば、第2先頭情報を完了位置情報更新部106に対して出力することにより、完了位置情報更新部106に更新操作を指示する。ログ情報保存部104は、ステップS162にて読み取った記録操作完了情報が未完了状態でない場合に、完了位置情報を更新する更新操作を完了位置情報更新部106に指示しない。   Next, when the recording operation completion information read in step S162 is in an uncompleted state indicating before completion, the log information storage unit 104 updates the completion position information in the log buffer information storage unit 111 (described later) ) Is instructed to the completion position information updating unit 106. The log information storage unit 104 instructs the completion position information updating unit 106 to perform an update operation, for example, by outputting the second head information to the completion position information updating unit 106. The log information storage unit 104 does not instruct the completion position information updating unit 106 to update the completion position information when the recording operation completion information read in step S162 is not in an incomplete state.

より具体的に、ログ情報保存部104は、変数「myTurn」に格納されている記録操作完了情報を読み取り、読み取った記録操作完了情報が、未完了状態であるか否かを判定する(ステップS170)。該記録操作完了情報が未完了状態である場合に(ステップS170にてYES)、ログ情報保存部104は、変数「nextLSN」に格納されている第2先頭情報を完了位置情報更新部106に対して出力することにより、完了位置情報に関する更新操作を完了位置情報更新部106に指示する(ステップS171)。すなわち、ログ情報保存部104は、変数「FinishedUpTo」に格納されている完了位置情報を更新する処理を、完了位置情報更新部106に指示する。ログ情報保存部104は、該記録操作完了情報が未完了状態でない場合に(ステップS170にてNO)、完了位置情報を更新する処理を指示しない。   More specifically, the log information storage unit 104 reads the recording operation completion information stored in the variable "myTurn", and determines whether the read recording operation completion information is in an uncompleted state (step S170). ). When the recording operation completion information is in the uncompleted state (YES in step S170), the log information storage unit 104 sends the second head information stored in the variable “nextLSN” to the completion position information updating unit 106. By outputting the data, the completion position information updating unit 106 is instructed to perform an update operation regarding the completion position information (step S171). That is, the log information storage unit 104 instructs the completed position information updating unit 106 to update the completed position information stored in the variable “FinishedUpTo”. If the recording operation completion information is not in the uncompleted state (NO in step S170), the log information storage unit 104 does not instruct the process of updating the completion position information.

次に、図12を参照しながら、ステップS170(または、ステップS171)に後続する処理について詳細に説明する。図12は、第1の実施形態に係るログ処理部102における処理の流れを示すフローチャート(3/3)である。   Next, the process following step S170 (or step S171) will be described in detail with reference to FIG. FIG. 12 is a flowchart (3/3) showing the flow of processing in the log processing unit 102 according to the first embodiment.

ログ情報保存部104は、ログバッファ情報記憶部111から可達位置情報を読み取り、読み取った可達位置情報と、ステップS141(図10)にて算出した第2先頭情報とを比較する。ログ情報保存部104は、読み取った可達位置情報が該第2先頭情報未満である場合に、ログバッファ情報記憶部111に格納されている可達位置情報が、第2先頭情報以上になるまで待ち合わせる処理を実行する。   The log information storage unit 104 reads the reachable position information from the log buffer information storage unit 111, and compares the read reachable position information with the second head information calculated in step S141 (FIG. 10). If the read delivery position information is less than the second head information, the log information storage unit 104 continues until the reachable position information stored in the log buffer information storage unit 111 becomes equal to or more than the second head information. Execute processing to wait.

より具体的に、ログ情報保存部104は、ログバッファ情報記憶部111における変数「ReachableUpTo」に格納されている可達位置情報を読み取り、読み取った可達位置情報と、変数「nextLSN」に格納されている第2先頭情報とを比較する(ステップS181)。ログ情報保存部104は、該可達位置情報が該第2先頭情報未満である場合に(ステップS181にてNO)、ログバッファ情報記憶部111における変数「ReachableUpTo」に格納されている可達位置情報が、該第2先頭情報以上なるまで待ち合わせる処理を実行する(ステップS182)。たとえば、ログ情報保存部104が実行する待ち合わせる処理は、変数「nextLSN」における値を入力とする「Sleep」関数を用いて実現することができる。   More specifically, the log information storage unit 104 reads the reachable position information stored in the variable “ReachableUpTo” in the log buffer information storage unit 111 and stores the read reachable position information and the variable “nextLSN”. The second leading information is compared (step S181). When the reachable position information is less than the second head information (NO in step S181), the log information storage unit 104 stores the reachable position stored in the variable “ReachableUpTo” in the log buffer information storage unit 111. A process of waiting until the information reaches or exceeds the second head information is executed (step S182). For example, the process of waiting to be performed by the log information storage unit 104 can be realized by using a “Sleep” function having the value of the variable “nextLSN” as an input.

図13を参照しながら、可達位置情報更新部105が実行する処理について説明する。図13は、第1の実施形態に係る可達位置情報更新部105における処理を表すフローチャートである。   A process performed by the reachable position information updating unit 105 will be described with reference to FIG. FIG. 13 is a flowchart showing processing in the reachable position information updating unit 105 according to the first embodiment.

可達位置情報更新部105は、第2先頭情報を入力し、入力した第2先頭情報をメモリ108(以降、「第1領域」と表す)に格納する。可達位置情報更新部105は、メモリ108に格納されている値を読み取り、読み取った値を、ログバッファ情報記憶部111に可達位置情報として格納する。より具体的に、可達位置情報更新部105は、ログ情報保存部104が出力した第2先頭情報を入力し、入力した第2先頭情報を変数「nextLSN」に格納する。可達位置情報更新部105は、可達位置情報更新部105は、変数「nextLSN」に格納されている第2先頭情報を、変数「lsn」に格納する(ステップS191)。可達位置情報更新部105は、変数「lsn」に格納されている値を、ログバッファ情報記憶部111における変数「ReachableUpTo」に格納する(ステップS192)。   The delivered position information updating unit 105 receives the second head information, and stores the input second head information in the memory 108 (hereinafter referred to as “first area”). The reachable position information updating unit 105 reads the value stored in the memory 108, and stores the read value in the log buffer information storage unit 111 as reachable position information. More specifically, the delivered position information updating unit 105 inputs the second head information output from the log information storage unit 104, and stores the input second head information in the variable "nextLSN". The delivered position information updating unit 105 stores, in the variable “lsn”, the second head information stored in the variable “nextLSN” (step S191). The delivered position information updating unit 105 stores the value stored in the variable “lsn” in the variable “ReachableUpTo” in the log buffer information storage unit 111 (step S192).

次に、可達位置情報更新部105は、ログバッファ112において、第1領域に格納されている値が指し示す記憶領域に格納されているログ情報セット、及び、該ログ情報セットにおける制御情報(以降、「第7制御情報」と表す)を読み取る。より具体的に、可達位置情報更新部105は、変数「lsn」に格納されている値が指し示す記憶領域buffer[lsn]に記録されている制御情報を読み取る(ステップS193)。可達位置情報更新部105は、読み取ったログ情報セットに含まれている第7制御情報を、変数「oldv」に格納する(ステップS194)。   Next, in the log buffer 112, the reachable position information updating unit 105 sets the log information set stored in the storage area pointed to by the value stored in the first area, and the control information in the log information set , “7th control information”). More specifically, the delivered position information updating unit 105 reads the control information recorded in the storage area buffer [lsn] indicated by the value stored in the variable “lsn” (step S193). The delivered position information updating unit 105 stores the seventh control information included in the read log information set in the variable “oldv” (step S194).

次に、可達位置情報更新部105は、読み取った第7制御情報に含まれているサイズ情報におけるサイズが0であるか否かを判定する。可達位置情報更新部105は、該サイズが0でない場合に、第1領域に格納されている値に、第7制御情報に含まれている該サイズを足し算し、算出した値を該第1領域に格納する。以降、制御情報に含まれているサイズ情報が表すサイズが0になるまで、処理を繰り返し実行する。これに対して、可達位置情報更新部105は、該サイズが0である場合に、まだ処理が開始されていないことを表す可達状態、第7制御情報に含まれている記録操作完了情報、該第7制御情報に含まれている記録操作状態情報、及び、該第7制御情報に含まれているサイズ情報を含む制御情報(以降、「第8制御情報」と表す)を作成する。この場合に、ステップS197及びステップS198にて作成された第8制御情報は、ステップS195に示す処理を実行した処理であるので、サイズ情報として0を含む。   Next, the delivered position information updating unit 105 determines whether the size in the size information included in the read seventh control information is 0 or not. When the size is not 0, the reachable position information updating unit 105 adds the size included in the seventh control information to the value stored in the first area, and calculates the calculated value. Store in the area. Thereafter, the process is repeatedly executed until the size represented by the size information included in the control information becomes zero. On the other hand, when the size is 0, the reachable position information update unit 105 has a reachable state indicating that the process has not started yet, and the recording operation completion information included in the seventh control information. Control information (hereinafter referred to as “eighth control information”) including recording operation state information included in the seventh control information and size information included in the seventh control information is created. In this case, the eighth control information created in step S197 and step S198 is a process in which the process shown in step S195 is executed, and therefore, 0 is included as size information.

より具体的に、可達位置情報更新部105は、変数「oldv」に格納した第7制御情報に含まれている変数「length」に格納されているサイズが0であるか否かを判定する(ステップS195)。可達位置情報更新部105は、該サイズが0でない場合に(ステップS195にてNO)、変数「lsn」に格納されている値と該変数「length」に格納されている値とを足し算し、算出される結果を、変数「lsn」に格納する(ステップS196)。その後、可達位置情報更新部105は、ステップS192に示す処理を実行する。これに対して、可達位置情報更新部105は、該サイズが0である場合に(ステップS195にてYES)、変数「oldv」に格納されている第7制御情報を、変数「newv」に格納し(ステップS197)、さらに、変数「newv」に、可達情報の値として、まだ処理が開始されていないことを表す可達状態を格納する(ステップS198)。尚、ステップS197及びステップS198に示す処理によって、変数「newv」は、第8制御情報を記憶している。   More specifically, the delivered location information updating unit 105 determines whether the size stored in the variable “length” included in the seventh control information stored in the variable “oldv” is 0 or not. (Step S195). If the size is not 0 (NO in step S 195), the delivered position information updating unit 105 adds the value stored in the variable “lsn” and the value stored in the variable “length”. , And stores the calculated result in the variable "lsn" (step S196). Thereafter, the delivered position information updating unit 105 executes the process shown in step S192. On the other hand, when the size is 0 (YES in step S 195), the delivered position information updating unit 105 sets the seventh control information stored in the variable “oldv” to the variable “newv”. It stores it (step S197), and stores the reachable state indicating that the process has not started yet as the value of the reachable information in the variable "newv" (step S198). The variable “newv” stores eighth control information by the processes shown in steps S197 and S198.

可達位置情報更新部105は、「cas」命令によって実行される処理と同様の処理を実行することによって、作成した第8制御情報を、ログバッファ112において、第1領域に格納されている値が指し示す記憶領域に記録する。   The delivered position information updating unit 105 executes the same process as the process executed by the “cas” instruction to store the generated eighth control information in the first area in the log buffer 112. Record in the storage area pointed to by.

第8制御情報を、ログバッファ112において、第1領域に格納されている値が指し示す記憶領域に記録する処理について詳細に説明する。可達位置情報更新部105は、ログバッファ112において第1領域に格納されている値が指し示す記憶領域に格納されている制御情報(以降、「第9制御情報」)を読み取る。可達位置情報更新部105は、読み取った第9制御情報と、読み取った第7制御情報とが一致する場合に、作成した第8制御情報を、ログバッファ112において、第1領域に格納されている値が指し示す記憶領域に記録する。可達位置情報更新部105は、読み取った第9制御情報と、読み取った第7制御情報とが一致しない場合に、「第7制御情報に含まれているサイズ情報におけるサイズが0であるか否かを判定する」処理、乃至、「第9制御情報と第7制御情報とが一致するか否かを判定する」処理を実行する。   A process of recording the eighth control information in the storage area indicated by the value stored in the first area in the log buffer 112 will be described in detail. The delivered position information updating unit 105 reads control information (hereinafter, “ninth control information”) stored in the storage area indicated by the value stored in the first area in the log buffer 112. When the read ninth control information matches the read seventh control information, the delivered position information updating unit 105 stores the generated eighth control information in the first area in the log buffer 112. Record in the storage area pointed to by the value. If the read ninth control information and the read seventh control information do not match, the reachable position information updating unit 105 “whether or not the size in the size information included in the seventh control information is 0. Or the process of “determining whether the ninth control information matches the seventh control information” is executed.

可達位置情報更新部105は、上述したような「cas」命令にて実行される処理と同様の処理を、アトミックに実行する。   The reachable position information updating unit 105 atomically executes the same process as the process executed by the “cas” instruction as described above.

より具体的に、可達位置情報更新部105は、記憶領域buffer[lsn]に格納されている第9制御情報を読み取り、読み取った第9制御情報と、変数「oldv」に格納されている第7制御情報とを比較する(ステップS199)。可達位置情報更新部105は、変数「oldv」に格納されている第7制御情報と、第9制御情報とが一致する場合に(ステップS199にてYES)、変数「newv」に格納されている第8制御情報を、記憶領域buffer[lsn]に記録する(ステップS201)。可達位置情報更新部105は、変数「oldv」に格納されている第7制御情報と、第9制御情報とが一致しない場合に(ステップS199にてNO)、記憶領域buffer[lsn]に格納されている第9制御情報を変数「oldv」に格納する(ステップS200)。その後、可達位置情報更新部105は、ステップS195に示す処理を実行する。ログ情報保存部104は、上述したような「cas」命令にて実行される処理と同様の処理を、アトミックに実行する。   More specifically, the delivered position information updating unit 105 reads the ninth control information stored in the storage area buffer [lsn], and reads the read ninth control information and the variable “oldv”. 7 Compare with the control information (step S199). When the seventh control information stored in the variable “oldv” matches the ninth control information (YES in step S199), the delivered position information updating unit 105 stores the information in the variable “newv”. The present eighth control information is recorded in the storage area buffer [lsn] (step S201). When the seventh control information stored in variable “oldv” does not match the ninth control information (NO in step S199), delivered position information updating unit 105 stores the information in storage area buffer [lsn]. The stored ninth control information is stored in a variable "oldv" (step S200). Thereafter, the delivered location information updating unit 105 executes the process shown in step S195. The log information storage unit 104 atomically executes the same process as the process executed by the “cas” instruction as described above.

次に、図14を参照しながら、ステップS201に後続する処理について詳細に説明する。図14は、第1の実施形態に係る可達位置情報更新部105における処理の流れを示すフローチャートである。   Next, the process following step S201 will be described in detail with reference to FIG. FIG. 14 is a flowchart showing a flow of processing in the reachable position information updating unit 105 according to the first embodiment.

可達位置情報更新部105は、第1領域に格納されている値と、ログバッファ情報記憶部111における可達位置情報と比較する。可達位置情報更新部105は、可達位置情報よりも小さな値を第1領域に格納しているログ情報保存部104に関して、待ち合わせ処理を終了する指示を実行する。該指示を受けた可達位置情報更新部105は、待ち合わせ処理を終了する。   The reachable position information updating unit 105 compares the value stored in the first area with the reachable position information in the log buffer information storage unit 111. The reachable position information updating unit 105 instructs the log information storage unit 104 storing a value smaller than the reachable position information in the first area to end the queuing process. The reachable position information updating unit 105 that has received the instruction ends the waiting process.

より具体的に、可達位置情報更新部105は、たとえば、「WakeUp」関数における処理と同様の処理を実行する。可達位置情報更新部105は、変数「lsn」から値を読み取り、読み取った値と、ログバッファ情報記憶部111における可達位置情報とを比較する。可達位置情報更新部105は、読み取った値が、可達位置情報未満であるログ情報保存部を特定し、特定したログ情報保存部に待ち合わせ処理を終了する指示を実行する(ステップS211)。該指示を受信したログ情報保存部は、待ち合わせ処理を終了する。   More specifically, the reachable position information updating unit 105 executes, for example, the same processing as the processing in the "WakeUp" function. The reachable position information updating unit 105 reads a value from the variable “lsn”, and compares the read value with the reachable position information in the log buffer information storage unit 111. The reachable position information updating unit 105 identifies the log information storage unit whose read value is less than the reachable position information, and executes an instruction to end the queuing process in the identified log information storage unit (step S211). The log information storage unit having received the instruction ends the waiting process.

図15を参照しながら、完了位置情報更新部106が実行する処理について説明する。図15は、第1の実施形態に係る完了位置情報更新部106における処理を表すフローチャートである。   A process performed by the completion position information update unit 106 will be described with reference to FIG. FIG. 15 is a flowchart showing processing in the completion position information updating unit 106 according to the first embodiment.

完了位置情報更新部106は、第2先頭情報を入力し、入力した第2先頭情報をメモリ108(以降、「第2領域」と表す)に格納する。より具体的に、完了位置情報更新部106は、ログ情報保存部104が出力した第2先頭情報を入力し、入力した第2先頭情報を変数「nextLSN」に格納する。完了位置情報更新部106は、変数「nextLSN」に格納されている第2先頭情報を、変数「lsn」に格納する(ステップS221)。   The completion position information updating unit 106 inputs the second head information, and stores the input second head information in the memory 108 (hereinafter referred to as “second area”). More specifically, the completion position information updating unit 106 inputs the second head information output from the log information storage unit 104, and stores the input second head information in the variable "nextLSN". The complete position information updating unit 106 stores the second head information stored in the variable “nextLSN” in the variable “lsn” (step S221).

次に、完了位置情報更新部106は、第2領域に格納されている値を、ログバッファ情報記憶部111に完了位置情報として格納する。より具体的に、完了位置情報更新部106は、変数「lsn」に格納されている値を、ログバッファ情報記憶部111における変数「FinishedUpTo」に格納する(ステップS222)。   Next, the completion position information updating unit 106 stores the value stored in the second area in the log buffer information storage unit 111 as completion position information. More specifically, the completed position information updating unit 106 stores the value stored in the variable “lsn” in the variable “FinishedUpTo” in the log buffer information storage unit 111 (step S222).

次に、完了位置情報更新部106は、ログバッファ112において、第2領域に格納されている値が指し示す記憶領域に格納されている制御情報(以降、「第10制御情報」と表す)を読み取る。可達位置情報更新部105は、読み取った第10制御情報に含まれているサイズ情報におけるサイズが0であるか否か、及び、該第10制御情報における記録操作状態情報が処理中状態であるか否かのうち、少なくとも一方を判定する。   Next, the completion position information updating unit 106 reads control information (hereinafter referred to as “tenth control information”) stored in the storage area pointed to by the value stored in the second area in the log buffer 112. . The delivered position information updating unit 105 determines whether the size in the size information included in the read tenth control information is 0 or not, and the recording operation state information in the tenth control information is in the processing state. At least one is determined.

完了位置情報更新部106は、該サイズが0でなく、かつ、該記録操作状態情報が非処理中状態である場合に、第1領域に格納されている値に、読み取った該第10制御情報に含まれている該サイズを足し算する。   When the size is not 0 and the recording operation state information is in the non-processing state, the completion position information updating unit 106 reads the tenth control information read to the value stored in the first area. Add the sizes contained in.

完了位置情報更新部106は、該サイズが0であるか、または、該記録操作状態情報が処理中状態である場合に、以下の4つの情報を含む制御情報(以降、「第11制御情報」と表す)を作成する。   When the size is 0 or the recording operation state information is in processing, the completion position information updating unit 106 includes control information including the following four pieces of information (hereinafter referred to as “the 11th control information”): Create).

・該第10制御情報に含まれている可達情報、
・処理が完了する以前の状態を表している未完了状態、
・該第10制御情報に含まれている記録操作状態情報、
・該第10制御情報に含まれているサイズ情報を含む制御情報。
· Reachable information included in the tenth control information,
An incomplete state representing a state before the process is completed,
Recording operation state information included in the tenth control information
Control information including size information included in the tenth control information.

より具体的に、完了位置情報更新部106は、変数「lsn」に格納されている値が指し示す記憶領域buffer[lsn]に記録されている制御情報を読み取る(ステップS223)。完了位置情報更新部106は、読み取った制御情報に含まれている第10制御情報を、変数「oldv」に格納する(ステップS224)。可達位置情報更新部105は、以下に示す判定処理1及び判定処理2のうち、少なくとも一方の判定処理を実行する(ステップS225)。   More specifically, the completion position information updating unit 106 reads the control information recorded in the storage area buffer [lsn] indicated by the value stored in the variable “lsn” (step S223). The complete position information updating unit 106 stores the tenth control information included in the read control information in the variable “oldv” (step S224). The delivered position information updating unit 105 executes at least one of the determination process 1 and the determination process 2 described below (step S225).

・判定処理1:変数「oldv」に格納した第10制御情報に含まれている変数「length」に格納されているサイズが0であるか否か、
・判定処理2:変数「oldv」に格納した第10制御情報に含まれている変数「inCopy」が、処理中状態であるか否か。
Determination process 1: Whether or not the size stored in the variable “length” included in the tenth control information stored in the variable “oldv” is 0,
Determination process 2: Whether or not the variable “inCopy” included in the tenth control information stored in the variable “oldv” is in the processing state.

可達位置情報更新部105は、変数「length」に格納されているサイズが0でなく、かつ、変数「inCopy」に格納されている値が非処理中状態である場合に(ステップS225にてNO)、変数「lsn」に格納されている値と、変数「oldv」に含まれている変数「length」に格納されている値とを足し算する(ステップS226)。可達位置情報更新部105は、算出した結果を変数「lsn」に格納する。その後、可達位置情報更新部105は、ステップS222に示した処理を実行する。   In the case where the size stored in variable “length” is not 0 and the value stored in variable “inCopy” is in the non-processing state (at step S 225) (NO), the value stored in the variable “lsn” and the value stored in the variable “length” included in the variable “oldv” are added (step S226). The delivered position information updating unit 105 stores the calculated result in the variable “lsn”. Thereafter, the reachable position information updating unit 105 executes the process shown in step S222.

尚、可達位置情報更新部105は、変数「length」に格納されているサイズが0である、または、変数「inCopy」に格納されている値が処理中状態である場合に(ステップS225にてYES)、変数「oldv」に格納されている第10制御情報を、変数「newv」に格納する(ステップS227)。可達位置情報更新部105は、該変数「newv」に含まれている変数「cflag」に1(すなわち、未完了状態)を格納する(ステップS228)。すなわち、変数「newv」は、第11制御情報を格納している。   Note that if the size stored in the variable “length” is 0, or the value stored in the variable “inCopy” is in the processing state (step S225). YES), the tenth control information stored in the variable "oldv" is stored in the variable "newv" (step S227). The delivered position information updating unit 105 stores 1 (that is, an uncompleted state) in the variable “cflag” included in the variable “newv” (step S228). That is, the variable "newv" stores eleventh control information.

次に、完了位置情報更新部106は、「cas」命令にて実行される処理と同様の処理を実行することにより、作成した第11制御情報を、ログバッファ112において、第2領域に格納されている値が指し示す記憶領域に記録する。   Next, the completion position information updating unit 106 stores the created eleventh control information in the second area in the log buffer 112 by executing the same process as the process executed by the “cas” instruction. Record in the storage area pointed to by

第11制御情報を記録する処理について詳細に説明する。完了位置情報更新部106は、ログバッファ112において、第2領域に格納されている値に格納されている制御情報(以降、「第12制御情報」と表す)を読み取る。完了位置情報更新部106は、読み取った第12制御情報と、第10制御情報とが一致する場合に、作成した第11制御情報を、ログバッファ112において、第2領域に格納されている値が指し示す記憶領域に記録する。完了位置情報更新部106は、読み取った第12制御情報と、第10制御情報とが一致しない場合に、第12制御情報を第10制御情報に設定し、その後、第10制御情報に関する上述した判定処理を実行する。   The process of recording the eleventh control information will be described in detail. The completion position information updating unit 106 reads control information (hereinafter referred to as “12th control information”) stored in the values stored in the second area in the log buffer 112. If the read twelfth control information matches the tenth control information, the completion position information updating unit 106 determines that the value stored in the second area in the log buffer 112 is the prepared eleventh control information. Record in the indicated storage area. If the read twelfth control information and the tenth control information do not match, the completion position information updating unit 106 sets the twelfth control information to the tenth control information, and then, the above-described determination on the tenth control information Execute the process

完了位置情報更新部106は、上述したような「cas」命令にて実行される処理と同様の処理を、アトミックに実行する。より具体的に、「cas」命令にて実行される処理と同様の処理を実行する処理について説明する。   The completion position information updating unit 106 atomically executes the same processing as the processing executed by the “cas” instruction as described above. More specifically, a process of executing the same process as the process executed by the “cas” instruction will be described.

完了位置情報更新部106は、記憶領域buffer[lsn]に格納されている第12制御情報を読み取る。完了位置情報更新部106は、読み取った第12制御情報と、第10制御情報とが一致する場合に(ステップS229にてYES)、変数「newv」に格納されている第11制御情報を記憶領域buffer[lsn]に記録する(ステップS231)。完了位置情報更新部106は、読み取った第12制御情報と、第10制御情報とが一致しない場合に(ステップS229にてNO)、記憶領域buffer[lsn]に格納されている第12制御情報を変数「oldv」に格納する(ステップS230)。その後、完了位置情報更新部106は、ステップS225に示す処理を実行する。   The completion position information updating unit 106 reads the twelfth control information stored in the storage area buffer [lsn]. The completed position information updating unit 106 stores the eleventh control information stored in the variable “newv” when the read twelfth control information matches the tenth control information (YES in step S229). Record in buffer [lsn] (step S231). If the read twelfth control information and the tenth control information do not match (NO in step S 229), the completion position information updating unit 106 sets the twelfth control information stored in the storage area buffer [lsn] to The variable "oldv" is stored (step S230). Thereafter, the completion position information updating unit 106 executes the process shown in step S225.

完了位置情報更新部106は、上述したような「cas」命令にて実行される処理と同様の処理を、アトミックに実行する。   The completion position information updating unit 106 atomically executes the same processing as the processing executed by the “cas” instruction as described above.

すなわち、完了位置情報更新部106は、図15に示した処理を実行することによって、ログバッファ112に含まれるログ情報セットにおいて、該ログ情報セットに関して、サイズが0である、または、処理中状態であるログ情報セットを探す。すなわち、可達位置情報更新部105は、処理しているログ情報セットよりも識別子が大きな値を有するログ情報セットのうち、処理中状態であるログ情報セットか、または、まだサイズが0であるログ情報セットを探す。可達位置情報更新部105は、見つけたログ情報セットに含まれている制御情報に未完了状態(または、1)を設定する。すなわち、可達位置情報更新部105は、処理しているログ情報セットよりも識別子が大きな値を有するログ情報セットのうち、まだ、処理中状態であるか、まだサイズが0であるログ情報セットに関して未完了状態(すなわち、完了以前であることを表す)に設定する。   That is, in the log information set included in the log buffer 112, the completion position information updating unit 106 performs the process shown in FIG. Find the log information set that is That is, among the log information sets whose identifiers have a larger value than the log information set being processed, the reachable position information updating unit 105 is the log information set being processed or the size is still 0. Search log information set. The delivered position information updating unit 105 sets the uncompleted state (or 1) in the control information included in the found log information set. That is, among the log information sets whose identifiers have a larger value than the log information set being processed, the reachable position information updating unit 105 is still in the processing state or the size is 0 in the log information set. Set to an uncompleted state (ie, representing that it is before completion).

次に、第1の実施形態に係るデータベース管理装置101に関する効果について説明する。   Next, the effects of the database management apparatus 101 according to the first embodiment will be described.

本実施形態に係るデータベース管理装置101によれば、ログバッファ112に対する処理要求を短期間に処理可能にする制御情報を記憶領域に効率よく設定することができる。この理由は、排他制御権を有している期間内に処理を実行している期間に、ログ処理部102がログバッファ112にサイズを設定する操作等を実行する必要がないからである。   According to the database management apparatus 101 according to the present embodiment, it is possible to efficiently set, in a storage area, control information that enables processing of a processing request to the log buffer 112 in a short time. The reason is that the log processing unit 102 does not have to execute the operation of setting the size in the log buffer 112 or the like while the process is being executed within the period of having the exclusive control right.

上述した効果を奏する理由について、さらに詳細に説明する。   The reason for achieving the effects described above will be described in more detail.

本実施形態に係るデータベース管理装置101が、ログバッファ112を割り当てる操作において、取得した排他制御権を有している期間内に実行する操作は、ログバッファ112に関する変数「TAIL」を読み出し、その後、更新するだけである。   In the operation of allocating the log buffer 112 by the database management apparatus 101 according to the present embodiment, the operation to be executed during the period in which the acquired exclusive control right is acquired reads the variable "TAIL" related to the log buffer 112, and then It only updates.

これに対して、非特許文献1に記載された装置が取得した排他制御権を有している期間内に実行する必要がある操作は、変数「TAIL」に関する処理に加え、ログバッファにおける制御情報にサイズに関するサイズ情報を設定する処理と、記録操作状態情報を設定する処理とである。   On the other hand, in addition to the processing related to the variable "TAIL", the control information in the log buffer is an operation that needs to be executed during the period when the device described in Non-Patent Document 1 has the acquired exclusive control right. Processing for setting size information related to the size, and processing for setting recording operation state information.

さらに、非特許文献1に記載された装置は、ログ情報をログバッファに記録した後に、トランザクションに関する処理を完了することによってデータベースにおけるデータを確実に格納する。したがって、該装置においては、特に、情報システムが多数のコアを搭載するシステム(メニーコアシステム)である場合に、複数プロセスが同時にログバッファを確保する操作を実行することに伴い、競合が発生する。この結果、メニーコアシステムの処理性能は、低下する。   Furthermore, after recording log information in the log buffer, the device described in Non-Patent Document 1 securely stores data in a database by completing processing related to a transaction. Therefore, in the device, particularly when the information system is a system (many-core system) equipped with a large number of cores, contention occurs as the plurality of processes execute the operation of securing the log buffer simultaneously. As a result, the processing performance of the many core system is degraded.

したがって、データベース管理装置101と、非特許文献1に記載された装置とを比較すると、排他制御権を有している期間内に実行する処理は、データベース管理装置101の方が、ログバッファ112に対する処理の分だけ少ない。すなわち、取得した排他制御権を有している期間内に実行する処理量が少ないので、本実施形態に係るデータベース管理装置101によれば、たとえば、メニーコアシステムにて、該排他制御に関する競合を低減することができる。   Therefore, comparing the database management apparatus 101 with the apparatus described in Non-Patent Document 1, the process executed by the database management apparatus 101 with respect to the log buffer 112 in the period in which the exclusive control right is held. It is less by the amount of processing. That is, since the amount of processing to be executed during the period of having the acquired exclusive control right is small, according to the database management apparatus 101 according to the present embodiment, for example, contention on the exclusive control is reduced in a many core system. can do.

また、非特許文献2に開示された装置は、本実施形態に係るデータベース管理装置101と比較して、該システムにおけるログバッファに関する制御が複雑であるという課題を有する。この理由は、たとえば、以下の2つである。すなわち、
○管理対象であるログバッファ112が複数である場合に、各プロセスが、書き込み先のログバッファ112を選択する必要がある、
○ログ情報に対する記録処理が完了したか否かを判定する対象(すなわち、ログバッファ112)が複数ある場合に、障害発生後のデータ復旧操作においては、各ログバッファ112に書き込まれたログ情報の順序を認識し、その順序通りにログ情報を読み込む必要が生じる。
Further, the apparatus disclosed in Non-Patent Document 2 has a problem that the control regarding the log buffer in the system is complicated as compared with the database management apparatus 101 according to the present embodiment. The reasons for this are, for example, the following two. That is,
○ When there are multiple log buffers 112 to be managed, each process needs to select the write destination log buffer 112.
○ When there are multiple targets (that is, the log buffer 112) for determining whether or not the recording process for the log information is completed, in the data recovery operation after the failure occurrence, the log information written to each log buffer 112 It is necessary to recognize the order and read the log information in the order.

したがって、本実施形態に係るデータベース管理装置101によれば、複雑な制御を実行する必要がない。   Therefore, according to the database management apparatus 101 according to the present embodiment, it is not necessary to execute complicated control.

たとえば、ログバッファ112を、データベースに関する変更履歴を表すログ情報を不揮発性のメモリを用いて実現することもできる。この場合に、本実施形態に係るデータベース管理装置101によれば、該変更履歴を、入出力操作が必要となるディスクやSSD等のデバイスに、変更履歴の発生に同期しながら記録する必要はない。また、本実施形態に係るデータベース管理装置101によれば、特に、コア数が多いメニーコアシステムにおいて、ログ情報を高速に記録する実行することができる。   For example, the log buffer 112 can also be implemented using non-volatile memory, with log information representing change history for the database. In this case, according to the database management apparatus 101 according to the present embodiment, it is not necessary to record the change history in a device such as a disk or an SSD requiring an input / output operation while synchronizing with the occurrence of the change history. . Further, according to the database management apparatus 101 according to the present embodiment, it is possible to execute recording of log information at high speed, particularly in a many core system with a large number of cores.

本実施形態に係るデータベース管理装置101における記録操作完了情報によれば、ログバッファ112におけるログ情報セットに関する処理が完了前であるか否かを、短期間に判定することができる。この理由は、制御情報が、処理が完了前であるか否かを表す記録操作完了情報を含むからである。制御情報が記録操作完了情報を有するので、データベース管理装置101は、あるログ情報セットにおける該記録操作完了情報を参照することにより、該あるログ情報セットに関して入出力処理が完了したか否かを短期間に判定することができる。   According to the recording operation completion information in the database management apparatus 101 according to the present embodiment, it can be determined in a short time whether or not the processing related to the log information set in the log buffer 112 is before completion. The reason is that the control information includes recording operation completion information indicating whether or not the process is completed. Since the control information has the recording operation completion information, the database management apparatus 101 refers to the recording operation completion information in a certain log information set to determine whether or not the input / output processing has been completed for the certain log information set. It can be determined between.

本実施形態に係るデータベース管理装置101における可達位置情報によれば、ログバッファ112において、どのログ情報セットまで、処理が開始されたのかを短期間に知ることができる。この理由は、可達位置情報更新部105が、可達状態であるログ情報セットのうち、最も後順に位置するログ情報セットの位置を特定することができるからである。   According to the reachable position information in the database management apparatus 101 according to the present embodiment, it is possible to know in the log buffer 112 which log information set up to which processing has been started in a short time. The reason for this is that the reachable position information updating unit 105 can specify the position of the log information set located in the rearmost order among the log information sets in the reachable state.

また、本実施形態に係るデータベース管理装置101における可達位置情報によれば、ログ情報セットを記録する処理を、すべて、確実に実行することができる。この理由は、可達位置情報更新部105が特定した位置に基づき、すべてのログ情報セットに関する処理が開始されるまで、待ち合わせ処理を実行するからである。すなわち、ログ処理部102は、ログ情報セットに関する処理が、すべて開始されたタイミングにて同期処理を実行する。したがって、ログ情報セットに関する処理が、すべて完了したタイミングにて同期処理を実行する場合よりも、本実施形態に係るデータベース管理装置101によれば、より早期に、次の処理を実行することができる。   Further, according to the reachable position information in the database management apparatus 101 according to the present embodiment, it is possible to securely execute all the process of recording the log information set. The reason is that, based on the position specified by the reachable position information updating unit 105, the waiting process is executed until the process on all the log information sets is started. That is, the log processing unit 102 executes the synchronization processing at the timing at which the processing related to the log information set is all started. Therefore, according to the database management apparatus 101 according to the present embodiment, the next process can be performed earlier than when the synchronous process is executed at the timing when all the processes related to the log information set are completed. .

また、本実施形態に係るデータベース管理装置101における完了位置情報によれば、ログバッファ112において、どのログ情報セットまで、処理が完了する以前の状態にあるのか否かを、短期間に知ることができる。この理由は、完了位置情報更新部106が、変数「length」に格納されているサイズが0である制御情報を記録している位置を特定するからである。   Further, according to the completion position information in the database management apparatus 101 according to the present embodiment, it is possible to know in a short time whether or not the log information set in the log buffer 112 is in a state before the processing is completed. it can. The reason is that the completion position information updating unit 106 specifies the position where the control information whose size is 0 stored in the variable “length” is recorded.

また、ログバッファ情報記憶部111を、複数のトランザクション実行部が参照可能なメモリ108にて実現することによって、より効率的に処理を実行することができる。この理由は、複数のトランザクション実行部が、メモリ108に格納された位置を参照することができるからである。複数のトランザクション実行部は、相互に通信処理を実行することなく、該位置を参照することができる。さらに、本実施形態に係るデータベース管理装置101によれば、メモリ108の処理性能が高いほど、より短期間に該位置を参照することができるという効果も奏する。   Also, by realizing the log buffer information storage unit 111 with the memory 108 that can be referred to by a plurality of transaction execution units, processing can be executed more efficiently. The reason is that a plurality of transaction executors can refer to the locations stored in the memory 108. A plurality of transaction executors can refer to the position without performing communication processing with each other. Furthermore, according to the database management apparatus 101 according to the present embodiment, as the processing performance of the memory 108 is higher, the position can be referred to in a shorter time.

<第2の実施形態>
図16を参照しながら、本発明の第2の実施形態に係る制御情報設定装置151が有する構成について詳細に説明する。図16は、本発明の第2の実施形態に係る制御情報設定装置151が有する構成を示すブロック図である。
Second Embodiment
The configuration of the control information setting device 151 according to the second embodiment of the present invention will be described in detail with reference to FIG. FIG. 16 is a block diagram showing a configuration of the control information setting device 151 according to the second embodiment of the present invention.

第2の実施形態に係る制御情報設定装置151は、可達情報設定部152と、ログバッファ153とを有する。   The control information setting device 151 according to the second embodiment includes a deliverable information setting unit 152 and a log buffer 153.

ログバッファ153は、図2を参照しながら説明したように、ログ情報と、該ログ情報に関する処理を実行する場合に参照する制御情報とが関連付けされたログ情報セットを記憶する空間が、論理的に順番に並んでいる(すなわち、論理的に順序付けされている)とする。制御情報は、後順に位置するログ情報セットを参照することが可能であるか否かを表す可達情報、及び、該ログ情報のサイズ(大きさ、サイズ)を表すサイズ情報を含んでいるとする。   As described above with reference to FIG. 2, the log buffer 153 has a logically logical space for storing log information sets in which log information and control information to be referred to when executing processing relating to the log information are associated. In order (ie, logically ordered). The control information includes reachable information indicating whether or not it is possible to refer to the log information set located in a later order, and size information indicating the size (size, size) of the log information. Do.

説明の便宜上、ログバッファ153においては、ログ情報に関する処理を割り当て済みの領域(以降、「第1領域」と表す)と、ログ情報に関する処理を割り当てていない領域(以降、「第2領域」と表す)とが区分されているとする。   For convenience of explanation, in the log buffer 153, an area to which processing related to log information has been allocated (hereinafter referred to as "first area") and an area to which processing related to log information is not allocated (hereinafter referred to as "second area" It is assumed that it is separated from

次に、図17を参照しながら、第2の実施形態に係る制御情報設定装置151における処理について説明する。図17は、第2の実施形態に係る制御情報設定装置151における処理の流れを示すフローチャートである。   Next, processing in the control information setting device 151 according to the second embodiment will be described with reference to FIG. FIG. 17 is a flowchart showing the flow of processing in the control information setting device 151 according to the second embodiment.

可達情報設定部152は、第1領域及び第2領域の間の境界値と、たとえば、該外部装置が出力した該ログ情報のサイズ、及び、該ログ情報を入力する。可達情報設定部152は、ログバッファ153において、入力した境界値によって指し示された記憶領域(以降、「第1記憶領域」と表す)に記録されている制御情報(以降、「第1制御情報」と表す)を読み取る(ステップS241)。可達情報設定部152は、第1記憶領域に記録されている制御情報において、後順に位置するログ情報セットを参照することが不可能であるであることを表す不可達状態を設定する(ステップS242)。可達情報設定部152は、第1記憶領域に記録されている制御情報に対して、入力したサイズをサイズ情報に設定する(ステップS243)。   The reachable information setting unit 152 inputs the boundary value between the first area and the second area, for example, the size of the log information output by the external device, and the log information. Deliverable information setting unit 152 controls control information (hereinafter referred to as “first control”) recorded in storage area pointed to by the input boundary value (hereinafter referred to as “first storage area”) in log buffer 153. Information) is read (step S241). The delivery information setting unit 152 sets, in the control information recorded in the first storage area, an unreachable state indicating that it is impossible to refer to the log information set located in the later order (Step S242). The delivered information setting unit 152 sets the input size to the size information for the control information recorded in the first storage area (step S243).

可達情報設定部152は、読み取った第1制御情報に含まれている可達情報が、可達状態か否かを判定する(ステップS244)。可達情報設定部152は、該可達情報が可達状態である場合に(ステップS244にてYES)、ログバッファ153において、ログ情報セットに関する順序に従い、制御情報に含まれているサイズ情報が所定の条件を満たす第2制御情報を特定する(ステップS245)。たとえば、所定の条件は、サイズ情報が0であるか否かである。たとえば、可達情報設定部152は、ステップS245に示す処理にて、該第1制御情報に後続する制御情報の中から、第2制御情報を特定する。当該論理的順序をなす記憶領域において、第1制御情報に後続する制御情報を記録している位置は、たとえば、第1の実施形態における変数「nextLSN」に格納されている位置である。   The delivery information setting unit 152 determines whether the delivery information included in the read first control information is in the delivery state (step S244). When the reachable information is in the reachable state (YES in step S244), the reachable information setting unit 152 causes the log buffer 153 to have the size information included in the control information in the order regarding the log information set. The second control information satisfying the predetermined condition is specified (step S245). For example, the predetermined condition is whether the size information is 0 or not. For example, the reachable information setting unit 152 specifies the second control information from the control information following the first control information in the process shown in step S245. In the storage area having the logical order, the position where the control information following the first control information is recorded is, for example, the position stored in the variable “nextLSN” in the first embodiment.

可達情報設定部152は、特定した第2制御情報に含まれている可達情報に可達状態を設定する(ステップS246)。   The delivery information setting unit 152 sets the delivery state to the delivery information included in the identified second control information (step S246).

これに対して、可達情報設定部152は、読み取った第1制御情報に含まれている可達情報が、不可達状態である場合に(ステップS244にてNO)、ステップS245及びステップS246に示す処理を実行しない。   On the other hand, if the reachable information included in the read first control information is in the unreachable state (NO in step S244), the reachable information setting unit 152 proceeds to step S245 and step S246. Do not execute the process shown.

境界値は、たとえば、第1の実施形態に示したログバッファ情報記憶部111(図4)に格納されている先頭位置情報である。可達情報設定部152は、たとえば、上述したログ情報保存部104(図1)等が有する機能によって実現することができる。   The boundary value is, for example, head position information stored in the log buffer information storage unit 111 (FIG. 4) described in the first embodiment. The delivery information setting unit 152 can be realized, for example, by the functions of the above-described log information storage unit 104 (FIG. 1) and the like.

次に、第2の実施形態に係る制御情報設定装置151に関する効果について説明する。   Next, the effects of the control information setting device 151 according to the second embodiment will be described.

本実施形態に係る制御情報設定装置151によれば、ログバッファ153に対する処理要求を短期間に処理可能にする制御情報を記憶領域に効率よく設定することができる。この理由は、ログバッファ153にサイズを設定する処理を、ログバッファ153に関する排他制御権を有さない期間に、可達情報を用いて実現することができるからである。   The control information setting device 151 according to the present embodiment can efficiently set, in the storage area, control information that enables processing of the processing request to the log buffer 153 in a short period of time. The reason for this is that the process of setting the size in the log buffer 153 can be realized using reachable information during a period in which the log buffer 153 does not have exclusive control right.

これに対して、たとえば、非特許文献1に開示された装置は、複数のトランザクション実行部が共有しているログバッファ内の制御情報におけるサイズ情報を、該ログバッファに関して排他制御権を有している期間内に設定する。この結果、第2の実施形態に係る制御情報設定装置151によれば、該排他制御権を有している期間内に処理する処理量は減少する。したがって、本実施形態に係る制御情報設定装置151によれば、処理要求を短期間に処理可能にする制御情報を設定することができる。   On the other hand, for example, the device disclosed in Non-Patent Document 1 has size information in control information in a log buffer shared by a plurality of transaction executors with exclusive control over the log buffer. Set within a certain period. As a result, according to the control information setting device 151 of the second embodiment, the processing amount to be processed within the period of having the exclusive control right is reduced. Therefore, according to the control information setting device 151 according to the present embodiment, it is possible to set control information that makes it possible to process a processing request in a short period of time.

(ハードウェア構成例)
上述した本発明の各実施形態におけるデータベース管理装置を、1つの計算処理装置(情報処理装置、コンピュータ)を用いて実現するハードウェア資源の構成例について説明する。但し、係るデータベース管理装置は、物理的または機能的に少なくとも2つの計算処理装置を用いて実現してもよい。また、係るデータベース管理装置は、専用の装置として実現してもよい。
(Hardware configuration example)
A configuration example of hardware resources for realizing the database management device in each embodiment of the present invention described above using one calculation processing device (information processing device, computer) will be described. However, such a database management device may be realized physically or functionally using at least two calculation processing devices. Further, the database management device may be realized as a dedicated device.

図18は、第1の実施形態に係るデータベース管理装置及び第2の実施形態に係る制御情報設定装置を実現可能な計算処理装置のハードウェア構成例を概略的に示す図である。計算処理装置20は、中央処理演算装置(Central_Processing_Unit、以降「CPU」と表す)21、メモリ22、ディスク23、及び、不揮発性記録媒体24、通信インターフェース(以降、「通信IF」と表す)27、及び、ディスプレー28を有する。計算処理装置20は、さらに、入力装置25、出力装置26を有してもよい。計算処理装置20は、通信IF27を介して、他の計算処理装置、及び、通信装置と情報を送受信することができる。   FIG. 18 is a view schematically showing an example of the hardware configuration of a calculation processing apparatus capable of realizing the database management apparatus according to the first embodiment and the control information setting apparatus according to the second embodiment. The calculation processing unit 20 includes a central processing unit (Central_Processing_Unit, hereinafter referred to as “CPU”) 21, a memory 22, a disk 23, a non-volatile recording medium 24, and a communication interface (hereinafter referred to as “communication IF”) 27 And a display 28. The calculation processing device 20 may further include an input device 25 and an output device 26. The calculation processing device 20 can transmit and receive information to and from other calculation processing devices and communication devices via the communication IF 27.

不揮発性記録媒体24は、コンピュータが読み取り可能な、たとえば、コンパクトディスク(Compact_Disc)、デジタルバーサタイルディスク(Digital_Versatile_Disc)である。また、不揮発性記録媒体24は、ユニバーサルシリアルバスメモリ(USBメモリ)、ソリッドステートドライブ(Solid_State_Drive)等であってもよい。不揮発性記録媒体24は、電源を供給しなくても係るプログラムを保持し、持ち運びを可能にする。不揮発性記録媒体24は、上述した媒体に限定されない。また、不揮発性記録媒体24の代わりに、通信IF27、及び、通信ネットワークを介して係るプログラムを持ち運びしてもよい。   The non-volatile recording medium 24 is, for example, a compact disc (Compact_Disc) or a digital versatile disc (Digital_Versatile_Disc) that can be read by a computer. In addition, the non-volatile storage medium 24 may be a universal serial bus memory (USB memory), a solid state drive (Solid_State_Drive) or the like. The non-volatile recording medium 24 holds such a program and enables portability without supplying power. The non-volatile recording medium 24 is not limited to the medium described above. Also, instead of the non-volatile recording medium 24, the program may be carried via the communication IF 27 and the communication network.

すなわち、CPU21は、ディスク23に記憶されているソフトウェア・プログラム(コンピュータ・プログラム:以下、単に「プログラム」と称する)を、実行する際にメモリ22にコピーし、演算処理を実行する。CPU21は、プログラム実行に必要なデータをメモリ22から読み取る。表示が必要な場合には、CPU21は、ディスプレー28に出力結果を表示する。外部への出力が必要な場合には、CPU21は、出力装置26に出力結果を出力する。外部からプログラムを入力する場合、CPU21は、入力装置25からプログラムを読み取る。CPU21は、上述した図1、または、図16に示す各部が表す機能(処理)に対応するところのメモリ22にあるデータベース管理プログラム(図5、図6、図8乃至図15)、または、制御情報設定プログラム(図17)を解釈し実行する。CPU21は、上述した本発明の各実施形態において説明した処理を順次実行する。   That is, the CPU 21 copies a software program (computer program: hereinafter simply referred to as “program”) stored in the disk 23 to the memory 22 when executing it, and executes arithmetic processing. The CPU 21 reads from the memory 22 data required for program execution. When the display is required, the CPU 21 displays the output result on the display 28. When an output to the outside is required, the CPU 21 outputs an output result to the output device 26. When the program is input from the outside, the CPU 21 reads the program from the input device 25. The CPU 21 controls the database management program (FIG. 5, FIG. 6, FIG. 8 to FIG. 15) in the memory 22 corresponding to the function (process) represented by FIG. 1 or FIG. Interpret and execute the information setting program (FIG. 17). The CPU 21 sequentially executes the processing described in each embodiment of the present invention described above.

すなわち、このような場合、本発明は、係る制御情報設定プログラム、または、係るデータベース管理プログラムによっても成し得ると捉えることができる。さらに、係るデータベース管理プログラム、または、係る制御情報設定プログラムが記録されたコンピュータが読み取り可能な不揮発性の記録媒体によっても、本発明は成し得ると捉えることができる。   That is, in such a case, it can be understood that the present invention can also be realized by the control information setting program or the database management program. Furthermore, it can be understood that the present invention can also be realized by a computer readable non-volatile recording medium in which such a database management program or such a control information setting program is recorded.

以上、上述した実施形態を模範的な例として本発明を説明した。しかし、本発明は、上述した実施形態には限定されない。すなわち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。   The present invention has been described above by taking the above-described embodiment as an exemplary example. However, the present invention is not limited to the embodiments described above. That is, the present invention can apply various aspects that can be understood by those skilled in the art within the scope of the present invention.

101 データベース管理装置
102 ログ処理部
103 先頭位置算出部
104 ログ情報保存部
105 可達位置情報更新部
106 完了位置情報更新部
107 トランザクション実行部
108 メモリ
109 トランザクション実行部
110 トランザクション実行部
111 ログバッファ情報記憶部
112 ログバッファ
151 制御情報設定装置
152 可達情報設定部
153 ログバッファ
20 計算処理装置
21 CPU
22 メモリ
23 ディスク
24 不揮発性記録媒体
25 入力装置
26 出力装置
27 通信IF
28 ディスプレー
DESCRIPTION OF SYMBOLS 101 database management apparatus 102 log processing part 103 head position calculation part 104 log information storage part 105 reachable position information update part 106 completion position information update part 107 transaction execution part 108 memory 109 transaction execution part 110 transaction execution part 111 log buffer information storage Part 112 Log buffer 151 Control information setting device 152 Reachable information setting part 153 Log buffer 20 Calculation processing device 21 CPU
22 Memory 23 Disk 24 Nonvolatile Storage Medium 25 Input Device 26 Output Device 27 Communication IF
28 Display

Claims (9)

ログ情報と、そのログ情報に所定の順序で続くログ情報を参照することが可能な状態を表す可達状態であるか、または、参照することが不可能な状態を表す不可達状態であるかを表す可達情報、及び、前記ログ情報のサイズを表すサイズ情報を含む制御情報とを関連付けた状態で記憶可能な記憶領域が論理的に前記順序に並べられたログバッファと、
前記ログバッファにおいて、前記ログ情報を記録する記録処理を割り当て済みの記憶領域と、前記記録処理が割り当てられていない記憶領域との境界を表す記憶領域に記録されている第1制御情報から前記可達情報を読み取り、前記第1制御情報に含まれている前記可達情報に前記不可達状態を設定するとともに、前記第1制御情報に含まれている前記サイズ情報にあるサイズを設定し、読み取った前記可達情報が前記可達状態である場合に、前記ログバッファにおける前記順序に従い、前記サイズ情報が所定の条件を満たすことを表す第2制御情報を特定し、特定した第2制御情報に含まれている可達情報を前記可達状態に設定する可達情報設定手段と
を備える制御情報設定装置。
Whether the log information and the reachable state representing the state where it is possible to refer to the log information that follows the log information in a predetermined order, or the unreachable state representing the state where it is impossible to refer A log buffer in which storage areas that can be stored are logically arranged in the above order in a state in which they are associated with reachable information representing H, and control information including size information representing the size of the log information;
In the log buffer, the first control information is recorded from a first control information recorded in a storage area representing a boundary between a storage area to which the recording process for recording the log information has been allocated and a storage area to which the recording process is not allocated. The delivery information is read, the unreachable state is set to the reachable information included in the first control information, and a size is set to the size information included in the first control information, When the reachable information is in the reachable state, the second control information specifying that the size information satisfies the predetermined condition is specified according to the order in the log buffer, and the specified second control information is specified. And a deliverable information setting unit configured to set the included deliverable information to the deliverable state.
前記制御情報は、さらに、前記ログ情報を記憶する処理が実行されている状態を表す処理中状態であるか、または、前記ログ情報を記憶する処理が実行されていない状態を表す非処理中状態であるかを表す記録操作状態情報を含み、
前記第1制御情報に含まれている前記記録操作状態情報に、前記処理中状態を設定し、前記第1制御情報に関する前記ログ情報を、前記ログバッファに記録する処理が完了した場合に、前記第1制御情報に含まれている前記記録操作状態情報に、前記非処理中状態を設定するログ情報保存手段を
さらに備える請求項1に記載の制御情報設定装置。
Further, the control information is in the processing state representing a state in which the process of storing the log information is being executed, or in the non-processing state representing a state in which the process of storing the log information is not being performed. Contains recording operation status information indicating
The processing in progress is set in the recording operation state information included in the first control information, and the process of recording the log information related to the first control information in the log buffer is completed. The control information setting device according to claim 1, further comprising: log information storage means for setting the non-processing state to the recording operation state information included in the first control information.
前記制御情報は、さらに、前記ログ情報を記憶する処理が完了前の状態を表す未完了状態であるか、または、前記ログ情報を記憶する処理が完了した状態を表す完了状態であるかを表す記録操作完了情報を含み、
前記ログ情報保存手段は、前記あるサイズのログ情報を、前記可達情報設定手段によって読み取った前記境界が表す第1記憶領域に記録した後に、記第2制御情報から記記録操作完了情報を読み取り、読み取った前記記録操作完了情報が前記未完了状態である場合に、前記ログバッファにおいて、前記ログバッファにおける前記順序に従い、前記サイズ情報が前記所定の条件を満たす、または、記録操作状態情報が前記処理中状態であることを表す第3制御情報を特定し、特定した前記第3制御情報に含まれている前記記録操作完了情報に、前記未完了状態を設定する
請求項2に記載の制御情報設定装置。
The control information further indicates whether the process of storing the log information is in an uncompleted state representing a state before completion, or in a completed state representing a state in which the process of storing the log information is completed. Includes recording operation complete information,
The log information storage means, the log information of the certain size, after recording the first storage area in which the boundary representing read by the reachability information setting means, before Symbol before type recording operation completion information from the second control information Is read, and when the read recording operation completion information is in the uncompleted state, the size information satisfies the predetermined condition in the log buffer according to the order in the log buffer, or the recording operation state information The third control information specifying that the current processing state is being specified is specified, and the uncompleted state is set in the recording operation completion information included in the specified third control information. Control information setting device.
前記ログバッファにおいて、前記第2制御情報を記録した位置を特定する可達位置情報更新手段
をさらに備え、
前記ログ情報保存手段は、前記位置が、前記境界と前記あるサイズとを加算した値以上になるまで待ち合わせ処理を実行する
請求項3に記載の制御情報設定装置。
The log buffer further includes reachable position information updating means for specifying a position where the second control information is recorded.
The control information setting device according to claim 3, wherein the log information storage means executes a queuing process until the position becomes equal to or more than a value obtained by adding the boundary and the certain size.
前記ログバッファにおいて、前記第3制御情報を記録している位置を特定する完了位置更新手段
をさらに備える請求項3または請求項4に記載の制御情報設定装置。
5. The control information setting device according to claim 3, further comprising: a completion position update unit that specifies a position at which the third control information is recorded in the log buffer.
複数の前記ログ情報保存手段が入出力可能なメモリ
を備え、
可達位置情報更新手段は、特定した前記位置を前記メモリに格納する
請求項4に記載の制御情報設定装置。
It has a memory that can be input to and output from the plurality of log information storage means.
The control information setting device according to claim 4, wherein the reachable position information updating means stores the specified position in the memory.
前記ログバッファは、不揮発性記録媒体における記憶領域である
請求項1乃至請求項6のいずれかに記載の制御情報設定装置。
The control information setting device according to any one of claims 1 to 6, wherein the log buffer is a storage area in a non-volatile recording medium.
情報処理装置によって、ログ情報と、そのログ情報に所定の順序で続くログ情報を参照することが可能な状態を表す可達状態であるか、または、参照することが不可能な状態を表す不可達状態であるかを表す可達情報、及び、前記ログ情報のサイズを表すサイズ情報を含む制御情報とを関連付けた状態で記憶可能な記憶領域が論理的に前記順序に並べられたログバッファに関して、
前記ログバッファにおいて、前記ログ情報を記録する記録処理を割り当て済みの記憶領域と、前記記録処理が割り当てられていない記憶領域との境界を表す記憶領域に記録されている第1制御情報から前記可達情報を読み取り、前記第1制御情報に含まれている前記可達情報に前記不可達状態を設定するとともに、前記第1制御情報に含まれている前記サイズ情報にあるサイズを設定し、読み取った前記可達情報が前記可達状態である場合に、前記ログバッファにおける前記順序に従い、前記サイズ情報が所定の条件を満たすことを表す第2制御情報を特定し、特定した第2制御情報に含まれている可達情報を前記可達状態に設定する制御情報設定方法。
The information processing apparatus is in a reachable state representing the log information and the state in which the log information following the log information can be referred to in a predetermined order, or the state in which the information can not be referred to With regard to the log buffer in which storage areas storable in a state in which they are associated with the reachable information and the control information including the size information indicating the size of the log information are logically arranged in the order ,
In the log buffer, the first control information is recorded from a first control information recorded in a storage area representing a boundary between a storage area to which the recording process for recording the log information has been allocated and a storage area to which the recording process is not allocated. The delivery information is read, the unreachable state is set to the reachable information included in the first control information, and a size is set to the size information included in the first control information, When the reachable information is in the reachable state, the second control information specifying that the size information satisfies the predetermined condition is specified according to the order in the log buffer, and the specified second control information is specified. A control information setting method for setting the included reachable information to the reachable state.
ログ情報と、そのログ情報に所定の順序で続くログ情報を参照することが可能な状態を表す可達状態であるか、または、参照することが不可能な状態を表す不可達状態であるかを表す可達情報、及び、前記ログ情報のサイズを表すサイズ情報を含む制御情報とを関連付けた状態で記憶可能な記憶領域が論理的に前記順序に並べられたログバッファに関して、
前記ログバッファにおいて、前記ログ情報を記録する記録処理を割り当て済みの記憶領域と、前記記録処理が割り当てられていない記憶領域との境界を表す記憶領域に記録されている第1制御情報から前記可達情報を読み取り、前記第1制御情報に含まれている前記可達情報に前記不可達状態を設定するとともに、前記第1制御情報に含まれている前記サイズ情報にあるサイズを設定し、読み取った前記可達情報が前記可達状態である場合に、前記ログバッファにおける前記順序に従い、前記サイズ情報が所定の条件を満たすことを表す第2制御情報を特定し、特定した第2制御情報に含まれている可達情報を前記可達状態に設定する可達情報設定機能
をコンピュータに実現させるデータベース管理プログラム。
Whether the log information and the reachable state representing the state where it is possible to refer to the log information that follows the log information in a predetermined order, or the unreachable state representing the state where it is impossible to refer With regard to a log buffer in which storage areas that can be stored are logically arranged in the above-described order in association with reachable information representing the control information and control information including size information representing the size of the log information.
In the log buffer, the first control information is recorded from a first control information recorded in a storage area representing a boundary between a storage area to which the recording process for recording the log information has been allocated and a storage area to which the recording process is not allocated. The delivery information is read, the unreachable state is set to the reachable information included in the first control information, and a size is set to the size information included in the first control information, When the reachable information is in the reachable state, the second control information specifying that the size information satisfies the predetermined condition is specified according to the order in the log buffer, and the specified second control information is specified. A database management program that causes a computer to realize a deliverable information setting function that sets the included deliverable information to the reachable state.
JP2015138761A 2015-07-10 2015-07-10 Control information setting apparatus, control information setting method, and control information setting program Active JP6536237B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015138761A JP6536237B2 (en) 2015-07-10 2015-07-10 Control information setting apparatus, control information setting method, and control information setting program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015138761A JP6536237B2 (en) 2015-07-10 2015-07-10 Control information setting apparatus, control information setting method, and control information setting program

Publications (2)

Publication Number Publication Date
JP2017021576A JP2017021576A (en) 2017-01-26
JP6536237B2 true JP6536237B2 (en) 2019-07-03

Family

ID=57890082

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015138761A Active JP6536237B2 (en) 2015-07-10 2015-07-10 Control information setting apparatus, control information setting method, and control information setting program

Country Status (1)

Country Link
JP (1) JP6536237B2 (en)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05151033A (en) * 1991-11-29 1993-06-18 Fujitsu Ltd Logging control method
JP2004078461A (en) * 2002-08-14 2004-03-11 Access:Kk Log recording method, file management program, and information device
JP4186602B2 (en) * 2002-12-04 2008-11-26 株式会社日立製作所 Update data writing method using journal log
US7483911B2 (en) * 2004-08-31 2009-01-27 International Business Machines Corporation Sending log records directly from log buffer
JP5212580B2 (en) * 2011-04-15 2013-06-19 日本電気株式会社 Log information recording system, apparatus, method and program
US8832022B2 (en) * 2011-05-06 2014-09-09 Nec Corporation Transaction processing device, transaction processing method and transaction processing program

Also Published As

Publication number Publication date
JP2017021576A (en) 2017-01-26

Similar Documents

Publication Publication Date Title
US8056080B2 (en) Multi-core/thread work-group computation scheduler
US8589447B1 (en) Efficient file system scan for shared data blocks
US9280578B1 (en) Combining transactions in a metadata transaction log
CN107526535B (en) Method and system for managing storage system
US20190155959A1 (en) Key-value storage device and method of operating key-value storage device
EP2798461B1 (en) Low latency cluster computing
JP7088897B2 (en) Data access methods, data access devices, equipment and storage media
CN109791510B (en) Managing data flows in heterogeneous computing
US11537530B2 (en) Non-volatile storage controller with partial logical-to-physical (L2P) address translation table
US10067763B2 (en) Handling unaligned load operations in a multi-slice computer processor
US8745350B2 (en) Temporary VTOC locking during defragmentation
KR20230123761A (en) Accelerator system for training deep neural network model using nand flash memory and operating method thereof
US8990589B1 (en) System and method for robust full-drive encryption
US9542111B2 (en) Writable clone data structure
US10402101B2 (en) System and method for using persistent memory to accelerate write performance
US10984150B2 (en) Harness design change record and replay
JP6536237B2 (en) Control information setting apparatus, control information setting method, and control information setting program
CN120086009A (en) Video memory allocation method, device, equipment and medium
US9519671B1 (en) Folding pair of adjacent indices based on optimum quantity of induces for parallel processing
US20050071606A1 (en) Device, system and method of allocating spill cells in binary instrumentation using one free register
US7398329B2 (en) Pipelined I/O execution
RU2829301C1 (en) Data processing method and system
US20240303051A1 (en) Method and system for compiling applications
KR20210058613A (en) Locking method for parallel i/o of a single file in non-volatiel memeroy file system and computing device implementing the same
US20090276603A1 (en) Techniques for efficient dataloads into partitioned tables

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180615

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190319

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190329

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190520

R150 Certificate of patent or registration of utility model

Ref document number: 6536237

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150