WO2017060941A1 - Data management system and data management method which maintain consistency between plurality of data - Google Patents

Data management system and data management method which maintain consistency between plurality of data Download PDF

Info

Publication number
WO2017060941A1
WO2017060941A1 PCT/JP2015/078133 JP2015078133W WO2017060941A1 WO 2017060941 A1 WO2017060941 A1 WO 2017060941A1 JP 2015078133 W JP2015078133 W JP 2015078133W WO 2017060941 A1 WO2017060941 A1 WO 2017060941A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
state
processing
nvms
transaction
Prior art date
Application number
PCT/JP2015/078133
Other languages
French (fr)
Japanese (ja)
Inventor
有哉 礒田
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to JP2017544072A priority Critical patent/JPWO2017060941A1/en
Priority to PCT/JP2015/078133 priority patent/WO2017060941A1/en
Publication of WO2017060941A1 publication Critical patent/WO2017060941A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures

Definitions

  • the present invention generally relates to data management that maintains the consistency of a plurality of data.
  • DBMS Database Management System
  • Tx Transaction
  • the Tx processing is used when a plurality of instructions (reference instruction and update instruction) are realized atomically.
  • Tx processing a plurality of instructions in a specified section are processed atomically by declaring the beginning and end (Tx processing section) of the instruction section to be executed atomically.
  • Tx processing commits, the result is persisted to an external storage medium such as storage.
  • the ACID characteristic indicates atomicity, consistency, isolation, and durability. Atomicity means that a plurality of instructions in the Tx processing section are all executed or not executed at all. Consistency means not making a transition to a state other than the rules given to the database. Independence means that the result of Tx processing is always the same as when Tx processing is executed sequentially. With persistence, if the Tx process is committed, the consistency of the Tx process is maintained by satisfying the ACID characteristic.
  • the DBMS is required to have performance and availability.
  • the performance is expected to be improved by the technique disclosed in Patent Document 1 or 2, for example.
  • performance improvement can be expected by an in-memory DBMS that expands a database or an index in a server memory and performs Tx processing.
  • log processing also occurs in the in-memory DBMS, and log processing becomes a performance issue.
  • the technique of Patent Document 2 it is expected to solve the problem of log processing performance.
  • Tx ⁇ 2 can refer to the commit result of Tx 1 without waiting for the completion of the log processing of Tx 1 for the processing that was executing Tx 2 after Tx ⁇ 1, It can be expected to hide the log processing.
  • Availability is expected to be improved by the technology disclosed in Patent Document 3, for example.
  • an improvement in availability is expected by a log-linked HA (HighabilityAvailability) configuration.
  • the HA configuration is system multiplexing, and includes an execution system that performs Tx processing and a standby system that synchronizes the execution system.
  • Such an HA configuration is expected to improve availability by switching to the standby system immediately in the event of a failure of the active system.
  • the in-memory DBMS realizes high performance by expanding a database (for example, an index and a table) in a volatile memory.
  • a database for example, an index and a table
  • the process of expanding (reading) a database from storage typically a disk
  • the process of subsequently reading the log file from storage and reflecting the read log file to the database on the memory Is required and availability is low.
  • the database is not read at the time of failure recovery.
  • Such a problem is not limited to the DBMS, but may be present in other types of environments (systems) that need to maintain the consistency of a plurality of data, such as a file system or KVS (Key Value Store).
  • Tx Transaction processing instruction
  • a state associated with the transaction processing according to the received instruction which is a non-persistent state (a state meaning non-permanent) is registered in the storage space
  • B When the transaction is terminated, the transaction processing state is changed to a permanent state (a state meaning permanent).
  • FIG. 1 shows a configuration of an entire system according to an embodiment.
  • a storage space and information stored in the storage space are shown.
  • It is a functional block diagram of a management program.
  • It is a flowchart of TxMS.
  • It is a flowchart of TxMS.
  • It is a flowchart of a NVMS_STATE management system.
  • It is a flowchart of NVMS_DATA management system. It is a sequence diagram of the process which perpetuates several data atomically.
  • the detailed example of NVMS_STATE, NVMS_DATA, and NVMS_TABLE shown in FIG. 2 is shown.
  • the flowchart of the NVMS_DATA management system this is a part including a difference from the flowchart shown in FIG.
  • DBMS in particular, an in-memory DBMS
  • processing may be described using a program as a subject.
  • a processor for example, a CPU (Central Processing Unit)
  • a predetermined processing is appropriately performed in a memory and / or an interface. Since the processing is performed using a device (for example, a communication port), the subject of processing may be processing performed by a processor (or an apparatus or system having the processor).
  • the processor may include a hardware circuit that performs a part or all of the processing.
  • the program may be installed in a computer-like device from a program source.
  • the program source may be, for example, a storage medium that can be read by a program distribution server or a computer.
  • the program distribution server may distribute the program to be distributed to other computers.
  • Tx Processing performed by executing Tx is referred to as “Tx processing”.
  • SQL processing can be used as a word meaning any one of generation processing (CREATE), insertion processing (INSERT), update processing (UPDATE), and delete processing (DELETE).
  • the Tx process includes a begin process, one or more SQL processes, and a commit process.
  • FIGS. 9 to 11 a description will be given of processing for simultaneously updating, inserting or deleting a plurality of data.
  • FIG. 12 to FIG. 17 a description will be given of processing for normal activation and termination.
  • FIG. 1 shows the configuration of the entire system according to the embodiment.
  • the computer system 110B can receive commands from the user 100 through the computer system 110A and the network 150.
  • the computer system 110B may receive a command without going through the computer system 110A and the network 150.
  • the computer system 110B can be connected to a plurality of computer systems 110A.
  • the computer system 110B has one or more nodes, for example, two nodes 130 and 140. These nodes 130 and 140 may be connected via a system bus 151.
  • the external storage device 120 may be connected to the computer system 110B via the network 150.
  • each of the one or more nodes may be the same.
  • the node 130 includes a memory 132, an internal storage device 133, an input / output device 134, and a processor 131 connected to them.
  • the node 140 includes a memory 142, an internal storage device 143, an input / output device 144, and a processor 141 connected thereto.
  • the node 130 is mainly taken as an example, but other nodes such as the node 140 may have the same function and configuration.
  • the computer system 110B (or any one node) may be an example of a data management system.
  • the input / output device 134 may be a communication interface device that communicates with an external device such as the external storage device 120, a human machine interface device (eg, an input device such as a keyboard and a pointing device, and an output such as a display device).
  • the memory 132 may include at least one of a volatile memory such as DRAM (Dynamic Random Access Memory) and a non-volatile memory (hereinafter referred to as NVM) such as a flash memory.
  • NVM non-volatile memory
  • a program such as a DBMS is stored in the memory 132, and the program is executed by the processor 131.
  • FIG. 2 shows a storage space and information stored in the storage space.
  • the storage space 200 is based on at least the memory 132 among the memory 132, the internal storage device 133, and the external storage device 120.
  • the storage space 200 includes a volatile space 201 and a nonvolatile space 202.
  • the volatile space 201 is a space based on a volatile storage area (for example, at least a part of the DRAM) in the memory 132.
  • the non-volatile space 202 is a space based only on NVM (for example, at least a part of NVM) in the memory 132, but instead of or in addition, the internal storage device 133 (for example, SSD (Solid State Drive) or HDD ( Hard Disk Drive)) and an external storage device 120 may include a space based on at least a part thereof.
  • the volatile space 201 may be used as a cache for the nonvolatile space 202.
  • the storage space 200 stores information such as NVMS_STATE 210, NVMS_DATA 220, and NVMS_TABLE 230.
  • NVMS_STATE 210 is an example of state management information.
  • NVMS_DATA 220 is an example of data management information.
  • NVMS_TABLE 230 is an example of transaction management information.
  • NVMS_STATE 210 is information indicating the state of the processing target data (for example, a record in the database) in the Tx process for each Tx process.
  • NVMS_STATE 210 has an entry for each Tx process.
  • ID 211 and STATE 212 are registered in each entry.
  • the ID 211 is an ID (for example, an identification number) for Tx processing.
  • STATE 212 is information indicating the state of data to be processed in the Tx process. Examples of the value of STATE 212 include “PROCESSING”, “COMMIT”, “ABORT”, and the like. “PROCESSING” means that since the Tx process is uncommitted, all data to be processed in the Tx process may be deleted from the nonvolatile space 202.
  • NVMS_DATA 220 is information indicating, for each data, a correspondence relationship between data in Tx processing (processing target data) and STATE 212 associated with the data.
  • NVMS_DATA 220 has an entry for each data in the Tx process.
  • DATA 221 and STATE_pt 222 are registered in each entry.
  • DATA 221 is data (or a duplicate thereof) in Tx processing.
  • STATE_pt 222 is a pointer to STATE 212 associated with the data (information indicating the location of STATE 212 in NVMS_STATE 210).
  • NVMS_TABLE 230 is information indicating the correspondence between the Tx process and the data in the Tx process for each Tx process.
  • the NVMS_TABLE 230 has an entry for each Tx process.
  • An ID 231 and one or more DATA_pts 232 are registered in each entry.
  • the ID 231 is an ID for Tx processing.
  • Each of DATA_pt 232 is a pointer to DATA 221 of data in Tx processing (information indicating the location of DATA 221 in NVMS_DATA 220).
  • the data at Tx 1 is data A, data B, and data C, which are associated with entries 223 to 225 in NVMS_DATA 220, respectively.
  • the NVMS_TABLE 230 may be used when there is no function (hardware function or software function) for determining whether the NVMS_DATA 220 is written in the nonvolatile space 202. In other words, if there is a function for determining whether the NVMS_DATA 220 is written in the nonvolatile space 202, the NVMS_TABLE 230 may be omitted.
  • STATE_pt 222 and DATA_pt 232 can be expressed using at least one of a unique number, an address address, an array number, and the like. Also, any of NVMS_STATE 210, NVMS_DATA 220, and NVMS_TABLE 230 may be stored in the nonvolatile space 202.
  • FIG. 3 is a functional block diagram of the management program.
  • the management program 240 is one of programs executed by the processor 131, and is a DBMS, for example.
  • the management program 240 includes a Tx processing system 250 that controls the start and end of Tx processing, a TxMS (Transaction Management System) 260 that manages Tx processing, and an NVMS (Non-Volatile Management System) 270 that manages the nonvolatile space 202. And have.
  • Each of these elements 250, 260, and 270 may be a function (eg, a program module) of the management program 240.
  • at least elements 250 and 260 of these elements 250, 260, and 270 may exist for each Tx process.
  • the NVMS 270 has an NVMS_STATE management system 271 and an NVMS_DATA management system 272. Each of these elements 271 and 272 may be a function of NVMS 270 (eg, a program module).
  • TxMS 260 operates in conjunction with Tx processing system 250 and NVMS 270.
  • the NVMS_STATE management system 271 manages the NVMS_STATE 210 and operates in conjunction with the NVMS_DATA management system 272.
  • the NVMS_DATA management system 272 manages NVMS_DATA 220 and NVMS_TABLE 230 and operates in conjunction with the NVMS_STATE management system 271.
  • Such a management program 240 may exist in the storage space 200 or may be implemented as hardware.
  • FIG. 4 is a flowchart of the Tx processing system 250.
  • the Tx processing system 250 starts (BEGIN) Tx processing in response to an instruction from the user 100 (for example, in response to an instruction from the computer system 110A) (S100). At this time, the Tx processing system 250 sends a start command (BEGIN) to the TxMS 260.
  • the Tx processing system 250 generates a process according to an instruction from the user 100 (S110), and performs a process determination (S120).
  • the Tx processing system 250 determines whether the processing instruction is COMMIT or ABORT. When it is determined that the processing instruction is neither COMMIT nor ABORT, the Tx processing system 250 performs processing execution A (S130).
  • the Tx processing system 250 sends data to the TxMS 260 in response to the processing instruction. These processes are repeated until it is determined in S120 that the processing instruction is COMMIT or ABORT.
  • the Tx processing system 250 When it is determined that the processing instruction is COMMIT or ABORT, the Tx processing system 250 performs processing execution B (S140). In S140, the Tx processing system 250 sends data corresponding to the processing command (COMMIT or ABORT) to the TxMS 260.
  • FIG. 5 is a flowchart of TxMS260.
  • the TxMS 260 starts by receiving a start command (BEGIN) from the Tx processing system 250 (S200). When receiving the processing instruction from the Tx processing system 250, the TxMS 260 determines the received processing instruction (S210).
  • the TxMS 260 sends a processing instruction (CREATE) to the NVMS_STATE management system 271 (S220).
  • CREATE is an instruction to generate an NVMS_STATE entry (entry in NVMS_STATE 210) including the ID 211 and STATE 212 of the Tx process.
  • S220 TxMS 260 ends (S260).
  • the TxMS 260 sends data corresponding to the processing command to the NVMS_DATA management system 272 (S230). Thereafter, the TxMS 260 ends (S260).
  • the TxMS 260 sends the processing instruction (CHECK) and the ID of the Tx process to the NVMS_DATA management system 272 (S240).
  • CHECK is a command for confirming whether or not all data to be processed in the Tx process has been written in the nonvolatile space 202.
  • the TxMS 260 sends a processing command (COMMIT) to the NVMS_STATE management system 271 (S250).
  • the TxMS 260 sends a processing command (DELETE TABLE) to the NVMS_DATA management system 272 (S251).
  • DELETE TABLE is an instruction to delete the NVMS_STATE entry corresponding to the Tx processing for which COMMIT (or ABORT) has been completed from the NVMS_STATE 210. After S251, the TxMS 260 ends (S260).
  • the TxMS 260 sends the processing instruction (ABORT) and the ID of the Tx process to the NVMS_STATE management system 271 (S250), and then the TxMS 260 sends the processing instruction (DELETE TABLE) to the NVMS_DATA management system 272. (S251). Thereafter, the TxMS 260 ends (S260).
  • FIG. 6 is a flowchart of the NVMS_STATE management system 271.
  • the NVMS_STATE management system 271 starts when a processing command is received from the TxMS 260 (S300). The NVMS_STATE management system 271 determines the processing command received from the TxMS 260 (S310).
  • the NVMS_STATE management system 271 secures an area for the NVMS_STATE entry (NVMS_STATE 210 entry) from the nonvolatile space 202 in accordance with the Tx processing (S320). Next, the NVMS_STATE management system 271 writes “PROCESSING” as the STATE 212 in the area (NVMS_STATE entry) secured in S320 (S321). Further, the NVMS_STATE management system 271 generates an ID for Tx processing (S322), and writes the generated ID as the ID 211 in the NVMS_STATE entry stored in S320 (S323).
  • the NVMS_STATE management system 271 confirms that the ID 211 and STATE 212 corresponding to the Tx process have been written in the NVMS_STATE entry (nonvolatile space 202) stored in S320 (S324). Thereafter, the NVMS_STATE management system 271 responds to the TxMS 260 with the written ID 211 and ends (S340).
  • the NVMS_STATE management system 271 searches the NVMS_STATE entry in which the same ID 211 as the received ID is registered from the NVMS_STATE 210 (S330), and writes “COMMIT” as the STATE 212 of the found NVMS_STATE entry (S331). ). That is, the NVMS_STATE management system 271 changes the STATE 212 of the Tx process to “COMMIT”. Thereafter, the NVMS_STATE management system 271 ends (S340).
  • the NVMS_STATE management system 271 searches the NVMS_STATE entry in which the same ID 211 as the received ID is registered from the NVMS_STATE 210 (S330), and writes “ABORT” as the STATE 212 of the found NVMS_STATE entry (S331). ). Thereafter, the NVMS_STATE management system 271 ends (S340).
  • FIG. 7 is a flowchart of the NVMS_DATA management system 272.
  • the NVMS_DATA management system 272 starts when a processing command is received from the TxMS 260 (S400). The NVMS_DATA management system 272 determines the processing command received from the TxMS 260 (S410).
  • the NVMS_DATA management system 272 secures an area for the entry part (DATA_pt 232) of the NVMS_TABLE entry including the received ID as the ID 231 from the nonvolatile space 202 (S420).
  • the NVMS_DATA management system 272 secures an area for the NVMS_DATA entry in which the INSERT target data is written as DATA 220 from the nonvolatile space 202 (S421).
  • the NVMS_DATA management system 272 writes the location of the area (NVMS_DATA entry) secured in S421 as DATA_pt 232 in the entry part secured in S420 (S422).
  • the NVMS_DATA management system 272 writes the location of the NVMS_STATE entry including the received ID as the ID 231 as the STATE_pt 222 in the area (NVMS_DATA entry) reserved in S421, and the received data (INSERT target data) as the DATA 221. Write (S423). Thereafter, the NVMS_DATA management system 272 ends (S450).
  • the NVMS_DATA management system 272 When the processing instruction is CHECK, the NVMS_DATA management system 272 indicates that all data to be processed in Tx processing (that is, all data associated with all DATA_pt 232 in the NVMS_TABLE entry including the received ID as ID 231). It is confirmed (determined) whether data is written in the nonvolatile space 202 (S430). If all processing target data has been written, the NVMS_DATA management system 272 ends (S450). If at least one process target data is not yet written, the NVMS_DATA management system 272 waits for all the process target data to be written in the nonvolatile space 202.
  • the NVMS_DATA management system 272 deletes the NVMS_TABLE entry including the received ID as the ID 211 from the NVMS_TABLE 230 (S440). Thereafter, the NVMS_DATA management system 272 ends (S450).
  • FIG. 8 is a sequence diagram of processing for atomically persisting multiple data.
  • the instruction is expressed as “Com.”.
  • the Tx processing system 250 sends a start command (BEGIN) to the TxMS 260 (300).
  • the TxMS 260 starts in response to the received start command (BEGIN), and sends a processing command (CREATE) to the NVMS_STATE management system 271 (301).
  • the NVMS_STATE management system 271 receives a processing command (CREATE).
  • the NVMS_STATE management system 271 secures an NVMS_STATE entry in the nonvolatile space 202 in accordance with the received processing instruction (CREATE), generates an ID for Tx processing, and sets ID 211 (generated ID) and STATE 212 “PROCESSING” in the NVMS_STATE entry.
  • the NVMS_STATE management system 271 returns the ID written in the nonvolatile space 202 to the TxMS 260.
  • the TxMS 260 receives the ID from the NVMS_STATE management system 271 and returns the ID to the Tx processing system 250.
  • the Tx processing system 250 receives the started Tx processing ID from the TxMS 260 after transmitting the start command (BEGIN).
  • the Tx processing system 250 sends the SQL command (INSERT), the INSERT target data, and the ID received from the TxMS 260 to the TxMS 260 (310).
  • the TxMS 260 receives the SQL command (INSERT), data, and ID.
  • the TxMS 260 sends the processing command (INSERT) and the received data and ID to the NVMS_DATA management system 272 (311).
  • the NVMS_DATA management system 272 receives a processing command (INSERT), data, and ID.
  • the NVMS_DATA management system 272 stores DATA221 (received data) and STATE_pt222 (pointer to the NVMS_STATE entry corresponding to the received ID) in the NVMS_DATA entry (nonvolatile space 202) of the received data. And write. Note that the Tx processing system 250 and the TxMS 260 do not have to wait for the NVMS_STATE management system 271 to end the processing.
  • the Tx processing system 250 sends the end command (COMMIT) and the ID of the Tx process targeted for COMMIT to the TxMS 260 (320).
  • the TxMS 260 receives the end command (COMMIT) and the ID.
  • the TxMS 260 sends the processing command (CHECK) and the received ID to the NVMS_DATA management system 272 (321).
  • the NVMS_DATA management system 272 receives the end command (COMMIT) and ID.
  • the NVMS_DATA management system 272 confirms that all the processing target data (all DATA_pt 232) related to the received ID is written in the nonvolatile space 202 in accordance with the received processing command (CHECK).
  • the NVMS_DATA management system 272 sends a completion notification to the TxMS 260.
  • the TxMS 260 receives the completion notification and sends the processing command (COMMIT) and the ID of the Tx processing to the NVMS_STATE management system 271 (322).
  • the NVMS_STATE management system 271 receives the processing command (COMMIT) and ID.
  • the NVMS_STATE management system 271 changes the STATE 212 corresponding to the received ID to “COMMIT” in accordance with the received processing command (COMMIT). With this change, the perpetuation of all the processing target data (DATA 221) in the Tx processing is completed.
  • the NVMS_STATE management system 271 sends a completion notification to the TxMS 260.
  • the TxMS 260 receives the completion notification and sends the processing command (DELETE TABLE) and the Tx processing ID to the NVMS_DATA management system 272 (323).
  • the NVMS_STATE management system 271 that has received the notification of completion of the processing command (COMMIT) sends the processing command (DELETE TABLE) after the commit because the NVMS_TABLE entry corresponding to the committed Tx processing (to each data in the committed Tx processing) (NVMS_TABLE entry including DATA_pt 232) is unnecessary (the same can be said for abort, so a processing instruction (DELETE TABLE) may be sent after abort).
  • the NVMS_DATA management system 272 receives a processing command (DELETE TABLE) and ID.
  • the NVMS_DATA management system 272 deletes the NVMS_TABLE entry including the same ID 211 as the received ID according to the received processing command (DELETE TABLE), and sends a completion notification to the TxMS 260.
  • the TxMS 260 receives the completion notification and sends the completion notification to the Tx processing system 250.
  • the Tx processing system 250 sends the processing command (ABORT) and the Tx processing ID to the TxMS 260 (330).
  • the TxMS 260 receives the processing instruction (ABORT) and ID, and sends the processing instruction (ABORT) and ID to the NVMS_STATE management system 271 based on the processing instruction (ABORT) (331).
  • the NVMS_STATE management system 271 receives the processing instruction (ABORT) and the ID, and changes the STATE 212 corresponding to the ID to “ABORT” according to the processing instruction (ABORT). This change cancels the persistence of all data to be processed in Tx processing.
  • the NVMS_STATE management system 271 sends a completion notification to the TxMS 260.
  • the TxMS 260 receives the completion notification and sends a processing command (DELETE TABLE) and ID to the NVMS_DATA management system 272 (332).
  • the NVMS_DATA management system 272 receives the processing command (DELETE TABLE) and ID, deletes the NVMS_TABLE entry including the received ID as the ID 221 according to the processing command (DELETE TABLE), and sends a completion notification to the TxMS 260.
  • the TxMS 260 receives the completion notification and sends the completion notification to the Tx processing system 250.
  • the management program 240 uses NVMS_DATA 220 (for example, first process target data (DATA 221) in the Tx process) corresponding to the Tx process in order to clearly indicate the state of the process target data (DATA 221) of the Tx process.
  • NVMS_DATA 220 for example, first process target data (DATA 221) in the Tx process
  • the ID 211 and STATE 220 corresponding to the Tx process are written to the nonvolatile space 202.
  • FIG. 9 shows a detailed example of the NVMS_STATE 210, NVMS_DATA 220 and NVMS_TABLE 230 shown in FIG.
  • Each configuration (information item) of NVMS_STATE 210 and NVMS_TABLE 230 is as shown in FIG.
  • NVMS_DATA 220 FLAG 224 and NEXT_pt 225 are written in addition to DATA 221 and STATE_pt 222.
  • the FLAG 224 indicates the type of specific processing target data (DATA 221). For example, if the processing target data is deletion target data, FLAG 224 is “DELETE”, and if the processing target data is unnecessary data, FLAG 224 is “GARBAGE”.
  • NEXT_pt 225 represents the location of the data next to the processing target data corresponding to the NEXT_pt 225 (data after the next SQL processing (for example, after updating)).
  • NVMS_DATA 220 shown in FIG. 9 a plurality of data in one Tx process are associated with one-way pointers (NEXT_pt), but may be associated with two-way pointers (NEXT_pt and PREV_pt).
  • FIG. 10 shows a part of the flowchart of the NVMS_DATA management system 272 that includes a difference from the flowchart shown in FIG.
  • FIG. 10 shows a part of the flowchart of the NVMS_DATA management system 272 that includes a difference from the flowchart shown in FIG.
  • differences from FIG. 7 will be mainly described.
  • the NVMS_DATA management system 272 secures an area for the entry part (DATA_pt 232) of the NVMS_TABLE entry including the received ID as the ID 231 from the nonvolatile space 202 (S450).
  • the NVMS_DATA management system 272 secures an area for the NVMS_DATA entry in which the UPDATE target data (updated data) is written as DATA 220 from the nonvolatile space 202 (S451).
  • the NVMS_DATA management system 272 writes the location of the area (NVMS_DATA entry) secured in S451 as DATA_pt 232 in the entry part secured in S450 (S452).
  • the NVMS_DATA management system 272 writes the location of the NVMS_STATE entry including the received ID as the ID 231 as the STATE_pt 222 in the area (NVMS_DATA entry) reserved in S451, and the received data (UPDATE target data) as the DATA 221. Write (S453).
  • the NVMS_DATA management system 272 writes the location of the UPDATE target data (DATA 221) as NEXT_pt 225 of the pre-update data corresponding to the UPDATE target data (S454). Thereafter, the NVMS_DATA management system 272 ends (S440).
  • the processing command is DELETE
  • the same processing as S450 to S454 is performed.
  • the difference is, for example, that the UPDATE target data is DELETE target data and that “DELETE” is written as FLAG 224 corresponding to the DELETE target data in S453.
  • the NVMS_DATA management system 272 follows the NEXT_pt 225. If the FLAG 224 of the latest DATA 221 is not “DELETE” and the STATE 212 corresponding to the Tx processing is “COMMIT”, it means that reference with consistency is possible. If the FLAG 224 of the latest DATA 221 is “DELETE” and the STATE 221 corresponding to the Tx process is “COMMIT”, it means that the latest DATA 221 has been deleted. Further, if the FLAG 224 of the latest DATA 221 is “GARBAGE”, it means that the latest DATA 221 is a target of garbage collection (GC).
  • GC target of garbage collection
  • FIG. 11 is a part including a difference from the sequence diagram shown in FIG. 8 in the sequence diagram of the process of atomically persisting a plurality of data.
  • FIG. 8 differences from FIG. 8 will be mainly described.
  • the Tx processing system 250 sends the SQL command (UPDATE), the location of the pre-update data (DATA_pt), the UPDATE target data, and the ID to the TxMS 260 (340).
  • the TxMS 260 receives them, and sends the processing instruction (UPDATE), the location of the data before update (DATA_pt), the data to be updated, and the ID to the NVMS_DATA management system 272 according to the received SQL instruction (UPDATE) (341) ).
  • the NVMS_DATA management system 272 receives them, creates NVMS_DATA 220 according to the received processing instruction (UPDATE), and updates NEXT_pt 225 corresponding to the received DATA_pt to the location of the UPDATE target data (DATA 221).
  • the Tx processing system 250 and the TxMS 260 do not have to wait for the NVMS_DATA management system 272 to end the processing.
  • the Tx processing system 250 sends the SQL command (DELETE), the location of the pre-update data (DATA_pt), and the ID to the TxMS 260 (350).
  • the TxMS 260 receives them, and in accordance with the received SQL command (DELETE), sends the processing command (DELETE), the location of the pre-update data (DATA_pt), and the ID to the NVMS_DATA management system 272 (351).
  • the NVMS_DATA management system 272 receives them and updates the NEXT_pt 225 corresponding to the received DATA_pt to the location of the DELETE target data (DATA 221) in accordance with the received processing command (DELETE).
  • the Tx processing system 250 and the TxMS 260 do not have to wait for the NVMS_DATA management system 272 to end the processing.
  • This process makes it possible to update, insert or delete multiple data simultaneously.
  • the management program 240 may initialize the NEXT_pt 225 of the pre-update data after the UPDATE process is aborted.
  • the management program 240 may change the FLAG 224 of the data before update or before deletion to “GARBAGE”.
  • the management program 240 may execute garbage collection on data corresponding to FLAG 224 “GARBAGE”.
  • FIG. 12 shows detailed examples of NVMS_STATE 210, NVMS_DATA 220 and NVMS_TABLE 230 shown in FIG. 9 and SYSTEM_PARAM 540 which is further information stored in the storage space 200.
  • NVMS_STATE 210 Each configuration of NVMS_STATE 210, NVMS_DATA 220, and NVMS_TABLE 230 is the same as the configuration shown in FIG.
  • SYSTEM_PARAM 540 is stored in the nonvolatile space 202, for example.
  • SYSTEM_PARAM 540 includes parameters necessary for the status and management of the system (for example, the computer system 110B or the management program 240). Specifically, for example, SYSTEM_PARAM 540 holds START_STATUS 541 for realizing normal activation and termination. START_STATUS 541 indicates whether the previous Tx process ends normally (“SUCCESS”) or abnormally ends (“FAILURE”). If START_STATUS 541 at the time of activation is “FAILURE”, it is understood that the previous termination was an abnormal termination (for example, an unintended termination or a termination failed).
  • SUCCESS previous Tx process ends normally
  • FAILURE abnormally ends
  • FIG. 13 shows further functions that NVMS 270 has.
  • the NVMS 270 includes an NVMS_START management system 273 in addition to the NVMS_STATE management system 271 and the NVMS_DATA management system 272.
  • the NVMS_START management system 273 manages activation and termination, and operates in cooperation with the NVMS_STATE management system 271 and the NVMS_DATA management system 272.
  • the NVMS_START management system 273 guarantees normal startup and termination by controlling the START_STATUS 541 of the SYSTEM_PARAM 540.
  • FIG. 14 is a flowchart of the NVMS_START management system 273.
  • the NVMS_START management system 273 receives processing instructions such as start (START) and end (END) from the user 100 (computer system 110A) (S500). The NVMS_START management system 273 determines the received processing command (S510).
  • the “activation” mentioned here is the activation of the system 273 (or the management program 240 including the system 273), and the “end” is the termination of the system 273 (or the management program 240 including the system 273).
  • the NVMS_START management system 273 determines whether or not the previous termination is normal (S520). Specifically, the failure determination is a determination of whether the START_STATUS 541 is “SUCCESS” or “FAILURE”.
  • the NVMS_START management system 273 changes the START_STATUS 541 to “FAILURE” (S540), and ends the startup process (S550).
  • the NVMS_START management system 273 confirms and repairs the data abnormality as the area confirmation of the NVMS_STATE 210 (S521). Also, the NVMS_START management system 273 initializes the area of the NVMS_TABLE 230 (S522). Finally, the NVMS_START management system 273 maintains START_STATUS 541 at “FAILURE” (S540), and ends the startup process (S550). Even if S540 is not present, START_STATUS 541 remains “FAILURE”, so S540 may be skipped.
  • the NVMS_START management system 273 waits for the system termination processing (S530). When waiting for the system to end, the NVMS_START management system 273 confirms that at least the Tx process is not being executed. As a confirmation method during execution of Tx processing, for example, a method of confirming that all STATEs 212 in NVMS_STATE 210 are not “PROCESSING” or a method of confirming that there is no thread executing Tx processing can be cited. . If the end of the system is confirmed, the NVMS_START management system 273 changes the START_STATUS 541 to “SUCCESS” (S540) and ends the end process (S550).
  • FIG. 15 is a part including a difference from the flowchart shown in FIG. 6 in the flowchart of the NVMS_STATE management system 271.
  • FIG. 6 differs from FIG. 6 will be mainly described.
  • the NVMS_STATE management system 271 determines the received processing instruction (S310). If the processing instruction is START or END, the NVMS_STATE management system 271 ends (S340).
  • the NVMS_STATE management system 271 determines whether there is an undetermined STATE 212 in the NVMS_STATE 210 (S351).
  • the NVMS_STATE management system 271 determines whether or not the STATE 212 is “PROCESSING” (S352). If the referenced STATE 212 is “PROCESSING”, the NVMS_STATE management system 271 changes the STATE 212 from “PROCESSING” to “ABORT” (S353). If the referenced STATE 212 is other than “PROCESSING”, S351 is executed again.
  • FIG. 16 shows a part of the flowchart of the NVMS_DATA management system 272 that includes a difference from the flowchart shown in FIG. 7 (or the flowchart including the part shown in FIG. 10).
  • the NVMS_DATA management system 272 determines the received processing command (S410). If the processing instruction is START or END, the NVMS_DATA management system 272 ends (S440).
  • the NVMS_DATA management system 272 initializes the NVMS_TABLE 230 (S460). This is because there is a possibility that unnecessary data may remain in the NVMS_TABLE 230 when the normal termination is not performed. By initialization of NVMS_TABLE 230, all entries (or only entries corresponding to Tx processing corresponding to STATE 212 “ABORT”) are deleted from NVMS_TABLE 230. After S460, the NVMS_DATA management system 272 ends (S440).
  • FIG. 17 is a sequence diagram of activation and termination.
  • the NVMS_START management system 273 is executed by a command from the user 100 (computer system 110A), and accepts START or END as a command.
  • the NVMS_START management system 273 determines whether the START_STATUS 541 is “SUCCESS” or “FAILURE”.
  • START_STATUS 541 is “SUCCESS”
  • the NVMS_START management system 273 changes START_STATUS 541 to “FAILURE” and ends.
  • the NVMS_START management system 273 restores the NVMS_STATE 210 by sending a processing command (UNDO) to the NVMS_STATE management system 271 (371), and sends a processing command (UNDO) to the NVMS_DATA management system 272.
  • the NVMS_TABLE 230 is initialized by sending (372).
  • START_STATUS 541 is maintained at “FAILURE”.
  • the STATE 212 of the Tx process in which the STATE 212 is “PROCESSING” is changed to “ABORT”.
  • the NVMS_START management system 273 waits for the system to end (for example, waits for the end of all Tx processes). After detecting the system termination, the NVMS_START management system 273 changes START_STATUS 541 to “SUCCESS” and terminates.
  • an in-memory DBMS generally has a process of expanding (reading) a database from storage to a volatile memory and then reflecting a log file read and read from the storage to the database on the volatile memory at the time of failure recovery. I need it. It is conceivable that the database is not read at the time of failure recovery, but in that case, it is necessary to frequently access the storage in order to expand the necessary data into the memory by Tx processing.
  • Comparative Example 1 it is conceivable to place the database in NVM instead of storage. As a result, high-speed access can be expected, and as a result, high-speed processing for expanding the database into volatile memory or reflecting the log file to the database can be expected.
  • an in-memory DBMS may be adopted, and the database may be arranged in NVM instead of volatile memory.
  • NVM non-memory DBMS
  • both the pre-update data and the post-update data remain in NVM, which is expected to eliminate the need for log files.
  • the process of reflecting the log file to the database at the time of failure recovery is eliminated, and as a result, the speed of failure recovery is expected.
  • NVM cannot simultaneously write a plurality of data (for example, a plurality of data in a processor cache), there is a possibility that data consistency cannot be maintained. Specifically, for example, in the case where it is necessary to write data 1 to NVM and then write data 2 to NVM, a failure occurs after writing data 1 to NVM and before writing data 2 to NVM. Since data 2 is not written, inconsistency occurs. In other words, in the first comparative example, the data existing in the NVM is committed data, but in the second comparative example, uncommitted data also exists in the NVM. For this reason, it is difficult to adopt the comparative example 2, and it is considered that the NVM is adopted as an alternative storage device (that is, adopted as a log file storage destination) as in the comparative example 1.
  • the management program 240 centrally manages a plurality of data states for each Tx process. That is, the management program 240 manages the state for each Tx process and associates a plurality of data with the Tx process. After writing a plurality of data to the non-volatile space 202 (for example, NVM), the management program 240 changes the state of Tx processing associated with the plurality of data from non-persistent (“PROCESSING”) to permanent (“COMMIT”) To do. Thereby, a plurality of data is made permanent at the same time regardless of the data amount.
  • PROCESSING non-persistent
  • COMMIT permanent
  • the management program 240 observes the following two rules.
  • Rule 1 It is necessary to write the state (“PROCESSING”) at the start of the Tx process in the nonvolatile space 202 before writing any data in the Tx process to the nonvolatile space 202. That is, after it is guaranteed that the state “PROCESSING” has been written in the nonvolatile space 202, it is necessary to write data in the Tx process into the nonvolatile space 202. This is because when data is first written in the nonvolatile space 202, the pointer (STATE_pt) indicating the destination of the data is unknown.
  • the failure recovery process is completed simply by setting the state of the Tx process whose state is “PROCESSING” to “ABORT”.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Each time the data management system according to the present invention receives a transaction (Tx) processing instruction, the data management system: (A) registers a nonpersistent state in a storage space as a state associated with transaction processing specified by the received instruction; and then (B) changes the state associated with the transaction processing to a persistent state when the data management system completes the transaction. This allows all data for the Tx processing to be made persistent at once.

