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 PDFInfo
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
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,
特許文献1に開示されたデータベース管理システムは、共有DBデータ管理部と、データ処理部と、先読み部とを有する。共有DBデータ管理部は、データ処理部がデータを取得する要求に応じて、該データに関する排他制御を実行した後に、該データを取得する処理を実行する。共有DBデータ管理部は、さらに、先読み部がデータを先読みする要求に応じて、先読み対象であるデータを読み取る。
The database management system disclosed in
特許文献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
ログバッファに関する制御を取得したプロセスは、確保した記憶領域にログ情報を記録する。 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: 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
非特許文献2は、複数のログバッファを用いることにより、競合を低減する方法を開示している。 Non-Patent Document 2 discloses a method of reducing contention by using a plurality of log buffers.
データベースに対する複数の処理要求を管理するデータベース管理システムは、上述したように、たとえば、ログ情報等、複数の情報処理装置に共有されているログバッファに関して、排他制御を実行する。これは、該データベース管理システムが、複数の情報処理装置に共有されているログバッファに関して、正しく処理を実行する必要があるからである。 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
しかし、データベース管理システムが、排他制御権を有している期間内において、逐次的に処理を実行しなければならないので、たとえば、特許文献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,
そこで、本発明の主たる目的は、ログバッファに対する処理要求を短期間に処理可能にする制御情報を記憶領域に効率よく設定する制御情報設定装置等を提供することである。 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.
まず、本発明の各実施形態に係るデータベース管理装置における機能の一部を実現可能なマルチプロセッサ命令について説明する。マルチプロセッサ命令は、たとえば、非特許文献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
処理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
次に、本発明を実施する実施形態について図面を参照しながら詳細に説明する。 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
本発明の第1の実施形態に係るデータベース管理装置101は、大別して、複数のトランザクション実行部と、ログバッファ112と、ログバッファ情報記憶部111とを有する。複数のトランザクション実行部は、たとえば、トランザクション実行部107、トランザクション実行部109、及び、トランザクション実行部110である。トランザクション実行部107は、ログ処理部102と、メモリ108とを有する。ログ処理部102は、先頭位置算出部103と、ログ情報保存部104とを有する。ログ情報保存部104は、可達位置情報更新部105と、完了位置情報更新部106とを有する。トランザクション実行部109、及び、トランザクション実行部110は、トランザクション実行部107と同様の構成を有することとする。
The
尚、図1に例示したデータベース管理装置101は、3台のトランザクション実行部を有するが、必ずしも、3台でなくともよい。
The
ログバッファ112は、たとえば、不揮発性を有するメモリ素子を表すNVRAMを用いて実現される。図2を参照しながら、ログバッファ112が有する構成について詳細に説明する。図2は、第1の実施形態に係るログバッファ112が有する構成を概念的に示す図である。
The
ログバッファ112は、たとえば、ログ情報に関する書込み操作において出力されたログ情報と、該ログ情報に関する制御情報とが関連付けされたログ情報セットを、少なくとも1つ格納することができる。図2に示す例において、ログバッファ112は、ログ情報1及び制御情報1が関連付けされた情報を表す第1ログ情報セット、ログ情報2及び制御情報2が関連付けされた情報を表す第2ログ情報セット等を含む。
The
ログ情報セットは、ログバッファ112において、制御情報、該制御情報に関連付けされたログ情報の順に記録されていてもよい。尚、本実施形態において、ログバッファ112においては、制御情報と、該制御情報に関連付けされたログ情報とが、少なくとも論理的に、記録された順に記憶されているとする。たとえば、制御情報は、上述した「cas」命令を適用可能なサイズであり、たとえば、1ワードの大きさを有する情報である。
The log information set may be recorded in the
図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
記録操作完了情報は、ログ情報をログバッファ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
記録操作状態情報は、ログ情報をログバッファ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
サイズ情報は、ログ情報に関するサイズ(大きさ、長さ、レングス)を表す。以降の説明においては、サイズ情報を格納可能な記憶領域を、変数「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
次に、図4を参照しながら、ログバッファ情報記憶部111が有する構成について説明する。図4は、ログバッファ情報記憶部111が有する構成を示すブロック図である。
Next, the configuration of the log buffer
ログバッファ情報記憶部111は、可達位置情報と、完了位置情報と、先頭位置情報とを含む。
The log buffer
可達位置情報は、ログバッファ112において、ログ情報を記録する処理が開始された状態を表す可達状態を含むログ情報セットのうち、位置が最も後順に位置するログ情報セットを記憶している位置を表す。以降においては、説明の便宜上、ログバッファ情報記憶部111のうち、可達位置情報を記憶可能な記憶領域を変数「ReachableUpTo」と表すとする。
The reachable position information stores, in the
完了位置情報は、ログバッファ112において、ログ情報を記録する処理が完了した状態を表す完了状態にあるログ情報セットのうち、位置が最も後順に位置するログ情報セットを記憶している位置を表す。以降においては、説明の便宜上、ログバッファ情報記憶部111のうち、完了位置情報を記憶可能な記憶領域を変数「FinishedUpTo」と表す。
The completion position information represents a position in the
先頭位置情報は、ログバッファ112において、まだ、ログ情報を記録する処理が割り当てられていないログ情報セットを記憶可能な位置を表す。以降においては、説明の便宜上、ログバッファ情報記憶部111のうち、先頭位置情報を記憶可能な記憶領域を変数「TAIL」と表すとする。
The head position information represents a position in the
説明の便宜上、本実施形態においては、ログバッファ112は、N個のログ情報セットが格納されているとする。また、ログ情報を一意に識別可能なログ識別子は、ログバッファ112におけるログ情報セットの順番であるとする。たとえば、図2に示す例においては、ログ情報I(ただし、Iは、自然数を表す)、及び、制御情報Iが関連付けされた情報を表す第Iログ情報セットと表す。また、先頭位置情報は、新たなログ情報セットを記憶可能な領域のうち、N個のログ情報セットが格納されている記憶領域に最も近い位置(この例の場合に、(N+1)番目のログ情報セット)を表すとする。
For convenience of explanation, in this embodiment, it is assumed that the
以降の説明において、さらに、(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
トランザクション実行部107は、データベースに対して実行される検索処理等に関するトランザクションを指示する要求に応じて、該トランザクションに関する処理を実行する(ステップS101)。
The
ステップS101に示す処理において、たとえば、トランザクション実行部107は、ある書込み操作に関するログ情報が格納されている記憶領域を指し示す位置情報と、該ログ情報のサイズを表すサイズ情報とを先頭位置算出部103に対して出力する(ステップS102)。
In the processing shown in step S101, for example, the
先頭位置算出部103は、トランザクション実行部107が出力したサイズ情報を入力する。先頭位置算出部103は、複数のトランザクション実行部に共有されているログバッファ情報記憶部111のうち、先頭位置情報を記憶している記憶領域(たとえば、変数「TAIL」)に関する処理を優先的に実行することができる排他制御権を取得する(ステップS103)。先頭位置算出部103は、取得した排他制御権を有している期間内に、変数「TAIL」に格納されている先頭位置情報を読み取る(ステップS104)。
The head
先頭位置算出部103は、入力した該サイズ情報が表すサイズと、読み取った先頭位置情報とを足し算し(ステップS105)、足し算した結果算出された値を、取得した排他制御権を有している期間内に、ログバッファ情報記憶部111における変数「TAIL」に格納する(ステップS106)。先頭位置算出部103は、取得した排他制御権を解放する(ステップS107)。先頭位置算出部103は、ステップS104にて読み取った先頭位置情報を、第1先頭情報としてログ情報保存部104に対して出力する(ステップS108)。
The start
尚、先頭位置算出部103が取得する情報は、該排他制御権を用いた制御によって、複数のトランザクション実行部において、相互に異なっている。また、先頭位置算出部103が排他制御権を解放することによって、他のトランザクション実行部(たとえば、トランザクション実行部109、または、トランザクション実行部110)における先頭位置算出部は、先頭位置情報を取得することができる。
Note that the information acquired by the head
ログ情報保存部104は、先頭位置算出部103が出力した第1先頭情報、トランザクション実行部107が出力したログ情報のサイズ、及び、トランザクション実行部107が出力した位置情報を入力する。ログ情報保存部104は、ログバッファ112のうち、読み取った先頭位置情報(すなわち、(N+1)番目のログ情報セットを格納している位置)を起点とする記憶領域に格納されている制御情報を読み取り、読み取った該制御情報に含まれている可達情報をメモリ108に格納する。
The log
ログ情報保存部104は、不可達状態、入力した制御情報に含まれている記録操作完了情報、処理中状態、及び、入力したログ情報のサイズを含む制御情報(以降、「第2制御情報」と表す)を作成する(ステップS111)。ログ情報保存部104は、作成した第2制御情報を、入力した第1先頭情報を起点とする記憶領域に記録する(ステップS112)。
The log
ログ情報保存部104は、メモリ108に格納した可達情報が可達状態である場合に(ステップS113にてYES)、可達位置情報を更新する操作(後述)を可達位置情報更新部105に指示する(ステップS114)。ログ情報保存部104は、メモリ108に格納した可達情報が可達状態でない場合に(ステップS113にてNO)、可達位置情報を更新する操作を可達位置情報更新部105に指示しない。
When the reachable information stored in the
ログ情報保存部104は、ログバッファ112のうち、ステップS111に先立って入力した第1先頭情報を起点とする記憶領域に、ステップS111に先立って入力した位置情報を起点とする記憶領域に格納されているログ情報を記録する(ステップS115)。ログ情報保存部104は、読み取った第1先頭情報を起点とする記憶領域に格納されている制御情報を読み取り、読み取った該制御情報に含まれている記録操作完了情報をメモリ108に格納する(ステップS116)。ログ情報保存部104は、ステップS116にて読み取った制御情報における可達情報、完了状態、非処理中状態、及び、該制御情報におけるログ情報のサイズを含む制御情報(以降、「第3制御情報」と表す)を作成する(ステップS117)。
The log
ログ情報保存部104は、ステップS116にてメモリ108に格納した記録操作完了情報が未完了状態である場合に(ステップS118にてYES)、完了位置情報を更新する処理(後述)を完了位置情報更新部106に指示する(ステップS119)。ログ情報保存部104は、ステップS116にてメモリ108に格納した記録操作完了情報が未完了状態でない場合に(ステップS118にてNO)、完了位置情報を更新する処理を完了位置情報更新部106に指示しない。
When the recording operation completion information stored in the
ログ情報保存部104は、入力した第1先頭情報及び入力したサイズを加えた値(すなわち、第2先頭情報)と、ログバッファ情報記憶部111に格納されている可達位置情報とを比較する。ログ情報保存部104は、可達位置情報が、第2先頭情報以上である場合に(ステップS120にてYES)、ログ情報を記録する操作を終了する。これに対して、ログ情報保存部104は、可達位置情報が、第2先頭情報未満である場合に(ステップS120にてNO)、可達位置情報が第2先頭情報以上になるまで待つ待ち合わせ処理を実行する(ステップS121)。
The log
次に、複数のプロセッサを有する情報処理装置の場合の例を参照しながら本実施形態に係る処理について説明する。 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
また、該例においては、図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
図8を参照しながら、データベース管理装置101における処理について説明する。図8は、データベース管理装置101における処理の流れを示すフローチャートを表す。
Processing in the
データベース管理装置101における処理は、大別して、ログ情報セットを記録する記憶領域を示す第1先頭情報を算出する処理(ステップS125)と、算出した第1先頭情報が指し示す領域にログ情報セットを記録する処理(ステップS126)とを含む。
The processing in the
ステップ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
ステップS126:
ログ情報保存部104は、先頭位置算出部103が出力した第1先頭情報、トランザクション実行部107が出力したログ情報のサイズ、及び、トランザクション実行部107が出力した位置情報を入力する。ログ情報保存部104は、該位置情報に格納されているログ情報に関するログ情報セットを、ログバッファ112において入力した第1先頭情報が表す記憶領域に記録する。
Step S126:
The log
ログ情報保存部104が実行する処理は、たとえば、データを記憶領域に記憶可能なcopy関数を用いて実現することができる。ログ情報保存部104は、たとえば、copy関数に従い処理することによって、以下の入力1乃至入力3に示す3つ情報を入力する。
The process executed by the log
入力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
次に、ステップS125及びステップS126における処理を詳細に説明する前に、メモリ108等における記憶領域を表す変数について説明する。
Next, before describing the processing in step S125 and step S126 in detail, variables representing storage areas in the
説明の便宜上、当該各トランザクション実行部において、変数「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
制御情報に関して、可達情報は、たとえば、ログバッファ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
可達位置情報は、ログバッファ情報記憶部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
図9を参照しながら、先頭位置算出部103が実行するステップS125(図8)に示した処理について、さらに、詳細に説明する。図9は、第1の実施形態に係る先頭位置算出部103における処理を表すフローチャートである。
The process shown in step S125 (FIG. 8) executed by the head
先頭位置算出部103は、ログバッファ情報記憶部111のうち、先頭位置情報が格納されている変数「TAIL」に関する排他制御権を取得する(ステップS131)。先頭位置算出部103は、取得した排他制御権を有している期間内に、該変数「TAIL」に格納されている先頭位置情報を読み取る(ステップS132)。先頭位置算出部103は、読み取った先頭位置情報を、変数「myLSN」に格納する(ステップS133)。先頭位置算出部103は、読み取った先頭位置情報に、入力したサイズ情報に含まれるサイズを足し算し(ステップS134)、算出した値を、取得した排他制御権を有している期間内に、ログバッファ情報記憶部111における変数「TAIL」に格納する(ステップS135)。先頭位置算出部103は、取得した排他制御権を解放し(ステップS136)、変数「myLSN」に格納した値(すなわち、第1先頭情報)を、ログ情報保存部104に対して出力する(ステップS137)。
The head
すなわち、ステップ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
図10を参照しながら、ステップS126(図8)にてログ情報保存部104が実行する処理について、さらに詳細に説明する。図10は、第1の実施形態に係るログ処理部102における処理を表すフローチャート(1/3)である。
The process executed by the log
ログ情報保存部104は、トランザクション実行部107が出力した位置情報と、トランザクション実行部107が出力したサイズ情報と、先頭位置算出部103が出力した第1先頭情報とを入力する。より具体的に、ログ情報保存部104は、入力した位置情報を変数「myLog」に格納し、入力したサイズ情報を、変数「myLength」に格納し、入力した第1先頭情報を、変数「myLSN」に格納する。
The log
ログ情報保存部104は、入力した第1先頭情報と、入力したサイズ情報とを足し算することにより、次に、ログ情報セットを記録可能な先頭位置情報(すなわち、「第2先頭情報」)を算出する。より具体的に、ログ情報保存部104は、該サイズ情報を格納している変数「myLength」に格納されている値と、該第1先頭情報を格納している変数「myLSN」に格納されている値を足し算(ステップS141)し、算出された結果(すなわち、「第2先頭情報」)を変数「nextLSN」に格納する(ステップS142)。
The log
次に、ログ情報保存部104は、ログバッファ112において、入力した第1先頭情報が表す記憶領域に記録されているログ情報セット、及び、該ログ情報セットに含まれている制御情報(以降、「第1制御情報」と表す)を読み取る。より具体的に、ログ情報保存部104は、記憶領域buffer[myLSN]に格納されているログ情報セットを読み取り(ステップS143)、読み取ったログ情報セットのうち、第1制御情報を変数「oldv」に格納する(ステップS144)。
Next, the log
次に、ログ情報保存部104は、読み取った第1制御情報に含まれている可達情報を読み取り、読み取った可達情報をメモリ108に格納する。より具体的に、ログ情報保存部104は、変数「oldv」に格納されている第1制御情報のうち、変数「rflag」に格納されている可達情報を読み取り、読み取った可達情報を変数「myTurn」に格納する(ステップS145)。
Next, the log
次に、ログ情報保存部104は、不可達状態、入力した制御情報に含まれている記録操作完了情報、処理中状態、及び、入力したログ情報のサイズ情報が表すサイズを含む制御情報(以降、「第2制御情報」と表す)を作成する。より具体的に、ログ情報保存部104は、変数「oldv」に格納されている第1制御情報を、変数「newv」に格納する(ステップS146)。ログ情報保存部104は、変数「newv」に含まれている変数「length」に、変数「myLength」におけるサイズ情報を格納する(ステップS147)。さらに、ログ情報保存部104は、変数「newv」に含まれている変数「inCopy」に、処理中状態(たとえば、1)を格納する。さらに、ログ情報保存部104は、変数「newv」に含まれている変数「rflag」に、不可達状態(たとえば、0)を格納する(ステップS148)。
Next, the log
次に、ログ情報保存部104は、「cas」命令にて実行される処理と同様の処理を実行することにより、入力した第1先頭情報が表す記憶領域に、第2制御情報を格納する。
Next, the log
第2制御情報を格納する処理について詳細に説明する。ログ情報保存部104は、入力した第1先頭情報が表す記憶領域に記録されているログ情報セットにおける制御情報(以降、「第3制御情報」と表す)を読み取り、読み取った第3制御情報と、第1制御情報とが一致するか否かを判定する。
The process for storing the second control information will be described in detail. The log
第1制御情報と、第3制御情報とが一致する場合に、ログ情報保存部104は、入力した第1先頭情報が表す記憶領域に、第2制御情報を格納する。すなわち、この場合に、ログ情報保存部104は、不可達状態、入力した制御情報に含まれている記録操作完了情報、処理中状態、及び、入力したログ情報のサイズ情報が表すサイズを含む制御情報を、該ログ情報セットが格納されている記憶領域に格納する。
When the first control information matches the third control information, the log
第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
上述したような「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
ログ情報保存部104は、変数「oldv」に格納されている第1制御情報と、記憶領域buffer[myLSN]に格納されている第3制御情報とが一致している場合に(ステップS149にてYES)、変数「newv」に格納されている第2制御情報を、記憶領域buffer[myLSN]に記録する(ステップS151)。
The log
ログ情報保存部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
すなわち、ステップ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
より具体的に、ログ情報保存部104は、変数「myTurn」に格納されている可達情報を読み取り、読み取った可達情報が、可達状態であるか否かを判定する(ステップS152)。該可達情報が可達状態である場合に(ステップS152にてYES)、ログ情報保存部104は、変数「nextLSN」に格納されている第2先頭情報を可達位置情報更新部105に対して出力することにより、可達位置情報に関する更新操作を可達位置情報更新部105に指示する(ステップS153)。すなわち、ログ情報保存部104は、変数「ReachableUpTo」に格納されている可達位置情報を更新する処理を、可達位置情報更新部105に指示する。これに対して、該可達情報が可達状態でない場合に(ステップS152にてNO)、ログ情報保存部104は、可達位置情報に関する更新操作を、可達位置情報更新部105に指示しない。
More specifically, the log
次に、ログ情報保存部104は、ログバッファ112のうち、入力した第1先頭情報を起点とする記憶領域に、入力した位置情報を起点とする記憶領域に格納されているログ情報を記録する。より具体的に、ログ情報保存部104は、変数「myLog」に格納されている位置情報が表す記憶領域に格納されているログ情報を、記憶領域buffer[myLSN]に、変数「myLength」に格納されている値のサイズ分だけ記録する(ステップS154)。
Next, the log
図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
ログバッファ情報記憶部111は、ログバッファ112において、入力した第1先頭情報が表す記憶領域に記録されているログ情報セット、及び、該ログ情報セットに含まれている制御情報(以降、「第4制御情報」と表す)を読み取る。より具体的に、ログ情報保存部104は、変数「myLSN」に格納されている第1先頭情報が指し示す記憶領域buffer[myLSN]からログ情報セットを読み取り、読み取ったログ情報セットにおける第4制御情報を変数「oldv」に格納する(ステップS160)。
The log buffer
次に、ログバッファ情報記憶部111は、読み取った第4制御情報に格納されている記録操作完了情報を読み取る。より具体的に、ログ情報保存部104は、変数「oldv」に含まれている変数「cflag」から記録操作完了情報を読み取り(ステップS161)、読み取った記録操作完了情報を、たとえば、変数「myTurn」に格納する(ステップS162)。
Next, the log buffer
次に、ログ情報保存部104は、不可達状態、完了状態、非処理中状態、及び、第3制御情報に格納されているサイズ情報を含む制御情報(以降、「第5制御情報」と表す)を作成する。より具体的に、ログ情報保存部104は、変数「oldv」に格納されている制御情報を、変数「newv」に格納する(ステップS163)。ログ情報保存部104は、変数「newv」における変数「inCopy」に、処理中でないことを表す非処理中状態(たとえば、0)を格納し(ステップS164)、変数「newv」における変数「cflag」に、完了したことを表す完了状態(たとえば、0)を格納する(ステップS165)。さらに、ログ情報保存部104は、変数「newv」における変数「rflag」に、可達状態でないことを表す不可達状態(たとえば、0)を格納する(ステップS166)。
Next, the log
次に、ログ情報保存部104は、「cas」命令にて実行される処理と同様の処理を実行することにより、入力した第1先頭情報が表す記憶領域に、第5制御情報を記録する。
Next, the log
第5制御情報を記録する処理について詳細に説明する。ログ情報保存部104は、入力した第1先頭情報が表す記憶領域に記録されているログ情報セットにおける制御情報(以降、「第6制御情報」と表す)を読み取り、読み取った第6制御情報と、第4制御情報とが一致するか否かを判定する。
The process for recording the fifth control information will be described in detail. The log
第6制御情報と、第4制御情報とが一致する場合に、ログ情報保存部104は、入力した第1先頭情報が表す記憶領域に、第5制御情報を記録する。すなわち、この場合に、ログ情報保存部104は、可達状態でないことを表す情報、完了状態、記録操作中でないことを表す情報、及び、入力したログ情報のサイズ情報が表すサイズを含む第5制御情報を、該ログ情報セットが格納されている記憶領域に記録する。
When the sixth control information matches the fourth control information, the log
第6制御情報と、第4制御情報とが一致しない場合に、ログ情報保存部104は、読み取った第6制御情報を第4制御情報として設定し、その後、記録操作完了情報を読み取る処理、乃至、第6制御情報と第4制御情報とを比較する処理を実行する。すなわち、ログ情報保存部104は、入力した第1先頭情報が表す記憶領域に、作成した制御情報を記録するまで該処理を繰り返す。
When the sixth control information does not match the fourth control information, the log
ログ情報保存部104は、上述したような「cas」命令にて実行される処理と同様の処理を、アトミックに実行する。
The log
より具体的に、「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
記憶領域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
ログ情報保存部104は、上述したような「cas」命令にて実行される処理と同様の処理を、アトミックに実行する。
The log
次に、ログ情報保存部104は、ステップS162にて読み取った記録操作完了情報が完了以前を表す未完了状態である場合に、ログバッファ情報記憶部111における完了位置情報を更新する更新操作(後述)を完了位置情報更新部106に指示する。ログ情報保存部104は、たとえば、第2先頭情報を完了位置情報更新部106に対して出力することにより、完了位置情報更新部106に更新操作を指示する。ログ情報保存部104は、ステップS162にて読み取った記録操作完了情報が未完了状態でない場合に、完了位置情報を更新する更新操作を完了位置情報更新部106に指示しない。
Next, the log
より具体的に、ログ情報保存部104は、変数「myTurn」に格納されている記録操作完了情報を読み取り、読み取った記録操作完了情報が、未完了状態であるか否かを判定する(ステップS170)。該記録操作完了情報が未完了状態である場合に(ステップS170にてYES)、ログ情報保存部104は、変数「nextLSN」に格納されている第2先頭情報を完了位置情報更新部106に対して出力することにより、完了位置情報に関する更新操作を完了位置情報更新部106に指示する(ステップS171)。すなわち、ログ情報保存部104は、変数「FinishedUpTo」に格納されている完了位置情報を更新する処理を、完了位置情報更新部106に指示する。ログ情報保存部104は、該記録操作完了情報が未完了状態でない場合に(ステップS170にてNO)、完了位置情報を更新する処理を指示しない。
More specifically, the log
次に、図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
ログ情報保存部104は、ログバッファ情報記憶部111から可達位置情報を読み取り、読み取った可達位置情報と、ステップS141(図10)にて算出した第2先頭情報とを比較する。ログ情報保存部104は、読み取った可達位置情報が該第2先頭情報未満である場合に、ログバッファ情報記憶部111に格納されている可達位置情報が、第2先頭情報以上になるまで待ち合わせる処理を実行する。
The log
より具体的に、ログ情報保存部104は、ログバッファ情報記憶部111における変数「ReachableUpTo」に格納されている可達位置情報を読み取り、読み取った可達位置情報と、変数「nextLSN」に格納されている第2先頭情報とを比較する(ステップS181)。ログ情報保存部104は、該可達位置情報が該第2先頭情報未満である場合に(ステップS181にてNO)、ログバッファ情報記憶部111における変数「ReachableUpTo」に格納されている可達位置情報が、該第2先頭情報以上なるまで待ち合わせる処理を実行する(ステップS182)。たとえば、ログ情報保存部104が実行する待ち合わせる処理は、変数「nextLSN」における値を入力とする「Sleep」関数を用いて実現することができる。
More specifically, the log
図13を参照しながら、可達位置情報更新部105が実行する処理について説明する。図13は、第1の実施形態に係る可達位置情報更新部105における処理を表すフローチャートである。
The process executed by the reachable position
可達位置情報更新部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
次に、可達位置情報更新部105は、ログバッファ112において、第1領域に格納されている値が指し示す記憶領域に格納されているログ情報セット、及び、該ログ情報セットにおける制御情報(以降、「第7制御情報」と表す)を読み取る。より具体的に、可達位置情報更新部105は、変数「lsn」に格納されている値が指し示す記憶領域buffer[lsn]に記録されている制御情報を読み取る(ステップS193)。可達位置情報更新部105は、読み取ったログ情報セットに含まれている第7制御情報を、変数「oldv」に格納する(ステップS194)。
Next, the reachable position
次に、可達位置情報更新部105は、読み取った第7制御情報に含まれているサイズ情報におけるサイズが0であるか否かを判定する。可達位置情報更新部105は、該サイズが0でない場合に、第1領域に格納されている値に、第7制御情報に含まれている該サイズを足し算し、算出した値を該第1領域に格納する。以降、制御情報に含まれているサイズ情報が表すサイズが0になるまで、処理を繰り返し実行する。これに対して、可達位置情報更新部105は、該サイズが0である場合に、まだ処理が開始されていないことを表す可達状態、第7制御情報に含まれている記録操作完了情報、該第7制御情報に含まれている記録操作状態情報、及び、該第7制御情報に含まれているサイズ情報を含む制御情報(以降、「第8制御情報」と表す)を作成する。この場合に、ステップS197及びステップS198にて作成された第8制御情報は、ステップS195に示す処理を実行した処理であるので、サイズ情報として0を含む。
Next, the reachable position
より具体的に、可達位置情報更新部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
可達位置情報更新部105は、「cas」命令によって実行される処理と同様の処理を実行することによって、作成した第8制御情報を、ログバッファ112において、第1領域に格納されている値が指し示す記憶領域に記録する。
The reachable position
第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
可達位置情報更新部105は、上述したような「cas」命令にて実行される処理と同様の処理を、アトミックに実行する。
The reachable position
より具体的に、可達位置情報更新部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
次に、図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
可達位置情報更新部105は、第1領域に格納されている値と、ログバッファ情報記憶部111における可達位置情報と比較する。可達位置情報更新部105は、可達位置情報よりも小さな値を第1領域に格納しているログ情報保存部104に関して、待ち合わせ処理を終了する指示を実行する。該指示を受けた可達位置情報更新部105は、待ち合わせ処理を終了する。
The reachable position
より具体的に、可達位置情報更新部105は、たとえば、「WakeUp」関数における処理と同様の処理を実行する。可達位置情報更新部105は、変数「lsn」から値を読み取り、読み取った値と、ログバッファ情報記憶部111における可達位置情報とを比較する。可達位置情報更新部105は、読み取った値が、可達位置情報未満であるログ情報保存部を特定し、特定したログ情報保存部に待ち合わせ処理を終了する指示を実行する(ステップS211)。該指示を受信したログ情報保存部は、待ち合わせ処理を終了する。
More specifically, the reachable position
図15を参照しながら、完了位置情報更新部106が実行する処理について説明する。図15は、第1の実施形態に係る完了位置情報更新部106における処理を表すフローチャートである。
With reference to FIG. 15, the process executed by the completed position
完了位置情報更新部106は、第2先頭情報を入力し、入力した第2先頭情報をメモリ108(以降、「第2領域」と表す)に格納する。より具体的に、完了位置情報更新部106は、ログ情報保存部104が出力した第2先頭情報を入力し、入力した第2先頭情報を変数「nextLSN」に格納する。完了位置情報更新部106は、変数「nextLSN」に格納されている第2先頭情報を、変数「lsn」に格納する(ステップS221)。
The completion position
次に、完了位置情報更新部106は、第2領域に格納されている値を、ログバッファ情報記憶部111に完了位置情報として格納する。より具体的に、完了位置情報更新部106は、変数「lsn」に格納されている値を、ログバッファ情報記憶部111における変数「FinishedUpTo」に格納する(ステップS222)。
Next, the completion position
次に、完了位置情報更新部106は、ログバッファ112において、第2領域に格納されている値が指し示す記憶領域に格納されている制御情報(以降、「第10制御情報」と表す)を読み取る。可達位置情報更新部105は、読み取った第10制御情報に含まれているサイズ情報におけるサイズが0であるか否か、及び、該第10制御情報における記録操作状態情報が処理中状態であるか否かのうち、少なくとも一方を判定する。
Next, the completion position
完了位置情報更新部106は、該サイズが0でなく、かつ、該記録操作状態情報が非処理中状態である場合に、第1領域に格納されている値に、読み取った該第10制御情報に含まれている該サイズを足し算する。
The completion position
完了位置情報更新部106は、該サイズが0であるか、または、該記録操作状態情報が処理中状態である場合に、以下の4つの情報を含む制御情報(以降、「第11制御情報」と表す)を作成する。
When the size is 0 or the recording operation state information is in the processing state, the completion position
・該第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
・判定処理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
尚、可達位置情報更新部105は、変数「length」に格納されているサイズが0である、または、変数「inCopy」に格納されている値が処理中状態である場合に(ステップS225にてYES)、変数「oldv」に格納されている第10制御情報を、変数「newv」に格納する(ステップS227)。可達位置情報更新部105は、該変数「newv」に含まれている変数「cflag」に1(すなわち、未完了状態)を格納する(ステップS228)。すなわち、変数「newv」は、第11制御情報を格納している。
The reachable position
次に、完了位置情報更新部106は、「cas」命令にて実行される処理と同様の処理を実行することにより、作成した第11制御情報を、ログバッファ112において、第2領域に格納されている値が指し示す記憶領域に記録する。
Next, the completion position
第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
完了位置情報更新部106は、上述したような「cas」命令にて実行される処理と同様の処理を、アトミックに実行する。より具体的に、「cas」命令にて実行される処理と同様の処理を実行する処理について説明する。
The completion position
完了位置情報更新部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
完了位置情報更新部106は、上述したような「cas」命令にて実行される処理と同様の処理を、アトミックに実行する。
The completion position
すなわち、完了位置情報更新部106は、図15に示した処理を実行することによって、ログバッファ112に含まれるログ情報セットにおいて、該ログ情報セットに関して、サイズが0である、または、処理中状態であるログ情報セットを探す。すなわち、可達位置情報更新部105は、処理しているログ情報セットよりも識別子が大きな値を有するログ情報セットのうち、処理中状態であるログ情報セットか、または、まだサイズが0であるログ情報セットを探す。可達位置情報更新部105は、見つけたログ情報セットに含まれている制御情報に未完了状態(または、1)を設定する。すなわち、可達位置情報更新部105は、処理しているログ情報セットよりも識別子が大きな値を有するログ情報セットのうち、まだ、処理中状態であるか、まだサイズが0であるログ情報セットに関して未完了状態(すなわち、完了以前であることを表す)に設定する。
That is, the completion position
次に、第1の実施形態に係るデータベース管理装置101に関する効果について説明する。
Next, effects related to the
本実施形態に係るデータベース管理装置101によれば、ログバッファ112に対する処理要求を短期間に処理可能にする制御情報を記憶領域に効率よく設定することができる。この理由は、排他制御権を有している期間内に処理を実行している期間に、ログ処理部102がログバッファ112にサイズを設定する操作等を実行する必要がないからである。
According to the
上述した効果を奏する理由について、さらに詳細に説明する。 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
これに対して、非特許文献1に記載された装置が取得した排他制御権を有している期間内に実行する必要がある操作は、変数「TAIL」に関する処理に加え、ログバッファにおける制御情報にサイズに関するサイズ情報を設定する処理と、記録操作状態情報を設定する処理とである。
On the other hand, operations that need to be executed within the period when the device described in
さらに、非特許文献1に記載された装置は、ログ情報をログバッファに記録した後に、トランザクションに関する処理を完了することによってデータベースにおけるデータを確実に格納する。したがって、該装置においては、特に、情報システムが多数のコアを搭載するシステム(メニーコアシステム)である場合に、複数プロセスが同時にログバッファを確保する操作を実行することに伴い、競合が発生する。この結果、メニーコアシステムの処理性能は、低下する。
Furthermore, the apparatus described in
したがって、データベース管理装置101と、非特許文献1に記載された装置とを比較すると、排他制御権を有している期間内に実行する処理は、データベース管理装置101の方が、ログバッファ112に対する処理の分だけ少ない。すなわち、取得した排他制御権を有している期間内に実行する処理量が少ないので、本実施形態に係るデータベース管理装置101によれば、たとえば、メニーコアシステムにて、該排他制御に関する競合を低減することができる。
Therefore, when comparing the
また、非特許文献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
○ When there are a plurality of
○ 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
したがって、本実施形態に係るデータベース管理装置101によれば、複雑な制御を実行する必要がない。
Therefore, according to the
たとえば、ログバッファ112を、データベースに関する変更履歴を表すログ情報を不揮発性のメモリを用いて実現することもできる。この場合に、本実施形態に係るデータベース管理装置101によれば、該変更履歴を、入出力操作が必要となるディスクやSSD等のデバイスに、変更履歴の発生に同期しながら記録する必要はない。また、本実施形態に係るデータベース管理装置101によれば、特に、コア数が多いメニーコアシステムにおいて、ログ情報を高速に記録する実行することができる。
For example, the
本実施形態に係るデータベース管理装置101における記録操作完了情報によれば、ログバッファ112におけるログ情報セットに関する処理が完了前であるか否かを、短期間に判定することができる。この理由は、制御情報が、処理が完了前であるか否かを表す記録操作完了情報を含むからである。制御情報が記録操作完了情報を有するので、データベース管理装置101は、あるログ情報セットにおける該記録操作完了情報を参照することにより、該あるログ情報セットに関して入出力処理が完了したか否かを短期間に判定することができる。
According to the recording operation completion information in the
本実施形態に係るデータベース管理装置101における可達位置情報によれば、ログバッファ112において、どのログ情報セットまで、処理が開始されたのかを短期間に知ることができる。この理由は、可達位置情報更新部105が、可達状態であるログ情報セットのうち、最も後順に位置するログ情報セットの位置を特定することができるからである。
According to the reachable position information in the
また、本実施形態に係るデータベース管理装置101における可達位置情報によれば、ログ情報セットを記録する処理を、すべて、確実に実行することができる。この理由は、可達位置情報更新部105が特定した位置に基づき、すべてのログ情報セットに関する処理が開始されるまで、待ち合わせ処理を実行するからである。すなわち、ログ処理部102は、ログ情報セットに関する処理が、すべて開始されたタイミングにて同期処理を実行する。したがって、ログ情報セットに関する処理が、すべて完了したタイミングにて同期処理を実行する場合よりも、本実施形態に係るデータベース管理装置101によれば、より早期に、次の処理を実行することができる。
Further, according to the reachable position information in the
また、本実施形態に係るデータベース管理装置101における完了位置情報によれば、ログバッファ112において、どのログ情報セットまで、処理が完了する以前の状態にあるのか否かを、短期間に知ることができる。この理由は、完了位置情報更新部106が、変数「length」に格納されているサイズが0である制御情報を記録している位置を特定するからである。
Further, according to the completion position information in the
また、ログバッファ情報記憶部111を、複数のトランザクション実行部が参照可能なメモリ108にて実現することによって、より効率的に処理を実行することができる。この理由は、複数のトランザクション実行部が、メモリ108に格納された位置を参照することができるからである。複数のトランザクション実行部は、相互に通信処理を実行することなく、該位置を参照することができる。さらに、本実施形態に係るデータベース管理装置101によれば、メモリ108の処理性能が高いほど、より短期間に該位置を参照することができるという効果も奏する。
Further, by realizing the log buffer
<第2の実施形態>
図16を参照しながら、本発明の第2の実施形態に係る制御情報設定装置151が有する構成について詳細に説明する。図16は、本発明の第2の実施形態に係る制御情報設定装置151が有する構成を示すブロック図である。
<Second Embodiment>
The configuration of the control
第2の実施形態に係る制御情報設定装置151は、可達情報設定部152と、ログバッファ153とを有する。
The control
ログバッファ153は、図2を参照しながら説明したように、ログ情報と、該ログ情報に関する処理を実行する場合に参照する制御情報とが関連付けされたログ情報セットを記憶する空間が、論理的に順番に並んでいる(すなわち、論理的に順序付けされている)とする。制御情報は、後順に位置するログ情報セットを参照することが可能であるか否かを表す可達情報、及び、該ログ情報のサイズ(大きさ、サイズ)を表すサイズ情報を含んでいるとする。
As described with reference to FIG. 2, the
説明の便宜上、ログバッファ153においては、ログ情報に関する処理を割り当て済みの領域(以降、「第1領域」と表す)と、ログ情報に関する処理を割り当てていない領域(以降、「第2領域」と表す)とが区分されているとする。
For convenience of explanation, in the
次に、図17を参照しながら、第2の実施形態に係る制御情報設定装置151における処理について説明する。図17は、第2の実施形態に係る制御情報設定装置151における処理の流れを示すフローチャートである。
Next, processing in the control
可達情報設定部152は、第1領域及び第2領域の間の境界値と、たとえば、該外部装置が出力した該ログ情報のサイズ、及び、該ログ情報を入力する。可達情報設定部152は、ログバッファ153において、入力した境界値によって指し示された記憶領域(以降、「第1記憶領域」と表す)に記録されている制御情報(以降、「第1制御情報」と表す)を読み取る(ステップS241)。可達情報設定部152は、第1記憶領域に記録されている制御情報において、後順に位置するログ情報セットを参照することが不可能であるであることを表す不可達状態を設定する(ステップS242)。可達情報設定部152は、第1記憶領域に記録されている制御情報に対して、入力したサイズをサイズ情報に設定する(ステップS243)。
The reachable
可達情報設定部152は、読み取った第1制御情報に含まれている可達情報が、可達状態か否かを判定する(ステップS244)。可達情報設定部152は、該可達情報が可達状態である場合に(ステップS244にてYES)、ログバッファ153において、ログ情報セットに関する順序に従い、制御情報に含まれているサイズ情報が所定の条件を満たす第2制御情報を特定する(ステップS245)。たとえば、所定の条件は、サイズ情報が0であるか否かである。たとえば、可達情報設定部152は、ステップS245に示す処理にて、該第1制御情報に後続する制御情報の中から、第2制御情報を特定する。当該論理的順序をなす記憶領域において、第1制御情報に後続する制御情報を記録している位置は、たとえば、第1の実施形態における変数「nextLSN」に格納されている位置である。
The reachable
可達情報設定部152は、特定した第2制御情報に含まれている可達情報に可達状態を設定する(ステップS246)。
The reachable
これに対して、可達情報設定部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
境界値は、たとえば、第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
次に、第2の実施形態に係る制御情報設定装置151に関する効果について説明する。
Next, effects related to the control
本実施形態に係る制御情報設定装置151によれば、ログバッファ153に対する処理要求を短期間に処理可能にする制御情報を記憶領域に効率よく設定することができる。この理由は、ログバッファ153にサイズを設定する処理を、ログバッファ153に関する排他制御権を有さない期間に、可達情報を用いて実現することができるからである。
According to the control
これに対して、たとえば、非特許文献1に開示された装置は、複数のトランザクション実行部が共有しているログバッファ内の制御情報におけるサイズ情報を、該ログバッファに関して排他制御権を有している期間内に設定する。この結果、第2の実施形態に係る制御情報設定装置151によれば、該排他制御権を有している期間内に処理する処理量は減少する。したがって、本実施形態に係る制御情報設定装置151によれば、処理要求を短期間に処理可能にする制御情報を設定することができる。
On the other hand, for example, the device disclosed in
(ハードウェア構成例)
上述した本発明の各実施形態におけるデータベース管理装置を、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
不揮発性記録媒体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
すなわち、このような場合、本発明は、係る制御情報設定プログラム、または、係るデータベース管理プログラムによっても成し得ると捉えることができる。さらに、係るデータベース管理プログラム、または、係る制御情報設定プログラムが記録されたコンピュータが読み取り可能な不揮発性の記録媒体によっても、本発明は成し得ると捉えることができる。 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
22
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.
をさらに備え、
前記ログ情報保存手段は、前記位置が、前記境界と前記あるサイズとを加算した値以上になるまで待ち合わせ処理を実行する
請求項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または請求項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.
前記ログバッファにおいて、前記ログ情報を記録する記録処理を割り当て済みの記憶領域と、前記記録処理が割り当てられていない記憶領域との境界を表す記憶領域に記録されている第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.
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)
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 |
-
2015
- 2015-07-10 JP JP2015138761A patent/JP6536237B2/en active Active
Patent Citations (6)
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 |