JP2017021576A - Control information setting device, control information setting method, and control information setting program - Google Patents

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

Info

Publication number
JP2017021576A
JP2017021576A JP2015138761A JP2015138761A JP2017021576A JP 2017021576 A JP2017021576 A JP 2017021576A JP 2015138761 A JP2015138761 A JP 2015138761A JP 2015138761 A JP2015138761 A JP 2015138761A JP 2017021576 A JP2017021576 A JP 2017021576A
Authority
JP
Japan
Prior art keywords
information
log
control information
reachable
state
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.)
Granted
Application number
JP2015138761A
Other languages
Japanese (ja)
Other versions
JP6536237B2 (en
Inventor
堀川 隆
Takashi Horikawa
隆 堀川
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)

Abstract

PROBLEM TO BE SOLVED: To provide a control information setting device capable of processing a processing request in a short period of time.SOLUTION: A control information setting device 151 includes a reachable information setting part 152, and a log buffer 153. In the log buffer, storage areas which can store log information, and control information including reachable information representing whether or not log information following the log information in a prescribed sequence can be referred to and size information of the log information while the log information is associated with the control information are arranged in a prescribed sequence. The reachable information setting part reads reachable information from a first control information recorded in a storage area representing a boundary between a storage area with recording processing of the log information have been allocated and a storage area unallocated with the recording processing, sets an unreachable state in the reachable information, sets a size existing in the size information, and specifies second control information representing that the size information satisfies a prescribed condition according to a sequence in the log buffer to set a reachable state in the case that the read reachable information is reachable.SELECTED DRAWING: Figure 16

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 to a file, a database (hereinafter, sometimes referred to as “DB” in this application), etc., an information system that requires high reliability uses information related to a write operation as log information. A method of recording in a log buffer different from that of a file or database is often adopted. For example, an information system that requires high reliability is a system that is not allowed to lose written information. 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 Literature 1 includes a shared DB data management unit, a data processing unit, and a prefetching unit. In response to a request for the data processing unit to acquire data, the shared DB data management unit executes processing for acquiring the data after executing exclusive control relating to the data. The shared DB data management unit further reads data that is a prefetch target in response to a request that the prefetch unit prefetches the data.

特許文献2に開示されたデータベース管理システムは、共有DBデータ管理部と、データ処理部と、先読み部とを有する。共有DBデータ管理部は、先読み部がデータを参照する要求に応じて、該要求に関連付けされた処理、及び、該要求に関連付けされた下限値を特定する。共有DBデータ管理部は、現在の時刻と、最新の入出力処理が実行された時刻との間の期間が、特定した下限値よりも短い場合に、該期間が特定した下限値以上になるまで、特定された処理を中断する。共有DBデータ管理部は、さらに、データ処理部がデータを取得する要求に応じて、該データに関する排他制御と、該データの取得処理とを実行する。   The database management system disclosed in Patent Literature 2 includes a shared DB data management unit, a data processing unit, and a prefetching unit. The shared DB data management unit specifies a process associated with the request and a lower limit value associated with the request in response to the request for the prefetching unit to refer to the data. When the period between the current time and the time when the latest input / output process is executed is shorter than the specified lower limit value, the shared DB data management unit until the period exceeds the specified lower limit value , Interrupt the specified process. The shared DB data management unit further executes exclusive control related to the data and the data acquisition process 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 device disclosed in Patent Document 3 has a plurality of computers that manage a data set 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 to store the first data, and further creates first duplicate data that is a duplicate of the first data. The first computer calculates the number of times the first duplicate data is transmitted to the second computer based on the success probability that the duplicate data can be stored in the second computer. The first computer transmits the first copy data to the second computer for the calculated number of times.

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

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

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

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

計算機システムを構成するメモリ素子として、DRAMとは異なるメモリ素子が提供されている。尚、DRAMは、Dynamic_Random_Access_Memoryの略称を表す。該メモリ素子は、以下の特性を有する、すなわち、
計算機システムに電源が供給されなくなった場合であっても、電源が供給されていた期間に保持していたデータが消失しないという特性(不揮発性)、
中央演算処理装置(CPU)に対する機械語命令により、直接、該メモリ素子にデータを読み書きできるという特性(バイトアドレッサブル)。
Memory elements different from DRAMs are provided as memory elements constituting the 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 data that was retained during the period when power was supplied (non-volatile),
A characteristic (byte addressable) that data can be directly read from and written to the memory element by a machine language instruction to the central processing unit (CPU).

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

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

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

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

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