Description

複数のデータの整合性を維持するデータ管理システム及びデータ管理方法Data management system and data management method for maintaining consistency of plural data
 本発明は、概して、複数のデータの整合性を維持するデータ管理に関する。 The present invention generally relates to data management that maintains the consistency of a plurality of data.
 複数のデータの整合性を維持することが必要な環境(システム)として、例えば、DBMS(Database Management System)がある。 As an environment (system) that needs to maintain the consistency of multiple data, for example, there is a DBMS (Database Management System).
 DBMSは、入出力するデータであるレコードの一貫性及び永続性を制御する。これにより、ユーザは常に意図したレコードを入出力することが可能となる。このようなDBMSの一貫性制御をTx(トランザクション)処理と呼ぶ。Tx処理は、複数の命令(参照命令及び更新命令)をアトミックに実現するときに用いられる。Tx処理では、アトミックに実行したい命令区間の始めと終わり(Tx処理区間)を宣言することにより、指定した区間の複数の命令をアトミックに処理する。Tx処理がコミットする場合、その結果はストレージなどの外部記憶媒体に永続化される。 DBMS controls the consistency and persistence of records that are input and output data. As a result, the user can always input / output the intended record. Such DBMS consistency control is called Tx (transaction) processing. The Tx processing is used when a plurality of instructions (reference instruction and update instruction) are realized atomically. In Tx processing, a plurality of instructions in a specified section are processed atomically by declaring the beginning and end (Tx processing section) of the instruction section to be executed atomically. When Tx processing commits, the result is persisted to an external storage medium such as storage.
 Tx処理を実現するためには、ACID特性を満たす必要がある。ACID特性とは、原子性(Atomicity)、一貫性(Consistency)、独立性(Isolation)及び永続性(Durability)を示す。原子性とは、Tx処理区間の複数の命令を全て実行するか、全て実行させないことである。一貫性とは、データベースに与えられたルール以外の状態に遷移させないことである。独立性とは、Tx処理の結果は、必ずTx処理を逐次的に実行したときと同じになることをいう。永続性とは、Tx処理がコミットしていれば、ACID特性を満たすことによって、Tx処理の一貫性を維持している。 A ACID characteristics must be satisfied to achieve Tx processing. The ACID characteristic indicates atomicity, consistency, isolation, and durability. Atomicity means that a plurality of instructions in the Tx processing section are all executed or not executed at all. Consistency means not making a transition to a state other than the rules given to the database. Independence means that the result of Tx processing is always the same as when Tx processing is executed sequentially. With persistence, if the Tx process is committed, the consistency of the Tx process is maintained by satisfying the ACID characteristic.
 また、DBMSには、性能や可用性も求められる。 Also, the DBMS is required to have performance and availability.
 性能は、例えば特許文献1又は2に開示の技術により向上することが期待される。特許文献1によれば、データベースやインデックスをサーバのメモリに展開してTx処理するインメモリDBMSによって性能向上が期待できる。しかし、インメモリDBMSにおいてもログ処理は発生し、ログ処理が性能の課題となる。特許文献2の技術によれば、ログ処理の性能の課題を解決することが期待される。特許文献2によれば、コミット前の未コミットな状態を定義することにより、未コミットな結果を参照することが可能となる。これにより、例えば、Tx 1の後にTx 2を実行していた処理を、Tx 1のログ処理の完了を待つことなく、Tx 2がTx 1のコミット結果を参照することができ、以って、ログ処理を隠蔽することが期待できる。 The performance is expected to be improved by the technique disclosed in Patent Document 1 or 2, for example. According to Patent Document 1, performance improvement can be expected by an in-memory DBMS that expands a database or an index in a server memory and performs Tx processing. However, log processing also occurs in the in-memory DBMS, and log processing becomes a performance issue. According to the technique of Patent Document 2, it is expected to solve the problem of log processing performance. According to Patent Document 2, it is possible to refer to an uncommitted result by defining an uncommitted state before committing. As a result, for example, Tx を 2 can refer to the commit result of Tx 1 without waiting for the completion of the log processing of Tx 1 for the processing that was executing Tx 2 after Tx 、 1, It can be expected to hide the log processing.
 可用性は、例えば特許文献3に開示の技術により向上することが期待される。特許文献3によれば、ログ連携のHA(High Availability)構成によって可用性の向上が期待される。HA構成は、システムの多重化であり、Tx処理する実行系と実行系の同期を取る待機系とを有する。このようなHA構成により、実行系の障害時に待機系へ即座に切り替えることで可用性の向上が期待される。 Availability is expected to be improved by the technology disclosed in Patent Document 3, for example. According to Patent Document 3, an improvement in availability is expected by a log-linked HA (HighabilityAvailability) configuration. The HA configuration is system multiplexing, and includes an execution system that performs Tx processing and a standby system that synchronizes the execution system. Such an HA configuration is expected to improve availability by switching to the standby system immediately in the event of a failure of the active system.
US2,011/0252000US2,011 / 0252000 US8407195US8407195 特開2013-84293号公報JP 2013-84293 A
 特許文献1、2及び3に開示の技術によって、性能や可用性の向上が期待される。しかし、単一システムにおいて性能と可用性を両立することができない。例えば、インメモリDBMSは、データベース(例えばインデックス及び表)を揮発メモリに展開することで高性能を実現する。しかし、障害回復時には、一般に、ストレージ(典型的にはディスク)からデータベースを揮発メモリに展開する(読み出す)処理やその後にストレージからログファイルを読み出し読み出したログファイルをメモリ上のデータベースに反映する処理が必要になり、可用性は低い。一方、障害回復時にデータベースの読み出しを行わないことが考えられるが、そうすると、必要なデータをTx処理で揮発メモリに展開するために度々ストレージにアクセスする必要があり、性能が低下する。 Improvements in performance and availability are expected by the techniques disclosed in Patent Documents 1, 2, and 3. However, it is impossible to achieve both performance and availability in a single system. For example, the in-memory DBMS realizes high performance by expanding a database (for example, an index and a table) in a volatile memory. However, at the time of failure recovery, in general, the process of expanding (reading) a database from storage (typically a disk) to volatile memory, and the process of subsequently reading the log file from storage and reflecting the read log file to the database on the memory Is required and availability is low. On the other hand, it is conceivable that the database is not read at the time of failure recovery. However, in this case, it is necessary to frequently access the storage in order to expand the necessary data to the volatile memory by the Tx process, and the performance deteriorates.
 単一システムにおいて性能と可用性を両立することが望ましい。例えば、インメモリDBMSの障害回復を高速に実行することが望まれる。インメモリDBMSでは、ストレージからデータをメモリに展開する処理、ストレージからログファイルを読み出しメモリ上のデータに適応する処理が課題となる。 It is desirable to achieve both performance and availability in a single system. For example, it is desired to perform failure recovery of the in-memory DBMS at high speed. In the in-memory DBMS, processing for expanding data from the storage into the memory and processing for reading the log file from the storage and adapting to the data on the memory are problems.
 このような課題は、DBMSに限らず、複数のデータの整合性を維持することが必要な他種の環境(システム)、例えば、ファイルシステム、又は、KVS(Key Value Store)においてもあり得る。 Such a problem is not limited to the DBMS, but may be present in other types of environments (systems) that need to maintain the consistency of a plurality of data, such as a file system or KVS (Key Value Store).
 データ管理システムが、Tx(トランザクション)処理命令を受けた都度に、
(A)その受信した命令に従うトランザクション処理に関連付けた状態であって、非永続状態(非永続を意味する状態)を、記憶空間に登録し、
(B)そのトランザクションを終了する場合、そのトランザクション処理の状態を、永続状態(永続を意味する状態)に変更する。
Each time the data management system receives a Tx (transaction) processing instruction,
(A) A state associated with the transaction processing according to the received instruction, which is a non-persistent state (a state meaning non-permanent) is registered in the storage space,
(B) When the transaction is terminated, the transaction processing state is changed to a permanent state (a state meaning permanent).
 単一システムにおいて性能と可用性を両立することができる。 ∙ Can achieve both performance and availability in a single system.