該ログ領域確保操作は、たとえば、次に示す機能1及び機能2によって実現することができる。すなわち、
機能1:ログバッファに関する制御情報(たとえば、ログバッファの末尾を示すポインタ)を更新する機能、
機能2:該ログ情報のサイズを、確保した記憶領域のうちレングス領域に記録し、格納処理中であることを表す値を、確保した記憶領域のうちフラグ領域に記録する。
The log area securing operation can be realized by, for example, the following function 1 and function 2. That is,
Function 1: A function for updating control information related to 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 the storage process is being performed 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 the contents at a certain temporary point (checkpoint) of the database and an operation history after the checkpoint. Refer to log information. The database management system recovers data up to the checkpoint based on the referenced file, and then executes a write operation on the referenced log information on the file, immediately before the occurrence of the failure. Restore the contents of the database.

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

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

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_de_13_E_E_E_E_E_E_E_E_E_E_E_E_E_E_E_E_E_E_E_E_E_E_E_E_E_E_E 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 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, A-M, (http://www.tel.com/Fs.

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

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

しかし、データベース管理システムが、排他制御権を有している期間内において、逐次的に処理を実行しなければならないので、たとえば、特許文献1乃至特許文献3、非特許文献1、及び、非特許文献2に開示された装置は、処理効率が低下してしまう。   However, since the database management system must sequentially execute processing within a period during which it has exclusive control rights, for example, Patent Document 1 to Patent Document 3, Non-Patent Document 1, and Non-patent 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 device or the like that efficiently sets control information in a storage area so that a processing request for a log buffer can be processed in a short 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 is in a reachable state indicating that it is possible to refer to the log information that follows the log information in a predetermined order, or is an unreachable state indicating a state in which it cannot be referred to A log buffer in which storage areas that can be stored in association with control information including size information indicating the size of the log information and the reachable information indicating the size of the log information are logically arranged in the order;
In the log buffer, the first control information recorded in a storage area that represents a boundary between a storage area to which the recording process for recording the log information has been assigned and a storage area to which the recording process is not assigned is enabled from the first control information. Read information, set the unreachable state in the reachable information included in the first control information, set the size in the size information included in the first control information, and read When the reachable information is in the reachable state, second control information indicating that the size information satisfies a predetermined condition is specified according to the order in the log buffer, and the specified second control information Reachability information setting means for setting the included reachability information to the reachable state.

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

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

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

本発明の第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 a 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 a process in the database management apparatus concerning 1st Embodiment. 制御情報の一例を概念的に表す図である。It is a figure showing an example of control information notionally. データベース管理装置における処理の流れを示すフローチャートを表す。3 is a flowchart illustrating a processing flow in the database management apparatus. 第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 a 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 a 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 a 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 reachable position information update part which concerns on 1st Embodiment. 第1の実施形態に係る可達位置情報更新部における処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the process in the reachable position information update part which concerns on 1st Embodiment. 第1の実施形態に係る完了位置情報更新部における処理の流れを表すフローチャートである。It is a flowchart showing the flow of the process in the completion position information update part which concerns on 1st Embodiment. 本発明の第2の実施形態に係るデータベース管理装置が有する構成を示すブロック図である。It is a block diagram which shows the structure which the database management apparatus concerning the 2nd Embodiment of this invention has. 第2の実施形態に係る制御情報設定装置151における処理の流れを示すフローチャートである。It is a flowchart which shows the flow of a process in the control information setting apparatus 151 which concerns on 2nd Embodiment. 本発明の各実施形態に係るデータベース管理装置を実現可能な計算処理装置のハードウェア構成例を、概略的に示すブロック図である。It is a block diagram which shows roughly the example of hardware constitutions of the calculation processing apparatus which can implement | achieve the database management apparatus concerning each embodiment of this invention.

まず、本発明の各実施形態に係るデータベース管理装置における機能の一部を実現可能なマルチプロセッサ命令について説明する。マルチプロセッサ命令は、たとえば、非特許文献3に、米国インテル社のx86プロセッサに関する命令である「cmpxchg」命令が開示されている。尚、「cmpxchg」命令は、Compare_and_Exchange命令を表す。「cmpxchg」命令を、Compare_and_Swap(Cas)命令と称することもある。尚、機能の一部を実現可能なマルチプロセッサ命令は、上述した例に限定されない。   First, multiprocessor instructions capable of realizing a part of functions in the database management apparatus according to each embodiment of the present invention will be described. As for the 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 be referred to as a Compare_and_Swap (Cas) instruction. Note that multiprocessor instructions capable of realizing a part of the functions are 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, position information indicating the position of a certain storage area, a first value, and three operands of a second value. The position information is, for example, a name representing a register in the database system (eax register, rax register in the case of 64 bit_mode, and so on). For convenience of explanation, it is assumed that the position information is an eax register. The “cmpxchg” instruction is an instruction for executing a series of operations shown in the process 1 and the process 3 atomically (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 in which the first value was stored.
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 a certain processor cannot execute processing on the storage area while the processor executes a series of processes on the storage area. Indicates processing. For example, the “cmpxchg” instruction guarantees by hardware that another processor does not access the storage area while a certain processor is executing the process 1 to process 3 on the storage area. Indicates that the process is in progress.

次に、本発明を実施する実施形態について図面を参照しながら詳細に説明する。   Next, embodiments for carrying out 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 the 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 includes 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 includes a reachable position information update unit 105 and a completed 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台でなくともよい。   The database management apparatus 101 illustrated in FIG. 1 has three transaction execution units, but the number is not necessarily limited to three.

ログバッファ112は、たとえば、不揮発性を有するメモリ素子を表すNVRAMを用いて実現される。図2を参照しながら、ログバッファ112が有する構成について詳細に説明する。図2は、第1の実施形態に係るログバッファ112が有する構成を概念的に示す図である。   The log buffer 112 is realized using, for example, NVRAM representing 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 illustrating the configuration 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 at least one log information set in which, for example, log information output in a write operation related to log information and control information related to the log information are associated with each other. In the example illustrated in FIG. 2, the log buffer 112 includes a first log information set representing information associated with log information 1 and control information 1, and second log information representing information associated with log information 2 and 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 log buffer 112 stores control information and log information associated with the control information at least logically in the order recorded. 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の実施形態に係るログ情報が有する構成を示すブロック図である。   The control information regarding log information will be described in detail with reference to FIG. FIG. 3 is a block diagram illustrating a configuration of log information according to the first embodiment.

制御情報は、可達情報と、記録操作完了情報と、記録操作状態情報と、サイズ(長さ、レングス、大きさ)情報とを含む。すなわち、制御情報は、可達情報を含むデータ構造を有する。   The control information includes reachability 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 the log information sets positioned in the subsequent order with respect to each log information set in the log buffer 112. That is, the reachable information is in a reachable state representing a state in which it is possible to refer to a log information set subsequent to a certain log information set in a predetermined order in the log buffer 112 or can be referred to. This is information indicating whether it is an unreachable state representing an impossible state. For example, the state in which the log information set positioned in the rear order can be referred to is 1 (valid), and the value incapable of referring to the log information set positioned in the back order is 0 (invalid). . The reachable information is information (for example, a flag) that is referred to when determining whether or not to update 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”. Let us say that a state in which log information sets positioned in the subsequent order can be referred to as a “reachable state”. In addition, a state in which it is impossible to refer to log information sets positioned in the subsequent order is referred to as an “unreachable state”. The variable “rflag” represents a specific storage area in the log buffer 112 or the memory 108. Note that the reachable information may be expressed as, for example, a reachable state control flag. For example, the reachable information is in a reachable state before the process related to the log information associated with the control information including the reachable information is assigned, and is in an 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 processing for recording the 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 1 (valid), and the value is 0 (invalid) when the process is after the process is completed. The recording operation completion information is information (for example, a flag) referred to when determining whether or not to update completion position information (described later). In the following description, it is assumed that a storage area in which recording operation completion information can be stored is represented as a variable “cflag”. A state before the process is completed is represented as an “incomplete state”. Further, the state after the completion of the processing is represented as “completion state”. For example, the variable “cflag” represents a specific storage area in the log buffer 112 or the memory 108. Note that the recording operation completion information may be represented as a completion control flag, for example. For example, the recording operation completion information represents an incomplete state when the processing related to the log information associated with the control information including the recording operation completion information is before completion, and represents a completion state after completion.

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

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

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

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

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

先頭位置情報は、ログバッファ112において、まだ、ログ情報を記録する処理が割り当てられていないログ情報セットを記憶可能な位置を表す。以降においては、説明の便宜上、ログバッファ情報記憶部111のうち、先頭位置情報を記憶可能な記憶領域を変数「TAIL」と表すとする。   The head position information represents a position in the log buffer 112 where a log information set to which a process for recording log information has not yet been assigned can be stored. Hereinafter, for convenience of explanation, it is assumed that a storage area in the log buffer information storage unit 111 that can store 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 this embodiment, it is assumed that the log buffer 112 stores N log information sets. The log identifier that can uniquely identify the log information is assumed to be the order of the log information set in the log buffer 112. For example, in the example shown in FIG. 2, the log information I (where I represents a natural number) and the I-th log information set representing information associated with the control information I are represented. In addition, the head position information is the position closest to the storage area in which N log information sets are stored among the areas in which a new log information set can be stored (in this example, the (N + 1) th log Information set).

以降の説明において、さらに、(N+1)番目のログ情報セットに含まれている制御情報に関して、変数「rflag」は1(すなわち、可達状態)を記憶しており、変数「cflag」は1(すなわち、未完了状態)を記憶しているとする。さらに、該制御情報に関して、変数「inCopy」は、0(すなわち、非処理中状態)を記憶しており、変数「length」は、0を記憶しているとする。   In the following description, regarding the 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 ( That is, it is assumed that the incomplete state is stored. Furthermore, regarding the control information, it is assumed that the variable “inCopy” stores 0 (that is, the 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 executed on the database (step S101).

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

先頭位置算出部103は、トランザクション実行部107が出力したサイズ情報を入力する。先頭位置算出部103は、複数のトランザクション実行部に共有されているログバッファ情報記憶部111のうち、先頭位置情報を記憶している記憶領域(たとえば、変数「TAIL」)に関する処理を優先的に実行することができる排他制御権を取得する(ステップS103)。先頭位置算出部103は、取得した排他制御権を有している期間内に、変数「TAIL」に格納されている先頭位置情報を読み取る(ステップS104)。   The head position calculation unit 103 receives the size information output from the transaction execution unit 107. The head position calculation unit 103 preferentially performs processing related to a storage area (for example, the variable “TAIL”) that stores head position information among the log buffer information storage units 111 shared by a plurality of transaction execution units. An exclusive control right that can be executed is acquired (step S103). The head position calculation unit 103 reads the head position information stored in the variable “TAIL” within the period during which the exclusive control right is acquired (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 exclusive control right to acquire the value calculated as a result of the addition. Within the period, it is stored in the variable “TAIL” in the log buffer information storage unit 111 (step S106). The head position calculation unit 103 releases the acquired exclusive control right (step S107). The head position calculation unit 103 outputs the head position information read in step S104 to the log information storage unit 104 as first head information (step S108).

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

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

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

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

ログ情報保存部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 the storage area starting from the 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 ( Step S116). The log information storage unit 104 includes control information (hereinafter referred to as “third control information” including the reachable information in the control information read in step S116, the completion status, the non-processing status, and the size of the log information in the control information. Is expressed) (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 an incomplete state (YES in step S118), the log information storage unit 104 performs a process (described later) for updating the completion position information (described later). The updating unit 106 is instructed (step S119). When the recording operation completion information stored in the memory 108 in step S116 is not in an incomplete state (NO in step S118), the log information storage unit 104 performs processing for updating the completion position information to the completion position information update unit 106. 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 input first head information and a value obtained by adding the input size (that is, second head information) with the reachable position information stored in the log buffer information storage unit 111. . When 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 for recording the log information. In contrast, 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. Processing is executed (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, it is assumed that the control information represents data that can be handled by an atomic operation by a multiprocessor instruction. Further, an atomic operation by a multiprocessor instruction can be realized by using, for example, the above-described “cmpxchg” instruction. In this example, it is assumed that the process for acquiring the exclusive control right is represented as “LockAcquire”, and the process for releasing the acquired exclusive control right is represented as “LockRelease”.

排他制御権を取得する処理、及び、排他制御権を解放する処理は、マルチプロセッサ命令を介したアトミック操作を用いて実装されることが多い。尚、排他制御権を取得する処理、及び、取得した排他制御権を解放する処理を実現する方法には、様々な方法がある。ここでは、排他制御権を実現する方法に関する詳細な説明を省略する。   The process for acquiring the exclusive control right and the process for 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, a 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 up to the Nth log information set in the log buffer 112, and then refers to the database according to the present embodiment with reference to an example in which no new transaction is processed. Processing in the management apparatus 101 will be described. 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 in which 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であるとする。   In the example, as shown in FIG. 7, regarding the control information included in the (N + 1) th log information set, the variable “rflag” that can record the reachable information is set to the reachable state (ie, Suppose that 1) is recorded. FIG. 7 is a diagram conceptually illustrating an example of the control information. It is assumed that the variable “cflag” that can record the recording operation completion information records an incomplete state (that is, 1). Regarding the control information, it is assumed that the variable “inCopy” that can record the recording operation state information records a non-processing state (that is, 0). It is assumed that 0 is recorded in the variable “length” in which the size information can be recorded. That is, in the control information included in the (N + 1) th log information set, the reachable information is in a reachable state, and the recording operation completion information is in an uncompleted state. In the control information included in the (N + 1) th log information set, the recording operation state information is in a non-processing state, and the size information is 0.

各プロセスは、共有メモリ(図1に不図示)における領域に割り当てられているとする。すなわち、該共有メモリは、第I(ただし、1≦I≦n)プロセスに関する記憶領域を含む。第Iプロセスは、トランザクション実行部107によるトランザクション処理の実行に伴って発生するログ情報を、第Iプロセスに割り当てられた記憶領域におけるログ情報領域に格納する。   Assume that each process is assigned 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 I process stores the log information generated when the transaction execution unit 107 executes the transaction process in the log information area in the storage area allocated to the I process.

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

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

ステップS125及びステップS126に示す処理について、処理の概要を説明する。   An overview of the processing in steps S125 and S126 will be described.

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

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

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

入力1:記憶領域に記録するログ情報が格納されているプロセス固有メモリにおける位置(第1位置)を示す情報、
入力2:該ログ情報のサイズを示すサイズ情報、
入力3:ログ領域確保操作等により確保された記憶領域の位置(第2位置)を示す情報。
Input 1: Information indicating a position (first position) in the process specific memory in which 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位置を起点とする記憶領域に記録する。   For example, 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 the received size by processing according to the copy function. Record.

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

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

制御情報に関して、可達情報は、たとえば、ログバッファ112における記憶領域を表す変数「rflag」に格納されているとする。記録操作完了情報は、たとえば、ログバッファ112における記憶領域を表す変数「cflag」に格納されているとする。記録操作状態情報は、たとえば、ログバッファ112における記憶領域を表す変数「inCopy」に格納されているとする。サイズ情報は、たとえば、ログバッファ112における記憶領域を表す変数「length」に格納されているとする。   Regarding the control information, it is assumed that the reachable information is stored in a variable “rflag” representing a storage area in the log buffer 112, for example. For example, it is assumed that the recording operation completion information is stored in a variable “cflag” representing 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” representing a storage area in the log buffer 112. For example, it is assumed that the size information is stored in a variable “length” representing 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” representing a storage area in the log buffer information storage unit 111. The completion position information is assumed to be stored in a variable “FinishedUpTo” representing a storage area in the log buffer information storage unit 111. The head position information is assumed to be stored in a variable “TAIL” representing 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) executed by the head 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 head position calculation unit 103 acquires the exclusive control right for the variable “TAIL” in which the head position information is stored in the log buffer information storage unit 111 (step S131). The head position calculation unit 103 reads the head position information stored in the variable “TAIL” within the period during which the exclusive control right is acquired (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 calculates the calculated value within a period during which the exclusive control right is acquired. The data is stored in the variable “TAIL” in the buffer information storage unit 111 (step S135). The head 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 head information) to the log information storage unit 104 (step S136). 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, in the log buffer 112, first head information indicating a storage area to which no log information is allocated, and further relates to the head position information. Update the storage area. In the processes shown in steps S131 to S137, the head position calculation unit 103 reads the head position information by executing a process similar to the process instructed by the “reserve” function, for example. The head position calculation unit 103 acquires the exclusive control right by executing a process similar to the process instructed by the function “Lock_Acquire”, for example.

図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 processing 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 receives the position information output from the transaction execution unit 107, the size information output from the transaction execution unit 107, and the first head information output from 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 stores the input first head information in the variable “myLSN”. To store.

ログ情報保存部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 to thereby add the head position information (that is, “second head information”) where the log information set can be recorded next. 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 (ie, “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, in the log buffer 112, the log information set recorded in the storage area represented by the input first head information, and the control information included in the log information set (hereinafter, (Referred to as “first 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 sets the first control information in the read log information set as a 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 reachable information in the memory 108. More specifically, the log information storage unit 104 reads the reachability information stored in the variable “rflag” out of the first control information stored in the variable “oldv”, and converts the read reachability information into the variable Stored 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 controls the control information including the unreachable state, the recording operation completion information included in the input control information, the processing state, and the size indicated by the size information of the input log information (hereinafter, , Expressed as “second control information”). 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 in the variable “myLength” in the variable “length” included in the variable “newv” (step S147). Furthermore, the log information storage unit 104 stores a processing state (for example, 1) in a variable “inCopy” included in the variable “newv”. Further, the log information storage unit 104 stores an 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 a process similar to the process executed by the “cas” instruction.

第2制御情報を格納する処理について詳細に説明する。ログ情報保存部104は、入力した第1先頭情報が表す記憶領域に記録されているログ情報セットにおける制御情報(以降、「第3制御情報」と表す)を読み取り、読み取った第3制御情報と、第1制御情報とが一致するか否かを判定する。   The process for storing the second control information will be described in detail. The log information storage unit 104 reads the 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 Then, it is determined whether or not the first control information matches.

第1制御情報と、第3制御情報とが一致する場合に、ログ情報保存部104は、入力した第1先頭情報が表す記憶領域に、第2制御情報を格納する。すなわち、この場合に、ログ情報保存部104は、不可達状態、入力した制御情報に含まれている記録操作完了情報、処理中状態、及び、入力したログ情報のサイズ情報が表すサイズを含む制御情報を、該ログ情報セットが格納されている記憶領域に格納する。   When the first control information matches the third control information, 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 state, and the size indicated by the size information of the input log information. 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(後述)に示す処理を実行する。   When the third control information and the first control information do not match, 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 the reachable information included in the read first control information (corresponding to step S145), or the third control information and the first control information match. Is executed (corresponding to step S149 (described later)). That is, the log information storage unit 104 executes the processes shown in steps S145 to 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 executed atomically. More specifically, a process for executing the same process as that executed by the “cas” instruction will be described.

ログ情報保存部104は、変数「oldv」に格納されている第1制御情報と、記憶領域buffer[myLSN]に格納されている制御情報とが一致しているか否かを判定する(ステップS149)。   The log information storage unit 104 determines whether or not 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)。   The log information storage unit 104 determines that 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に示す処理を実行する。   When the third control information stored in the storage area buffer [myLSN] does not match the first control information stored in the variable “oldv” (NO in step S149). ), 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 executed atomically in the same way as the process executed by the “cas” instruction.

次に、ログ情報保存部104は、ステップS145にて読み取った可達情報が可達状態である場合に、ログバッファ情報記憶部111に格納されている可達位置情報を更新する更新操作(後述)を可達位置情報更新部105に指示する。ログ情報保存部104は、たとえば、第2先頭情報を、可達位置情報更新部105に対して出力することにより、更新操作を可達位置情報更新部105に指示する。ログ情報保存部104は、ステップS145にて読み取った可達情報が可達状態でない場合に、ログバッファ情報記憶部111格納されている可達位置情報を更新する更新操作を可達位置情報更新部105に指示しない。   Next, 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 in a reachable state (described later). ) To the reachable position information update unit 105. For example, the log information storage unit 104 instructs the update 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 performs an update operation for updating the reachable position information stored in the log buffer information storage unit 111 when the reachable information read in step S145 is not in a 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 or not the read reachable information is in a reachable state (step S152). When the reachable information is in a 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. To output to the reachable position information update unit 105 (step S153). In other words, 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 a reachable state (NO in step S152), log information storage unit 104 does not instruct reachable position information update unit 105 for an update operation related to 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 first 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 indicated 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 subsequent to step S154 will be described in detail with reference to FIG. FIG. 11 is a flowchart (2/3) illustrating 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)。   The log buffer information storage unit 111 includes, in the log buffer 112, a log information set recorded in a storage area represented by the input first head information, and control information (hereinafter referred to as “first information”) included in the log information set. 4 control information ”). More specifically, the log information storage unit 104 reads the log information set from the storage area buffer [myLSN] pointed to by the first head information stored in the variable “myLSN”, and the fourth control information in the read log information set Is 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 reads the recorded recording operation completion information, 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 displays control information (hereinafter referred to as “fifth control information”) including an unreachable state, a completed state, a non-processing state, and size information stored in the third control information. ). 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 a non-processing state (for example, 0) indicating that processing is not in progress in the variable “inCopy” in the variable “newv” (step S164), and the variable “cfflag” in the variable “newv”. The completion state (for example, 0) indicating the completion is stored (step S165). Furthermore, the log information storage unit 104 stores an unreachable state (for example, 0) indicating that it is not a reachable state in the variable “rflag” in 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 indicated by the input first head information by executing a process similar to the process executed by the “cas” instruction.

第5制御情報を記録する処理について詳細に説明する。ログ情報保存部104は、入力した第1先頭情報が表す記憶領域に記録されているログ情報セットにおける制御情報(以降、「第6制御情報」と表す)を読み取り、読み取った第6制御情報と、第4制御情報とが一致するか否かを判定する。   The process for recording the fifth control information will be described in detail. The log information storage unit 104 reads the 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 and Then, it is determined whether or not 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 the 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 information indicating that the state is not reachable, completion state, information indicating that recording operation is not being performed, 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先頭情報が表す記憶領域に、作成した制御情報を記録するまで該処理を繰り返す。   When 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, Then, a process of comparing the sixth control information with the fourth control information is executed. 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 that 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 for executing the same process as that executed by the “cas” instruction will be described. The log information storage unit 104 determines whether or not the fourth control information stored in the variable “oldv” matches the sixth control information stored in the storage area buffer [myLSN] (step S167). . When the sixth control information stored in the storage area buffer [myLSN] matches the fourth control information stored in the variable “oldv” (YES in step S167), 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に示す処理を実行する。   When 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 S167), 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 that executed by the “cas” instruction as described above.

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

次に、図12を参照しながら、ステップS170(または、ステップS171)に後続する処理について詳細に説明する。図12は、第1の実施形態に係るログ処理部102における処理の流れを示すフローチャート(3/3)である。   Next, a process subsequent to step S170 (or step S171) will be described in detail with reference to FIG. FIG. 12 is a flowchart (3/3) illustrating 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). When the read reachable position information is less than the second head information, the log information storage unit 104 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 the waiting process.

より具体的に、ログ情報保存部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 head 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 the second head information or more is executed (step S182). For example, the waiting process executed by the log information storage unit 104 can be realized by using a “Sleep” function with the value in the variable “nextLSN” as an input.

図13を参照しながら、可達位置情報更新部105が実行する処理について説明する。図13は、第1の実施形態に係る可達位置情報更新部105における処理を表すフローチャートである。   The process executed by the reachable position information update unit 105 will be described with reference to FIG. FIG. 13 is a flowchart showing processing in the reachable position information update 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 reachable position information update unit 105 inputs 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 update unit 105 reads a 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 reachable position information update unit 105 inputs the second head information output from the log information storage unit 104, and stores the input second head information in a variable “nextLSN”. The reachable position information update unit 105 stores the second head information stored in the variable “nextLSN” in the variable “lsn” (step S191). The reachable position information update 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, the reachable position information update unit 105 in the log buffer 112, the log information set stored in the storage area indicated by the value stored in the first area, and the control information (hereinafter referred to as the log information set). , Expressed as “seventh control information”). More specifically, the reachable position information update 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 reachable position information update 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 reachable position information update unit 105 determines whether or not the size in the size information included in the read seventh control information is zero. When the size is not 0, the reachable location information update unit 105 adds the size included in the seventh control information to the value stored in the first area, and calculates the calculated value as the first value. Store in the area. Thereafter, the processing is repeatedly executed until the size represented by the size information included in the control information becomes zero. On the other hand, the reachable position information update unit 105, when the size is 0, the reachable state indicating that the process has not started yet, the recording operation completion information included in the seventh control information Then, control information including the recording operation state information included in the seventh control information and the size information included in the seventh control information (hereinafter referred to as “eighth 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 includes 0 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 reachable position information update unit 105 determines whether the size stored in the variable “length” included in the seventh control information stored in the variable “oldv” is zero. (Step S195). When the size is not 0 (NO in step S195), the reachable position information update unit 105 adds the value stored in the variable “lsn” and the value stored in the variable “length”. The calculated result is stored in the variable “lsn” (step S196). Thereafter, the reachable position information update unit 105 executes the process shown in step S192. On the other hand, when the size is 0 (YES in step S195), the reachable position information update unit 105 sets the seventh control information stored in the variable “oldv” to the variable “newv”. Further, the reachable state indicating that the process has not yet been started is stored in the variable “newv” as the value of reachable information (step S198). The variable “newv” stores the eighth control information by the processing shown in steps S197 and S198.

可達位置情報更新部105は、「cas」命令によって実行される処理と同様の処理を実行することによって、作成した第8制御情報を、ログバッファ112において、第1領域に格納されている値が指し示す記憶領域に記録する。   The reachable position information update unit 105 executes a process similar to the process executed by the “cas” instruction, and thus the created eighth control information is a value stored in the first area in the log buffer 112. Is recorded in the storage area indicated by.

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

可達位置情報更新部105は、上述したような「cas」命令にて実行される処理と同様の処理を、アトミックに実行する。   The reachable position information update unit 105 atomically executes the same process as that 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 reachable position information update unit 105 reads the ninth control information stored in the storage area buffer [lsn], and reads the ninth control information read and the first control information stored in the variable “oldv”. 7 Control information is compared (step S199). When the seventh control information stored in the variable “oldv” matches the ninth control information (YES in step S199), the reachable position information update unit 105 stores the variable in “newv”. The eighth control information is recorded in the storage area buffer [lsn] (step S201). When the seventh control information stored in the variable “oldv” does not match the ninth control information (NO in step S199), the reachable position information update unit 105 stores the information in the storage area buffer [lsn]. The stored ninth control information is stored in the variable “oldv” (step S200). After that, the reachable position information update unit 105 executes the process shown in step S195. The log information storage unit 104 atomically executes the same process as that executed by the “cas” instruction as described above.

次に、図14を参照しながら、ステップS201に後続する処理について詳細に説明する。図14は、第1の実施形態に係る可達位置情報更新部105における処理の流れを示すフローチャートである。   Next, the processing subsequent to 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 update unit 105 according to the first embodiment.

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

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

図15を参照しながら、完了位置情報更新部106が実行する処理について説明する。図15は、第1の実施形態に係る完了位置情報更新部106における処理を表すフローチャートである。   With reference to FIG. 15, the process executed by the completed position information update unit 106 will be described. FIG. 15 is a flowchart showing processing in the completed position information update 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 update unit 106 inputs the second head information output from the log information storage unit 104, and stores the input second head information in a variable “nextLSN”. The completion position information update 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 update 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 completion position information update 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 update unit 106 reads control information (hereinafter referred to as “tenth control information”) stored in the storage area indicated by the value stored in the second area in the log buffer 112. . The reachable position information update unit 105 determines whether or not the size information included in the read tenth control information is 0, and the recording operation state information in the tenth control information is in the process state. Whether or not is determined.

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

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

・該第10制御情報に含まれている可達情報、
・処理が完了する以前の状態を表している未完了状態、
・該第10制御情報に含まれている記録操作状態情報、
・該第10制御情報に含まれているサイズ情報を含む制御情報。
-Reachable information included in the tenth control information,
・ Incomplete status indicating the status before processing 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 update 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 completion position information update unit 106 stores the tenth control information included in the read control information in the variable “oldv” (step S224). The reachable position information update unit 105 executes at least one of the following determination processes 1 and 2 (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に示した処理を実行する。   The reachable position information update unit 105 determines that the size stored in the variable “length” is not 0 and the value stored in the variable “inCopy” is in a non-processing state (in step S225). 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 reachable position information update unit 105 stores the calculated result in the variable “lsn”. Thereafter, the reachable position information update 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制御情報を格納している。   The reachable position information updating unit 105 determines that the size stored in the variable “length” is 0 or the value stored in the variable “inCopy” is in the process state (in step S225). YES), the tenth control information stored in the variable “oldv” is stored in the variable “newv” (step S227). The reachable position information update unit 105 stores 1 (that is, an incomplete state) in a variable “cflag” included in the variable “newv” (step S228). That is, the variable “newv” stores the eleventh control information.

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

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

完了位置情報更新部106は、上述したような「cas」命令にて実行される処理と同様の処理を、アトミックに実行する。より具体的に、「cas」命令にて実行される処理と同様の処理を実行する処理について説明する。   The completion position information update unit 106 atomically executes the same process as that executed by the “cas” instruction as described above. More specifically, a process for executing the same process as that 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 update unit 106 reads the twelfth control information stored in the storage area buffer [lsn]. When the read twelfth control information matches the tenth control information (YES in step S229), the completion position information update unit 106 stores the eleventh control information stored in the variable “newv” in the storage area. It is recorded in buffer [lsn] (step S231). When the read twelfth control information does not match the tenth control information (NO in step S229), the completion position information update unit 106 stores the twelfth control information stored in the storage area buffer [lsn]. It is stored in the variable “oldv” (step S230). Thereafter, the completion position information update unit 106 executes the process shown in step S225.

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

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

次に、第1の実施形態に係るデータベース管理装置101に関する効果について説明する。   Next, effects related to 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, control information that enables processing requests to the log buffer 112 to be processed in a short time can be efficiently set in the storage area. This is because it is not necessary for the log processing unit 102 to execute an operation for setting the size in the log buffer 112 during the period in which the process is executed within the period in which the exclusive control right is possessed.

上述した効果を奏する理由について、さらに詳細に説明する。   The reason why the above-described effect is achieved 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 within the acquired exclusive control right reads the variable “TAIL” related to the log buffer 112, and then Just update.

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

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

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

また、非特許文献2に開示された装置は、本実施形態に係るデータベース管理装置101と比較して、該システムにおけるログバッファに関する制御が複雑であるという課題を有する。この理由は、たとえば、以下の2つである。すなわち、
○管理対象であるログバッファ112が複数である場合に、各プロセスが、書き込み先のログバッファ112を選択する必要がある、
○ログ情報に対する記録処理が完了したか否かを判定する対象(すなわち、ログバッファ112)が複数ある場合に、障害発生後のデータ復旧操作においては、各ログバッファ112に書き込まれたログ情報の順序を認識し、その順序通りにログ情報を読み込む必要が生じる。
Further, the apparatus disclosed in Non-Patent Document 2 has a problem that the control related to the log buffer in the system is more complicated than the database management apparatus 101 according to the present embodiment. There are two reasons for this, for example. That is,
○ When there are a plurality of log buffers 112 to be managed, each process needs to select a log buffer 112 as a write destination.
○ When there are a plurality of targets for determining whether or not the recording process for log information is completed (that is, the log buffer 112), in the data recovery operation after the failure occurs, the log information written in each log buffer 112 It becomes necessary to recognize the order and read the log information according to 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 be realized by using a non-volatile memory for log information representing a change history related to a 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 on a device such as a disk or SSD that requires input / output operations while synchronizing with the occurrence of the change history. . In addition, according to the database management apparatus 101 according to the present embodiment, it is possible to execute log information recording at high speed, particularly in a many-core system having 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 is possible to determine in a short time whether or not the processing related to the log information set in the log buffer 112 is before completion. This is because the control information includes recording operation completion information indicating whether or not the process is completed. Since the control information includes 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 the input / output processing has been completed for the certain log information set in a short time. Can be judged in 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 a short time up to which log information set the log buffer 112 has started processing. This is because the reachable position information update unit 105 can identify the position of the log information set that is located in the last 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, all the processes for recording the log information set can be surely executed. This is because the waiting process is executed until the processes related to all the log information sets are started based on the position specified by the reachable position information update unit 105. That is, the log processing unit 102 executes the synchronization process at the timing when all the processes related to the log information set are started. Therefore, according to the database management apparatus 101 according to the present embodiment, the next processing can be executed earlier than when the synchronization processing is executed at the timing when all the processing related to the log information set is 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 up to which log information set is in the state before the processing is completed in the log buffer 112. it can. This is because the completion position information update unit 106 identifies the position where the control information whose size stored in the variable “length” is 0 is recorded.

また、ログバッファ情報記憶部111を、複数のトランザクション実行部が参照可能なメモリ108にて実現することによって、より効率的に処理を実行することができる。この理由は、複数のトランザクション実行部が、メモリ108に格納された位置を参照することができるからである。複数のトランザクション実行部は、相互に通信処理を実行することなく、該位置を参照することができる。さらに、本実施形態に係るデータベース管理装置101によれば、メモリ108の処理性能が高いほど、より短期間に該位置を参照することができるという効果も奏する。   Further, by realizing the log buffer information storage unit 111 in the memory 108 that can be referred to by a plurality of transaction execution units, the processing can be executed more efficiently. This is because a plurality of transaction execution units can refer to the positions stored in the memory 108. The plurality of transaction execution units can refer to the position without executing 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 the 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 reachable information setting unit 152 and a log buffer 153.

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

説明の便宜上、ログバッファ153においては、ログ情報に関する処理を割り当て済みの領域(以降、「第1領域」と表す)と、ログ情報に関する処理を割り当てていない領域(以降、「第2領域」と表す)とが区分されているとする。   For convenience of explanation, in the log buffer 153, an area to which processing relating to log information has been assigned (hereinafter referred to as “first area”) and an area to which no processing relating to log information has been assigned (hereinafter referred to as “second area”) Are represented).