実施形態に係るシステム全体の構成を示す。1 shows a configuration of an entire system according to an embodiment. 記憶空間とその記憶空間に格納される情報を示す。A storage space and information stored in the storage space are shown. 管理プログラムの機能ブロック図である。It is a functional block diagram of a management program. TxMSのフローチャートである。It is a flowchart of TxMS. TxMSのフローチャートである。It is a flowchart of TxMS. NVMS_STATE管理システムのフローチャートである。It is a flowchart of a NVMS_STATE management system. NVMS_DATA管理システムのフローチャートである。It is a flowchart of NVMS_DATA management system. 複数データをアトミックに永続化する処理のシーケンス図である。It is a sequence diagram of the process which perpetuates several data atomically. 図2に示したNVMS_STATE、NVMS_DATA及びNVMS_TABLEの詳細例を示す。The detailed example of NVMS_STATE, NVMS_DATA, and NVMS_TABLE shown in FIG. 2 is shown. NVMS_DATA管理システムのフローチャートのうち、図7に示したフローチャートとの差分を含んだ部分である。Of the flowchart of the NVMS_DATA management system, this is a part including a difference from the flowchart shown in FIG. 複数データをアトミックに永続化する処理のシーケンス図のうち、図8に示したシーケンス図との差分を含んだ部分である。It is a part including the difference with the sequence diagram shown in FIG. 8 among the sequence diagrams of the process which perpetuates several data atomically. 図9に示したNVMS_STATE、NVMS_DATA及びNVMS_TABLEの詳細例と、記憶空間に格納される更なる情報であるSYSTEM_PARAMとを示す。A detailed example of NVMS_STATE, NVMS_DATA, and NVMS_TABLE shown in FIG. 9 and SYSTEM_PARAM, which is further information stored in the storage space, are shown. NVMSが有する更なる機能を示す。Indicates further functions that NVMS has. NVMS_START管理システムのフローチャートである。It is a flowchart of a NVMS_START management system. NVMS_STATE管理システムのフローチャートのうち、図6に示したフローチャートとの差分を含んだ部分である。Of the flowchart of the NVMS_STATE management system, this is a part including a difference from the flowchart shown in FIG. NVMS_DATA管理システムのフローチャートのうち、図7に示したフローチャート(又は、図10に示した部分を含んだフローチャート)との差分を含んだ部分である。Of the flowchart of the NVMS_DATA management system, this is a part including a difference from the flowchart shown in FIG. 7 (or the flowchart including the part shown in FIG. 10). 起動及び終了のシーケンス図である。It is a sequence diagram of starting and ending.
 以下、図面を参照して、データ管理システムとしてDBMS(特に、インメモリDBMS)を例に取り、実施形態を説明する。 Hereinafter, embodiments will be described with reference to the drawings, taking a DBMS (in particular, an in-memory DBMS) as an example of a data management system.
 以下の説明では、プログラムを主語として処理を説明する場合があるが、プログラムがプロセッサ(例えばCPU(Central Processing Unit))によって実行されることで、定められた処理を、適宜にメモリ及び/又はインターフェースデバイス(例えば通信ポート)等を用いながら行うため、処理の主語がプロセッサ(或いは、そのプロセッサを有する装置又はシステム)が行う処理としてもよい。また、プロセッサは、処理の一部または全部を行うハードウェア回路を含んでもよい。プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバまたは計算機が読み取り可能な記憶メディアであってもよい。プログラムソースがプログラム配布サーバの場合、プログラム配布サーバは配布対象のプログラムを他の計算機に配布してよい。 In the following description, processing may be described using a program as a subject. However, when the program is executed by a processor (for example, a CPU (Central Processing Unit)), a predetermined processing is appropriately performed in a memory and / or an interface. Since the processing is performed using a device (for example, a communication port), the subject of processing may be processing performed by a processor (or an apparatus or system having the processor). The processor may include a hardware circuit that performs a part or all of the processing. The program may be installed in a computer-like device from a program source. The program source may be, for example, a storage medium that can be read by a program distribution server or a computer. When the program source is a program distribution server, the program distribution server may distribute the program to be distributed to other computers.
 また、以下の説明では、「トランザクション」を「Tx」と言う。Txの実行により行われる処理を「Tx処理」と言う。また、生成処理(CREATE)、インサート処理(INSERT)、アップデート処理(UPDATE)及びデリート処理(DELETE)のいずれかを意味する言葉として「SQL処理」と言うことができる。Tx処理は、ビギン処理、1以上のSQL処理、及びコミット処理を含む。 In the following description, “transaction” is referred to as “Tx”. Processing performed by executing Tx is referred to as “Tx processing”. In addition, the term “SQL processing” can be used as a word meaning any one of generation processing (CREATE), insertion processing (INSERT), update processing (UPDATE), and delete processing (DELETE). The Tx process includes a begin process, one or more SQL processes, and a commit process.
 以下、まず、図1~図10を参照して、実施形態の基本部分に関する説明をする。次に、図9~図11を参照して、複数データを同時にアップデート、インサート又はデリートする処理に関する説明をする。最後に、図12~図17を参照して、正常に起動及び終了するための処理に関する説明をする。 Hereinafter, first, the basic part of the embodiment will be described with reference to FIGS. Next, with reference to FIGS. 9 to 11, a description will be given of processing for simultaneously updating, inserting or deleting a plurality of data. Finally, with reference to FIG. 12 to FIG. 17, a description will be given of processing for normal activation and termination.
 <実施形態の基本部分に関する説明> <Explanation regarding basic part of embodiment>
 図1は、実施形態に係るシステム全体の構成を示す。 FIG. 1 shows the configuration of the entire system according to the embodiment.
 計算機システム110Bが、ユーザ100から、計算機システム110A及びネットワーク150を通じて、命令を受けることができる。計算機システム110Bは、計算機システム110A及びネットワーク150を経由すること無しに命令を受けてもよい。また、計算機システム110Bは、複数台の計算機システム110Aと接続することも可能である。 The computer system 110B can receive commands from the user 100 through the computer system 110A and the network 150. The computer system 110B may receive a command without going through the computer system 110A and the network 150. The computer system 110B can be connected to a plurality of computer systems 110A.
 計算機システム110Bは、1以上のノード、例えば2つのノード130及び140を有する。これらのノード130及び140は、システムバス151を介して接続されていてよい。計算機システム110Bに、ネットワーク150経由で外部記憶デバイス120が接続されていてよい。 The computer system 110B has one or more nodes, for example, two nodes 130 and 140. These nodes 130 and 140 may be connected via a system bus 151. The external storage device 120 may be connected to the computer system 110B via the network 150.
 1以上のノードの各々の構成は同じ構成でよい。例えば、ノード130は、メモリ132、内部記憶デバイス133、入出力デバイス134及びそれらに接続されたプロセッサ131を有する。同様に、ノード140も、メモリ142、内部記憶デバイス143、入出力デバイス144及びそれらに接続されたプロセッサ141を有する。以下の説明では、ノード130を主に例に取るが、ノード140のような他のノードも同じ機能及び構成を有していてよい。計算機システム110B(又は、いずれか1つのノード)が、データ管理システムの一例でよい。 The configuration of each of the one or more nodes may be the same. For example, the node 130 includes a memory 132, an internal storage device 133, an input / output device 134, and a processor 131 connected to them. Similarly, the node 140 includes a memory 142, an internal storage device 143, an input / output device 144, and a processor 141 connected thereto. In the following description, the node 130 is mainly taken as an example, but other nodes such as the node 140 may have the same function and configuration. The computer system 110B (or any one node) may be an example of a data management system.
 入出力デバイス134は、外部記憶デバイス120のような外部の装置と通信する通信インターフェイスデバイスでもよいし、ヒューマンマシンインターフェイスデバイス(例えば、キーボード及びポインティングデバイスのような入力デバイスと、表示デバイスのような出力デバイス)でもよい。メモリ132は、DRAM(Dynamic Random Access Memory)のような揮発メモリとフラッシュメモリのような不揮発メモリ(以下、NVM)とのうちの少なくとも1つを含んでよい。メモリ132に、DBMSのようなプログラムが格納されていて、そのプログラムがプロセッサ131により実行される。 The input / output device 134 may be a communication interface device that communicates with an external device such as the external storage device 120, a human machine interface device (eg, an input device such as a keyboard and a pointing device, and an output such as a display device). Device). The memory 132 may include at least one of a volatile memory such as DRAM (Dynamic Random Access Memory) and a non-volatile memory (hereinafter referred to as NVM) such as a flash memory. A program such as a DBMS is stored in the memory 132, and the program is executed by the processor 131.
 図2は、記憶空間とその記憶空間に格納される情報を示す。 FIG. 2 shows a storage space and information stored in the storage space.
 記憶空間200は、メモリ132、内部記憶デバイス133及び外部記憶デバイス120のうちの少なくともメモリ132に基づく。記憶空間200は、揮発空間201と不揮発空間202を含む。 The storage space 200 is based on at least the memory 132 among the memory 132, the internal storage device 133, and the external storage device 120. The storage space 200 includes a volatile space 201 and a nonvolatile space 202.
 揮発空間201は、メモリ132における揮発記憶領域(例えばDRAMのうちの少なくとも一部)に基づく空間である。不揮発空間202は、メモリ132におけるNVM(例えばNVMのうちの少なくとも一部)のみに基づく空間であるが、それに代えて又は加えて、内部記憶デバイス133(例えば、SSD(Solid State Drive)又はHDD(Hard Disk Drive))と外部記憶デバイス120とのうちの少なくとも一部に基づく空間を含んでもよい。但し、プログラムの設定により、NVMに揮発空間201を意図的に配置することは可能である。以下、記憶空間200の操作に関して、言及がなければ不揮発空間202が操作対象であるとする。不揮発空間202のキャッシュとして、揮発空間201が用いられてもよい。 The volatile space 201 is a space based on a volatile storage area (for example, at least a part of the DRAM) in the memory 132. The non-volatile space 202 is a space based only on NVM (for example, at least a part of NVM) in the memory 132, but instead of or in addition, the internal storage device 133 (for example, SSD (Solid State Drive) or HDD ( Hard Disk Drive)) and an external storage device 120 may include a space based on at least a part thereof. However, it is possible to intentionally arrange the volatile space 201 in the NVM by setting the program. Hereinafter, regarding the operation of the storage space 200, it is assumed that the non-volatile space 202 is the operation target unless otherwise mentioned. The volatile space 201 may be used as a cache for the nonvolatile space 202.
 記憶空間200は、NVMS_STATE210とNVMS_DATA220とNVMS_TABLE230といった情報を記憶する。NVMS_STATE210は、状態管理情報の一例である。NVMS_DATA220は、データ管理情報の一例である。NVMS_TABLE230は、トランザクション管理情報の一例である。 The storage space 200 stores information such as NVMS_STATE 210, NVMS_DATA 220, and NVMS_TABLE 230. NVMS_STATE 210 is an example of state management information. NVMS_DATA 220 is an example of data management information. NVMS_TABLE 230 is an example of transaction management information.
 NVMS_STATE210は、Tx処理での処理対象データ(例えばデータベースにおけるレコード)の状態を各Tx処理について示す情報である。例えば、NVMS_STATE210は、Tx処理毎にエントリを有する。各エントリに、ID211とSTATE212が登録される。ID211は、Tx処理のID(例えば識別番号)である。STATE212は、Tx処理での処理対象データの状態を示す情報である。STATE212の値として、例えば、“PROCESSING”、“COMMIT”、“ABORT”等がある。“PROCESSING”は、Tx処理が未コミットであるが故にそのTx処理での全ての処理対象データが不揮発空間202から削除されてもよいことを意味する。一方、“COMMIT”は、Tx処理がコミット済であるが故にそのTx処理での全ての処理対象データが不揮発空間202から削除されてはならないことを意味する。エントリ213によれば、Tx 1(ID“1”のTx処理)での処理対象データの状態が“PROCESSING”である。 NVMS_STATE 210 is information indicating the state of the processing target data (for example, a record in the database) in the Tx process for each Tx process. For example, NVMS_STATE 210 has an entry for each Tx process. ID 211 and STATE 212 are registered in each entry. The ID 211 is an ID (for example, an identification number) for Tx processing. STATE 212 is information indicating the state of data to be processed in the Tx process. Examples of the value of STATE 212 include “PROCESSING”, “COMMIT”, “ABORT”, and the like. “PROCESSING” means that since the Tx process is uncommitted, all data to be processed in the Tx process may be deleted from the nonvolatile space 202. On the other hand, “COMMIT” means that since the Tx process has been committed, all data to be processed in the Tx process must not be deleted from the nonvolatile space 202. According to the entry 213, the state of the processing target data in Tx 1 (Tx processing with ID “1”) is “PROCESSING”.
 NVMS_DATA220は、Tx処理でのデータ(処理対象データ)とそのデータに関連付けられたSTATE212との対応関係をデータ毎に示す情報である。例えば、NVMS_DATA220は、Tx処理でのデータ毎にエントリを有する。各エントリに、DATA221とSTATE_pt222が登録される。DATA221は、Tx処理におけるデータ(又はその複製)である。STATE_pt222は、データに関連付けられているSTATE212へのポインタ(NVMS_STATE210におけるSTATE212の所在を表す情報)である。エントリ223、224及び225によれば、データA、データB及びデータCの各々は、Tx 1(ID=1のTx処理)での処理対象データであり、Tx 1のSTATE212“PROCESSING”に関連付けられていることがわかる。 NVMS_DATA 220 is information indicating, for each data, a correspondence relationship between data in Tx processing (processing target data) and STATE 212 associated with the data. For example, NVMS_DATA 220 has an entry for each data in the Tx process. DATA 221 and STATE_pt 222 are registered in each entry. DATA 221 is data (or a duplicate thereof) in Tx processing. STATE_pt 222 is a pointer to STATE 212 associated with the data (information indicating the location of STATE 212 in NVMS_STATE 210). According to entries 223, 224, and 225, each of data A, data B, and data C is data to be processed in Tx 1 (Tx processing with ID = 1), and is associated with STATE 212 “PROCESSING” in Tx 1. You can see that
 NVMS_TABLE230は、Tx処理とそのTx処理でのデータとの対応関係をTx処理毎に示す情報である。例えば、NVMS_TABLE230は、Tx処理毎にエントリを有する。各エントリに、ID231と1以上のDATA_pt232が登録される。ID231は、Tx処理のIDである。DATA_pt232の各々は、Tx処理におけるデータのDATA221へのポインタ(NVMS_DATA220におけるDATA221の所在を表す情報)である。エントリ235によれば、Tx 1でのデータは、データA、データB及びデータCであり、それらはNVMS_DATA220におけるエントリ223~225にそれぞれ関連付けられていることがわかる。 NVMS_TABLE 230 is information indicating the correspondence between the Tx process and the data in the Tx process for each Tx process. For example, the NVMS_TABLE 230 has an entry for each Tx process. An ID 231 and one or more DATA_pts 232 are registered in each entry. The ID 231 is an ID for Tx processing. Each of DATA_pt 232 is a pointer to DATA 221 of data in Tx processing (information indicating the location of DATA 221 in NVMS_DATA 220). According to entry 235, the data at Tx 1 is data A, data B, and data C, which are associated with entries 223 to 225 in NVMS_DATA 220, respectively.
 上述の説明において、NVMS_TABLE230は、NVMS_DATA220が不揮発空間202に書込まれたかを判断する機能(ハードウェア機能又はソフトウェア機能)が無い場合に用いられてよい。言い換えれば、NVMS_DATA220が不揮発空間202に書込まれたかを判断する機能が有る場合、NVMS_TABLE230は無くてよい。また、STATE_pt222やDATA_pt232は、それぞれ、ユニーク番号、アドレス番地及び配列番号等のうちの少なくとも1つを用いて表現可能である。また、NVMS_STATE210、NVMS_DATA220及びNVMS_TABLE230のいずれも不揮発空間202に格納されてよい。 In the above description, the NVMS_TABLE 230 may be used when there is no function (hardware function or software function) for determining whether the NVMS_DATA 220 is written in the nonvolatile space 202. In other words, if there is a function for determining whether the NVMS_DATA 220 is written in the nonvolatile space 202, the NVMS_TABLE 230 may be omitted. STATE_pt 222 and DATA_pt 232 can be expressed using at least one of a unique number, an address address, an array number, and the like. Also, any of NVMS_STATE 210, NVMS_DATA 220, and NVMS_TABLE 230 may be stored in the nonvolatile space 202.
 図3は、管理プログラムの機能ブロック図である。 FIG. 3 is a functional block diagram of the management program.
 管理プログラム240は、プロセッサ131により実行されるプログラムの1つであり、例えばDBMSである。管理プログラム240は、Tx処理の開始及び終了等を制御するTx処理システム250と、Tx処理を管理するTxMS(Transaction Management System)260と、不揮発空間202を管理するNVMS(Non-Volatile Management System)270とを有する。これらの要素250、260及び270の各々は、管理プログラム240の機能(例えばプログラムモジュール)でよい。また、これらの要素250、260及び270のうちの少なくとも要素250及び260が、Tx処理毎に存在してよい。 The management program 240 is one of programs executed by the processor 131, and is a DBMS, for example. The management program 240 includes a Tx processing system 250 that controls the start and end of Tx processing, a TxMS (Transaction Management System) 260 that manages Tx processing, and an NVMS (Non-Volatile Management System) 270 that manages the nonvolatile space 202. And have. Each of these elements 250, 260, and 270 may be a function (eg, a program module) of the management program 240. In addition, at least elements 250 and 260 of these elements 250, 260, and 270 may exist for each Tx process.
 NVMS270は、NVMS_STATE管理システム271と、NVMS_DATA管理システム272とを有する。これらの要素271及び272の各々は、NVMS270の機能(例えばプログラムモジュール)でよい。 The NVMS 270 has an NVMS_STATE management system 271 and an NVMS_DATA management system 272. Each of these elements 271 and 272 may be a function of NVMS 270 (eg, a program module).
 TxMS260は、Tx処理システム250やNVMS270と連動して動作する。NVMS_STATE管理システム271は、NVMS_STATE210を管理し、NVMS_DATA管理システム272と連動して動作する。NVMS_DATA管理システム272は、NVMS_DATA220やNVMS_TABLE230を管理し、NVMS_STATE管理システム271と連動して動作する。 TxMS 260 operates in conjunction with Tx processing system 250 and NVMS 270. The NVMS_STATE management system 271 manages the NVMS_STATE 210 and operates in conjunction with the NVMS_DATA management system 272. The NVMS_DATA management system 272 manages NVMS_DATA 220 and NVMS_TABLE 230 and operates in conjunction with the NVMS_STATE management system 271.
 このような管理プログラム240は、記憶空間200に存在しても、ハードウェアとして実装されていてもよい。 Such a management program 240 may exist in the storage space 200 or may be implemented as hardware.
 以下、図4~図9を参照して、本実施形態で行われるデータ処理の一例を説明する。その説明では、1つのTx処理を例に取る。 Hereinafter, an example of data processing performed in the present embodiment will be described with reference to FIGS. In the description, one Tx process is taken as an example.
 図4は、Tx処理システム250のフローチャートである。 FIG. 4 is a flowchart of the Tx processing system 250.
 Tx処理システム250は、ユーザ100からの指示によって(例えば計算機システム110Aからの指示に応答して)、Tx処理を開始(BEGIN)する(S100)。このとき、Tx処理システム250は、開始命令(BEGIN)をTxMS260へ送る。 The Tx processing system 250 starts (BEGIN) Tx processing in response to an instruction from the user 100 (for example, in response to an instruction from the computer system 110A) (S100). At this time, the Tx processing system 250 sends a start command (BEGIN) to the TxMS 260.
 次に、Tx処理システム250は、ユーザ100からの指示により処理を生成し(S110)、処理判定を行う(S120)。S120では、Tx処理システム250は、処理命令がCOMMITかABORTであるかを判断する。処理命令がCOMMIT及びABORTのいずれでもないと判定された場合、Tx処理システム250は、処理実行Aを行う(S130)。S130では、Tx処理システム250は、処理命令に応じてデータをTxMS260へ送る。これらの処理が、S120において処理命令がCOMMIT又はABORTであると判定されるまで、繰り返される。 Next, the Tx processing system 250 generates a process according to an instruction from the user 100 (S110), and performs a process determination (S120). In S120, the Tx processing system 250 determines whether the processing instruction is COMMIT or ABORT. When it is determined that the processing instruction is neither COMMIT nor ABORT, the Tx processing system 250 performs processing execution A (S130). In S130, the Tx processing system 250 sends data to the TxMS 260 in response to the processing instruction. These processes are repeated until it is determined in S120 that the processing instruction is COMMIT or ABORT.
 処理命令がCOMMIT又はABORTであると判定された場合、Tx処理システム250は、処理実行Bを行う(S140)。S140では、Tx処理システム250は、処理命令(COMMIT又はABORT)に応じたデータをTxMS260へ送る。 When it is determined that the processing instruction is COMMIT or ABORT, the Tx processing system 250 performs processing execution B (S140). In S140, the Tx processing system 250 sends data corresponding to the processing command (COMMIT or ABORT) to the TxMS 260.
 その後、Tx処理システム250は終了する(S150)。 Thereafter, the Tx processing system 250 ends (S150).
 図5は、TxMS260のフローチャートである。 FIG. 5 is a flowchart of TxMS260.
 TxMS260は、Tx処理システム250から開始命令(BEGIN)を受信することにより開始する(S200)。TxMS260は、Tx処理システム250から処理命令を受信した場合、その受信した処理命令を判定する(S210)。 The TxMS 260 starts by receiving a start command (BEGIN) from the Tx processing system 250 (S200). When receiving the processing instruction from the Tx processing system 250, the TxMS 260 determines the received processing instruction (S210).
 処理命令がBEGINの場合、TxMS260は、処理命令(CREATE)をNVMS_STATE管理システム271に送る(S220)。CREATEは、Tx処理のID211及びSTATE212を含んだNVMS_STATEエントリ(NVMS_STATE210におけるエントリ)を生成することの命令である。S220の後、TxMS260は終了する(S260)。 If the processing instruction is BEGIN, the TxMS 260 sends a processing instruction (CREATE) to the NVMS_STATE management system 271 (S220). CREATE is an instruction to generate an NVMS_STATE entry (entry in NVMS_STATE 210) including the ID 211 and STATE 212 of the Tx process. After S220, TxMS 260 ends (S260).
 処理命令がINSERT、UPDATE又はDELETEの場合、TxMS260は、処理命令に応じたデータをNVMS_DATA管理システム272に送る(S230)。その後、TxMS260は終了する(S260)。 When the processing command is INSERT, UPDATE, or DELETE, the TxMS 260 sends data corresponding to the processing command to the NVMS_DATA management system 272 (S230). Thereafter, the TxMS 260 ends (S260).
 処理命令がCOMMITの場合、TxMS260は、処理命令(CHECK)とTx処理のIDとをNVMS_DATA管理システム272に送る(S240)。CHECKは、Tx処理での全ての処理対象データが不揮発空間202に書込み済みであるか否かを確認することの命令である。S240の後、TxMS260は、処理命令(COMMIT)をNVMS_STATE管理システム271に送る(S250)。S250の後、TxMS260は、処理命令(DELETE TABLE)をNVMS_DATA管理システム272に送る(S251)。DELETE TABLEは、COMMIT(又はABORT)が完了したTx処理に対応したNVMS_STATEエントリをNVMS_STATE210から削除することの命令である。S251の後、TxMS260は終了する(S260)。 When the processing instruction is COMMIT, the TxMS 260 sends the processing instruction (CHECK) and the ID of the Tx process to the NVMS_DATA management system 272 (S240). CHECK is a command for confirming whether or not all data to be processed in the Tx process has been written in the nonvolatile space 202. After S240, the TxMS 260 sends a processing command (COMMIT) to the NVMS_STATE management system 271 (S250). After S250, the TxMS 260 sends a processing command (DELETE TABLE) to the NVMS_DATA management system 272 (S251). DELETE TABLE is an instruction to delete the NVMS_STATE entry corresponding to the Tx processing for which COMMIT (or ABORT) has been completed from the NVMS_STATE 210. After S251, the TxMS 260 ends (S260).
 処理命令がABORTの場合、TxMS260は、処理命令(ABORT)とTx処理のIDとをNVMS_STATE管理システム271に送る(S250)、その後、TxMS260は、処理命令(DELETE TABLE)をNVMS_DATA管理システム272に送る(S251)。その後、TxMS260は終了する(S260)。 If the processing instruction is ABORT, the TxMS 260 sends the processing instruction (ABORT) and the ID of the Tx process to the NVMS_STATE management system 271 (S250), and then the TxMS 260 sends the processing instruction (DELETE TABLE) to the NVMS_DATA management system 272. (S251). Thereafter, the TxMS 260 ends (S260).
 図6は、NVMS_STATE管理システム271のフローチャートである。 FIG. 6 is a flowchart of the NVMS_STATE management system 271.
 NVMS_STATE管理システム271は、TxMS260から処理命令を受信した場合に開始する(S300)。NVMS_STATE管理システム271は、TxMS260から受信した処理命令を判定する(S310)。 The NVMS_STATE management system 271 starts when a processing command is received from the TxMS 260 (S300). The NVMS_STATE management system 271 determines the processing command received from the TxMS 260 (S310).
 処理命令がCREATEの場合、NVMS_STATE管理システム271は、Tx処理に応じてNVMS_STATEエントリ(NVMS_STATE210のエントリ)のための領域を不揮発空間202から確保する(S320)。次に、NVMS_STATE管理システム271は、S320で確保した領域(NVMS_STATEエントリ)に、STATE212として“PROCESSING”を書込む(S321)。また、NVMS_STATE管理システム271は、Tx処理のIDを生成し(S322)、生成したIDを、S320で格納したNVMS_STATEエントリにID211として書込む(S323)。次に、NVMS_STATE管理システム271は、S320で格納したNVMS_STATEエントリ(不揮発空間202)に、Tx処理に対応したID211及びSTATE212が書込み済みであることを確認する(S324)。その後、NVMS_STATE管理システム271は、TxMS260へ、その書込み済のID211を応答して終了する(S340)。 When the processing instruction is CREATE, the NVMS_STATE management system 271 secures an area for the NVMS_STATE entry (NVMS_STATE 210 entry) from the nonvolatile space 202 in accordance with the Tx processing (S320). Next, the NVMS_STATE management system 271 writes “PROCESSING” as the STATE 212 in the area (NVMS_STATE entry) secured in S320 (S321). Further, the NVMS_STATE management system 271 generates an ID for Tx processing (S322), and writes the generated ID as the ID 211 in the NVMS_STATE entry stored in S320 (S323). Next, the NVMS_STATE management system 271 confirms that the ID 211 and STATE 212 corresponding to the Tx process have been written in the NVMS_STATE entry (nonvolatile space 202) stored in S320 (S324). Thereafter, the NVMS_STATE management system 271 responds to the TxMS 260 with the written ID 211 and ends (S340).
 処理命令がCOMMITの場合、NVMS_STATE管理システム271は、受信したIDと同じID211が登録されているNVMS_STATEエントリをNVMS_STATE210から検索し(S330)、見つかったNVMS_STATEエントリのSTATE212として“COMMIT”を書込む(S331)。つまり、NVMS_STATE管理システム271は、Tx処理のSTATE212を“COMMIT”に変更する。その後、NVMS_STATE管理システム271は終了する(S340)。 If the processing instruction is COMMIT, the NVMS_STATE management system 271 searches the NVMS_STATE entry in which the same ID 211 as the received ID is registered from the NVMS_STATE 210 (S330), and writes “COMMIT” as the STATE 212 of the found NVMS_STATE entry (S331). ). That is, the NVMS_STATE management system 271 changes the STATE 212 of the Tx process to “COMMIT”. Thereafter, the NVMS_STATE management system 271 ends (S340).
 処理命令がABORTの場合、NVMS_STATE管理システム271は、受信したIDと同じID211が登録されているNVMS_STATEエントリをNVMS_STATE210から検索し(S330)、見つかったNVMS_STATEエントリのSTATE212として“ABORT”を書込む(S331)。その後、NVMS_STATE管理システム271は終了する(S340)。 When the processing instruction is ABORT, the NVMS_STATE management system 271 searches the NVMS_STATE entry in which the same ID 211 as the received ID is registered from the NVMS_STATE 210 (S330), and writes “ABORT” as the STATE 212 of the found NVMS_STATE entry (S331). ). Thereafter, the NVMS_STATE management system 271 ends (S340).
 図7は、NVMS_DATA管理システム272のフローチャートである。 FIG. 7 is a flowchart of the NVMS_DATA management system 272.
 NVMS_DATA管理システム272は、TxMS260から処理命令を受信した場合に開始する(S400)。NVMS_DATA管理システム272は、TxMS260から受信した処理命令を判定する(S410)。 The NVMS_DATA management system 272 starts when a processing command is received from the TxMS 260 (S400). The NVMS_DATA management system 272 determines the processing command received from the TxMS 260 (S410).
 処理命令がINSERTの場合、NVMS_DATA管理システム272は、受信したIDをID231として含むNVMS_TABLEエントリのエントリ部分(DATA_pt232)のための領域を不揮発空間202から確保する(S420)。次に、NVMS_DATA管理システム272は、INSERT対象データがDATA220として書き込まれるNVMS_DATAエントリのための領域を不揮発空間202から確保する(S421)。NVMS_DATA管理システム272は、S420で確保したエントリ部分に、DATA_pt232として、S421で確保した領域(NVMS_DATAエントリ)の所在を書き込む(S422)。そして、NVMS_DATA管理システム272は、S421で確保した領域(NVMS_DATAエントリ)に、STATE_pt222として、受信したIDをID231として含むNVMS_STATEエントリの所在を書き込み、且つ、DATA221として、受信したデータ(INSERT対象データ)を書き込む(S423)。その後、NVMS_DATA管理システム272は終了する(S450)。 When the processing instruction is INSERT, the NVMS_DATA management system 272 secures an area for the entry part (DATA_pt 232) of the NVMS_TABLE entry including the received ID as the ID 231 from the nonvolatile space 202 (S420). Next, the NVMS_DATA management system 272 secures an area for the NVMS_DATA entry in which the INSERT target data is written as DATA 220 from the nonvolatile space 202 (S421). The NVMS_DATA management system 272 writes the location of the area (NVMS_DATA entry) secured in S421 as DATA_pt 232 in the entry part secured in S420 (S422). Then, the NVMS_DATA management system 272 writes the location of the NVMS_STATE entry including the received ID as the ID 231 as the STATE_pt 222 in the area (NVMS_DATA entry) reserved in S421, and the received data (INSERT target data) as the DATA 221. Write (S423). Thereafter, the NVMS_DATA management system 272 ends (S450).
 処理命令がCHECKの場合、NVMS_DATA管理システム272は、Tx処理での全ての処理対象データ(すなわち、受信したIDをID231として含んだNVMS_TABLEエントリにおける全てのDATA_pt232にそれぞれ関連付いている全てのデータ)が不揮発空間202に書込まれているか否かを確認(判定)する(S430)。全ての処理対象データが書込み済みであれば、NVMS_DATA管理システム272は終了する(S450)。少なくとも1つの処理対象データが未書込みであれば、NVMS_DATA管理システム272は、全ての処理対象データが不揮発空間202に書き込まれるのを待つ。 When the processing instruction is CHECK, the NVMS_DATA management system 272 indicates that all data to be processed in Tx processing (that is, all data associated with all DATA_pt 232 in the NVMS_TABLE entry including the received ID as ID 231). It is confirmed (determined) whether data is written in the nonvolatile space 202 (S430). If all processing target data has been written, the NVMS_DATA management system 272 ends (S450). If at least one process target data is not yet written, the NVMS_DATA management system 272 waits for all the process target data to be written in the nonvolatile space 202.
 処理命令がDELETE TABLEの場合、NVMS_DATA管理システム272は、受信したIDをID211として含んだNVMS_TABLEエントリをNVMS_TABLE230から削除する(S440)。その後、NVMS_DATA管理システム272は終了する(S450)。 When the processing instruction is DELETE TABLE, the NVMS_DATA management system 272 deletes the NVMS_TABLE entry including the received ID as the ID 211 from the NVMS_TABLE 230 (S440). Thereafter, the NVMS_DATA management system 272 ends (S450).
 図8は、複数データをアトミックに永続化する処理のシーケンス図である。なお、シーケンス図では、命令を「Com.」と表記する。 FIG. 8 is a sequence diagram of processing for atomically persisting multiple data. In the sequence diagram, the instruction is expressed as “Com.”.
 Tx処理システム250は、開始命令(BEGIN)をTxMS260へ送る(300)。TxMS260は、受信した開始命令(BEGIN)に応答して開始し、処理命令(CREATE)をNVMS_STATE管理システム271へ送る(301)。NVMS_STATE管理システム271は、処理命令(CREATE)を受信する。NVMS_STATE管理システム271は、受信した処理命令(CREATE)に従い、NVMS_STATEエントリを不揮発空間202に確保し、Tx処理のIDを生成し、ID211(生成したID)とSTATE212“PROCESSING”を、そのNVMS_STATEエントリに書き込む(つまり、ID211とSTATE212とを不揮発空間202に書き込む)。その後、NVMS_STATE管理システム271は、不揮発空間202に書き込まれたIDをTxMS260に返す。TxMS260は、NVMS_STATE管理システム271からIDを受信し、そのIDをTx処理システム250へ返す。 The Tx processing system 250 sends a start command (BEGIN) to the TxMS 260 (300). The TxMS 260 starts in response to the received start command (BEGIN), and sends a processing command (CREATE) to the NVMS_STATE management system 271 (301). The NVMS_STATE management system 271 receives a processing command (CREATE). The NVMS_STATE management system 271 secures an NVMS_STATE entry in the nonvolatile space 202 in accordance with the received processing instruction (CREATE), generates an ID for Tx processing, and sets ID 211 (generated ID) and STATE 212 “PROCESSING” in the NVMS_STATE entry. Write (that is, write the ID 211 and STATE 212 to the nonvolatile space 202). Thereafter, the NVMS_STATE management system 271 returns the ID written in the nonvolatile space 202 to the TxMS 260. The TxMS 260 receives the ID from the NVMS_STATE management system 271 and returns the ID to the Tx processing system 250.
 Tx処理システム250は、開始命令(BEGIN)の送信後、開始されたTx処理のIDをTxMS260から受信する。Tx処理システム250は、SQL命令(INSERT)と、INSERT対象データと、TxMS260から受信したIDとを、TxMS260へ送る(310)。TxMS260は、SQL命令(INSERT)、データ及びIDを受信する。TxMS260は、受信したSQL命令(INSERT)に従い、処理命令(INSERT)と、受信したデータ及びIDとを、NVMS_DATA管理システム272へ送る(311)。NVMS_DATA管理システム272は、処理命令(INSERT)、データ及びIDを受信する。NVMS_DATA管理システム272は、受信した処理命令(INSERT)に従い、受信したデータのNVMS_DATAエントリ(不揮発空間202)に、DATA221(受信したデータ)と、STATE_pt222(受信したIDに対応したNVMS_STATEエントリへのポインタ)とを書き込む。なお、Tx処理システム250及びTxMS260は、NVMS_STATE管理システム271のその処理の終了を待たなくてもよい。 The Tx processing system 250 receives the started Tx processing ID from the TxMS 260 after transmitting the start command (BEGIN). The Tx processing system 250 sends the SQL command (INSERT), the INSERT target data, and the ID received from the TxMS 260 to the TxMS 260 (310). The TxMS 260 receives the SQL command (INSERT), data, and ID. In accordance with the received SQL command (INSERT), the TxMS 260 sends the processing command (INSERT) and the received data and ID to the NVMS_DATA management system 272 (311). The NVMS_DATA management system 272 receives a processing command (INSERT), data, and ID. In accordance with the received processing command (INSERT), the NVMS_DATA management system 272 stores DATA221 (received data) and STATE_pt222 (pointer to the NVMS_STATE entry corresponding to the received ID) in the NVMS_DATA entry (nonvolatile space 202) of the received data. And write. Note that the Tx processing system 250 and the TxMS 260 do not have to wait for the NVMS_STATE management system 271 to end the processing.
 Tx処理システム250は、終了命令(COMMIT)とCOMMIT対象のTx処理のIDとをTxMS260へ送る(320)。TxMS260は、終了命令(COMMIT)及びIDを受信する。TxMS260は、受信した終了命令(COMMIT)に従い、処理命令(CHECK)と受信したIDとをNVMS_DATA管理システム272に送る(321)。NVMS_DATA管理システム272は、終了命令(COMMIT)及びIDを受信する。NVMS_DATA管理システム272は、受信した処理命令(CHECK)に従い、受信したIDに関連する全ての処理対象データ(全てのDATA_pt232)が不揮発空間202に書かれていることを確認する。その確認が取れれば、NVMS_DATA管理システム272は、TxMS260へ完了通知を送る。TxMS260は、その完了通知を受信し、処理命令(COMMIT)とTx処理のIDとをNVMS_STATE管理システム271に送る(322)。NVMS_STATE管理システム271は、処理命令(COMMIT)及びIDを受信する。NVMS_STATE管理システム271は、受信した処理命令(COMMIT)に従い、受信したIDに対応したSTATE212を“COMMIT”に変更する。この変更により、Tx処理での全ての処理対象データ(DATA221)の永続化が完了する。 The Tx processing system 250 sends the end command (COMMIT) and the ID of the Tx process targeted for COMMIT to the TxMS 260 (320). The TxMS 260 receives the end command (COMMIT) and the ID. In accordance with the received end command (COMMIT), the TxMS 260 sends the processing command (CHECK) and the received ID to the NVMS_DATA management system 272 (321). The NVMS_DATA management system 272 receives the end command (COMMIT) and ID. The NVMS_DATA management system 272 confirms that all the processing target data (all DATA_pt 232) related to the received ID is written in the nonvolatile space 202 in accordance with the received processing command (CHECK). If the confirmation is obtained, the NVMS_DATA management system 272 sends a completion notification to the TxMS 260. The TxMS 260 receives the completion notification and sends the processing command (COMMIT) and the ID of the Tx processing to the NVMS_STATE management system 271 (322). The NVMS_STATE management system 271 receives the processing command (COMMIT) and ID. The NVMS_STATE management system 271 changes the STATE 212 corresponding to the received ID to “COMMIT” in accordance with the received processing command (COMMIT). With this change, the perpetuation of all the processing target data (DATA 221) in the Tx processing is completed.
 NVMS_STATE管理システム271は、完了通知をTxMS260へ送る。TxMS260は、完了通知を受信し、処理命令(DELETE TABLE)とTx処理のIDとをNVMS_DATA管理システム272に送る(323)。処理命令(COMMIT)の完了通知を受けたNVMS_STATE管理システム271が処理命令(DELETE TABLE)を送る理由は、コミット後には、コミットしたTx処理に対応したNVMS_TABLEエントリ(コミットしたTx処理での各データへのDATA_pt232を含んだNVMS_TABLEエントリ)は不要になるためである(アボートについても同様のことが言えるので、アボート後に、処理命令(DELETE TABLE)が送られてもよい)。NVMS_DATA管理システム272は、処理命令(DELETE TABLE)及びIDを受信する。NVMS_DATA管理システム272は、受信した処理命令(DELETE TABLE)に従い、受信したIDと同じID211を含んだNVMS_TABLEエントリを削除し、完了通知をTxMS260へ送る。TxMS260は、その完了通知を受信し、完了通知をTx処理システム250へ送る。 The NVMS_STATE management system 271 sends a completion notification to the TxMS 260. The TxMS 260 receives the completion notification and sends the processing command (DELETE TABLE) and the Tx processing ID to the NVMS_DATA management system 272 (323). The NVMS_STATE management system 271 that has received the notification of completion of the processing command (COMMIT) sends the processing command (DELETE TABLE) after the commit because the NVMS_TABLE entry corresponding to the committed Tx processing (to each data in the committed Tx processing) (NVMS_TABLE entry including DATA_pt 232) is unnecessary (the same can be said for abort, so a processing instruction (DELETE TABLE) may be sent after abort). The NVMS_DATA management system 272 receives a processing command (DELETE TABLE) and ID. The NVMS_DATA management system 272 deletes the NVMS_TABLE entry including the same ID 211 as the received ID according to the received processing command (DELETE TABLE), and sends a completion notification to the TxMS 260. The TxMS 260 receives the completion notification and sends the completion notification to the Tx processing system 250.
 これらの処理により、複数データのアトミックな永続化が実現される。 These processes realize atomic persistence of multiple data.
 なお、Tx処理を途中で中止する場合、Tx処理システム250は、処理命令(ABORT)とTx処理のIDとをTxMS260へ送る(330)。TxMS260は、処理命令(ABORT)及びIDを受信し、その処理命令(ABORT)に基づき、処理命令(ABORT)及びIDをNVMS_STATE管理システム271に送る(331)。NVMS_STATE管理システム271は、処理命令(ABORT)及びIDを受信し、その処理命令(ABORT)に従い、そのIDに対応したSTATE212を“ABORT”に変更する。この変更により、Tx処理での全ての処理対象データの永続化が取り消されたことになる。NVMS_STATE管理システム271は、完了通知をTxMS260へ送る。TxMS260は、その完了通知を受信し、処理命令(DELETE TABLE)及びIDをNVMS_DATA管理システム272に送る(332)。NVMS_DATA管理システム272は、処理命令(DELETE TABLE)及びIDを受信し、その処理命令(DELETE TABLE)に従い、受信したIDをID221として含んだNVMS_TABLEエントリを削除し、完了通知をTxMS260へ送る。TxMS260は、その完了通知を受信し、完了通知をTx処理システム250へ送る。 When the Tx processing is canceled halfway, the Tx processing system 250 sends the processing command (ABORT) and the Tx processing ID to the TxMS 260 (330). The TxMS 260 receives the processing instruction (ABORT) and ID, and sends the processing instruction (ABORT) and ID to the NVMS_STATE management system 271 based on the processing instruction (ABORT) (331). The NVMS_STATE management system 271 receives the processing instruction (ABORT) and the ID, and changes the STATE 212 corresponding to the ID to “ABORT” according to the processing instruction (ABORT). This change cancels the persistence of all data to be processed in Tx processing. The NVMS_STATE management system 271 sends a completion notification to the TxMS 260. The TxMS 260 receives the completion notification and sends a processing command (DELETE TABLE) and ID to the NVMS_DATA management system 272 (332). The NVMS_DATA management system 272 receives the processing command (DELETE TABLE) and ID, deletes the NVMS_TABLE entry including the received ID as the ID 221 according to the processing command (DELETE TABLE), and sends a completion notification to the TxMS 260. The TxMS 260 receives the completion notification and sends the completion notification to the Tx processing system 250.
 一連のTx処理において、管理プログラム240は、Tx処理の処理対象データ(DATA221)の状態を明示するために、Tx処理に対応したNVMS_DATA220(例えばTx処理での最初の処理対象データ(DATA221))を不揮発空間202に書き込む前に、そのTx処理に対応したID211及びSTATE220を不揮発空間202に書き込む。 In a series of Tx processes, the management program 240 uses NVMS_DATA 220 (for example, first process target data (DATA 221) in the Tx process) corresponding to the Tx process in order to clearly indicate the state of the process target data (DATA 221) of the Tx process. Before writing to the nonvolatile space 202, the ID 211 and STATE 220 corresponding to the Tx process are written to the nonvolatile space 202.
 <複数データを同時にアップデート、インサート又はデリートする処理に関する説明> <Explanation regarding processing to update, insert or delete multiple data simultaneously>
 図9は、図2に示したNVMS_STATE210、NVMS_DATA220及びNVMS_TABLE230の詳細例を示す。 FIG. 9 shows a detailed example of the NVMS_STATE 210, NVMS_DATA 220 and NVMS_TABLE 230 shown in FIG.
 NVMS_STATE210とNVMS_TABLE230の各々の構成(情報項目)は、図2に示した通りである。 Each configuration (information item) of NVMS_STATE 210 and NVMS_TABLE 230 is as shown in FIG.
 NVMS_DATA220の各エントリには、DATA221及びSTATE_pt222に加えて、FLAG224及びNEXT_pt225が書き込まれる。FLAG224は、特定の処理対象データ(DATA221)の種類を示す。例えば、処理対象データが削除対象データであれば、FLAG224は“DELETE”であり、処理対象データが不要データであれば、FLAG224は“GARBAGE”である。NEXT_pt225は、そのNEXT_pt225に対応する処理対象データの次のデータ(次のSQL処理後(例えば更新後)のデータ)の所在を表す。なお、図9に示すNVMS_DATA220によれば、1つのTx処理における複数データは片方向ポインタ(NEXT_pt)で関連付けられているが、双方向ポインタ(NEXT_pt及びPREV_pt)で関連付けられていてもよい。 In each entry of NVMS_DATA 220, FLAG 224 and NEXT_pt 225 are written in addition to DATA 221 and STATE_pt 222. The FLAG 224 indicates the type of specific processing target data (DATA 221). For example, if the processing target data is deletion target data, FLAG 224 is “DELETE”, and if the processing target data is unnecessary data, FLAG 224 is “GARBAGE”. NEXT_pt 225 represents the location of the data next to the processing target data corresponding to the NEXT_pt 225 (data after the next SQL processing (for example, after updating)). According to NVMS_DATA 220 shown in FIG. 9, a plurality of data in one Tx process are associated with one-way pointers (NEXT_pt), but may be associated with two-way pointers (NEXT_pt and PREV_pt).
 図10は、NVMS_DATA管理システム272のフローチャートのうち、図7に示したフローチャートとの差分を含んだ部分である。以下、図7との差分を主に説明する。 FIG. 10 shows a part of the flowchart of the NVMS_DATA management system 272 that includes a difference from the flowchart shown in FIG. Hereinafter, differences from FIG. 7 will be mainly described.
 受信した処理命令がUPDATEの場合、NVMS_DATA管理システム272は、受信したIDをID231として含むNVMS_TABLEエントリのエントリ部分(DATA_pt232)のための領域を不揮発空間202から確保する(S450)。次に、NVMS_DATA管理システム272は、UPDATE対象データ(更新後データ)がDATA220として書き込まれるNVMS_DATAエントリのための領域を不揮発空間202から確保する(S451)。NVMS_DATA管理システム272は、S450で確保したエントリ部分に、DATA_pt232として、S451で確保した領域(NVMS_DATAエントリ)の所在を書き込む(S452)。そして、NVMS_DATA管理システム272は、S451で確保した領域(NVMS_DATAエントリ)に、STATE_pt222として、受信したIDをID231として含むNVMS_STATEエントリの所在を書き込み、且つ、DATA221として、受信したデータ(UPDATE対象データ)を書き込む(S453)。NVMS_DATA管理システム272は、UPDATE対象データに対応する更新前データのNEXT_pt225として、UPDATE対象データ(DATA221)の所在を書き込む(S454)。その後、NVMS_DATA管理システム272は終了する(S440)。 When the received processing instruction is UPDATE, the NVMS_DATA management system 272 secures an area for the entry part (DATA_pt 232) of the NVMS_TABLE entry including the received ID as the ID 231 from the nonvolatile space 202 (S450). Next, the NVMS_DATA management system 272 secures an area for the NVMS_DATA entry in which the UPDATE target data (updated data) is written as DATA 220 from the nonvolatile space 202 (S451). The NVMS_DATA management system 272 writes the location of the area (NVMS_DATA entry) secured in S451 as DATA_pt 232 in the entry part secured in S450 (S452). Then, the NVMS_DATA management system 272 writes the location of the NVMS_STATE entry including the received ID as the ID 231 as the STATE_pt 222 in the area (NVMS_DATA entry) reserved in S451, and the received data (UPDATE target data) as the DATA 221. Write (S453). The NVMS_DATA management system 272 writes the location of the UPDATE target data (DATA 221) as NEXT_pt 225 of the pre-update data corresponding to the UPDATE target data (S454). Thereafter, the NVMS_DATA management system 272 ends (S440).
 処理命令がDELETEの場合も、S450~S454と同様の処理が行われる。相違点としては、例えば、UPDATE対象データがDELETE対象データであることと、S453においてDELETE対象データに対応したFLAG224として“DELETE”が書き込まれることである。 When the processing command is DELETE, the same processing as S450 to S454 is performed. The difference is, for example, that the UPDATE target data is DELETE target data and that “DELETE” is written as FLAG 224 corresponding to the DELETE target data in S453.
 Tx処理における最新のDATA221を参照するために、NVMS_DATA管理システム272は、NEXT_pt225を辿る。最新のDATA221のFLAG224が“DELETE”でなく、且つ、そのTx処理に対応したSTATE212が“COMMIT”であれば、整合性を維持した参照が可能であることを意味する。最新のDATA221のFLAG224が“DELETE”であり、Tx処理に対応したSTATE221が“COMMIT”であれば、その最新のDATA221は削除されていることを意味する。また、最新のDATA221のFLAG224が“GARBAGE”であれば、その最新のDATA221はガベージコレクション(GC)の対象であることを意味する。 In order to refer to the latest DATA 221 in the Tx process, the NVMS_DATA management system 272 follows the NEXT_pt 225. If the FLAG 224 of the latest DATA 221 is not “DELETE” and the STATE 212 corresponding to the Tx processing is “COMMIT”, it means that reference with consistency is possible. If the FLAG 224 of the latest DATA 221 is “DELETE” and the STATE 221 corresponding to the Tx process is “COMMIT”, it means that the latest DATA 221 has been deleted. Further, if the FLAG 224 of the latest DATA 221 is “GARBAGE”, it means that the latest DATA 221 is a target of garbage collection (GC).
 図11は、複数データをアトミックに永続化する処理のシーケンス図のうち、図8に示したシーケンス図との差分を含んだ部分である。以下、図8との差分を主に説明する。 FIG. 11 is a part including a difference from the sequence diagram shown in FIG. 8 in the sequence diagram of the process of atomically persisting a plurality of data. Hereinafter, differences from FIG. 8 will be mainly described.
 Tx処理システム250は、SQL命令(UPDATE)と、更新前データの所在(DATA_pt)と、UPDATE対象データと、IDとをTxMS260へ送る(340)。TxMS260は、それらを受信し、受信したSQL命令(UPDATE)に従い、処理命令(UPDATE)と、更新前データの所在(DATA_pt)と、UPDATE対象データと、IDとをNVMS_DATA管理システム272へ送る(341)。NVMS_DATA管理システム272は、それらを受信し、受信した処理命令(UPDATE)に従い、NVMS_DATA220を作成し、受信したDATA_ptに対応したNEXT_pt225を、UPDATE対象データ(DATA221)の所在に更新する。このとき、Tx処理システム250やTxMS260は、NVMS_DATA管理システム272の処理終了を待たなくてもよい。 The Tx processing system 250 sends the SQL command (UPDATE), the location of the pre-update data (DATA_pt), the UPDATE target data, and the ID to the TxMS 260 (340). The TxMS 260 receives them, and sends the processing instruction (UPDATE), the location of the data before update (DATA_pt), the data to be updated, and the ID to the NVMS_DATA management system 272 according to the received SQL instruction (UPDATE) (341) ). The NVMS_DATA management system 272 receives them, creates NVMS_DATA 220 according to the received processing instruction (UPDATE), and updates NEXT_pt 225 corresponding to the received DATA_pt to the location of the UPDATE target data (DATA 221). At this time, the Tx processing system 250 and the TxMS 260 do not have to wait for the NVMS_DATA management system 272 to end the processing.
 Tx処理システム250は、SQL命令(DELETE)と、更新前データの所在(DATA_pt)と、IDとをTxMS260へ送る(350)。TxMS260は、それらを受信し、受信したSQL命令(DELETE)に従い、処理命令(DELETE)と、更新前データの所在(DATA_pt)と、IDとをNVMS_DATA管理システム272へ送る(351)。NVMS_DATA管理システム272は、それらを受信し、受信した処理命令(DELETE)に従い、受信したDATA_ptに対応したNEXT_pt225を、DELETE対象データ(DATA221)の所在に更新する。このとき、Tx処理システム250やTxMS260は、NVMS_DATA管理システム272の処理終了を待たなくてもよい。 The Tx processing system 250 sends the SQL command (DELETE), the location of the pre-update data (DATA_pt), and the ID to the TxMS 260 (350). The TxMS 260 receives them, and in accordance with the received SQL command (DELETE), sends the processing command (DELETE), the location of the pre-update data (DATA_pt), and the ID to the NVMS_DATA management system 272 (351). The NVMS_DATA management system 272 receives them and updates the NEXT_pt 225 corresponding to the received DATA_pt to the location of the DELETE target data (DATA 221) in accordance with the received processing command (DELETE). At this time, the Tx processing system 250 and the TxMS 260 do not have to wait for the NVMS_DATA management system 272 to end the processing.
 このような処理によって、複数データを同時にアップデート、インサート又はデリートすることが可能となる。 This process makes it possible to update, insert or delete multiple data simultaneously.
 なお、UPDATE処理をアボートした場合、更新前データのNEXT_pt225がUPDATE対象データの所在を示したままになるが、そのUPDATE対象データのSTATE_pt222から特定されるSTATE221が“ABORT”となるので、管理プログラム240は、UPDATE処理が失敗したことがわかる。更に、管理プログラム240は、UPDATE処理のアボート後に、更新前データのNEXT_pt225を初期化してもよい。 When the UPDATE process is aborted, the NEXT_pt 225 of the pre-update data remains indicating the location of the UPDATE target data, but the STATE 221 identified from the STATE_pt 222 of the UPDATE target data becomes “ABORT”, so the management program 240 Shows that the UPDATE process failed. Furthermore, the management program 240 may initialize the NEXT_pt 225 of the pre-update data after the UPDATE process is aborted.
 また、UPDATE又はDELETE後のデータについてコミットが完了した場合、管理プログラム240は、更新前又は削除前のデータのFLAG224を“GARBAGE”に変更してもよい。管理プログラム240は、FLAG224“GARBAGE”に対応したデータについてガベージコレクションを実行してよい。 Further, when the commit is completed for the data after UPDATE or DELETE, the management program 240 may change the FLAG 224 of the data before update or before deletion to “GARBAGE”. The management program 240 may execute garbage collection on data corresponding to FLAG 224 “GARBAGE”.
 <正常に起動及び終了するための処理に関する説明> <Explanation regarding processing for normal startup and termination>
 図12は、図9に示したNVMS_STATE210、NVMS_DATA220及びNVMS_TABLE230の詳細例と、記憶空間200に格納される更なる情報であるSYSTEM_PARAM540とを示す。 FIG. 12 shows detailed examples of NVMS_STATE 210, NVMS_DATA 220 and NVMS_TABLE 230 shown in FIG. 9 and SYSTEM_PARAM 540 which is further information stored in the storage space 200.
 NVMS_STATE210、NVMS_DATA220及びNVMS_TABLE230の各々の構成は、図9に示した構成と同じである。 Each configuration of NVMS_STATE 210, NVMS_DATA 220, and NVMS_TABLE 230 is the same as the configuration shown in FIG.
 SYSTEM_PARAM540は、例えば不揮発空間202に格納される。SYSTEM_PARAM540は、システム(例えば、計算機システム110B又は管理プログラム240)の状態や管理に必要なパラメータを含む。具体的には、例えば、SYSTEM_PARAM540は、正常な起動や終了を実現するためのSTART_STATUS541を保持する。START_STATUS541は、前回のTx処理の終了が正常終了か(“SUCCESS”)異常終了か(“FAILURE”)を示す。起動時のSTART_STATUS541が“FAILURE”であれば、前回の終了は異常終了であった(例えば意図しない終了であった又は終了が失敗であった)ことがわかる。 SYSTEM_PARAM 540 is stored in the nonvolatile space 202, for example. SYSTEM_PARAM 540 includes parameters necessary for the status and management of the system (for example, the computer system 110B or the management program 240). Specifically, for example, SYSTEM_PARAM 540 holds START_STATUS 541 for realizing normal activation and termination. START_STATUS 541 indicates whether the previous Tx process ends normally (“SUCCESS”) or abnormally ends (“FAILURE”). If START_STATUS 541 at the time of activation is “FAILURE”, it is understood that the previous termination was an abnormal termination (for example, an unintended termination or a termination failed).
 図13は、NVMS270が有する更なる機能を示す。 FIG. 13 shows further functions that NVMS 270 has.
 NVMS270は、NVMS_STATE管理システム271及びNVMS_DATA管理システム272に加えて、NVMS_START管理システム273を有する。NVMS_START管理システム273は、起動及び終了を管理し、NVMS_STATE管理システム271及びNVMS_DATA管理システム272と連携して動作する。NVMS_START管理システム273は、SYSTEM_PARAM540のSTART_STATUS541を制御することで、正常な起動と終了を保証する。 The NVMS 270 includes an NVMS_START management system 273 in addition to the NVMS_STATE management system 271 and the NVMS_DATA management system 272. The NVMS_START management system 273 manages activation and termination, and operates in cooperation with the NVMS_STATE management system 271 and the NVMS_DATA management system 272. The NVMS_START management system 273 guarantees normal startup and termination by controlling the START_STATUS 541 of the SYSTEM_PARAM 540.
 図14は、NVMS_START管理システム273のフローチャートである。 FIG. 14 is a flowchart of the NVMS_START management system 273.
 NVMS_START管理システム273は、ユーザ100(計算機システム110A)から起動(START)や終了(END)といった処理命令を受け付ける(S500)。NVMS_START管理システム273は、受けた処理命令を判定する(S510)。ここで言う「起動」は、システム273(又はシステム273を含む管理プログラム240)の起動であり、「終了」は、システム273(又はシステム273を含む管理プログラム240)の終了である。 The NVMS_START management system 273 receives processing instructions such as start (START) and end (END) from the user 100 (computer system 110A) (S500). The NVMS_START management system 273 determines the received processing command (S510). The “activation” mentioned here is the activation of the system 273 (or the management program 240 including the system 273), and the “end” is the termination of the system 273 (or the management program 240 including the system 273).
 処理命令がSTARTの場合、NVMS_START管理システム273は、前回の終了が正常か否かの障害判定を行う(S520)。具体的には、その障害判定は、START_STATUS541が“SUCCESS”か“FAILURE”かの判定である。 If the processing instruction is START, the NVMS_START management system 273 determines whether or not the previous termination is normal (S520). Specifically, the failure determination is a determination of whether the START_STATUS 541 is “SUCCESS” or “FAILURE”.
 START_STATUS541が“SUCCESS”の場合、NVMS_START管理システム273は、START_STATUS541を“FAILURE”に変更し(S540)、起動処理を終了する(S550)。 When the START_STATUS 541 is “SUCCESS”, the NVMS_START management system 273 changes the START_STATUS 541 to “FAILURE” (S540), and ends the startup process (S550).
 START_STATUS541が“FAILURE”の場合、NVMS_START管理システム273は、NVMS_STATE210の領域確認としてデータの異常を確認し修復する(S521)。また、NVMS_START管理システム273は、NVMS_TABLE230の領域を初期化する(S522)。最後に、NVMS_START管理システム273は、START_STATUS541を“FAILURE”に維持し(S540)、起動処理を終了する(S550)。なお、S540が無くてもSTART_STATUS541は“FAILURE”のままなので、S540はスキップされてもよい。 When the START_STATUS 541 is “FAILURE”, the NVMS_START management system 273 confirms and repairs the data abnormality as the area confirmation of the NVMS_STATE 210 (S521). Also, the NVMS_START management system 273 initializes the area of the NVMS_TABLE 230 (S522). Finally, the NVMS_START management system 273 maintains START_STATUS 541 at “FAILURE” (S540), and ends the startup process (S550). Even if S540 is not present, START_STATUS 541 remains “FAILURE”, so S540 may be skipped.
 処理命令がENDの場合、NVMS_START管理システム273は、システムの終了処理を待つ(S530)。システム終了待ちでは、NVMS_START管理システム273は、少なくともTx処理が実行中でないことを確認する。Tx処理の実行中の確認方法として、例えば、NVMS_STATE210における全てのSTATE212が“PROCESSING”でないことを確認する方法、或いは、Tx処理を実行中のスレッドが存在しないことを確認する方法を挙げることができる。NVMS_START管理システム273は、システムの終了が確認できた場合、START_STATUS541を“SUCCESS”に変更し(S540)、終了処理を終了する(S550)。 When the processing command is END, the NVMS_START management system 273 waits for the system termination processing (S530). When waiting for the system to end, the NVMS_START management system 273 confirms that at least the Tx process is not being executed. As a confirmation method during execution of Tx processing, for example, a method of confirming that all STATEs 212 in NVMS_STATE 210 are not “PROCESSING” or a method of confirming that there is no thread executing Tx processing can be cited. . If the end of the system is confirmed, the NVMS_START management system 273 changes the START_STATUS 541 to “SUCCESS” (S540) and ends the end process (S550).
 図15は、NVMS_STATE管理システム271のフローチャートのうち、図6に示したフローチャートとの差分を含んだ部分である。以下、図6との差分を主に説明する。 FIG. 15 is a part including a difference from the flowchart shown in FIG. 6 in the flowchart of the NVMS_STATE management system 271. Hereinafter, differences from FIG. 6 will be mainly described.
 NVMS_STATE管理システム271は、受信した処理命令を判定する(S310)。処理命令がSTART又はENDの場合、NVMS_STATE管理システム271は終了する(S340)。 The NVMS_STATE management system 271 determines the received processing instruction (S310). If the processing instruction is START or END, the NVMS_STATE management system 271 ends (S340).
 処理命令がUNDOの場合、NVMS_STATE管理システム271は、NVMS_STATE210に未判定のSTATE212があるか否かを判定する(S351)。 If the processing instruction is UNDO, the NVMS_STATE management system 271 determines whether there is an undetermined STATE 212 in the NVMS_STATE 210 (S351).
 S351の結果、未判定のSTATE212が無ければ、NVMS_STATE管理システム271は終了する(S340)。 If there is no undetermined STATE 212 as a result of S351, the NVMS_STATE management system 271 ends (S340).
 S351の結果、未判定のSTATE212があれば、NVMS_STATE管理システム271は、そのSTATE212が“PROCESSING”か否かを判定する(S352)。参照したSTATE212が“PROCESSING”であれば、NVMS_STATE管理システム271は、そのSTATE212を“PROCESSING”から“ABORT”に変更する(S353)。参照したSTATE212が“PROCESSING”以外であれば、S351を再度実行する。 If there is an undetermined STATE 212 as a result of S351, the NVMS_STATE management system 271 determines whether or not the STATE 212 is “PROCESSING” (S352). If the referenced STATE 212 is “PROCESSING”, the NVMS_STATE management system 271 changes the STATE 212 from “PROCESSING” to “ABORT” (S353). If the referenced STATE 212 is other than “PROCESSING”, S351 is executed again.
 図16は、NVMS_DATA管理システム272のフローチャートのうち、図7に示したフローチャート(又は、図10に示した部分を含んだフローチャート)との差分を含んだ部分である。以下、図7(及び図10)との差分を主に説明する。 FIG. 16 shows a part of the flowchart of the NVMS_DATA management system 272 that includes a difference from the flowchart shown in FIG. 7 (or the flowchart including the part shown in FIG. 10). Hereinafter, differences from FIG. 7 (and FIG. 10) will be mainly described.
 NVMS_DATA管理システム272は、受信した処理命令を判定する(S410)。処理命令が、START又はENDの場合、NVMS_DATA管理システム272は終了する(S440)。 The NVMS_DATA management system 272 determines the received processing command (S410). If the processing instruction is START or END, the NVMS_DATA management system 272 ends (S440).
 処理命令がUNDOの場合、NVMS_DATA管理システム272は、NVMS_TABLE230を初期化する(S460)。正常な終了がされなかった場合、NVMS_TABLE230には不要データが残っている可能性があるためである。NVMS_TABLE230の初期化によって、NVMS_TABLE230から全てのエントリ(或いは、STATE212“ABORT”に対応したTx処理に対応するエントリのみ)が削除される。S460の後、NVMS_DATA管理システム272は終了する(S440)。 If the processing instruction is UNDO, the NVMS_DATA management system 272 initializes the NVMS_TABLE 230 (S460). This is because there is a possibility that unnecessary data may remain in the NVMS_TABLE 230 when the normal termination is not performed. By initialization of NVMS_TABLE 230, all entries (or only entries corresponding to Tx processing corresponding to STATE 212 “ABORT”) are deleted from NVMS_TABLE 230. After S460, the NVMS_DATA management system 272 ends (S440).
 図17は、起動及び終了のシーケンス図である。 FIG. 17 is a sequence diagram of activation and termination.
 NVMS_START管理システム273は、ユーザ100(計算機システム110A)からの命令により実行され、命令としてSTART又はENDを受け付ける。 The NVMS_START management system 273 is executed by a command from the user 100 (computer system 110A), and accepts START or END as a command.
 ユーザ100から命令(START)を受けた場合(360)、NVMS_START管理システム273は、START_STATUS541が“SUCCESS”か“FAILURE”かを判定する。 When receiving a command (START) from the user 100 (360), the NVMS_START management system 273 determines whether the START_STATUS 541 is “SUCCESS” or “FAILURE”.
 START_STATUS541が“SUCCESS”の場合、NVMS_START管理システム273は、START_STATUS541を“FAILURE”に変更して、終了する。 If START_STATUS 541 is “SUCCESS”, the NVMS_START management system 273 changes START_STATUS 541 to “FAILURE” and ends.
 START_STATUS541が“FAILURE”の場合(370)、NVMS_START管理システム273は、NVMS_STATE管理システム271に処理命令(UNDO)を送ることでNVMS_STATE210を復元し(371)、NVMS_DATA管理システム272に処理命令(UNDO)を送ることでNVMS_TABLE230を初期化する(372)。START_STATUS541は“FAILURE”に維持される。なお、NVMS_STATE210の復元(310)では、STATE212が“PROCESSING”であるTx処理のSTATE212が“ABORT”に変更される。 When the START_STATUS 541 is “FAILURE” (370), the NVMS_START management system 273 restores the NVMS_STATE 210 by sending a processing command (UNDO) to the NVMS_STATE management system 271 (371), and sends a processing command (UNDO) to the NVMS_DATA management system 272. The NVMS_TABLE 230 is initialized by sending (372). START_STATUS 541 is maintained at “FAILURE”. In the restoration (310) of the NVMS_STATE 210, the STATE 212 of the Tx process in which the STATE 212 is “PROCESSING” is changed to “ABORT”.
 ユーザ100から命令(END)を受けた場合(380)、NVMS_START管理システム273は、システム終了待ちとなる(例えば全てのTx処理の終了を待つ)。システム終了を検出した後、NVMS_START管理システム273は、START_STATUS541を“SUCCESS”に変更して、終了する。 When receiving an instruction (END) from the user 100 (380), the NVMS_START management system 273 waits for the system to end (for example, waits for the end of all Tx processes). After detecting the system termination, the NVMS_START management system 273 changes START_STATUS 541 to “SUCCESS” and terminates.
 このような処理によって、正常な起動及び終了を実現することが可能となる。 Such processing makes it possible to realize normal startup and termination.
 以下、実施形態を総括する。なお、総括の説明において、適宜、実施形態の変形例等の新たな記載を追加することができる。 Hereinafter, the embodiments will be summarized. Note that in the general description, new descriptions such as modifications of the embodiment can be added as appropriate.
 例えば、インメモリDBMSは、一般に、障害回復時には、ストレージからデータベースを揮発メモリに展開する(読み出す)処理やその後にストレージからログファイルを読み出し読み出したログファイルを揮発メモリ上のデータベースに反映する処理が必要になる。障害回復時にデータベースの読み出しを行わないことが考えられるが、そうすると、必要なデータをTx処理でメモリに展開するために度々ストレージにアクセスする必要がある。 For example, an in-memory DBMS generally has a process of expanding (reading) a database from storage to a volatile memory and then reflecting a log file read and read from the storage to the database on the volatile memory at the time of failure recovery. I need it. It is conceivable that the database is not read at the time of failure recovery, but in that case, it is necessary to frequently access the storage in order to expand the necessary data into the memory by Tx processing.
 そこで、比較例1として、データベースを、ストレージに代えてNVMに配置することが考えられる。これにより、アクセスの高速化が期待でき、結果として、データベースを揮発メモリに展開したりログファイルをデータベースに反映したりする処理の高速化が期待できる。 Therefore, as Comparative Example 1, it is conceivable to place the database in NVM instead of storage. As a result, high-speed access can be expected, and as a result, high-speed processing for expanding the database into volatile memory or reflecting the log file to the database can be expected.
 さらに、比較例2として、インメモリDBMSを採用し、データベースを、揮発メモリに代えてNVMに配置することも考えられる。これにより、更新前データと更新後データのいずれもNVMに残ることになり、ログファイルを不要にすることが期待される。ログファイルを不要にすることで、障害回復時にログファイルをデータベースに反映する処理を無くし、結果として、障害回復の高速化が期待される。 Furthermore, as Comparative Example 2, an in-memory DBMS may be adopted, and the database may be arranged in NVM instead of volatile memory. As a result, both the pre-update data and the post-update data remain in NVM, which is expected to eliminate the need for log files. By making the log file unnecessary, the process of reflecting the log file to the database at the time of failure recovery is eliminated, and as a result, the speed of failure recovery is expected.
 しかし、NVMには、複数のデータ(例えばプロセッサのキャッシュにある複数のデータ)を同時に書き込むことができないので、データの整合性を保つことができないおそれがある。具体的には、例えば、データ1をNVMに書き込みその後にデータ2をNVMに書き込む必要があるケースにおいて、データ1をNVMに書き込んだ後であってデータ2をNVMに書き込む前に障害が生じると、データ2が書き込まれていないため、不整合が生じる。言い換えれば、第1の比較例では、NVMに存在するデータは、コミットしたデータであるが、第2の比較例では、コミットしていないデータもNVMに存在する。このため、比較例2の採用は困難であり、NVMは、比較例1のようにストレージの代替デバイスとして採用される(すなわちログファイルの格納先として採用される)ことになると考えられる。 However, since NVM cannot simultaneously write a plurality of data (for example, a plurality of data in a processor cache), there is a possibility that data consistency cannot be maintained. Specifically, for example, in the case where it is necessary to write data 1 to NVM and then write data 2 to NVM, a failure occurs after writing data 1 to NVM and before writing data 2 to NVM. Since data 2 is not written, inconsistency occurs. In other words, in the first comparative example, the data existing in the NVM is committed data, but in the second comparative example, uncommitted data also exists in the NVM. For this reason, it is difficult to adopt the comparative example 2, and it is considered that the NVM is adopted as an alternative storage device (that is, adopted as a log file storage destination) as in the comparative example 1.
 そこで、本実施形態では、管理プログラム240が、複数のデータの状態をTx処理毎に一元管理する。つまり、管理プログラム240が、Tx処理毎に、状態を管理し、且つ、複数のデータをTx処理に関連付ける。管理プログラム240は、複数のデータを不揮発空間202(例えばNVM)に書き込んだ後、その複数のデータが関連付いたTx処理の状態を非永続(“PROCESSING”)から永続(“COMMIT”)に変更する。これにより、データ量に依存せず複数のデータが同時に永続化される。 Therefore, in the present embodiment, the management program 240 centrally manages a plurality of data states for each Tx process. That is, the management program 240 manages the state for each Tx process and associates a plurality of data with the Tx process. After writing a plurality of data to the non-volatile space 202 (for example, NVM), the management program 240 changes the state of Tx processing associated with the plurality of data from non-persistent (“PROCESSING”) to permanent (“COMMIT”) To do. Thereby, a plurality of data is made permanent at the same time regardless of the data amount.
 本実施形態では、管理プログラム240により、下記の2つの規則が守られる。
(規則1)Tx処理の開始時の状態(“PROCESSING”)を、そのTx処理におけるいずれかのデータを不揮発空間202に書き込む前に、不揮発空間202に書き込む必要がある。つまり、状態“PROCESSING”を不揮発空間202に書いたことが保証されてから、Tx処理でのデータを不揮発空間202に書き込む必要がある。先に不揮発空間202にデータが書かれると、そのデータの関連先を示すポインタ(STATE_pt)が不明だからである。
(規則2)Tx処理をコミットする場合、そのTx処理に関付けられている全てのデータが不揮発空間202に書き込まれていることが確認された後に、Tx処理の状態を“PROCESSING”から“COMMIT”に変更する必要がある。なお、データは、SQL処理の都度に不揮発空間202に書き込まれる必要は無い。データは、Tx処理のコミット前に不揮発空間202にあればよい。
In the present embodiment, the management program 240 observes the following two rules.
(Rule 1) It is necessary to write the state (“PROCESSING”) at the start of the Tx process in the nonvolatile space 202 before writing any data in the Tx process to the nonvolatile space 202. That is, after it is guaranteed that the state “PROCESSING” has been written in the nonvolatile space 202, it is necessary to write data in the Tx process into the nonvolatile space 202. This is because when data is first written in the nonvolatile space 202, the pointer (STATE_pt) indicating the destination of the data is unknown.
(Rule 2) When committing Tx processing, after confirming that all data related to the Tx processing has been written to the nonvolatile space 202, the status of the Tx processing is changed from “PROCESSING” to “COMMIT”. Need to be changed. Note that data need not be written into the nonvolatile space 202 every time SQL processing is performed. The data only needs to be in the non-volatile space 202 before committing the Tx process.
 本実施形態では、状態が“PROCESSING”であるTx処理の状態を“ABORT”にするだけで、障害回復処理が完了する。 In this embodiment, the failure recovery process is completed simply by setting the state of the Tx process whose state is “PROCESSING” to “ABORT”.
 以上、一実施形態を説明したが、本発明は、この実施形態に限定されるものでなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、本発明は、複数のデータの整合性を維持することが必要な他種の環境(データ管理システム)、例えば、ファイルシステム、又は、KVS(Key Value Store)にも適用できる。 As mentioned above, although one embodiment was described, it cannot be overemphasized that this invention can be variously changed in the range which is not limited to this embodiment and does not deviate from the summary. For example, the present invention can be applied to other types of environments (data management systems) that need to maintain the consistency of a plurality of data, for example, file systems, or KVS (Key Value Store).
 110B:計算機システム 110B: Computer system