次に、図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 a 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, the size of the log information output by the external device, and the log information, for example. The reachable information setting unit 152 controls the control information (hereinafter referred to as “first control area”) recorded in the storage area (hereinafter referred to as “first storage area”) indicated by the input boundary value in the log buffer 153. Information ”) (step S241). The reachable information setting unit 152 sets an unreachable state indicating that it is impossible to refer to the log information set positioned in the subsequent order in the control information recorded in the first storage area (step S1). S242). The reachable information setting unit 152 sets the input size as 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 reachable information setting unit 152 determines whether or not the reachable information included in the read first control information is in a reachable state (step S244). When the reachable information is in a reachable state (YES in step S244), the reachable information setting unit 152 stores the size information included in the control information in the log buffer 153 according to the order related to the log information set. Second control information that satisfies a predetermined condition is specified (step S245). For example, the predetermined condition is whether or not the size information is zero. For example, the reachable information setting unit 152 specifies the second control information from the control information subsequent to 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 reachable information setting unit 152 sets a reachable state in the reachable information included in the specified second control information (step S246).

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

境界値は、たとえば、第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) shown in the first embodiment. The reachable information setting unit 152 can be realized by the function of the log information storage unit 104 (FIG. 1) described above, for example.

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

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

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

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

図18は、第1の実施形態に係るデータベース管理装置及び第2の実施形態に係る制御情報設定装置を実現可能な計算処理装置のハードウェア構成例を概略的に示す図である。計算処理装置20は、中央処理演算装置(Central_Processing_Unit、以降「CPU」と表す)21、メモリ22、ディスク23、及び、不揮発性記録媒体24、通信インターフェース(以降、「通信IF」と表す)27、及び、ディスプレー28を有する。計算処理装置20は、さらに、入力装置25、出力装置26を有してもよい。計算処理装置20は、通信IF27を介して、他の計算処理装置、及び、通信装置と情報を送受信することができる。   FIG. 18 is a diagram schematically illustrating a hardware configuration example 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 device 20 includes a central processing unit (Central_Processing_Unit, hereinafter referred to as “CPU”) 21, a memory 22, a disk 23, a nonvolatile recording medium 24, 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 / receive information to / 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 nonvolatile recording medium 24 is, for example, a compact disk (Compact_Disc) or a digital versatile disk (Digital_Versatile_Disc) that can be read by a computer. The nonvolatile recording 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 retains such a program without being supplied with power, and can be carried. The nonvolatile recording medium 24 is not limited to the above-described medium. Further, the program may be carried via the communication IF 27 and the communication network instead of the nonvolatile recording medium 24.