Claims (14)

  1.  不揮発空間を含んだ記憶空間と、
     トランザクション処理命令を受け付けその命令に従うトランザクション処理におけるデータを前記不揮発空間に書き込むプロセッサと
    を有し、
     前記プロセッサが、トランザクション処理命令を受けた都度に、
      (A)その受信した命令に従うトランザクション処理に関連付けた状態であって、非永続状態を、前記記憶空間に書き込み、
      (B)そのトランザクション処理を終了する場合、そのトランザクション処理の状態を、永続状態に変更する、
    データ管理システム。
    A storage space including a non-volatile space;
    A processor that accepts transaction processing instructions and writes data in the transaction processing according to the instructions to the non-volatile space,
    Each time the processor receives a transaction processing instruction,
    (A) A state associated with a transaction process according to the received instruction and writing a non-persistent state to the storage space;
    (B) When ending the transaction process, change the transaction process state to a permanent state.
    Data management system.
  2.  (A)において、前記プロセッサは、前記受信した命令に従うトランザクション処理におけるいずれかのデータを前記不揮発空間に書き込む前に、そのトランザクション処理に関連付けた状態を前記不揮発空間に書き込む、
    請求項1記載のデータ管理システム。
    In (A), the processor writes a state associated with the transaction processing in the nonvolatile space before writing any data in the transaction processing according to the received instruction into the nonvolatile space.
    The data management system according to claim 1.
  3.  前記プロセッサは、トランザクション処理において、データの挿入、更新又は削除の都度に、
      そのデータに、(A)において前記不揮発空間に書き込まれた、そのトランザクション処理の状態を、関連付けて、
      そのデータを、前記不揮発空間に書き込む、
    請求項2記載のデータ管理システム。
    The processor performs transaction processing every time data is inserted, updated or deleted.
    In association with the state of the transaction processing written in the non-volatile space in (A) to the data,
    Writing the data into the non-volatile space;
    The data management system according to claim 2.
  4.  前記プロセッサは、そのトランザクション処理を終了する場合、
      そのトランザクション処理における全てのデータが前記不揮発空間に書き込まれていれば、そのトランザクション処理の状態を、永続状態に変更する、
    請求項2記載のデータ管理システム。
    When the processor ends its transaction processing,
    If all data in the transaction process is written in the non-volatile space, the state of the transaction process is changed to a permanent state.
    The data management system according to claim 2.
  5.  前記プロセッサは、全ての対象トランザクション処理の各々の状態をアボート状態に変更する処理を障害回復処理として実行し、
     前記全ての対象トランザクション処理の各々は、未永続状態を示す状態に関連付いているトランザクション処理である、
    請求項4記載のデータ管理システム。
    The processor executes a process for changing each state of all target transaction processes to an abort state as a failure recovery process,
    Each of all the target transaction processes is a transaction process associated with a state indicating a non-persistent state.
    The data management system according to claim 4.
  6.  前記記憶空間に、前回の終了が正常に実施されたのか否かを示すシステム状態が格納されており、
     前記プロセッサは、起動時の前記システム状態が異常状態を示している場合、前記障害回復処理を実行する、
    請求項5記載のデータ管理システム。
    In the storage space, a system state indicating whether or not the previous termination has been normally performed is stored,
    The processor executes the failure recovery process when the system state at the start indicates an abnormal state.
    The data management system according to claim 5.
  7.  前記不揮発空間が、状態管理情報を記憶し、
     前記状態管理情報は、トランザクション処理毎に、トランザクション処理のIDと、トランザクション処理の状態とを含んだ情報である、
    請求項2記載のデータ管理システム。
    The non-volatile space stores state management information;
    The state management information is information including a transaction process ID and a transaction process state for each transaction process.
    The data management system according to claim 2.
  8.  前記不揮発空間が、更に、データ管理情報を記憶し、
     前記データ管理情報は、いずれかのトランザクション処理におけるデータ毎に、データと、そのデータを処理対象としたトランザクション処理の状態の前記状態管理情報における所在を示す情報要素とを含んだ情報である、
    請求項7記載のデータ管理システム。
    The non-volatile space further stores data management information;
    The data management information is information including, for each data in any transaction processing, data and an information element indicating a location in the state management information of a state of transaction processing for which the data is a processing target.
    The data management system according to claim 7.
  9.  前記データ管理情報は、いずれかのトランザクション処理におけるデータ毎に、更に、そのデータが前記不揮発空間における必要性を示す情報要素と、そのデータの更新後のデータの所在を示す情報要素とを含む、
    請求項8記載のデータ管理システム。
    The data management information further includes, for each data in any transaction processing, an information element indicating the necessity of the data in the nonvolatile space, and an information element indicating the location of the data after the data is updated.
    The data management system according to claim 8.
  10.  前記不揮発空間が、更に、トランザクション管理情報を記憶し、
     前記トランザクション管理情報は、トランザクション処理毎に、トランザクション処理のIDと、そのトランザクション処理での各データについてそのデータの前記データ管理情報における所在を示す情報要素とを含んだ情報である、
    請求項8記載のデータ管理システム。
    The non-volatile space further stores transaction management information;
    The transaction management information is information including a transaction process ID and an information element indicating the location of the data in the data management information for each data in the transaction process for each transaction process.
    The data management system according to claim 8.
  11.  前記トランザクション管理情報は、トランザクション処理毎にエントリを含み、
     各エントリが、トランザクション処理のIDと、そのトランザクション処理での各データについてそのデータの前記データ管理情報における所在を示す情報要素とを含み、
     前記プロセッサは、前記トランザクション管理情報から、永続状態のトランザクション処理又はアボート状態のトランザクションに対応したエントリを削除する、
    請求項10記載のデータ管理システム。
    The transaction management information includes an entry for each transaction process,
    Each entry includes a transaction process ID and an information element indicating the location of the data in the data management information for each data in the transaction process,
    The processor deletes an entry corresponding to a transaction process in a permanent state or a transaction in an abort state from the transaction management information.
    The data management system according to claim 10.
  12.  前記記憶空間に、前回の終了が正常に実施されたのか否かを示すシステム状態が格納されており、
     前記プロセッサは、起動時の前記システム状態が異常状態を示している場合、障害回復処理として、全ての対象トランザクション処理の各々の状態をアボート状態に変更する処理と、前記トランザクション管理情報を削除する処理とを実行し、
     前記全ての対象トランザクション処理の各々は、未永続状態を示す状態に関連付いているトランザクション処理である、
    請求項10記載のデータ管理システム。
    In the storage space, a system state indicating whether or not the previous termination has been normally performed is stored,
    When the system state at startup indicates an abnormal state, the processor changes each state of all target transaction processes to an abort state, and deletes the transaction management information as failure recovery processing And run
    Each of all the target transaction processes is a transaction process associated with a state indicating a non-persistent state.
    The data management system according to claim 10.
  13.  不揮発メモリを有し、
     前記不揮発空間は、前記不揮発メモリに基づく空間であり、
     前記プロセッサが、インメモリDBMS(Database Management System)を実行することにより、(A)及び(B)を実行する、
    請求項1記載のデータ管理システム。
    Having non-volatile memory,
    The non-volatile space is a space based on the non-volatile memory,
    The processor executes (A) and (B) by executing an in-memory DBMS (Database Management System).
    The data management system according to claim 1.
  14.  トランザクション処理命令を受信し、
     その受信した命令に従うトランザクション処理に関連付けた状態であって、非永続状態を、トランザクション処理におけるデータの書込み先となる不揮発空間を含む記憶空間に書き込み、
     そのトランザクション処理を終了する場合、そのトランザクション処理の状態を、永続状態に変更する、
    データ管理方法。
     
     
    Receive transaction processing instructions,
    A state associated with transaction processing according to the received instruction, and writing a non-persistent state to a storage space including a nonvolatile space to which data is written in the transaction processing,
    To end the transaction process, change the transaction process state to the permanent state.
    Data management method.