すなわち、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 data necessary for program execution from the memory 22. When the display is necessary, the CPU 21 displays the output result on the display 28. When output to the outside is necessary, the CPU 21 outputs an output result to the output device 26. When inputting a program from the outside, the CPU 21 reads the program from the input device 25. The CPU 21 controls the database management program (FIGS. 5, 6, 8 to 15) in the memory 22 corresponding to the function (process) represented by each unit shown in FIG. 1 or FIG. The information setting program (FIG. 17) is interpreted and executed. The CPU 21 sequentially executes the processes described in the above embodiments of the present invention.

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

以上、上述した実施形態を模範的な例として本発明を説明した。しかし、本発明は、上述した実施形態には限定されない。すなわち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。   The present invention has been described above using the above-described embodiment as an exemplary example. However, the present invention is not limited to the above-described embodiment. That is, the present invention can apply various modes 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 Unit 112 log buffer 151 control information setting device 152 reachable information setting unit 153 log buffer 20 calculation processing device 21 CPU
22 Memory 23 Disk 24 Non-volatile recording medium 25 Input device 26 Output device 27 Communication IF
28 Display

Claims (10)

ログ情報と、そのログ情報に所定の順序で続くログ情報を参照することが可能な状態を表す可達状態であるか、または、参照することが不可能な状態を表す不可達状態であるかを表す可達情報、及び、前記ログ情報のサイズを表すサイズ情報を含む制御情報とを関連付けた状態で記憶可能な記憶領域が論理的に前記順序に並べられたログバッファと、
前記ログバッファにおいて、前記ログ情報を記録する記録処理を割り当て済みの記憶領域と、前記記録処理が割り当てられていない記憶領域との境界を表す記憶領域に記録されている第1制御情報から前記可達情報を読み取り、前記第1制御情報に含まれている前記可達情報に前記不可達状態を設定するとともに、前記第1制御情報に含まれている前記サイズ情報にあるサイズを設定し、読み取った前記可達情報が前記可達状態である場合に、前記ログバッファにおける前記順序に従い、前記サイズ情報が所定の条件を満たすことを表す第2制御情報を特定し、特定した第2制御情報に含まれている可達情報を前記可達状態に設定する可達情報設定手段と
を備える制御情報設定装置。
Whether the log information is in a reachable state indicating that it is possible to refer to the log information that follows the log information in a predetermined order, or is an unreachable state indicating a state in which it cannot be referred to A log buffer in which storage areas that can be stored in association with control information including size information indicating the size of the log information and the reachable information indicating the size of the log information are logically arranged in the order;
In the log buffer, the first control information recorded in a storage area that represents a boundary between a storage area to which the recording process for recording the log information has been assigned and a storage area to which the recording process is not assigned is enabled from the first control information. Read information, set the unreachable state in the reachable information included in the first control information, set the size in the size information included in the first control information, and read When the reachable information is in the reachable state, second control information indicating that the size information satisfies a predetermined condition is specified according to the order in the log buffer, and the specified second control information A control information setting device comprising: reachability information setting means for setting the included reachability information to the reachable state.
前記制御情報は、さらに、前記ログ情報を記憶する処理が実行されている状態を表す処理中状態であるか、または、前記ログ情報を記憶する処理が実行されていない状態を表す非処理中状態であるかを表す記録操作状態情報を含み、
前記第1制御情報に含まれている前記記録操作状態情報に、前記処理中状態を設定し、前記第1制御情報に関する前記ログ情報を、前記ログバッファに記録する処理が完了した場合に、前記第1制御情報に含まれている前記記録操作状態情報に、前記非処理中状態を設定するログ情報保存手段を
さらに備える請求項1に記載の制御情報設定装置。
The control information is further in a processing state indicating a state in which the processing for storing the log information is being executed, or is in a non-processing state indicating a state in which the processing for storing the log information is not being executed. Recording operation status information indicating whether or not
When the process of setting the in-process state to the recording operation state information included in the first control information and 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 in the recording operation state information included in the first control information.
前記制御情報は、さらに、前記ログ情報を記憶する処理が完了前の状態を表す未完了状態であるか、または、前記ログ情報を記憶する処理が完了した状態を表す完了状態であるかを表す記録操作完了情報を含み、
前記ログ情報保存手段は、前記あるサイズのログ情報を前記第1記憶領域に記録した後に、読み取った前記境界値が表す第1記憶領域に記憶されている前記第2制御情報から、前記記録操作完了情報を読み取り、読み取った前記記録操作完了情報が前記未完了状態である場合に、前記ログバッファにおいて、前記ログバッファにおける前記順序に従い、前記サイズ情報が前記所定の条件を満たす、または、記録操作状態情報が前記処理中状態であることを表す第3制御情報を特定し、特定した前記第3制御情報に含まれている前記記録操作完了情報に、前記完了状態を設定する
請求項2に記載の制御情報設定装置。
The control information further indicates whether the processing for storing the log information is in an incomplete state indicating a state before completion or whether the processing for storing the log information is completed. Including recording operation completion information,
The log information storage means records the certain size of log information in the first storage area, and then, from the second control information stored in the first storage area represented by the read boundary value, the recording operation In the log buffer, the size information satisfies the predetermined condition in accordance with the order in the log buffer, or the recording operation is performed when the recording operation completion information read is in the incomplete state. The third control information indicating that the state information is the processing state is specified, and the completion 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 comprises a reachable position information update 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 unit performs a waiting process until the position is equal to or greater 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 where the third control information is recorded in the log buffer.
複数の前記ログ情報保存手段が入出力可能なメモリ
を備え、
可達位置情報更新手段は、特定した前記位置を前記メモリに格納する
請求項4に記載の制御情報設定装置。
A plurality of log information storage means including an input / output memory;
The control information setting device according to claim 4, wherein the reachable position information update unit 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 nonvolatile recording medium.
ログ情報と、そのログ情報に所定の順序で続くログ情報を参照することが可能な状態を表す可達状態であるか、または、参照することが不可能な状態を表す不可達状態であるかを表す可達情報、及び、前記ログ情報のサイズを表すサイズ情報を含む制御情報とを関連付けた状態で記憶する空間が論理的に前記順序に並べられたデータ構造。   Whether the log information is in a reachable state indicating that it is possible to refer to the log information that follows the log information in a predetermined order, or is an unreachable state indicating a state in which it cannot be referred to A data structure in which the space for storing the information in a state in which the reachable information indicating the size and the control information including the size information indicating the size of the log information are associated with each other is logically arranged in the order. ログ情報と、そのログ情報に所定の順序で続くログ情報を参照することが可能な状態を表す可達状態であるか、または、参照することが不可能な状態を表す不可達状態であるかを表す可達情報、及び、前記ログ情報のサイズを表すサイズ情報を含む制御情報とを関連付けた状態で記憶可能な記憶領域が論理的に前記順序に並べられたログバッファに関して、
前記ログバッファにおいて、前記ログ情報を記録する記録処理を割り当て済みの記憶領域と、前記記録処理が割り当てられていない記憶領域との境界を表す記憶領域に記録されている第1制御情報から前記可達情報を読み取り、前記第1制御情報に含まれている前記可達情報に前記不可達状態を設定するとともに、前記第1制御情報に含まれている前記サイズ情報にあるサイズを設定し、読み取った前記可達情報が前記可達状態である場合に、前記ログバッファにおける前記順序に従い、前記サイズ情報が所定の条件を満たすことを表す第2制御情報を特定し、特定した第2制御情報に含まれている可達情報を前記可達状態に設定する制御情報設定方法。
Whether the log information is in a reachable state indicating that it is possible to refer to the log information that follows the log information in a predetermined order, or is an unreachable state indicating a state in which it cannot be referred to And a log buffer in which storage areas that can be stored in association with control information including size information indicating the size of the log information are logically arranged in the order.
In the log buffer, the first control information recorded in a storage area that represents a boundary between a storage area to which the recording process for recording the log information has been assigned and a storage area to which the recording process is not assigned is enabled from the first control information. Read information, set the unreachable state in the reachable information included in the first control information, set the size in the size information included in the first control information, and read When the reachable information is in the reachable state, second control information indicating that the size information satisfies a predetermined condition is specified according to the order in the log buffer, and the specified second control information A control information setting method for setting the included reachability information to the reachable state.
ログ情報と、そのログ情報に所定の順序で続くログ情報を参照することが可能な状態を表す可達状態であるか、または、参照することが不可能な状態を表す不可達状態であるかを表す可達情報、及び、前記ログ情報のサイズを表すサイズ情報を含む制御情報とを関連付けた状態で記憶可能な記憶領域が論理的に前記順序に並べられたログバッファに関して、
前記ログバッファにおいて、前記ログ情報を記録する記録処理を割り当て済みの記憶領域と、前記記録処理が割り当てられていない記憶領域との境界を表す記憶領域に記録されている第1制御情報から前記可達情報を読み取り、前記第1制御情報に含まれている前記可達情報に前記不可達状態を設定するとともに、前記第1制御情報に含まれている前記サイズ情報にあるサイズを設定し、読み取った前記可達情報が前記可達状態である場合に、前記ログバッファにおける前記順序に従い、前記サイズ情報が所定の条件を満たすことを表す第2制御情報を特定し、特定した第2制御情報に含まれている可達情報を前記可達状態に設定する可達情報設定機能
をコンピュータに実現させるデータベース管理プログラム。
Whether the log information is in a reachable state indicating that it is possible to refer to the log information that follows the log information in a predetermined order, or is an unreachable state indicating a state in which it cannot be referred to And a log buffer in which storage areas that can be stored in association with control information including size information indicating the size of the log information are logically arranged in the order.
In the log buffer, the first control information recorded in a storage area that represents a boundary between a storage area to which the recording process for recording the log information has been assigned and a storage area to which the recording process is not assigned is enabled from the first control information. Read information, set the unreachable state in the reachable information included in the first control information, set the size in the size information included in the first control information, and read When the reachable information is in the reachable state, second control information indicating that the size information satisfies a predetermined condition is specified according to the order in the log buffer, and the specified second control information A database management program for causing a computer to realize a reachable information setting function for setting the reachable information included in 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 true JP2017021576A (en) 2017-01-26
JP6536237B2 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)

Citations (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 system
JP2004078461A (en) * 2002-08-14 2004-03-11 Access:Kk Log recording method, file management program, and information apparatus
JP2004185349A (en) * 2002-12-04 2004-07-02 Hitachi Ltd Update data writing method using journal log
US20060047684A1 (en) * 2004-08-31 2006-03-02 Cherkauer Kevin J Sending log records directly from log buffer
WO2012140916A1 (en) * 2011-04-15 2012-10-18 日本電気株式会社 Log information recording system, device, method, and program
JP2012234509A (en) * 2011-05-06 2012-11-29 Nec Corp Transaction processing device, transaction processing method and transaction processing program

Patent Citations (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 system
JP2004078461A (en) * 2002-08-14 2004-03-11 Access:Kk Log recording method, file management program, and information apparatus
JP2004185349A (en) * 2002-12-04 2004-07-02 Hitachi Ltd Update data writing method using journal log
US20060047684A1 (en) * 2004-08-31 2006-03-02 Cherkauer Kevin J Sending log records directly from log buffer
WO2012140916A1 (en) * 2011-04-15 2012-10-18 日本電気株式会社 Log information recording system, device, method, and program
JP2012234509A (en) * 2011-05-06 2012-11-29 Nec Corp Transaction processing device, transaction processing method and transaction processing program

Also Published As

Publication number Publication date
JP6536237B2 (en) 2019-07-03

Similar Documents

Publication Publication Date Title
JP5420814B2 (en) Storage system having scheme for invalidating data stored in buffer memory and computing system including the same
US8056080B2 (en) Multi-core/thread work-group computation scheduler
JP6799652B2 (en) Methods and devices for processing information
CN109997118B (en) Method for storing large amount of data consistently at super high speed in permanent memory system
US20080066066A1 (en) Task queue suitable for processing systems that use multiple processing units and shared memory
US9514139B2 (en) Space efficient cascading point in time copying
EP2798461B1 (en) Low latency cluster computing
US7962615B1 (en) Multi-system deadlock reduction
US10761781B2 (en) Apparatus and methods for a distributed memory system including memory nodes
WO2020093501A1 (en) File storage method and deletion method, server, and storage medium
JP7088897B2 (en) Data access methods, data access devices, equipment and storage media
US10831481B2 (en) Handling unaligned load operations in a multi-slice computer processor
US9542111B2 (en) Writable clone data structure
CN109791510B (en) Managing data flows in heterogeneous computing
US10402101B2 (en) System and method for using persistent memory to accelerate write performance
US10984150B2 (en) Harness design change record and replay
JP6406027B2 (en) Information processing system, information processing apparatus, and memory access control method
US8990589B1 (en) System and method for robust full-drive encryption
JP6536237B2 (en) Control information setting apparatus, control information setting method, and control information setting program
CN115686769A (en) System, apparatus and method for processing coherent memory transactions according to the CXL protocol
KR20210058613A (en) Locking method for parallel i/o of a single file in non-volatiel memeroy file system and computing device implementing the same
US20230259747A1 (en) Accelerator system for training deep neural network model using nand flash memory and operating method thereof
JP3206580B2 (en) DMA data transfer control method and input / output processing device
CN107025144B (en) Method for writing and reading a data set
KR20230025322A (en) Host, operating method of host and storage system

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 Request for written amendment filed

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