PCT/JP2015/078133 2015-10-05 2015-10-05 Data management system and data management method which maintain consistency between plurality of data WO2017060941A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017544072A JPWO2017060941A1 (en) 2015-10-05 2015-10-05 Data management system and data management method for maintaining consistency of plural data
PCT/JP2015/078133 WO2017060941A1 (en) 2015-10-05 2015-10-05 Data management system and data management method which maintain consistency between plurality of data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/078133 WO2017060941A1 (en) 2015-10-05 2015-10-05 Data management system and data management method which maintain consistency between plurality of data

Publications (1)

Publication Number Publication Date
WO2017060941A1 true WO2017060941A1 (en) 2017-04-13

Family

ID=58488279

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/078133 WO2017060941A1 (en) 2015-10-05 2015-10-05 Data management system and data management method which maintain consistency between plurality of data

Country Status (2)

Country Link
JP (1) JPWO2017060941A1 (en)
WO (1) WO2017060941A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003114831A (en) * 2001-10-05 2003-04-18 Toshiba Corp Portable electronic device
JP2006040064A (en) * 2004-07-28 2006-02-09 Matsushita Electric Ind Co Ltd Database access apparatus
JP2009522638A (en) * 2005-12-30 2009-06-11 マイクロソフト コーポレーション Managing state with delta pager

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003114831A (en) * 2001-10-05 2003-04-18 Toshiba Corp Portable electronic device
JP2006040064A (en) * 2004-07-28 2006-02-09 Matsushita Electric Ind Co Ltd Database access apparatus
JP2009522638A (en) * 2005-12-30 2009-06-11 マイクロソフト コーポレーション Managing state with delta pager

Also Published As

Publication number Publication date
JPWO2017060941A1 (en) 2018-04-19

Similar Documents

Publication Publication Date Title
US10706036B2 (en) Systems and methods to optimize multi-version support in indexes
US10552372B2 (en) Systems, methods, and computer-readable media for a fast snapshot of application data in storage
EP2988220B1 (en) Computer system, computer-system management method, and program
US11442961B2 (en) Active transaction list synchronization method and apparatus
US9779128B2 (en) System and method for massively parallel processing database
US9507841B2 (en) Consistent backup of a distributed database system
JP4295333B2 (en) Database control method and program
US8832022B2 (en) Transaction processing device, transaction processing method and transaction processing program
US9652492B2 (en) Out-of-order execution of strictly-ordered transactional workloads
JP5949937B2 (en) Transaction system
JP2008217209A (en) Difference snapshot management method, computer system and nas computer
CN112612799B (en) Data synchronization method and terminal
JP2015191307A (en) transaction system
US20230315713A1 (en) Operation request processing method, apparatus, device, readable storage medium, and system
CN114063883B (en) Data storage method, electronic device and computer program product
CN114556320A (en) Switching to a final consistent database copy
WO2017060941A1 (en) Data management system and data management method which maintain consistency between plurality of data
US10656867B2 (en) Computer system, data management method, and data management program
JP2013161398A (en) Database system, method for database management, and database management program
US10866756B2 (en) Control device and computer readable recording medium storing control program
WO2016117032A1 (en) Database system, computer system, and database management method
KR20190096837A (en) Method and apparatus for parallel journaling using conflict page list
US20230325378A1 (en) Online Migration From An Eventually Consistent System To A Strongly Consistent System
JP6263673B2 (en) Computer system and database management method
WO2018193638A1 (en) Computer and transaction processing method

Legal Events

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

Ref document number: 15905761

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2017544072

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15905761

Country of ref document: EP

Kind code of ref document: A1