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

情報処理システム Download PDF

Info

Publication number
WO2020241727A1
WO2020241727A1 PCT/JP2020/021032 JP2020021032W WO2020241727A1 WO 2020241727 A1 WO2020241727 A1 WO 2020241727A1 JP 2020021032 W JP2020021032 W JP 2020021032W WO 2020241727 A1 WO2020241727 A1 WO 2020241727A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
managed
information
database
logical time
Prior art date
Application number
PCT/JP2020/021032
Other languages
English (en)
French (fr)
Inventor
近藤 健一
Original Assignee
株式会社Murakumo
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 株式会社Murakumo filed Critical 株式会社Murakumo
Publication of WO2020241727A1 publication Critical patent/WO2020241727A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Definitions

  • the present invention relates to an information processing system.
  • DB database
  • Patent Document 1 Patent Document 1
  • Patent Document 1 when the user acquires the database of the predetermined past time, the database is recorded in the journal with respect to the database of the time earlier than the predetermined past time. It was necessary to apply the information of past updates. Such a method may require a lot of processing every time the user acquires a database of a predetermined past time.
  • An object of the present invention is to reduce the processing cost when acquiring data at a predetermined past time, and to improve the processing capacity for a database by utilizing a plurality of information processing systems.
  • the information processing system of one aspect of the present invention is An information processing system that manages data in predetermined units.
  • the present invention it is possible to reduce the processing cost when acquiring data at a predetermined past time, and to improve the processing capacity for a database by utilizing a plurality of information processing systems.
  • FIG. 5 is a flowchart illustrating an example of a flow of management of data to be managed, which is executed by a storage management system node having the functional configuration of FIG. 4 in the second embodiment.
  • FIG. 5 is a flowchart illustrating an example of a flow of management of data to be managed, which is executed by a storage management system node having the functional configuration of FIG. 4 in the third embodiment. It is a figure which shows the example of the file name and contents in the file managed by the storage management system node of FIG. 1 in 4th Embodiment.
  • FIG. 5 is a flowchart illustrating an example of a flow of management of managed data executed by a storage management system node having the functional configuration of FIG. 4 in the fourth embodiment.
  • database refers to a collection of information (data) organized for convenience in storage, search, update, etc.
  • a relational database managed by, for example, RDBMS Relational DataBase Management System
  • RDBMS is a database management system that manages a relational database.
  • a relational database is simply a database that can be regarded as a two-dimensional table consisting of columns and rows. That is, in the database of the first embodiment (and the second embodiment described later), for example, in a database that manages person information as data, each column has items such as "name", "gender", and "age”.
  • each of the plurality of lines corresponds to each of the plurality of persons.
  • the database of this example adopts a data group including each data (each item) indicating each attribute of a person as the data to be managed, and the data to be managed is set for each row unit (person unit). to manage.
  • Items (data attributes) such as "name”, "gender”, and "age” indicated by each column in the database are called "schema”.
  • search process means to extract predetermined data from the database.
  • the predetermined data includes not only a part of the raw data of the database but also data obtained by processing one or more raw data.
  • update in the database of the first embodiment means adding new data as at least a part of the database, and already at least a part of the database. Rewriting the data stored as, and deleting the data already stored as at least a part of the database. That is, changing the data stored in the database is called updating.
  • the process related to database update is hereinafter referred to as “transaction process” or “update process”.
  • the database of this example is constructed by accumulating a set of data of each schema for each row (predetermined unit) corresponding to each of a plurality of persons.
  • database users can search for the following data. Specifically, for example, it is possible to search (extract) a set of data for each of the "name", "gender", and "age” of a specific person. Further, for example, a database user can search (extract) a list of persons whose gender is male among a plurality of persons.
  • a database user can search (extract) the average age value of a person whose gender is male from the data of a plurality of people.
  • the database user can perform an update that adds new person data, an update that changes the age of the person data, and an update that deletes the person data.
  • the database management system of the first embodiment (and the second to fourth embodiments described later) is composed of a plurality of nodes for each of a plurality of types of functions (for example, storage, search, update, etc.).
  • a plurality of types of functions for example, storage, search, update, etc.
  • the "node” is a set of information processing systems in which hardware such as a CPU (Central Processing Unit) and RAM (Random Access Memory) and software such as an OS (Operating System) cooperate with each other. That is, for example, a node is one information processing device. As described above, a plurality of nodes can cooperate with each other. In other words, when a plurality of information processing devices cooperate with each other, each of the plurality of information processing devices is referred to as a "node". Examples of specific configurations of each node will be described later.
  • scalability is a concept of how many times the performance of the entire system including software is multiplied when the hardware resources are multiplied by a predetermined value. That is, it can be said that when the hardware resource is quintupled, the scalability is high when the performance is quintupled, and the scalability is low when the performance is doubling. There are two methods for doubling the hardware resources, scale-up and scale-out.
  • Scale-up means replacing each of the multiple nodes that make up the database management system with each of the higher-performance nodes.
  • adopting a CPU with higher performance as the CPU of the node is an example of scale-up.
  • Scalability is usually high when scaled up.
  • the improvement of CPU performance has reached a plateau.
  • a high-performance CPU has a high cost for performance. That is, the scale-up may deteriorate the cost performance for the improvement of the overall performance.
  • Scale out means increasing the number of nodes that make up the database management system. Specifically, for example, multiplying the number of nodes constituting the database management system by a predetermined number is an example of scale-out. Scalability may be reduced if scaled out. Specifically, for example, the performance may not be improved with respect to the increased number of nodes due to the processing related to the cooperation of the nodes whose number has increased due to the scale-out.
  • the database management system of the first embodiment is matched by efficiently performing the processing related to the cooperation of the plurality of nodes constituting the database management system. Scalability can be improved while maintaining the sexuality. That is, the database management system of the first embodiment (and the second to fourth embodiments described later) is a distributed database management system having high scalability even in scale-out.
  • the "distributed database management system” is a database management in which data is accumulated in each of a plurality of nodes, search processing is performed simultaneously by a plurality of nodes, and update processing is performed simultaneously by a plurality of nodes. It is a system. That is, for example, when each of the divided databases is stored in each of a plurality of nodes, the database can be said to be a distributed database. When the database is stored in a plurality of nodes, each of the plurality of nodes may store not only the divided database but also a database in which all or a part is common.
  • the "distributed database management system" may have a plurality of nodes that manage not only data storage but also search processing and update processing, and requests for search processing and update processing may be distributed. That is, as will be described later, it is possible to execute an update process or a search process on a database distributed to a plurality of nodes based on the requests of the plurality of nodes. Requesting a search process from other nodes constituting the database management system is called a "search request”, and requesting an update process is called an "update request”.
  • scalability may decrease due to the processing related to the cooperation of multiple nodes in the update processing.
  • the search process is performed in a distributed database management system, when the search process is performed a plurality of times, the search process is not based on the same database but is searched with the same search content. Even if this is the case, the same result may not be obtained.
  • the database management system of the first embodiment (and the second to fourth embodiments described later) can be used for transaction processing and search processing in the case of scale-out by managing the logical time. It is possible to realize the consistency, reduce the processing cost, and improve the convenience.
  • FIG. 1 is a block diagram showing a configuration of a database management system according to a first embodiment of the information processing system of the present invention.
  • the storage management node group G1, the client node group G2, and the transaction management node group G3 are connected to each other via a predetermined network NW such as the Internet. It is configured.
  • the storage management node group G1 is composed of N storage management nodes 1-1 to 1-N (N is an arbitrary integer value of 1 or more).
  • the client system node group G2 is composed of M units (M is an arbitrary integer value of 1 or more) of client system nodes 2-1 to 2-M.
  • the transaction management node group G3 is composed of L units (L is an arbitrary integer value of 1 or more) of transaction management nodes 3-1 to 3-L.
  • storage management node 1 When it is not necessary to individually distinguish each of the storage management nodes 1-1 to 1-N, these are collectively referred to as “storage management node 1". When it is not necessary to individually distinguish each of the client system nodes 2-1 to 2-M, these are collectively referred to as “client system node 2”. When it is not necessary to individually distinguish each of the transaction management nodes 3-1 to 3-L, these are collectively referred to as "transaction management node 3".
  • FIG. 2 is a diagram showing an example of the flow of information processing in the database management system of FIG.
  • the storage management node 1 stores the database and performs search processing and update processing based on an external request.
  • the storage management node 1 When the storage management node 1 receives a search request from the client node 2, it recognizes the search conditions from the search request, searches for data satisfying the search conditions, and returns the data.
  • the content of the search request may be as simple as a match search or as complex as expressed in SQL.
  • SQL SQL is a language for manipulating and defining data in a database management system.
  • the storage management node 1 when the storage management node 1 receives the update request from the transaction management node 3, the storage management node 1 updates the data held according to the content of the update request.
  • the client node 2 is a node that issues a search request and an update request. That is, the "client system” is a word that abstractly indicates the issuer of the search request and the update request. Specifically, for example, the client system includes an application program and an SQL interpretation system.
  • the "SQL interpretation system” is a node that receives SQL from yet another system (application program or human), interprets it, and constitutes a storage management system node group G1 and a transaction management system node group G3, respectively. A program that converts to a form that can be understood by.
  • the client node 2 transmits a search request to the storage management node 1, for example, as shown by the arrow of “search request” in FIG. Further, the client node 2 transmits an update request to the transaction management node 3, for example, as shown by the arrow of “update request” in FIG.
  • the transaction management node 3 When the transaction management node 3 receives the update request from the client node 2, it processes as follows. That is, the transaction management node 3 determines whether or not the consistency is broken even if the database is updated according to the update request. If the consistency is broken, or if the possibility is sufficiently high, the transaction management node 3 discards the update request. When it is certain that the consistency is not broken, the transaction management node 3 sends an update request to the storage management node 1.
  • Consistency here is one of the properties that must be satisfied in order to maintain the reliability of transaction processing.
  • Consistency may be a broad concept that includes ACID properties (Atomicity, Consistency, Isolation, Durability) that the database must satisfy. .. Specifically, for example, the following is required as consistency. It is required that A is ACID characteristic, "" some operations are executed and the rest of operations are not executed “does not occur”. Further, for example, as strong consistency, "the contents of the completed transaction can be searched immediately” and the like are required. That is, when a transaction is completed, it is required to be able to search from a database that reflects the contents of the transaction. Further, for example, as I of the ACID characteristic, it is required that "the process of the operation performed during the transaction is hidden from other operations”. That is, it is required that a search is impossible at a time point (process) inconsistent in a transaction.
  • the transaction management node 3 receives the update request transmitted from the client node 2, for example, as shown by the arrow of “update request” in FIG.
  • the transaction management node 3 manages the storage, for example, as shown by the arrow of "update request (only those that do not break the consistency)" in FIG.
  • the transaction management node 3 transmits a search request when determining whether or not the consistency is broken or when managing the update request by the SI (Snapshot Isolation) method. Can be done.
  • FIG. 3 is a block diagram showing an example of the hardware configuration of the storage management node in the database management system of FIG.
  • the storage management system node 1 includes a CPU 11, a ROM (Read Only Memory) 12, a RAM 13, a bus 14, an input / output interface 15, an output unit 16, an input unit 17, a storage unit 18, and a communication unit 19. And a drive 20.
  • the CPU 11 executes various processes according to the program recorded in the ROM 12 or the program loaded from the storage unit 18 into the RAM 13. Data and the like necessary for the CPU 11 to execute various processes are also appropriately stored in the RAM 13.
  • the CPU 11, ROM 12 and RAM 13 are connected to each other via the bus 14.
  • An input / output interface 15 is also connected to the bus 14.
  • An output unit 16, an input unit 17, a storage unit 18, a communication unit 19, and a drive 20 are connected to the input / output interface 15.
  • the output unit 16 is composed of a display, a speaker, and the like, and outputs various information as images and sounds.
  • the input unit 17 is composed of a keyboard, a mouse, and the like, and inputs various information.
  • the storage unit 18 is composed of a hard disk, a DRAM (Dynamic Random Access Memory), or the like, and stores various data.
  • the communication unit 19 communicates with other devices (client node 2 and transaction management node 3 in the example of FIG. 1) via a network NW including the Internet.
  • a removable media 31 made of a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, or the like is appropriately mounted on the drive 20.
  • the program read from the removable media 31 by the drive 20 is installed in the storage unit 18 as needed.
  • the removable media 31 can also store various data stored in the storage unit 18 in the same manner as the storage unit 18.
  • client node 2 and the transaction management node 3 of the database management system shown in FIG. 1 have basically the same configuration as the hardware configuration shown in FIG.
  • FIG. 4 is a functional block diagram showing an example of a functional configuration example of a storage management node, a transaction management node, and a client node in the database management system of FIG.
  • each of the storage management node 1, the client node 2, and the transaction management node 3 will be described as one unit.
  • the storage management node 1 organizes the database so that it is convenient for "accumulation”, “search”, “update”, and the like. Collectively, the storage is called “management" of the database by the storage management node 1. That is, the storage management system node 1 manages the data to be managed as a database. Further, the database will be described as being managed in the form of relations (tables) as described above. That is, the data to be managed is managed for each row in the relation.
  • the storage management node 1 manages a database related to a person, and the database has "name”, "gender”, and "age” as schemas.
  • the update request information acquisition unit 111 When the update process is executed, in the CPU 11 of the storage management system node 1, the update request information acquisition unit 111, the logical time information acquisition unit 112, the line number information acquisition unit 113, the target data management unit 114, and so on. Works. Further, the update request management unit 221 functions in the CPU 212 of the client system node 2. Further, in the CPU 312 of the transaction management system node 3, the update request information acquisition unit 321 and the update request consistency management unit 322 function.
  • the update request management unit 221 of the client node 2 sends information that requests the update of the database, including the content of the update (hereinafter, referred to as "update request information") to the transaction management node 3.
  • update request information is, as described above, a request for update processing to the database managed by the storage management node 1 that constitutes the database management system.
  • the update request management unit 221 acquires or generates information including the update contents requested from the database as update request information based on a request of an application program or the like (not shown), and manages the update request information in transaction. It is transmitted to the system node 3 via the communication unit 211.
  • the update request information referred to here is, for example, the data of a person such as "name is” ABCD “, gender is” male “, and age is” 25 years "stored in the second line of the database, and the name and gender. Is the information of the request "update to the data of the person whose age is" 26 years old "without any change".
  • the update request information acquisition unit 321 of the transaction management node 3 acquires the update request information transmitted from the client node 2.
  • the update request consistency management unit 322 transmits the update request information to the storage management node 1 in which the data to be managed is managed based on the update request information acquired by the update request information acquisition unit 321. Manage the update request. That is, the update request consistency management unit 322 manages the update request by managing whether or not to transmit the update request information to the storage management system node 1 based on the update request information.
  • the update request consistency management unit 322 updates the database including the data to be managed by transmitting the update request information to the storage management system node 1, the update request consistency management unit 322 is concerned. Determine if the database is inconsistent. Further, for example, first, the update request consistency management unit 322 retains and manages all or part of the past update request information and the like. Next, the update request consistency management unit 322 collates the new update request information with the past update request information and the like. At this time, the update request consistency management unit 322 stores the data to be managed updated by the new update request information in the storage management node 1 based on whether or not the data to be managed is updated by the past update request information or the like. Judge whether or not the integrity of the created database is broken.
  • the update request consistency management unit 322 will update the update. Discard the request.
  • the transaction management node 3 sends an update request to the storage management node 1.
  • the update request consistency management unit 322 determines whether or not the consistency of the database is broken, and sends the update request information to the storage management node 1 only when it is certain that the consistency is maintained. Send. As a result, the database managed by the storage management node 1 maintains the consistency related to the update process.
  • the update request consistency management unit 322 can perform a search process described later when determining whether or not the consistency of the database is broken.
  • the update request consistency management unit 322 can notify the update request management unit 221 of the client system node 2 that the update request is to be discarded or that the update request is transmitted to the storage management system node 1.
  • the update request management unit 221 of the client system node 2 can issue the update request again.
  • the update request information acquisition unit 111 of the storage management system node 1 acquires the update request information transmitted from the transaction management system node 3.
  • the logical time information acquisition unit 112 acquires information that can identify at least a part of the time zone in which the data to be managed is valid as the logical time information.
  • the logical time is a time for recording the update history when managing the data to be managed.
  • the logical time may be an integer uniquely assigned each time the database is updated.
  • the logical time can be in the form of a so-called normal time, which is indicated by a combination of "year", “month”, “day”, “hour”, “minute”, “second”, etc., like the normal time. ..
  • the logical time is an identifier that is used for database management and changes in one direction.
  • the logical time information acquisition unit 112 contains information including an insert logical time xt_ins indicating the time when the data to be managed becomes valid by the update process and a delete logical time xt_del indicating the time when the data to be managed becomes invalid. Acquire as logical time information.
  • the data of a person whose name is "ABCD”, whose gender is “male”, and whose age is “25 years old” is the same as the name and gender, and the age is "26 years old".
  • An example will be described in which a process of updating the presence is adopted. That is, in the update process of this example, a set of data of "ABCD”, “male”, and “26 years old” is inserted into the database. In addition, the data set of "ABCD”, "male”, and "25 years old” is deleted from the database.
  • the deletion logical time xt_del of the data set of "ABCD”, "male”, and “26 years old” is undecided. Therefore, for example, the logical time information acquisition unit 112 can acquire the fact that the deletion logical time xt_del is undecided as the deletion logical time xt_del of ⁇ .
  • the insertion logical time xt_ins of the set of data of "ABCD”, “male”, and “25 years old” can be obtained from the data already stored in the database.
  • the line number information acquisition unit 113 acquires line number information that can identify the line to which the data to be managed belongs. That is, the line number information acquisition unit 113 acquires line number information that can specify which row of data the data set to be updated is in the database. Specifically, for example, the line number information acquisition unit 113 acquires from the update request information that the data set of "ABCD", "male", and "26 years old" is the second line as line number information. ..
  • the target data management unit 114 stores and manages the logical time information, the line number information, and the data to be managed in association with each other in the database 150.
  • one area of the database 150 is set to each of the databases 150-1 to 150-n corresponding to each of the logical times t1 to tun.
  • the contents of the data corresponding to each of the logical times 1 to n are stored in each of the databases 150-1 to 150-n.
  • the database 150 since the database 150 stores the logical time information, the line number information, and the data to be managed in association with each other in the database 150, the database 150 includes all the data to be managed corresponding to the databases 150-1 to 150-n. I'm out.
  • the database 150 in which the information including the logical time information is stored is a database in which the information included in the database 150-1 at the logical time t1 can be extracted by performing a predetermined process. The details of how the insertion logical time xt_ins and the deletion logical time xt_del are specifically stored in the database 150 will be described later with reference to FIGS. 5 and 6.
  • the search process is performed on the database 150 after the above-mentioned update process is performed as a premise.
  • the search target logical time information acquisition unit 121 When the search process is executed, in the CPU 11 of the storage management system node 1, the search target logical time information acquisition unit 121, the search content information acquisition unit 122, the search management unit 123, the search result presentation unit 124, and so on. Works. Further, the search request management unit 222 functions in the CPU 212 of the client system node 2.
  • the search request management unit 222 of the client node 2 sends information that requests a data search from the database and includes the contents of the search (hereinafter, referred to as “search request information”) to the storage management node 1.
  • Search request information information that requests a data search from the database and includes the contents of the search
  • the search request management unit 222 acquires or generates information including the search content requested from the database as search request information based on a request of an application program or the like (not shown), and manages the search request information in storage.
  • Send to system node 1. That is, the search request information referred to here is, for example, request information for "extracting person data stored in the second line of the database at" logical time 4 "".
  • the search target logical time information acquisition unit 121 of the storage management system node 1 sets the logical time included in the search request information transmitted from the client system node 2 as the search target logical time st (st is any of 1 to n). It is an integer value of, and is acquired as "4") in this example.
  • the search content information acquisition unit 122 acquires information (hereinafter, referred to as “search content information”) indicating what kind of content is to be searched from the search request information.
  • search content information information indicating what kind of content is to be searched from the search request information.
  • the search content information acquisition unit 122 acquires the information "extracting the person's data stored in the second line of the database" from the search request information as the search content information.
  • the search management unit 123 has a search target specific unit 131 and a search unit 132.
  • the search target identification unit 131 identifies the search target candidate data from the database based on the search target logical time st (“4” in this example) acquired by the search target logical time information acquisition unit 121.
  • first data and second data are accumulated in the database as a result of the above-mentioned update processing. That is, the data whose line number is "second line”, the insertion logical time xt_ins is “1”, the deletion logical time xt_del is "5", the name is "ABCD”, the gender is “male”, and the age is "25” is the first. It is assumed that there is one data. In addition, the data of the line number is "second line”, the insertion logical time xt_ins is "5", the deletion logical time xt_del is " ⁇ ”, the name is "ABCD”, the gender is “male”, and the age is "26”. It is assumed that there are two data.
  • the search target identification unit 131 determines the conditions for specifying the data of the search target candidate in the database as follows. That is, in this example, as described above, the search target logical time st is “4”. Therefore, the data of the candidate to be searched needs to satisfy the condition that "the insertion logical time xt_ins is smaller than 4 and the deletion logical time xt_del is 4 or more". Therefore, the search target specifying unit 131 determines such a condition as a condition for specifying the data of the candidate to be searched. That is, in this case, in the above example, the search target identification unit 131 specifies the first data as the data of the search target candidate.
  • the search unit 132 recognizes the search content from the search content information acquired by the search content information acquisition unit 122, and searches for data matching the search content from the data of the search target candidates identified by the search target identification unit 131. To do. Specifically, for example, in the above example, the search unit 132 searches the first data for data that matches the search content of "extracting the data of a person stored in the second row of the database". .. In this way, from the data of the search target candidates including the plurality of data, the data of "name is" ABCD ", gender is” male ", and age is” 25 “" is extracted as the search result.
  • the search result presentation unit 124 presents the search result of the search unit 132 to the client system node 2. Specifically, for example, the search result presentation unit 124 uses the data of the search results "name is" ABCD ", gender is” male “, and age is” 25 "extracted by the search unit 132 as a client system. Send to node 2.
  • the search request management unit 222 of the client system node 2 acquires and manages the search results transmitted from the storage management system node 1. Specifically, for example, the search request management unit 222 acquires the data of a person whose name is "ABCD", whose gender is “male”, and whose age is "25", which is transmitted from the storage management system node 1. to manage. In this way, the search request management unit 222 can acquire the result for the issued search request.
  • the storage management node 1 of the first embodiment can execute the update process and the search process based on the logical time.
  • the target data management unit 114 stores the logical time information (information of the insertion logical time xt_ins and the deletion logical time xt_del), the line number information, and the data to be managed in association with each other in the database 150.
  • the database 150 owned by the storage management node 1 becomes a database including the data of the databases 150-1 to 150-n corresponding to the logical times.
  • the search target identification unit 131 is the management target data that was valid at the time specified by the search target logical time information based on the logical time information managed by the target data management unit 114 and the search target logical time information. Is specified as candidate data to be searched.
  • the search target identification unit 131 specifies the database 150-st corresponding to the search target logical time st as the data of the search target candidate from the database 150.
  • the search unit 132 can search from the database 150 at the search target logical time st.
  • the insertion logical time xt_ins and the deletion logical time xt_del of the data to be managed can be stored and managed in the database.
  • the search for the logical time can be performed in the same manner as the search for the database.
  • the data of the candidate to be searched is specified by giving in the form of comparing the magnitude relation between the insertion logical time xt_ins and the deletion logical time xt_del stored in the database and the search target logical time st. Can be done.
  • the first embodiment can improve the scalability while being a distributed database management system.
  • the target data management unit 114 associates the insertion logical time xt_ins, the deletion logical time xt_del, and the data to be managed into the database 150A.
  • An example of accumulation will be described.
  • FIG. 5 is a diagram showing an example of data of candidate search targets at each logical time included in the database managed by the storage management node of FIG.
  • FIG. 6 is a diagram showing an example of data to be managed included in the database managed by the storage management node of FIG. 1 in the first embodiment.
  • the search target logical time st of each of the databases shown in FIGS. 5 (A) to 5 (D) is different from each other.
  • the database 150A shown in FIG. 6 is a database including each of the databases shown in FIGS. 5 (A) to 5 (D).
  • Each of the databases shown in FIGS. 5 (A) to 5 (D) has "tid", "A", “B”, and “C” as schemas. “Tid” corresponds to the line number in the description of FIG. Each of "A”, “B”, and “C” corresponds to "name”, “gender”, and “age” in the description of FIG.
  • the data to be managed stored in the database in the explanations after FIG. 5 is not the data of the person used in the explanation of FIG. 4, but is the data of general management targets and is described as a numerical value or a character string. To do.
  • the database 150A in FIG. 6 is data obtained by performing the following first update processing to fourth update processing.
  • the character "A" included in the code of the database 150A is among the databases including the databases 150-8, 150-11, 150-13, 150-16, etc. shown in FIGS. 5 (A) to 5 (D). , Shows that it is one embodiment. Among the databases including the databases 150-8, 150-11, 150-13, 150-16 shown in FIGS. 5 (A) to 5 (D), the other embodiment uses the database 150B after FIG. Etc. will be described later.
  • the first update process is an update process in which data of "1001" is added for “ted” when the logical time is "7".
  • the second update process is an update process in which data of "1002" and "1003" are added for "ted” when the logical time is "10".
  • the third update process is an update process in which the data of "1002” is changed for "ted” when the logical time is "12".
  • the fourth update process is an update process in which the data of "1003" for "ted” is deleted when the logical time is "15”.
  • FIG. 5A shows a database 150-8, that is, a database in which the search target logical time st is “8”. That is, the database 150-8 is a database obtained as a result of the first update process.
  • Database 150-8 includes a set of data of "1001", “a1", “b1”, and “c1" as data corresponding to each of the schemas. That is, the database 150-8 contains only the data whose "tid" is "1001".
  • the search target identification unit 131 searches the data of the database 150-8 shown in FIG. 5 (A) from the database 150A of FIG. Identify as candidate data for.
  • FIG. 5B shows a database 150-11, that is, a database when the search target logical time st is “11”. That is, the database 150-11 is a database obtained as a result of the first update process and the second update process.
  • the database 150-11 includes data in which "ted" is "1001", “1002", and "1003".
  • the search target identification unit 131 selects the data of the database 150-11 shown in FIG. 5 (B) from the database 150A as a search target candidate. Identify as data.
  • FIG. 5C shows a database 150-13, that is, a database when the search target logical time st is “13”. That is, the database 150-13 is a database obtained as a result of the first update process to the third update process.
  • Database 150-13 includes data in which "ted” is "1001", “1002", and "1003". Further, the data having a "tid” of "1002" in the database 150-13 of FIG. 5 (C) is different from the data having a "tid” of "1002" in the database 150-11 of FIG. 5 (B). That is, the data having a "tid” of "1002" in the database 150-13 of FIG. 5C has been changed by the third update process.
  • the search target identification unit 131 searches the data of the database 150-13 shown in FIG. 5 (C) from the database 150A of FIG. Identify as candidate data for.
  • FIG. 5D shows a database 150-16, that is, a database when the search target logical time st is “16”. That is, the database 150-16 is a database obtained as a result of the first update process to the fourth update process.
  • Database 150-16 contains data in which "ted" is "1001" and "1002".
  • the search target identification unit 131 searches the data of the database 150-16 shown in FIG. 5 (D) from the database 150A of FIG. Identify as candidate data for.
  • the database 150A of FIG. 6 has "tid”, “xt_ins”, “xt_del”, “A”, “B”, and “C” as schemas.
  • “Tid” corresponds to the line number in the description of FIG.
  • “Xt_ins” corresponds to “insertion logical time xt_ins” in the description of FIG.
  • “Xt_del” corresponds to "deletion logical time xt_del” in the description of FIG. That is, the database 150A stores the insertion logical time xt_ins and the deletion logical time xt_del as the schema of the database.
  • the search target identification unit 131 searches the database 150A and the database 150-13 shown in FIG. 5 (C) as the search target. A series of steps until identification as candidate data will be described.
  • the search target identification unit 131 specifies whether each of the four rows of the database 150A is valid at the time when the search target logical time st is "13". Specifically, the search target identification unit 131 confirms whether or not the following equations (1) and (2) are satisfied for each row of the database 150A, so that the data to be managed in that row can be obtained. It can be determined whether or not it was valid.
  • the data to be managed in that row is the data that became valid before the search target logical time st.
  • the managed data for that row is data that has not yet been valid.
  • the data to be managed in that row is the data that is not invalid at the time of the search target logical time st. In other words, if equation (2) is not satisfied, the managed data in that row is already invalid data.
  • the search target identification unit 131 determines whether each row of the database 150A in FIG. 6 is valid or invalid as follows.
  • the first row of the database 150A of FIG. 6 (the row in which “tid” is “1001”) satisfies the equations (1) and (2) and is therefore valid.
  • the second row of the database 150A of FIG. 6 (the upper row of the rows where “tid” is “1001”) does not satisfy the equation (2) and is therefore invalid.
  • the third row of the database 150A of FIG. 6 (the lower row of the rows where “tid” is “1001”) is valid because it satisfies the equations (1) and (2).
  • the fourth row of the database 150A of FIG. 6 (the row in which “tid” is “1001”) satisfies the equations (1) and (2) and is therefore valid.
  • the first, third, and fourth rows that are valid are specified as the candidate data to be searched as the database 150-13 of FIG. 5 (C). Will be done.
  • FIG. 7 is a flowchart illustrating an example of a flow of management of managed data executed by the storage management system node having the functional configuration of FIG. 4 in the first embodiment.
  • the "storage process" of the first embodiment is a diagram in which the changed data is changed when the data stored in the database is changed by the update process. This is a process stored in the storage unit 18 of the storage management system node 1 of 4.
  • the update process causes the data to be stored and managed in the database 150A (data to be managed) to be generated, the storage process is started and the following processes of steps S11 to S15 are executed.
  • step S11 the logical time information acquisition unit 112 acquires the insertion logical time xt_ins and the deletion logical time xt_del of the data to be managed as logical time information.
  • step S12 the line number information acquisition unit 113 acquires information that can identify which row in the database the data to be managed is, as line number information.
  • step S13 the target data management unit 114 determines whether or not there is invalid data to be managed in the database 150A based on the line number information acquired in the process of step S12. If there is invalid data to be managed, it is determined to be YES in the process of step S13, and the process proceeds to step S14.
  • step S14 the target data management unit 114 associates the deletion logical time xt_del of the invalidated management target data acquired in the process of step S11 with the invalidated management target data in the database 150A. Accumulate and manage in.
  • step S15 the target data management unit 114 stores the valid data insertion logical time xt_ins acquired in the process of step S11 and the valid management target data in the database 150A in association with each other. to manage. As a result, the storage process ends.
  • step S13 when there is invalid data among the data to be managed has been described above.
  • step S13 when invalid data exists in the data to be managed is as follows. That is, if there is no invalid data, it is determined to be NO in the process of step S13, and the process proceeds to step S15. That is, the process of step S14 executed when there is invalid data is not executed when there is no invalid data to be managed.
  • step S15 the target data management unit 114 associates the logical time information acquired in the process of step S11 with the valid data to be managed as the insertion logical time xt_ins of the valid data in the database. It is stored and managed at 150A. As a result, the storage process ends.
  • the update process is executed for the data to be managed whose "ted” is "1002".
  • step S12 "1002" is acquired as the line number information.
  • the storage process has been described above using the first example when there is invalid data to be managed in the database 150A. Next, the storage process will be described with reference to a second example when there is no invalid data to be managed in the database 150A.
  • the update process is executed for the data to be managed whose "ted” is "1003". This is an example of the case.
  • step S12 "1002" is acquired as the line number information.
  • step S13 since there is no invalid data, it is determined to be NO in the process of step S13, and the process proceeds to step S15.
  • the storage process has been described above using the second example when there is no invalid data to be managed in the database 150A.
  • the storage process in each of the second example and the case where there is no data has been described.
  • the database management system according to the first embodiment of the present invention has been described above. Next, the database management system according to the second embodiment of the present invention will be described.
  • FIG. 1 shows the configuration of the database management system according to the second embodiment of the present invention as it is. Therefore, the description of the configuration of the database management system according to the second embodiment of the present invention will be omitted.
  • FIG. 3 shows the hardware configuration of the storage management node 1 according to the second embodiment of the present invention as it is.
  • each of the client node 2 and the transaction management node 3 of the database management system according to the second embodiment has basically the same configuration as the hardware configuration shown in FIG. .. Therefore, the description of the hardware configuration of each of the storage management node 1, the client node 2, and the transaction management node 3 according to the second embodiment of the present invention will be omitted.
  • FIG. 4 shows the functional configuration of the database management system according to the second embodiment of the present invention as it is. Therefore, the description of the functional configuration of the database management system according to the second embodiment of the present invention will be omitted.
  • the target data management unit 114 manages the logical time information, the line number information, and the data to be managed by associating them with each other and accumulating them in the database 150. It is the mechanism of. That is, the mechanism adopted in the first embodiment is a mechanism in which the data to be managed, the insertion logical time xt_ins and the deletion logical time xt_del of the management target data are accumulated as the schema of the database 150A.
  • the "latest logical time” is the logical time obtained by adding 1 to the logical time in which the update process immediately before the current time (for example, the start time of the search process) is performed.
  • a database at the latest logical time that is, a database for which update processing is completed at a logical time smaller than the latest logical time is called a "latest database”.
  • the insertion logical time xt_ins of the data to be managed that is valid at the latest logical time is set to the first database ( For example, it is a mechanism that is accumulated as a schema of the database 150B-1) of FIG. 8 described later.
  • the insertion logical time xt_ins and the deletion logical time xt_del of the data to be managed which is invalid at the latest logical time, are set in the second database (for example, the database 150B-2 described later). It is a mechanism that is accumulated as a schema.
  • FIG. 8 is a diagram showing an example of data to be managed included in the database managed by the storage management node of FIG. 1 in the second embodiment.
  • FIG. 8A shows an example of a database 150B-1 that stores data that is valid in the latest database.
  • FIG. 8B shows an example of database 150B-2, which stores data that is invalid in the latest database.
  • the target data management unit 114 according to the second embodiment associates the insertion logical time xt_ins, the deletion logical time xt_del, and the data to be managed (data that distinguishes between valid and invalid) with the database 150B-1 and the database. Accumulates in 150B-2.
  • the database 150B-1 of FIG. 8A the data to be managed included in the database 150-16 shown in FIG. 5D and the insertion logical time xt_ins are associated and stored. Has been done.
  • the database 150B-2 of FIG. 8B the data to be managed that is not included in the database 150B-1 shown in FIG. 8 of the database 150A shown in FIG. 6, the insertion logical time xt_ins, and the deletion logical time xt_del Are associated and accumulated.
  • the database 150B-2 is a history of updating managed data that is invalid at the latest logical time. That is, in the database 150B-1 shown in FIG. 8 (A) and the database 150B-2 shown in FIG. 8 (B), the data to be managed that is valid at the latest logical time and the data to be managed that is invalid are stored. , It is stored as another database.
  • the target data management unit 114 stores the data of the management target that is valid at the latest logical time in the database 150B-1. In addition, the target data management unit 114 stores the data of the management target that is invalid at the latest logical time in the database 150B-2.
  • the search target identification unit 131 when the search target identification unit 131 performs the search process, the management target data that was valid at the search target logical time st is used as the search target candidate data, as in the first embodiment. Identify.
  • the search target logical time st is, as described above, the logical time included in the search request information transmitted from the client system node 2.
  • the search target identification unit 131 according to the second embodiment is different from the first embodiment in that it searches as follows.
  • the search target identification unit 131 identifies the search target candidate data from the database 150B-1 shown in FIG. 8 (A) by using the data of the search target logical time st designated in the search process. Specifically, for example, the search target identification unit 131 selects data satisfying the condition of the formula (1) shown in the first embodiment among the data in the rows of the database 150B-1 as candidate data for the search target. Identify as. As a result, the search target identification unit 131 can identify the management target data that is valid at the search target logical time st among the data that is valid at the latest logical time as the search target candidate data.
  • the search target identification unit 131 identifies a search target candidate from the database 150B-2 shown in FIG. 8 (B). That is, the search target identification unit 131 identifies the search target candidate data from the database 150B-2 shown in FIG. 8B using the data of the search target logical time st designated in the search process. Specifically, for example, the search target identification unit 131 searches for data satisfying the conditions of the equations (1) and (2) shown in the first embodiment among the data in the rows of the database 150B-2. Identify as target candidate data. For example, after the update process such that the data to be managed is deleted, the deleted data to be managed is the data to be managed that is invalid at the latest logical time. The search target identification unit 131 identifies the management target data that was valid at the search target logical time st as the search target candidate data from the database 150B-2, as described above in the first embodiment. ..
  • the search target identification unit 131 sets the union of the search target candidate data specified from the database 150B-1 and the search target candidate data specified from the database 150B-2 as a comprehensive search target candidate. Specified as data of.
  • the data of the comprehensive search target candidate is adopted as the data of the search target candidate specified by the search target specific unit 131 in the search unit 132, and is used for the search.
  • search target from database 150B-2. There is no need to identify candidates for.
  • the database management system according to the second embodiment can achieve the following effects by performing a series of processes as described above.
  • the search target identification unit 131 first identifies the search target candidate data from the database 150B-1 in which valid data is stored at the latest logical time.
  • the latest logical time is specified as the search target logical time st and the search is performed.
  • the search target identification unit 131 When the search target logical time st is the latest logical time, the search target identification unit 131 does not need to specify the search target candidate data from the database 150B-2. That is, the search target identification unit 131 performs a process of determining whether or not the data in each row of the database 150B-2 satisfies the conditions of the equations (1) and (2) shown in the first embodiment. Can be avoided. That is, in the second embodiment, among the processes related to the search process, the process of determining whether or not the conditions of the equations (1) and (2) shown in the first embodiment can be satisfied can be reduced, so that the search process can be performed. Computational resources related to can be saved.
  • FIG. 9 is a flowchart illustrating an example of a storage process executed by the storage management system node having the functional configuration of FIG. 4 in the second embodiment.
  • the update process causes data to be accumulated and managed in the database 150B-1 or the database 150B-2 (data to be managed)
  • the storage process is started and the following steps S21 to S25 are performed. Processing is executed.
  • step S21 the logical time information acquisition unit 112 acquires the insertion logical time xt_ins and the deletion logical time xt_del of the data to be managed as logical time information.
  • step S22 the line number information acquisition unit 113 acquires information that can identify which row in the database the data to be managed is as row number information.
  • step S23 the target data management unit 114 manages the invalid data in the database 150B-1 in which the data valid at the latest logical time is accumulated based on the line number information acquired in the process of step S22. Determine if there is target data. If there is invalid data to be managed, it is determined to be YES in the process of step S23, and the process proceeds to step S24.
  • step S24 the target data management unit 114 associates the deletion logical time xt_del of the invalidated management target data acquired in the process of step S21 with the invalidated management target data in the database 150B. Accumulate and manage in -2.
  • step S25 the target data management unit 114 stores the valid data insertion logical time xt_ins acquired in the process of step S21 and the valid management target data in the database 150B-1 in association with each other. And manage it. As a result, the storage process ends.
  • step S23 when there is invalid data among the data to be managed has been described above.
  • step S23 when there is no invalid data in the data to be managed is as follows. That is, if there is no invalid data, it is determined to be NO in the process of step S23, and the process proceeds to step S25. That is, the process of step S24 executed when there is invalid data is not executed when there is no invalid data to be managed.
  • step S25 the target data management unit 114 associates the logical time information acquired in the process of step S21 with the valid data to be managed as the insertion logical time xt_ins of the valid data in the database. It is stored and managed in 150B-1. As a result, the storage process ends.
  • the update process is executed for the data to be managed whose "ted” is "1002".
  • the schema "A” is “a1”
  • the schema "B” is “b1”
  • the schema "C” is "c1”, as in the above description of the first embodiment.
  • step S22 "1002" is acquired as the line number information.
  • the storage process has been described above using the first example when there is invalid data to be managed in the database 150B-1. Next, the storage process will be described with reference to a second example when there is no invalid data to be managed in the database 150B-1.
  • the update process is executed for the data to be managed whose "ted” is "1003". This is an example of the case.
  • step S22 "1003" is acquired as the line number information.
  • step S23 since there is no invalid data, it is determined to be NO in the process of step S23, and the process proceeds to step S25.
  • the storage process has been described above using the second example when there is no invalid data to be managed in the database 150B-1.
  • the database management system according to the second embodiment of the present invention has been described above. Next, the database management system according to the third embodiment of the present invention will be described.
  • FIG. 1 shows the configuration of the database management system according to the third embodiment of the present invention as it is. Therefore, the description of the configuration of the database management system according to the third embodiment of the present invention will be omitted.
  • FIG. 3 shows the hardware configuration of the storage management node 1 according to the third embodiment of the present invention as it is.
  • each of the client node 2 and the transaction management node 3 of the database management system according to the third embodiment has basically the same configuration as the hardware configuration shown in FIG. .. Therefore, the description of the hardware configuration of each of the storage management node 1, the client node 2, and the transaction management node 3 according to the third embodiment of the present invention will be omitted.
  • FIG. 4 shows the functional configuration of the database management system according to the third embodiment of the present invention as it is. Therefore, the description of the functional configuration of the database management system according to the second embodiment of the present invention will be omitted.
  • the target data management unit 114 manages the logical time information, the line number information, and the data to be managed by associating them with each other and accumulating them in the database 150. It is the mechanism of. That is, the mechanism adopted in the first embodiment is a mechanism in which a relational database managed by RDBMS is adopted. As a result, the data to be managed, the insertion logical time xt_ins and the deletion logical time xt_del of the managed data are accumulated as the schema of the database 150A. In contrast to the mechanism adopted in the first embodiment, the mechanism adopted in the third embodiment is a mechanism in which a database managed by KVS, which will be described later, is adopted.
  • the valid managed data at the latest logical time, the insertion logical time xt_ins of the invalid managed data, and the deletion logical time xt_del are accumulated as the value of the database 150C.
  • the line number information of the data to be managed is stored as the Key of the database 150C. That is, the mechanism adopted in the third embodiment is a mechanism using the database 150C managed by KVS.
  • KVS Key-Value Store
  • a database managed by KVS is characterized by high performance at the cost of extremely limited functions as compared with a relational database managed by RDBMS.
  • FIG. 10 is a diagram showing an example of data of candidate search targets included in the database managed by the storage management node of FIG. 1 in the third embodiment. Specifically, FIG. 10 shows a relation RC of data of search target candidates when the search target logical time st is “11” included in the database 150 managed by the storage management node 1 in the third embodiment. It is a figure which shows.
  • the target data management unit 114 associates the insertion logical time xt_ins, the deletion logical time xt_del, and the data to be managed, and stores the data to be managed in the database 150C.
  • the relation RC shown in FIG. 10 is managed by KVS and has Key and Value as schemas.
  • the line number corresponding to the line number “tid” in the first embodiment and the second embodiment is managed as “Key”.
  • the data to be managed in the first embodiment and the second embodiment is managed as "Value”.
  • FIG. 11 is a diagram showing an example of data to be managed included in the database managed by the storage management node of FIG. 1 in the third embodiment.
  • FIG. 11 shows an example of the database 150C managed by KVS.
  • the data to be managed included in the database 150A shown in FIG. 6 and the data in which the insertion logical time xt_ins and the deletion logical time xt_del are associated with each other are stored as a database managed by KVS.
  • the database 150C shown in FIG. 11 is managed by KVS like the relation RC shown in FIG. 10, and has Key and Value as schemas.
  • the line number “tid” in the first embodiment and the second embodiment is managed as “Key”.
  • the data to be managed in the first embodiment and the second embodiment is managed as "Value”.
  • the search target identification unit 131 when the search target identification unit 131 performs the search process, the management target data that was effective at the search target logical time st is used as the search target candidate data as in the first embodiment. Identify.
  • the search target logical time st is, as described above, the logical time included in the search request information transmitted from the client system node 2.
  • the search target identification unit 131 according to the third embodiment is different from the first embodiment in that it searches as follows.
  • the search target identification unit 131 identifies the search target candidate data from the database 150C shown in FIG. 11 by using the line number information designated in the search process. Specifically, for example, the search target identification unit 131 designates the line number information related to the search content as the line number information among the line data of the database 150C. That is, the search target identification unit 131 identifies the row matching "Key" in the database 150C managed by KVS as the data of the search target candidate based on the line number information. As a result, the search target identification unit 131 can acquire each value of the search target candidate data specified by the line number information.
  • the search target identification unit 131 searches for data satisfying the conditions of the formulas (1) and (2) shown in the first embodiment among the data of the Value of the candidate data to be searched. Identify as candidate data.
  • the data to be managed at the search target logical time st can be specified as the data of the candidates to be comprehensively searched.
  • the database 150C managed by KVS even in the database 150C managed by KVS, the logical time information, the line number information, and the data to be managed can be stored in association with each other.
  • the database 150C managed by KVS has higher performance than the relational database managed by RDBMS, although its functions are extremely limited. That is, depending on the data format and the presence or absence of update, the database management system adopting the database 150C managed by KVS may become a system having higher performance than the relational format database managed by RDBMS. ..
  • FIG. 12 is a flowchart illustrating an example of a flow of management of data to be managed, which is executed by the storage management system node having the functional configuration of FIG. 4 in the third embodiment.
  • the storage process is started and the following processes of steps S31 to S35 are executed.
  • step S31 the logical time information acquisition unit 112 acquires the insertion logical time xt_ins and the deletion logical time xt_del of the data to be managed as logical time information.
  • step S32 the line number information acquisition unit 113 acquires information that can identify which row in the database the data to be managed is as row number information.
  • step S33 the target data management unit 114 is the management target that has become invalid in the database 150C in which the data valid at the latest logical time is accumulated based on the line number information acquired in the process of step S32. Determine if there is data. If there is invalid data to be managed, it is determined to be YES in the process of step S33, and the process proceeds to step S34.
  • step S34 the target data management unit 114 associates the deletion logical time xt_del of the invalidated management target data acquired in the process of step S31 with the invalidated management target data in the database 150C. Accumulate and manage in.
  • step S35 the target data management unit 114 associates the insertion logical time xt_ins of the valid data acquired in the process of step S31 with the valid data of the management target and stores them in the database 150C. to manage. As a result, the storage process ends.
  • step S33 when there is invalid data among the data to be managed has been described above.
  • step S33 when there is no invalid data in the data to be managed is as follows. That is, if there is no invalid data, it is determined to be NO in the process of step S33, and the process proceeds to step S35. That is, the process of step S34 executed when there is invalid data is not executed when there is no invalid data to be managed.
  • step S35 the target data management unit 114 associates the logical time information acquired in the process of step S31 with the valid data to be managed as the insertion logical time xt_ins of the valid data in the database. It is stored and managed in 150C. As a result, the storage process ends.
  • the first example is an example in which the update process is executed for the data to be managed whose "Key” is "1002" among the data groups included in the database managed by KVS as the data to be managed. ..
  • step S32 "1002" is acquired as the line number information.
  • the storage process has been described above using the first example when there is invalid data to be managed in the database 150C. Next, the storage process will be described with reference to a second example when there is no invalid data to be managed in the database 150C.
  • the second example is an example in which an update process is executed for the data to be managed whose "Key” is "1003" among the data groups included in the database managed by KVS as the data to be managed. ..
  • step S32 "1003" is acquired as the line number information.
  • step S32 since there is no invalid data, it is determined to be NO in the process of step S23, and the process proceeds to step S35.
  • the storage process has been described above using the second example when there is no invalid data to be managed in the database 150C.
  • the data "value HIJKLMNOP" to be managed, which becomes effective by the update process, is accumulated and managed in the database 150C by the process of step S35.
  • the process of step S34 there is no data to be managed that becomes invalid due to the update process, and the process of step S34 is not executed.
  • the storage process in each of the second example and the case where there is no data has been described.
  • the database management system according to the third embodiment of the present invention has been described above. Next, the database management system according to the fourth embodiment of the present invention will be described.
  • FIG. 1 shows the configuration of the database management system according to the fourth embodiment of the present invention as it is. Therefore, the description of the configuration of the database management system according to the fourth embodiment of the present invention will be omitted.
  • FIG. 3 shows the hardware configuration of the storage management system node 1 according to the fourth embodiment of the present invention as it is.
  • each of the client node 2 and the transaction management node 3 of the database management system according to the fourth embodiment has basically the same configuration as the hardware configuration shown in FIG. .. Therefore, the description of the hardware configuration of each of the storage management node 1, the client node 2, and the transaction management node 3 according to the fourth embodiment of the present invention will be omitted.
  • FIG. 4 shows the functional configuration of the database management system according to the fourth embodiment of the present invention as it is. Therefore, the description of the functional configuration of the database management system according to the fourth embodiment of the present invention will be omitted.
  • the target data management unit 114 stores and manages the database 150 by associating the logical time information, the line number information, and the data to be managed. It is the mechanism of. That is, the mechanism adopted in the first embodiment is a mechanism in which the insertion logic time xt_ins and the like are associated and managed by the database. Specifically, the data to be managed, the insertion logical time xt_ins and the deletion logical time xt_del of the managed data are accumulated as the schemas of the database 150A, respectively.
  • the mechanism adopted in the fourth embodiment is managed by associating the insertion logical time xt_ins of the data to be managed as a file name described later. It is a mechanism. The details will be described later, but this manages the data to be managed as the contents of the file.
  • the line number information of the data to be managed, the insertion logical time xt_ins, and the deletion logical time xt_del are managed as file names. That is, the mechanism adopted in the fourth embodiment is a mechanism in which the data to be managed is managed by the file name.
  • the target data management unit 114 uses the insert logical time xt_ins, the delete logical time xt_del, and the line number information as file names, the data to be managed as the file contents, and the file and the file name of the file. Are associated with each other and stored in the storage unit 18. That is, the database in the fourth embodiment is a group of files stored as a plurality of files in the storage unit 18.
  • the data to be managed in the fourth embodiment is one line of text data, and the text data is managed as a text file. That is, one text file corresponds to one line of managed data in the first to third embodiments.
  • FIG. 13 is a diagram showing an example of a file name and contents in the file managed by the storage management system node 1 of FIG. 1 in the fourth embodiment.
  • the table showing the correspondence between the file name and the content is referred to as a "file name content correspondence table”.
  • FIG. 13 is a diagram showing a file name content correspondence table RD when the search target logical time st is “11” in the file managed by the storage management node 1 in the fourth embodiment.
  • the file name content correspondence table RD shown in FIG. 13 is data of search target candidates when the search target logical time st is “11”.
  • the file names of the files managed by the storage management node in the fourth embodiment are given as shown in the file name content correspondence table RD shown in FIG. That is, the file name content correspondence table RD shown in FIG. 13 is the file name content correspondence table RD shown in FIG. 13 as information for specifying a line instead of the line number information “tid” of the first to third embodiments. "File name" is adopted.
  • FIG. 14 is a diagram showing an example in which the file name of the database file managed by the storage management node of FIG. 1 in the fourth embodiment is managed as the file name associated with the logical time.
  • FIG. 14 shows an example of the file name and the contents of the file stored in the storage unit 18 of the storage management node 1.
  • "hijklmnop” is stored as the content of the file whose file name is "bar (10, 12)".
  • the file name "bar (10,12)” indicates that the information that identifies the line is “bar”, the insertion logical time xt_ins is “10”, and the deletion logical time xt_del is "12".
  • the target data management unit 114 of the fourth embodiment stores the information for specifying the line, the insertion logical time xt_ins, and the deletion logical time xt_del in the storage unit 18 as file names.
  • the search target identification unit 131 uses the management target data that was valid at the search target logical time st as the search target candidate data, as in the first embodiment. Identify.
  • the search target identification unit 131 according to the fourth embodiment is different from the first embodiment in that it searches as follows.
  • the search target identification unit 131 searches from the file stored in the storage unit 18 shown in FIG. 14 by using the line number information specified in the search process, the insertion logical time xt_ins, and the deletion logical time xt_del. Identify the file that contains the candidate data.
  • the search target identification unit 131 is subject to conditions based on the file name of the file stored in the storage unit 18 shown in FIG. 14, information for specifying a line, the insertion logical time xt_ins, and the deletion logical time xt_del. Identify files with matching filenames. That is, the search target identification unit 131 searches for a file with a file name that matches the conditions based on the information that identifies the line specified from the file name, the insertion logical time xt_ins, and the deletion logical time xt_del, respectively. Specified as data of.
  • the search target identification unit 131 makes the above-mentioned determination for each of the plurality of files to obtain a comprehensive search target logical time.
  • the data of the comprehensive search target candidate is adopted as the data of the search target candidate specified by the search target specific unit 131 in the search unit 132, and is used for the search.
  • the search target identification unit 131 is a file name in which the insertion logical time xt_ins and the deletion logical time xt_del identified from the file name satisfy the conditions of the equations (1) and (2) shown in the first embodiment, respectively. Is determined. As a result, among the data of the candidates to be searched, the data to be managed at the logical time st of the search target can be specified as the data of the candidates to be searched.
  • the database management system according to the fourth embodiment can achieve the following effects by performing a series of processes as described above.
  • the file stored in the storage unit 18 is not limited to the database, and may be a file of any file format such as a text file.
  • the search target identification unit 131 in the fourth embodiment can provide the file to the client as the data of the specified search target candidate. That is, the database management system according to the fourth embodiment can store the file (data) to be managed in association with the insertion logical time xt_ins and the deletion logical time xt_del.
  • the insertion logical time xt_ins and the deletion logical time xt_del are not managed as a schema in the database management system, but can be managed by using a file name. That is, processing by SQL or the like that is normally processed in a database becomes unnecessary, and consumption of computational resources in search processing is reduced.
  • FIG. 15 is a flowchart illustrating an example of a flow of management of managed data executed by the storage management system node having the functional configuration of FIG. 4 in the fourth embodiment. That is, it is a flowchart explaining an example of the storage process executed by the storage management system node in 4th Embodiment.
  • the storage process is started and the following processes of steps S41 to S45 are executed. ..
  • step S41 the logical time information acquisition unit 112 acquires the insertion logical time xt_ins and the deletion logical time xt_del of the data to be managed as logical time information.
  • step S42 the line number information acquisition unit 113 acquires information that can identify which row in the database the data to be managed is, as line number information.
  • step S43 the target data management unit 114 determines whether or not there is invalid data to be managed in the storage unit 18 based on the line number information acquired in the process of step S42. If there is invalid data to be managed, it is determined to be YES in the process of step S43, and the process proceeds to step S44.
  • step S44 the target data management unit 114 associates the invalidated management target data deletion logical time xt_del acquired in the process of step S41 with the invalidated management target data (file). It is stored and managed in the storage unit 18.
  • step S45 the target data management unit 114 associates the insertion logical time xt_ins of the valid data acquired in the process of step S41 with the valid management target data (file) and stores the storage unit 18. Store and manage in. As a result, the storage process ends.
  • step S43 when there is invalid data among the data to be managed has been described above.
  • step S43 when there is no invalid data in the data to be managed is as follows. That is, if there is no invalid data, it is determined to be NO in the process of step S43, and the process proceeds to step S45. That is, the process of step S44 executed when there is invalid data is not executed when there is no invalid data to be managed.
  • step S45 the target data management unit 114 stores the logical time information acquired in the process of step S41 as the insertion logical time xt_ins of the valid data in association with the valid data of the management target. It is stored and managed in the unit 18. As a result, the storage process ends.
  • the first example is an example in which an update process is executed for the managed data whose line specifying information is "bar" in the file group in which the files are managed as the managed data.
  • the data to be managed was "hijklmnop" at logical times 10 to 12 before the update process, but is updated to the data to be managed "HIJKLMNOP" by the update process at logical time 12. It shall be assumed that it was done.
  • step S42 "bar" is acquired as specifying the row.
  • "hijklmnop" since there is invalid data "hijklmnop" to be managed, it is determined to be YES in the process of step S43, and the process proceeds to step S44.
  • step S44 the deletion logical time xt_del of the invalidated management target data is stored and managed in the storage unit 18 in association with the invalidated management target data "hijklmnop".
  • step S45 the insertion logical time xt_ins of the valid management target data is stored and managed in the storage unit 18 in association with the valid management target data “HIJKLMNOP”. This ends the storage process.
  • the second example is an example in which an update process is executed for the managed data whose line specifying information is "baz" in the file group in which the files are managed as the managed data.
  • the update process before the update process, there was no managed data whose row-identifying information was "baz" until the time when the logical time was "10", but the update at the logical time 10 It is assumed that the data "123456789" to be managed has been updated (added) by the processing.
  • the file name of the storage unit 18 shown in FIG. 14 is a file name when the update process is performed in which the data to be managed is deleted when the logical time is “15” and the information for specifying the line is “baz”. Is.
  • step S42 "baz" is acquired as information for identifying the row.
  • step S43 since there is no invalid data, it is determined to be NO in the process of step S43, and the process proceeds to step S45.
  • step S45 the valid management target data insertion logical time xt_ins is associated with the valid management target data "123456789", and the data is stored and managed in the storage unit 18. This ends the storage process.
  • the storage process has been described above with reference to the second example when there is no invalid data to be managed in the storage unit 18.
  • the data to be managed "hijklmnop", which is invalidated by the update process, is stored in the storage unit 18 by the process of step S44. It is stored and managed. Further, the data "HIJKLMNOP" to be managed, which becomes effective by the update process, is stored and managed in the storage unit 18 by the process of step S45. Further, in the case of the update process of adding the data to be managed as in the second example, there is no data to be managed that becomes invalid due to the update process, and the process of step S44 is not executed. Further, the data "123456789" to be managed, which becomes effective by the update process, is stored and managed in the storage unit 18 by the process of step S45.
  • the first example when there is invalid data to be managed in the storage unit 18 and the management target invalidated in the storage unit 18 The storage process in each of the second example and the case where there is no data of is described.
  • the update request consistency management unit 322 determines whether or not the consistency of the database is broken, and stores management only when it is certain that the consistency is maintained. It is assumed that update request information is sent to system node 1.
  • the update request consistency management unit 322 may manage the consistency by specifically performing the following processing.
  • the update request consistency management unit 322 transmits the update request information to the storage management system node 1.
  • the transaction management node 3 can make the storage management node 1 determine whether or not the integrity of the database is broken when the update contents are processed.
  • the transaction management node 3 can make the storage management node 1 confirm the content of the update (commit the transaction) only when it is certain that the consistency is maintained. Further, when it is not certain that the consistency is maintained, the transaction management node 3 can cause the storage management node 1 to discard the update contents.
  • the update request consistency management unit 322 may manage the consistency by adopting the SI method.
  • the SI method is adopted for consistency management.
  • the transaction management node 3 has two transaction management nodes 3-1 and 3-2 and is performing update processing at the same time.
  • the transaction management node 3-1 and 3-2 shall transmit an update request to one storage management node 1.
  • the transaction management node 3-1 and 3-2 cause the storage management node 1 to determine whether or not the consistency of the database is broken when the update contents are processed. It is assumed that the transaction management node 3-1 has the update request consistency management unit 322-1 and the transaction management node 3-2 has the update request consistency management unit 322-2.
  • the update request consistency management unit 322-1 of the transaction management system node 3-1 associates the logical time information, the line number information, and the data to be managed managed by the target data management unit 114.
  • the database 150 is replicated to the storage management node 1.
  • the update request consistency management unit 322-1 causes the storage management system node 1 to generate a snapshot database 150-1S which is a duplicate of the latest database. That is, the snapshot database 150-1S is one of the databases to which the latest database is duplicated.
  • the snapshot database 150-1S may be stored in one area of the RAM 13 or the storage unit 18 of the storage management system node 1. That is, the snapshot database 150-1S may be stored in an area different from the database 150 stored in the storage unit 18.
  • the update request consistency management unit 322-1 performs update processing on the snapshot database 150-1S and generates the updated snapshot database 150-1M.
  • the updated snapshot database 150-1M is a database in which a part (data of some rows) of the managed data included in the snapshot database 150-1 has been updated (changed). It has become.
  • the updated snapshot database 150-1M may be stored in one area of the RAM 13 or the storage unit 18 of the storage management system node 1. That is, the updated snapshot database 150-1M may be stored in an area different from the database 150 stored in the storage unit 18.
  • the update request consistency management unit 322-2 of the transaction management node 3-2 performs another update process. It is managed (processed). That is, the update request consistency management unit 322-2 causes the storage management system node 1 to generate and manage the snapshot database 150-2S and the updated snapshot database 150-2M.
  • the update request consistency management unit 322-1 of the transaction management node 3-1 is performing the above-mentioned update process
  • the update request consistency management unit 322-2 of the transaction management node 3-2 there is a possibility that the update process has been performed and completed. Therefore, the update request consistency management unit 322-1 of the transaction management node 3-1 stores whether or not the data to be managed to be rewritten by the update process in the database 150 has been updated by another update process. It can be managed by the management node 1.
  • the update request consistency management unit 322-1 manages the data to be managed that is different between the snapshot database 150-1S and the updated snapshot database 150-1M. It is reflected in the database 150 of.
  • the update request consistency management unit 322-1 may restart the update process from the snapshot generation, or may notify the client system node 2 that the update process has failed.
  • the update request consistency management unit 322 verifies whether or not the consistency of the database 150 stored in the storage management system node 1 is maintained, and only when the consistency is maintained, the database 150 is actually used.
  • the update process can be reflected in. That is, the integrity of the database 150 is maintained.
  • the update process is managed in parallel in this way, the content of the update process that is reflected (committed) first takes precedence over the content of the update process that is to be reflected (committed) later.
  • the content of the update process to be reflected later is reflected only when the content of the update process reflected earlier has not changed.
  • a rule such as "the content of the update process that is reflected (committed) first takes precedence over the content of the update process that is to be reflected (committed) later" is called "First-Committer-Wins Rule". ..
  • the storage management node 1 and the transaction management node 3 it is sufficient for the storage management node 1 and the transaction management node 3 to manage the update process in accordance with the above-mentioned "First-Comitter-Wins Rule". That is, the storage management node 1 does not necessarily have to generate and manage the snapshot database 150-1S and the updated snapshot database 150-1M as described above. That is, the storage management node 1 does not have to generate the snapshot database 150-1S and the updated snapshot database 150-1M. For example, the storage management node 1 does not generate the snapshot database 150-1S and the updated snapshot database 150-1M. In this case, the storage management node 1 manages the difference or the like for the data to be managed that has a difference due to the update process.
  • the above-mentioned differences and the like may be managed by the transaction management nodes 3-1 and 3-2 instead of the storage management node 1.
  • the transaction management nodes 3-1 and 3-2 cooperate to manage the difference due to the update process.
  • the difference is first described. Priority is given to the processed update process. That is, the transaction management node group G3 manages a plurality of update processes as differences related to the update process, and then reflects them in the database 150 of the storage management node 1 in accordance with "First-Committer-Wins Rule" ( commit.
  • the update request information may include the following information. Specifically, the update request information may include "transaction start time" and "update information for each row”.
  • the "transaction start time” may be, for example, the time when the update request is transmitted from the client system node 2. Further, for example, when the client system node 2 causes the storage management system node 1 to execute the search process related to the management of the update request, the "transaction management time” may be the search target logical time in the search process.
  • the update request consistency management unit 322 manages the update process by applying "First-Comitter-Wins Rule" that gives priority to the previously transmitted update request.
  • the "update information for each line” may include, for example, the following contents.
  • the "update information for each row” is the "line number information and the specific content of the data to be managed (for example, in FIGS. 5 and 6). Specific values of A, B, and C) ”is included. Further, when deleting an existing row (managed data already stored in the database 150), "line number information of managed data to be deleted" is included.
  • the data to be managed is managed for each "row", but the data is not particularly limited to this. That is, it is sufficient that the data to be managed is managed for each predetermined unit.
  • the data to be managed may be managed for each "plurality of lines", or may be managed for each "file” as described in the fourth embodiment.
  • the database management system acquires information that can identify at least a part of the time zone in which the data to be managed is valid as logical time information.
  • the logical time is used for database management, and an identifier that changes in one direction is sufficient.
  • it may be an integer value given each time the database is updated, or it may be information in the form of a date and time, which is indicated by a combination of "year", “month”, “day”, “hour”, “minute”, “second”, etc. Good.
  • the logical time information acquisition unit 112 inserts the logical time when the data to be managed is valid, inserts the logical time xt_ins, and deletes the logical time when the data to be managed is invalid. Obtained as time xt_del, but is not particularly limited to this. That is, it is sufficient that the information can identify at least a part of the time zone in which the data to be managed is valid. Specifically, for example, it suffices to acquire information that can indicate the time zone of the logical time sandwiched between the insertion logical time xt_ins and the deletion logical time xt_del.
  • the formulas for determining whether or not the data to be managed are valid are the formulas (1) and (2). Not limited. Specifically, for example, by confirming whether or not the following equations (3) and (4) are satisfied instead of the equations (1) and (2), the data to be managed in that row is valid. It can be determined whether or not it was.
  • the formula (2) may be adopted, and the formula (3) may be adopted instead of the formula (1). Further, the equation (1) may be adopted, and the equation (4) may be adopted instead of the equation (2). That is, it is sufficient to adopt either one of the equations (1) and (3) and adopt one of the equations (2) and (4).
  • the management target considering the error of time measurement between nodes. It is possible to adopt an expression for determining whether or not the data of is valid. Specifically, for example, by using a constant ⁇ representing a predetermined positive time width and confirming whether or not the following equations (5) and (6) are satisfied, the data to be managed in that row can be obtained. It can be determined whether or not it was valid.
  • the above equations (5) and (6) are merely examples. That is, it is not limited to the formula (5) and the formula (6). It suffices if the search target identification unit 131 can determine whether or not the data to be managed is valid in consideration of the time measurement error between the nodes.
  • the line number information acquisition unit 113 acquires the line number to which the data to be managed belongs, but the present invention is not particularly limited to this. That is, any information that can identify the predetermined unit to which the data to be managed belongs is sufficient. Specifically, for example, when the data to be managed is managed for each of a plurality of lines, the information may be the number of the multiple lines, and when the data to be managed is managed for each file. It can be a file name.
  • the target data management unit 114 manages the insertion logical time xt_ins and the deletion logical time xt_del as the schema of the database 150A, but the present invention is not particularly limited to this. That is, the information that can specify at least a part of the time zone in which the data to be managed is valid, the information that can specify the predetermined unit to which the data to be managed belongs, and the data to be managed are managed in association with each other. It's enough if possible. Specifically, for example, as shown in the second to fourth embodiments, they may be managed in association with each other.
  • the target data management unit 114 adopts a value of " ⁇ " for the deletion logical time xt_del as information indicating that the data to be managed has not been invalidated yet. It is not particularly limited to this. Specifically, for example, the target data management unit 114 may adopt an arbitrarily set integer value as information indicating that the value has not been invalidated yet. Furthermore, when managing a value indicating information indicating that the information has not been invalidated as a numerical value, a large value is desirable for the information indicating that the information has not been invalidated yet. Thereby, the data of the candidate of the search target can be specified by using the magnitude relation between the search target logical time st and the deletion logical time xt_del.
  • the target data management unit 144 stores the management target data in the first database based on whether the management target data is valid at the latest logical time. It is assumed that the data is stored in the second database, but the storage is not limited to this. Specifically, for example, the target data management unit 114 may accumulate and manage the data to be managed in an arbitrary number of databases. For example, the target data management unit 114 may store data to be managed that is invalid at the latest logical time in a plurality of databases for each logical time division. That is, for example, data to be managed that becomes invalid at a logical time earlier than a predetermined logical time may be accumulated and managed in a third database.
  • the data of the candidate to be searched when the data of the candidate to be searched is not included in the first database and the second database, the data of the candidate to be searched may be specified from the third database.
  • the data to be managed which is difficult to be the target of the search process, can be managed as a separate database, and the cost related to the process such as the search process can be reduced.
  • the efficiency of managing the following data may be improved.
  • the efficiency of managing systems that require consistency such as online banking systems and airline ticket reservation systems, which are a mixture of large numbers of searches and updates. May improve.
  • the efficiency of managing the following data may be improved. Specifically, for example, most of the updates are new additions of data, but it may improve the efficiency of managing a system in which changes or deletions are rarely made. That is, for example, in an IoT system, a system that accumulates data sent from a large amount of sensors and a system that accumulates SNS (Social Networking System) data may improve efficiency. That is, for example, the data sent from a large amount of sensors and the SNS data are a large amount of character information, images, moving images, etc., and are rarely changed or deleted.
  • SNS Social Networking System
  • the efficiency of managing the following data may be improved. For example, when you want to perform processing at higher speed without going through the database management system, or when you want to use a system (for example, embedded system) that makes it difficult to operate the database management system due to the limitation of the amount of various resources for the storage management system, etc. May improve the efficiency of managing the database.
  • a system for example, embedded system
  • the database management system is composed of a storage management node group G1, a client node group G2, and a transaction management node group G3, and by managing the database using logical time, the following It has an effect like. Specifically, for example, by adopting transaction management (management of update processing) or the SI method for the management, it is possible to have multiple copies of data while maintaining consistency, so availability can be improved. .. That is, data is not lost when a part of any of the plurality of nodes is broken. In other words, the database management system can continue to operate normally even if a part of one of the plurality of nodes is broken. That is, the database management system manages transactions by managing the database using logical time. As a result, the consistency of the database among the plurality of storage management node 1 can be maintained.
  • the above-mentioned series of processes can be executed by hardware or software.
  • the functional configuration of FIG. 4 is merely an example and is not particularly limited. That is, it suffices if the information processing system is provided with a function capable of executing the above-mentioned series of processes as a whole, and what kind of functional block is used to realize this function is not particularly limited to the example of FIG.
  • the location of the functional block is not particularly limited to FIG. 4, and may be arbitrary.
  • the functional block of the storage management node 1 may be transferred to the client node 2 or the like.
  • the functional block of the client system node 2 may be transferred to the storage management system node 1 or the like.
  • one functional block may be configured by a single piece of hardware, a single piece of software, or a combination thereof.
  • the computer may be a computer embedded in dedicated hardware. Further, the computer may be a computer capable of executing various functions by installing various programs, for example, a general-purpose smartphone or a personal computer in addition to a server.
  • the recording medium including such a program is not only composed of a removable medium (not shown) distributed separately from the main body of the device in order to provide the program to the user or the like, but also is preliminarily incorporated in the main body of the device. Etc., and the like.
  • the steps for describing a program to be recorded on a recording medium are not necessarily processed in chronological order, but also in parallel or individually, even if they are not necessarily processed in chronological order. It also includes the processing to be executed.
  • the term of the system shall mean an overall device composed of a plurality of devices, a plurality of means, and the like.
  • the information processing system to which the present invention is applied suffices to have the following configuration, and various various embodiments can be taken. That is, the information processing system to which the present invention is applied (for example, the storage management system node 1 in FIG. 4) is An information processing system that manages data in predetermined units (for example, "rows” in FIG. 5B). First information (for example, "logical time xt") that can identify at least a part of the time zone in which the data to be managed (for example, "a3", "b3", “c3” in FIG. 5B) is valid. , "The width”, and "xt_ins" and "xt_del” in FIG.
  • a second acquisition means for example, the line number information acquisition unit 113 in FIG. 4 for acquiring the second information (for example, “tid” in FIGS. 5 and 6) that can specify the predetermined unit to which the data to be managed belongs.
  • a management means for example, the target data management unit 114 of FIG. 4 that manages the first information, the second information, and the data to be managed in association with each other (for example, managed as in the database 150A of FIG. 6).
  • the information processing system can search for data to be managed based on the first information and the second information.
  • the information processing system can search the data to be managed based on the first information, so that the scalability in the distributed database management system can be improved. That is, such an information processing system has a processing capacity for a database by utilizing a plurality of information processing systems while reducing the processing cost when acquiring data at a predetermined past time and maintaining consistency. Can be improved.
  • the management means The first information (for example, the value of "xt_ins” in FIG. 6) capable of specifying the time when the data to be managed becomes valid, and
  • the first second information (for example, the value of "xt_del” in FIG. 6) capable of identifying the time when the data to be managed becomes invalid, and
  • the information including The second information and the data to be managed can be managed in association with each other.
  • such an information processing system can manage the range indicated by the first information in association with the time when the data to be managed becomes valid and the time when the data to be managed becomes invalid.
  • the management means Of the one or more data to be managed one or more valid data are designated as the first data group (for example, a data group managed by the database 150B-1 of FIG. 8A), and one or more invalid data are used. It is managed as a second data group (for example, a data group managed by the database 150B-2 of FIG. 8 (B)).
  • the first information for example, the value of "xt_ins" in FIG. 8A
  • the second information and the data to be managed are managed in association with each other.
  • the first information for example, the value of "xt_ins” in FIG. 8B
  • the first and second information for example, the value of "xt_del” in FIG. 8B
  • the information including The second information and the data to be managed can be managed in association with each other.
  • the information processing system can first identify the candidate data to be searched from the first data group in the search process. Next, the information processing system can further specify the data of the candidate to be searched from the second data group, if necessary. Then, the union of the search target candidate data specified from the first data group and the search target candidate data specified from the second data group is specified as comprehensive search target candidate data. When it is not necessary to specify the search target candidate from the second data group, the information processing system does not need to perform the process of specifying the search target candidate data from the second data group. That is, such an information processing system can save computational resources related to search processing.
  • is associated with each other for example, the KVS format database of FIG. It can be managed (like 150C).
  • the information processing system uses a database management system that manages one piece of information (for example, second information) and other information (for example, data to be managed and information including the first information). Therefore, the first information, the second information, and the data to be managed can be managed.
  • the database management system that manages the other information associated with one information is usually combined with another database management system (for example, a relational database managed by RDBMS). Performance is high in comparison. That is, the information processing system can improve the performance of the search process.
  • the data to be managed corresponds to the first information (for example, "xt_ins” and “xt_del” in FIG. 6, and if the data to be managed is "123456789” in FIG. 14, "10". And “15") and the second information (for example, "baz” if the data to be managed is "123456789” in FIG. 14 corresponding to "ted” in FIG. 6) (for example, "baz”).
  • the data to be managed is "123456789” in FIG. 14, it is stored in a predetermined medium (for example, the storage unit 18 in FIG. 4) as a file of "baz (10, 15)").
  • the management means manages the first information, the second information, and the data to be managed in association with each other (for example, stored in the storage unit 18, FIG. 14). It can be managed as shown in the list of files shown in.
  • the information processing system can manage a file in an arbitrary file format as data to be managed in association with the first information and the second information.
  • the information processing system can provide the file to the client as the data of the specified search target candidate.
  • the first information can be managed simply as a file name of a file without being managed as a schema in a database management system. That is, processing by SQL or the like, which is normally processed in a database, becomes unnecessary, and consumption of computational resources in search processing can be reduced.
  • a third acquisition means for acquiring third information (for example, "search target logical time st" in the specification) that can specify a predetermined time in the time zone in which the data to be managed is valid.
  • third information for example, "search target logical time st” in the specification
  • the time specified by the third information was valid.
  • Data to be managed for example, when the "search target logical time st" is "13", the "tid" of the database 150A in FIG.
  • the data to be managed is not only managed in association with the first information and the second information, but also the candidate data to be searched is specified from the data to be managed at an arbitrary time point and searched. be able to.
  • the second information processing that manages the update of the data to be managed is managed.
  • An information processing system that functions as a system for example, transaction management system node 3 in FIG. 4).
  • the acquisition means (for example, the update request information acquisition unit 321 in FIG.
  • the management means for managing the information processing (for example, the update request consistency management unit 322 in FIG. 4) and With The first information processing system is Based on the update request information transmitted from the second information processing system, the updated data of the management target is generated as the data of the management target after the update, and the data of the management target after the update is activated.
  • Obtain valid time zone information that can identify at least a part of the time zone when the data to be managed after the update is valid.
  • Acquire predetermined unit identification information that can specify the predetermined unit to which the data to be managed after the update belongs.
  • the effective time zone information, the predetermined unit specific information, and the data to be managed after the update can be managed in association with each other.
  • the second information processing system determines whether or not the consistency of the database is broken, and sends an update request to the first information processing device only when it is certain that the consistency is maintained. To do.
  • the database managed by the first information processing apparatus maintains the consistency related to the update process.
  • the management means of the second information processing system is The managed data that is updated by the update request information acquired at the previous time (for example, "managed data that is updated by the update process managed by the update request consistency management unit 322-2") is later.
  • the management is based on whether or not it is updated by other update request information acquired at a time point (for example, "whether or not it is updated by the update process managed by the update request consistency management unit 322-1"). Whether or not to transmit the other update request information (for example, "update process managed by the update request consistency management unit 322-1") to the first information processing system in which the target data is managed. Can be managed.
  • each of the plurality of second information processing systems processes a plurality of update requests at the same time, the first information processing is performed only when it is certain that the consistency is maintained. Can be written back to the device. That is, the database managed by the first information processing apparatus maintains the consistency related to the update process. Further, because the consistency of the database managed by the first information processing apparatus is maintained, each of the plurality of second information processing systems can simultaneously process each request for a plurality of updates. That is, when the information processing system is configured to include the first information processing system and the plurality of second information processing systems, the database managed by the first information processing apparatus is updated in the scaled-out environment. Consistency is maintained. That is, for example, an information processing system including a first information processing system and a second information processing system can improve the processing capacity for a database while maintaining consistency by utilizing a plurality of information processing systems.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

所定の過去の時刻のデータを取得する際の処理コストを低減し、且つ、複数の情報処理システムを活用してデータベースに対する処理能力を向上させることを課題とし、データを所定単位毎に管理する情報処理システムにおいて、論理時刻情報取得部112は、管理対象のデータが有効になった時間帯の少なくとも一部を特定可能な第1情報を取得する。行番号情報取得部113は、前記管理対象のデータが属する前記所定単位を特定可能な第2情報を取得する。対象データ管理部114は、前記第1情報と、前記第2情報と、前記管理対象のデータとを対応付けて管理する。

Description

情報処理システム
 本発明は、情報処理システムに関する。
 従来、情報処理装置において、大量のデータの蓄積、検索、又は更新等を行う場合、データベース(以下、「DB」と呼ぶことある)が用いられる。
 ここで、データベースに対して同時に複数の処理を行うため、複数データベース間のデータの整合性がとれている状態で、過去のデータを取得可能とする技術が提案されている(例えば、特許文献1参照)。
 特許文献1に記載の技術を含む従来技術では、データベースに付随するジャーナルと呼ばれる履歴に更新の情報を記録し、管理することが行われていた。
特開2012-234462号公報
 しかしながら、特許文献1に記載の技術を含む従来技術では、利用者が所定の過去の時刻のデータベースを取得する場合、所定の過去の時刻より更に前の時刻のデータベースに対し、ジャーナルに記録された過去の更新の情報を適用することが必要であった。このような方法は、利用者が所定の過去の時刻のデータベースを取得する度に、多くの処理が必要となることがあった。
 また、複数の情報処理システムからなるデータベース管理システムを構築して処理能力を向上させる場合、所定の過去の時刻のデータベースを取得することがある。しかしながら、上述のように、特許文献1に記載の技術を含む従来技術では、所定の過去の時刻のデータベースを取得する際に多くの処理が必要となる。このため、複数の情報処理システムを活用してデータベースに対する処理能力を向上させることが十分に達成されないことがあった。
 本発明は、所定の過去の時刻のデータを取得する際の処理コストを低減し、且つ、複数の情報処理システムを活用してデータベースに対する処理能力を向上させることを目的とする。
 上記目的を達成するため、本発明の一態様の情報処理システムは、
 データを所定単位毎に管理する情報処理システムであって、
 管理対象のデータが有効になった時間帯の少なくとも一部を特定可能な第1情報を取得する第1取得手段と、
 前記管理対象のデータが属する前記所定単位を特定可能な第2情報を取得する第2取得手段と、
 前記第1情報と、前記第2情報と、前記管理対象のデータとを対応付けて管理する管理手段と、
 を備える。
 本発明によれば、所定の過去の時刻のデータを取得する際の処理コストを低減し、且つ、複数の情報処理システムを活用してデータベースに対する処理能力を向上させることができる。
本発明の情報処理システムの第1実施形態に係るデータベース管理システムの構成を示すブロック図である。 図1のデータベース管理システムにおける情報処理の流れの例を示す図である。 図1のデータベース管理システムのうちストレージ管理系ノードのハードウェア構成の一例を示すブロック図である。 図1のデータベース管理システムのうちストレージ管理系ノード、トランザクション管理系ノード、及びクライアント系ノードの機能的構成例の一例を示す機能ブロック図である。 図1のストレージ管理系ノードで管理されるデータベースに含まれる、論理時刻の夫々における検索対象の候補のデータの夫々の例を示す図である。 第1実施形態における図1のストレージ管理系ノードで管理されるデータベースに含まれる、管理対象のデータの例を示す図である。 第1実施形態における図4の機能的構成を有するストレージ管理系ノードにより実行される、管理対象のデータの管理の流れの一例を説明するフローチャートである。 第2実施形態における図1のストレージ管理系ノードで管理されるデータベースに含まれる、管理対象のデータの例を示す図である。 第2実施形態における図4の機能的構成を有するストレージ管理系ノードにより実行される、管理対象のデータの管理の流れの例を説明するフローチャートである。 第3実施形態における図1のストレージ管理系ノードで管理されるデータベースに含まれる、検索対象の候補のデータの例を示す図である。 第3実施形態における図1のストレージ管理系ノードで管理されるデータベースに含まれる、管理対象のデータの例を示す図である。 第3実施形態における図4の機能的構成を有するストレージ管理系ノードにより実行される、管理対象のデータの管理の流れの例を説明するフローチャートである。 第4実施形態における図1のストレージ管理系ノードで管理されるファイルにおける、ファイル名と内容の例を示す図である。 第4実施形態における図1のストレージ管理系ノードで管理されるデータベースのファイルのファイル名を、論理時刻と対応づけたファイル名として管理する例を示す図である。 第4実施形態における図4の機能的構成を有するストレージ管理系ノードにより実行される、管理対象データの管理の流れの一例を説明するフローチャートである。
 以下、図面を参照して、本発明の実施形態として、第1実施形態乃至第4実施形態の夫々についてその順番に説明する。
[第1実施形態]
 まず、本発明が適用される情報処理システムの第1実施形態として、大量のデータの蓄積、検索、及び更新等を行うことができる、データベース管理システムについて説明する。
 ここで、「データベース」とは、蓄積、検索、更新等に便利なように整理された情報(データ)の集まりをいう。
 説明の簡単のため、第1実施形態(及び後述の第2実施形態)では、データベースとして、例えば、RDBMS(Relational DataBase Management System)により管理されるリレーショナル形式のデータベースが採用されているものとする。
 ここで、RDBMSは、リレーショナル形式のデータベースを管理するデータベース管理システムである。また、リレーショナル形式のデータベースは、簡単に言うならば、列と行からなる2次元の表の形式としてとらえることが可能なデータベースである。
 即ち、第1実施形態(及び後述の第2実施形態)のデータベースは、例えば、人物の情報をデータとして管理するデータベースにおいて、列の夫々が「名前」、「性別」、「年齢」等の項目に対応し、複数の行の夫々は、複数の人物の夫々に対応する。即ち、この例のデータベースは、管理対象のデータとして人物の各属性を示す各データ(各項目)を含むデータ群を採用しており、その管理対象のデータを行の単位(人物単位)毎に管理する。なお、データベースの列の夫々が示す「名前」、「性別」、「年齢」といった項目(データの属性)のことを「スキーマ」と呼ぶ。
 また、第1実施形態(及び後述の第2実施形態乃至第4実施形態)のデータベースにおける「蓄積」とは、利用者の希望に応じて検索や更新等を行える状態にするため、又は単に保管するため、管理対象のデータをデータベースの少なくとも一部として記憶することを言う。
 また、第1実施形態(及び後述の第2実施形態乃至第4実施形態)のデータベースにおける「検索」とは、データベースから、所定のデータを抽出することを言う。ここで、所定のデータには、データベースの一部の生データの他、1以上の生データを加工等したデータも含まれる。なお、以下、データベースの検索に係る処理を、「検索処理」と呼ぶ。
 また、第1実施形態(及び後述の第2実施形態乃至第4実施形態)のデータベースにおける「更新」とは、データベースの少なくとも一部として、新たなデータを追加すること、既にデータベースの少なくとも一部として記憶されているデータを書き換えること、既にデータベースの少なくとも一部として記憶されているデータを削除することをいう。即ち、データベースに蓄積されたデータを変更することを更新という。なお、データベースの更新に係る処理を、以下、「トランザクション処理」又は「更新処理」と呼ぶ。
 例えば、人物に関するデータベースであって、スキーマとして「名前」、「性別」、「年齢」を持つデータベースにおける、蓄積と検索と更新との例について説明する。
 この例のデータベースは、複数の人物の夫々に対応する行(所定の単位)毎に、各スキーマのデータの組が蓄積されて、構成される。
 また、データベースの利用者は、以下のようなデータを検索することができる。具体的には例えば、特定の人物の「名前」、「性別」、「年齢」の夫々のデータの組を検索(抽出)することができる。また例えば、データベースの利用者は、複数の人物のうち、性別が男性である人物のリストを検索(抽出)することができる。また例えば、データベースの利用者は、複数の人物のデータのうち、性別が男性である人物の年齢の平均値を検索(抽出)することができる。
 また、データベースの利用者は、新たな人物のデータを追加する更新を行ったり、人物のデータのうち年齢を変更する更新を行ったり、人物のデータを削除する更新を行ったりすることができる。
 第1実施形態(及び後述の第2実施形態乃至第4実施形態)のデータベース管理システムは、複数種類の機能(例えば、蓄積、検索、更新等)毎に、複数のノードにより構成される。データベース管理システムを構成する複数のノードが連携することにより、データベースの処理の能力を向上することができる。更に言えば、複数のノードの数に対して、効率的に処理の能力を向上することができる。
 ここで、「ノード」とは、CPU(Central Processing Unit)や、RAM(Random Access Memory)といったハードウェアと、OS(Operating System)といったソフトウェアが協働する1組の情報処理システムである。即ち例えば、ノードは、1つの情報処理装置である。上述したように、複数のノードは、連携することができる。換言すれば、複数の情報処理装置が連携する場合に、当該複数の情報処理装置の夫々を、「ノード」の夫々と呼ぶ。ノードの夫々の具体的な構成の例は、後述する。
 また、「スケーラビリティ」とは、ハードウェア資源を所定倍にしたときに、ソフトウェアも含めてシステムの全体の性能が何倍になるかという概念である。即ち、ハードウェア資源を5倍にした際に、性能が5倍になった場合スケーラビリティが高く、性能が2倍になった場合スケーラビリティが低いと言える。
 なお、ハードウェア資源を所定倍にする方法は、スケールアップとスケールアウトの2つが存在する。
 「スケールアップ」とは、データベース管理システムを構成する複数のノードの夫々を、より高性能なノードの夫々で置き換えることをいう。具体的には例えば、ノードのCPUとして、より性能の高いCPUを採用することが、スケールアップの一例である。通常、スケールアップがなされた場合、スケーラビリティは高い。しかしながら、CPUの開発技術によって、CPUの性能の向上は、頭打ちとなる。更に言えば、高性能なCPUは、性能に対するコストが高い。即ち、スケールアップは、全体的な性能の向上に対するコストパフォーマンスを悪化させることがある。
 「スケールアウト」とは、データベース管理システムを構成するノードの数を増やすことをいう。具体的には例えば、データベース管理システムを構成するノードの数を所定倍の数とすることがスケールアウトの一例である。スケールアウトがなされた場合、スケーラビリティは低下することがある。具体的には例えば、スケールアウトにより数が増加したノードの連携に係る処理により、増加したノードの数に対して、性能が向上しないことがある。
 第1実施形態(及び後述の第2実施形態乃至第4実施形態)のデータベース管理システムは、当該データベース管理システムを構成する複数のノードの夫々の連携に係る処理を効率的に行うことで、整合性を保ったまま、スケーラビリティを向上させることができる。即ち、第1実施形態(及び後述の第2実施形態乃至第4実施形態)のデータベース管理システムは、スケールアウトにおいてもスケーラビリティの高い、分散されたデータベース管理システムである。
 ここで、「分散されたデータベース管理システム」とは、複数のノードの夫々にデータが蓄積されたり、複数のノードにより同時に検索処理がされたり、複数のノードにより同時に更新処理がされる、データベース管理システムである。
 即ち例えば、分割されたデータベースの夫々が複数のノードの夫々に記憶された場合、当該データベースは、分散されたデータベースといえる。なお、データベースが複数のノードに記憶される場合、複数のノードの夫々は、分割されたデータベースのみならず、全部、又は一部が共通なデータベースを記憶してもよい。
 なお、「分散されたデータベース管理システム」は、データの蓄積のみならず、検索処理や更新処理を管理するノードも複数存在し、検索処理の要望や更新処理の要望が分散されていてもよい。即ち、後述するように、複数のノードに分散されたデータベースに対し、複数のノードの要望に基づき、更新処理や検索処理を実行することができる。なお、データベース管理システムを構成する他のノードに対して、検索処理を要求することを「検索要求」、更新処理を要求することを「更新要求」と呼ぶ。
 上述のように、分散されたデータベース管理システムにおいてスケールアウトされた場合、更新処理における複数のノードの連携に係る処理により、スケーラビリティが低下することがある。また、分散されたデータベース管理システムにおいて検索処理が行われる場合、複数回の検索処理が行われたとき、複数回の検索処理の間で同一のデータベースに基づかず、例え同一の検索内容で検索された場合であっても同じ結果とならないといった不都合が生じることがある。
 詳細は後述するが、第1実施形態(及び後述の第2実施形態乃至第4実施形態)のデータベース管理システムは、論理時刻を管理することにより、スケールアウトした場合における、トランザクション処理や検索処理に係る、整合性の実現や、処理コストの削減、利便性の向上ができる。
 図1は、本発明の情報処理システムの第1実施形態に係るデータベース管理システムの構成を示すブロック図である。
 図1に示すデータベース管理システムは、ストレージ管理系ノード群G1と、クライアント系ノード群G2と、トランザクション管理系ノード群G3とが、インターネット等の所定のネットワークNWを介して相互に接続されることで構成されている。
 ストレージ管理系ノード群G1は、N台(Nは1以上の任意の整数値)のストレージ管理系ノード1-1乃至1-Nにより構成される。同様に、クライアント系ノード群G2は、M台(Mは1以上の任意の整数値)のクライアント系ノード2-1乃至2-Mにより構成される。また、トランザクション管理系ノード群G3は、L台(Lは1以上の任意の整数値)のトランザクション管理系ノード3-1乃至3-Lにより構成される。
 なお、ストレージ管理系ノード1-1乃至1-Nの夫々を個々に区別する必要が無い場合、これらをまとめて「ストレージ管理系ノード1」と呼ぶ。また、クライアント系ノード2-1乃至2-Mの夫々を個々に区別する必要が無い場合、これらをまとめて「クライアント系ノード2」と呼ぶ。また、トランザクション管理系ノード3-1乃至3-Lの夫々を個々に区別する必要が無い場合、これらをまとめて「トランザクション管理系ノード3」と呼ぶ。
 図2は、図1のデータベース管理システムにおける情報処理の流れの例を示す図である。
 ストレージ管理系ノード1は、データベースを記憶し、外部からの要求に基づいて検索処理や更新処理を行う。
 ストレージ管理系ノード1は、クライアント系ノード2から検索要求を受信すると、その検索要求から検索の条件を認識し、その条件を満たすデータを検索して、返信する。例えば、検索要求の中身は、一致検索のような単純な場合や、SQLで表現されるような複雑な場合がある。
 なお、「SQL」とは、データベース管理システムにおいて、データの操作や定義を行うための言語である。
 また、ストレージ管理系ノード1は、トランザクション管理系ノード3から更新要求を受信すると、その更新要求の内容に従って保持しているデータの更新を行う。
 クライアント系ノード2は、検索要求や更新要求の発行元となるノードである。即ち、「クライアント系」とは、検索要求や更新要求の発行元を抽象的に指し示す言葉である。具体的には例えば、クライアント系とは、アプリケーションプログラムや、SQL解釈系があげられる。
 ここで、「SQL解釈系」とは、更に別の系(アプリケーションプログラムや人間)からSQLを受け付け、それを解釈し、ストレージ管理系ノード群G1やトランザクション管理系ノード群G3を構成するノードの夫々が理解できる形に変換するプログラム等をいう。
 即ち、クライアント系ノード2は、例えば、図2の「検索要求」の矢印に示すように、ストレージ管理系ノード1に検索要求を送信する。また、クライアント系ノード2は、例えば、図2の「更新要求」の矢印に示すように、トランザクション管理系ノード3に更新要求を送信する。
 トランザクション管理系ノード3は、クライアント系ノード2から、更新要求を受信すると、以下のように処理を行う。即ち、トランザクション管理系ノード3は、仮にその更新要求に従ってデータベースの更新を行ったとして、整合性が崩れるかどうかを判定する。整合性が崩れる場合、又はその可能性が十分に高い場合、トランザクション管理系ノード3は、その更新要求を破棄する。整合性が崩れないことが確実である場合、トランザクション管理系ノード3は、ストレージ管理系ノード1に更新要求を送信する。
 ここでいう「整合性」とは、トランザクション処理の信頼性を保つために満たすべき性質の1つである。更に言えば、「整合性」は、データベースが満たすべきACID特性(Atomicity(原子性)、Consistency(一貫性)、Isolation(独立性)、Durability(永続性))を含む広義の概念であってよい。
 具体的には例えば、整合性として、以下のことが求められる。ACID特性のAである、「『一部の操作は実行され、残りの操作は実行されない』ということが起こらない」ことが求められる。また例えば、強い整合性として、「完了したトランザクションの内容はすぐに検索できる」こと等が求められる。即ち、トランザクションが完了した場合、トランザクションの内容が反映されたデータベースから検索できること等が求められる。また例えば、ACID特性のIとして、「トランザクション中に行われる操作の過程が他の操作から隠蔽される」こと等が求められる。即ち、トランザクション中において、整合性がない時点(過程)は、検索が不可能であることが求められる。
 即ち、トランザクション管理系ノード3は、例えば、図2の「更新要求」の矢印に示すように、クライアント系ノード2から送信されてきた更新要求を受信する。上述のように、整合性が崩れないと判定された場合、トランザクション管理系ノード3は、例えば、図2の「更新要求(整合性を崩さないもののみ)」の矢印に示すように、ストレージ管理系ノード1に更新要求を送信する。なお、詳細は後述するが、トランザクション管理系ノード3は、整合性が崩れるか否かを判定する場合や、SI(Snapshot Isolation)の方式による更新要求の管理をする場合、検索要求を送信することができる。
 図3は、図1のデータベース管理システムのうちストレージ管理系ノードのハードウェア構成の一例を示すブロック図である。
 ストレージ管理系ノード1は、CPU11と、ROM(Read Only Memory)12と、RAM13と、バス14と、入出力インターフェース15と、出力部16と、入力部17と、記憶部18と、通信部19と、ドライブ20と、を備えている。
 CPU11は、ROM12に記録されているプログラム、又は、記憶部18からRAM13にロードされたプログラムに従って各種の処理を実行する。
 RAM13には、CPU11が各種の処理を実行する上において必要なデータ等も適宜記憶される。
 CPU11、ROM12及びRAM13は、バス14を介して相互に接続されている。このバス14にはまた、入出力インターフェース15も接続されている。入出力インターフェース15には、出力部16、入力部17、記憶部18、通信部19及びドライブ20が接続されている。
 出力部16は、ディスプレイやスピーカ等で構成され、各種情報を画像や音声として出力する。
 入力部17は、キーボードやマウス等で構成され、各種情報を入力する。
 記憶部18は、ハードディスクやDRAM(Dynamic Random Access Memory)等で構成され、各種データを記憶する。
 通信部19は、インターネットを含むネットワークNWを介して他の装置(図1の例ではクライアント系ノード2やトランザクション管理系ノード3)との間で通信を行う。
 ドライブ20には、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリ等よりなる、リムーバブルメディア31が適宜装着される。ドライブ20によってリムーバブルメディア31から読み出されたプログラムは、必要に応じて記憶部18にインストールされる。
 また、リムーバブルメディア31は、記憶部18に記憶されている各種データも、記憶部18と同様に記憶することができる。
 なお、図示はしないが、図1のデータベース管理システムのクライアント系ノード2、及びトランザクション管理系ノード3は、図3に示すハードウェア構成と基本的に同様の構成を有している。
 図4は、図1のデータベース管理システムのうちストレージ管理系ノード、トランザクション管理系ノード、及びクライアント系ノードの機能的構成例の一例を示す機能ブロック図である。
 図4以降の説明において、説明を簡単にするため、ストレージ管理系ノード1、クライアント系ノード2、及びトランザクション管理系ノード3の夫々は、1台ずつであるものとして説明する。
 なお、第1実施形態(及び後述の第2実施形態乃至第4実施形態)において、ストレージ管理系ノード1がデータベースを「蓄積」や「検索」や「更新」等に便利なように整理して記憶することを、まとめて、ストレージ管理系ノード1がデータベースを「管理」すると呼ぶ。即ち、ストレージ管理系ノード1は、管理対象のデータをデータベースとして管理する。
 また、データベースは、上述のように、リレーション(表)の形式で管理されるものとして説明する。即ち、管理対象のデータは、リレーションにおける行毎に、管理される。
 まず、図4を用いて、ストレージ管理系ノード1、クライアント系ノード2、及びトランザクション管理系ノード3により、更新処理が行われる場合機能する機能ブロックについて説明する。
 なお、図4の説明において、ストレージ管理系ノード1は、人物に関するデータベースを管理しており、当該データベースは、スキーマとして「名前」、「性別」、「年齢」を持つものとする。また、更新処理を行う要求、即ち更新要求として、データベースの2行目に蓄積されている、名前が「ABCD」、性別が「男性」、年齢が「25歳」といった人物のデータを、名前と性別とは変更がなく、年齢が「26歳」であるといった人物のデータに更新させるという内容(以下、「更新内容」と呼ぶ)の要求が採用されたものとして説明する。また、更新処理は、後述する「論理時刻=5」の時刻に行われたものとして説明する。
 更新処理が実行される場合には、ストレージ管理系ノード1のCPU11において、更新要求情報取得部111と、論理時刻情報取得部112と、行番号情報取得部113と、対象データ管理部114と、が機能する。また、クライアント系ノード2のCPU212において、更新要求管理部221が機能する。また、トランザクション管理系ノード3のCPU312において、更新要求情報取得部321と、更新要求整合性管理部322と、が機能する。
 まず、クライアント系ノード2の更新要求管理部221は、データベースの更新を要求する情報であって、その更新の内容を含む情報(以下、「更新要求情報」と呼ぶ)をトランザクション管理系ノード3に送信することで、更新要求を管理する。ここで、「更新要求」とは、上述したように、データベース管理システムを構成するストレージ管理系ノード1により管理されるデータベースに対する、更新処理の要求である。
 具体的には例えば、更新要求管理部221は、図示せぬアプリケーションプログラム等の要求に基づき、更新要求情報として、データベースに要求する更新内容を含む情報を取得又は生成し、更新要求情報をトランザクション管理系ノード3に通信部211を介して送信する。即ち、ここでいう更新要求情報は、例えば「データベースの2行目に蓄積されている、名前が「ABCD」、性別が「男性」、年齢が「25歳」といった人物のデータを、名前と性別とは変更がなく、年齢が「26歳」であるといった人物のデータに更新する」という要求の情報である。
 トランザクション管理系ノード3の更新要求情報取得部321は、クライアント系ノード2から送信されてきた更新要求情報を取得する。
 更新要求整合性管理部322は、更新要求情報取得部321で取得された更新要求情報に基づき、管理対象のデータが管理されるストレージ管理系ノード1に対して更新要求情報を送信することで、当該更新要求を管理する。
 即ち、更新要求整合性管理部322は、更新要求情報に基づき、ストレージ管理系ノード1に対して更新要求情報を送信するか否かを管理することで、更新の要求を管理する。
 具体的には例えば、更新要求整合性管理部322は、当該更新要求情報をストレージ管理系ノード1に対して送信することで、管理対象のデータが含まれるデータベースの更新を行った場合に、当該データベースの整合性が崩れるか否かを判定する。
 また例えば、まず、更新要求整合性管理部322は、過去の更新要求情報等の全部又は一部を保持して管理する。次に、更新要求整合性管理部322は、新たな更新要求情報を、過去の更新要求情報等と照合する。このとき、更新要求整合性管理部322は、新たな更新要求情報により更新される管理対象のデータが、過去の更新要求情報等により更新されたか否かに基づいて、ストレージ管理系ノード1に格納されたデータベースの整合性が崩れるか否かを判定する。
 もし、当該更新要求情報に基づいてデータベースの更新を行った場合に、整合性が維持されない、又はその可能性が十分に高いと判定された場合、更新要求整合性管理部322は、その更新の要求を破棄する。整合性が維持されることが確実である場合、トランザクション管理系ノード3は、ストレージ管理系ノード1に更新要求を送信する。
 つまり、更新要求整合性管理部322は、データベースの整合性が崩れるか否かを判定して、整合性が維持されることが確実である場合にのみ、ストレージ管理系ノード1に更新要求情報を送信する。これにより、ストレージ管理系ノード1により管理されるデータベースは、更新処理に係る整合性が維持される。
 なお、図示はしないが、更新要求整合性管理部322は、データベースの整合性が崩れるか否かを判定する際に、後述する検索処理を行うことができる。
 なお、更新要求整合性管理部322は、更新の要求を破棄する旨やストレージ管理系ノード1に送信する旨を、クライアント系ノード2の更新要求管理部221に通知することができる。更新要求整合性管理部322により更新の要求を破棄された場合、クライアント系ノード2の更新要求管理部221は、更新の要求を再度発行することができる。
 ストレージ管理系ノード1の更新要求情報取得部111は、トランザクション管理系ノード3から送信されてきた更新要求情報を取得する。
 論理時刻情報取得部112は、管理対象のデータが有効になった時間帯の少なくとも一部を特定可能な情報を、論理時刻情報として取得する。
 ここで、論理時刻とは、管理対象のデータを管理する際における、更新履歴を記録するための時刻である。論理時刻は、データベースの更新毎に一意に付与された、整数であってよい。具体的には例えば、1回目の更新は「論理時刻=1」、2回目の更新は「論理時刻=2」といった数の形態とすることができる。また例えば、論理時刻は、通常の時刻と同様に、「年」「月」「日」「時」「分」「秒」等の組み合わせで示される、いわゆる通常の時刻の形態とすることができる。
 即ち、論理時刻は、データベースの管理に使われ、一方向に変化する識別子である。図4の第1実施形態の説明では、論理時刻は、データベースの更新毎に付与された整数値として説明する。また、「論理時刻=5」において、更新処理が行われるものとして説明する。
 論理時刻情報取得部112は、管理対象のデータが更新処理により有効になった時点を示す挿入論理時刻xt_insと、管理対象のデータが無効になった時点を示す削除論理時刻xt_delとを含む情報を論理時刻情報として取得する。
 具体的には例えば、更新処理として、名前が「ABCD」、性別が「男性」、年齢が「25歳」といった人物のデータを、名前と性別とは変更がなく、年齢が「26歳」であると更新する処理が採用されている場合を例として説明する。即ち、この例の更新処理において、「ABCD」、「男性」、「26歳」のデータの組がデータベースに挿入される。また、「ABCD」、「男性」、「25歳」のデータの組がデータベースから削除される。
 この場合、論理時刻情報取得部112は、この更新処理が行われる「論理時刻=5」を、「ABCD」、「男性」、「26歳」のデータの組の挿入論理時刻xt_insとして、取得する。また、「ABCD」、「男性」、「26歳」のデータの組の削除論理時刻xt_delは、未定である。そこで、例えば、論理時刻情報取得部112は、削除論理時刻xt_delが未定である旨を、∞という削除論理時刻xt_delとして取得することができる。
 また、論理時刻情報取得部112は、この更新処理が行われる「論理時刻=5」を、「ABCD」、「男性」、「25歳」のデータの組の削除論理時刻xt_delとして、取得する。「ABCD」、「男性」、「25歳」のデータの組の挿入論理時刻xt_insは、すでにデータベースに蓄積されているデータから取得することができる。
 行番号情報取得部113は、管理対象のデータが属する行を特定可能な行番号情報を取得する。即ち、行番号情報取得部113は、更新処理を行うデータの組が、データベースにおけるいずれの行のデータであるのかを特定可能な行番号情報を取得する。具体的には例えば、行番号情報取得部113は、更新要求情報から、「ABCD」、「男性」、「26歳」のデータの組が、2行目である旨を行番号情報として取得する。
 対象データ管理部114は、論理時刻情報と、行番号情報と、管理対象のデータとを対応付けてデータベース150に蓄積して管理する。
 ここで、図4を見ると、データベース150の一領域には、論理時刻t1乃至tnの夫々に対応するデータベース150-1乃至150-nの夫々が設定されている。このデータベース150-1乃至150-nの夫々には、1乃至nの論理時刻の夫々に対応するデータの内容が格納されている。
 即ち、データベース150は、論理時刻情報と、行番号情報と、管理対象のデータとを対応付けてデータベース150に格納するため、データベース150-1乃至150-nに対応する管理対象のデータを全て含んでいる。論理時刻情報を含む情報を格納されているデータベース150は、所定の処理を施されることで、論理時刻t1におけるデータベース150-1に含まれる情報が抽出されることが可能なデータベースである。
 なお、挿入論理時刻xt_ins及び削除論理時刻xt_delが、具体的にどのようにデータベース150に蓄積されるのかの詳細は図5及び図6を用いて後述する。
 以上、ストレージ管理系ノード1、クライアント系ノード2、及びトランザクション管理系ノード3により、更新処理が行われる場合に機能する機能ブロックについて説明した。
 次に、ストレージ管理系ノード1、及びクライアント系ノード2により、検索処理が行われる場合に機能する機能ブロックについて説明する。
 ここで、以下の説明を容易なものとすべく、検索処理は、その前提として上述の更新処理がなされた後のデータベース150に対して行われる例を用いるものとする。この例では、検索対象とする論理時刻は、上述の更新処理が行われる以前の論理時刻である「論理時刻=4」であるものとする。つまり、これから説明する検索処理の例は、図示せぬユーザからの「論理時刻=4」におけるデータベース150-4の内容に対して検索処理が実行されるものとする。
 まとめると、検索処理を行う要求、即ち検索要求として、「「論理時刻=4」におけるデータベースの2行目に蓄積されている、人物のデータを抽出する」という内容(以下、「検索内容」と呼ぶ)の要求がなされる例を用いて説明する。
 検索処理が実行される場合には、ストレージ管理系ノード1のCPU11において、検索対象論理時刻情報取得部121と、検索内容情報取得部122と、検索管理部123と、検索結果提示部124と、が機能する。また、クライアント系ノード2のCPU212において、検索要求管理部222が機能する。
 クライアント系ノード2の検索要求管理部222は、データベースからデータの検索を要求する情報であって、その検索の内容を含む情報(以下、「検索要求情報」と呼ぶ)をストレージ管理系ノード1に送信することで、検索要求を管理する。
 具体的には例えば、検索要求管理部222は、図示せぬアプリケーションプログラム等の要求に基づき、検索要求情報として、データベースに要求する検索内容を含む情報を取得又は生成し、検索要求情報をストレージ管理系ノード1に送信する。即ち、ここでいう検索要求情報は、例えば「「論理時刻=4」におけるデータベースの2行目に蓄積されている、人物のデータを抽出する」という要求の情報である。
 ストレージ管理系ノード1の検索対象論理時刻情報取得部121は、クライアント系ノード2から送信されてきた検索要求情報に含まれる論理時刻を、検索対象論理時刻st(stは1乃至nのうちの任意の整数値であり、本例では「4」)として取得する。
 検索内容情報取得部122は、検索要求情報から、どのような内容の検索を行うかを示す情報(以下、「検索内容情報」と呼ぶ)を取得する。
 本例では、検索内容情報取得部122は、検索要求情報のうち、「データベースの2行目に蓄積されている、人物のデータを抽出する」という情報を、検索内容情報として取得する。
 検索管理部123は、検索対象特定部131と、検索部132とを有する。
 検索対象特定部131は、検索対象論理時刻情報取得部121により取得された検索対象論理時刻st(本例では「4」)に基づいて、データベースの中から検索対象の候補のデータを特定する。
 具体的には例えば、データベースには、上述の更新処理が行われた結果として、次の第1データと第2データとが蓄積されているものとする。即ち、行番号が「2行目」、挿入論理時刻xt_insが「1」、削除論理時刻xt_delが「5」、名前が「ABCD」、性別が「男性」、年齢が「25」のデータが第1データであるものとする。また、行番号が「2行目」、挿入論理時刻xt_insが「5」、削除論理時刻xt_delが「∞」、名前が「ABCD」、性別が「男性」、年齢が「26」のデータが第2データであるものとする。
 この場合、検索対象特定部131は、データベースのうち、検索対象の候補のデータを特定するための条件を、次のようにして決定する。即ち、本例では、上述のように、検索対象論理時刻stは「4」である。従って、検索対象の候補のデータは、「挿入論理時刻xt_insが4より小さく、且つ、削除論理時刻xt_delが4以上」という条件を満たす必要がある。そこで、検索対象特定部131は、かかる条件を、検索対象の候補のデータを特定するための条件として決定する。
 即ち、この場合、上述の例では、検索対象特定部131は、第1データを、検索対象の候補のデータとして特定する。
 検索部132は、検索内容情報取得部122により取得された検索内容情報から検索内容を認識し、検索対象特定部131により特定された検索対象の候補のデータから当該検索内容に合致するデータを検索する。
 具体的には例えば、上述の例では、検索部132は、第1データから、「データベースの2行目に蓄積されている、人物のデータを抽出する」という検索内容に合致するデータを検索する。
 このように、複数のデータを含む検索対象の候補のデータから、検索結果として、「名前が「ABCD」、性別が「男性」、年齢が「25」」のデータが抽出される。
 検索結果提示部124は、検索部132の検索結果を、クライアント系ノード2に提示する。
 具体的には例えば、検索結果提示部124は、検索部132で抽出された、検索結果である「名前が「ABCD」、性別が「男性」、年齢が「25」」のデータを、クライアント系ノード2に送信する。
 クライアント系ノード2の検索要求管理部222は、ストレージ管理系ノード1から送信されてきた検索結果を取得して管理する。具体的には例えば、検索要求管理部222は、ストレージ管理系ノード1から送信されてきた「名前が「ABCD」、性別が「男性」、年齢が「25」」という人物のデータを取得して管理する。このように、検索要求管理部222は、発行した検索要求に対する結果を取得することができる。
 以上、図4を用いて、ストレージ管理系ノード1、及びクライアント系ノード2により、検索処理が行われる場合に機能する機能ブロックについて説明した。
 以上をまとめると、第1実施形態のストレージ管理系ノード1は、論理時刻に基づいた更新処理及び検索処理を実行することができる。
 具体的には、対象データ管理部114は、論理時刻情報(挿入論理時刻xt_ins、及び削除論理時刻xt_delの情報)と、行番号情報と、管理対象のデータとを対応付けてデータベース150に蓄積して管理する。これにより、ストレージ管理系ノード1が有するデータベース150は、論理時刻の夫々に対応するデータベース150-1乃至150-nの夫々のデータを含んだデータベースとなる。
 また、検索対象特定部131は、対象データ管理部114により管理される論理時刻情報、及び検索対象論理時刻情報に基づき、検索対象論理時刻情報により特定される時刻に有効であった管理対象のデータを、検索対象の候補のデータとして特定する。即ち、検索対象特定部131は、データベース150から、検索対象論理時刻stに対応するデータベース150-stを検索対象の候補のデータとして特定する。
 これにより、検索部132は、検索対象論理時刻stにおけるデータベース150から、検索することができる。
 特許文献1に記載の技術を含む従来技術では、スナップショットとジャーナルにより、データベースとその更新処理の内容を管理していた。この場合、データベースのスナップショットに対して、ジャーナルから取得した検索対象の時刻までの更新の情報を適用することで、検索対象の候補のデータとすることができる。しかしながら、この方法は、データ処理に係る時間等のコストが大きく、安易に利用することができなかった。
 一方、第1実施形態は、管理対象のデータの挿入論理時刻xt_insや削除論理時刻xt_delを、データベースに蓄積して管理することができる。これにより、論理時刻に対する検索を、データベースに対する検索と同様に行うことができる。具体的には例えば、データベースに蓄積されている挿入論理時刻xt_insや削除論理時刻xt_delと検索対象論理時刻stとの大小関係を比較する形式で与えることで、検索対象の候補のデータを特定することができる。
 これにより、第1実施形態は、分散されたデータベース管理システムでありながら、スケーラビリティを向上させることができる。
 以上、図4を用いて、ストレージ管理系ノード1、及びクライアント系ノード2により、検索処理が行われる場合に機能する機能ブロックについて説明した。
 次に、図5、及び図6を用いて、第1実施形態に係る対象データ管理部114により、挿入論理時刻xt_ins、削除論理時刻xt_del、及び管理対象のデータが、対応付けられてデータベース150Aに蓄積される例を説明する。
 図5は、図1のストレージ管理系ノードで管理されるデータベースに含まれる、論理時刻の夫々における検索対象の候補のデータの夫々の例を示す図である。
 図6は、第1実施形態における図1のストレージ管理系ノードで管理されるデータベースに含まれる、管理対象のデータの例を示す図である。
 図5(A)乃至図5(D)の夫々に示すデータベースの夫々の検索対象論理時刻stは、相互に異なっている。図6に示すデータベース150Aは、図5(A)乃至図5(D)の夫々に示すデータベースの夫々を包含するデータベースである。
 図5(A)乃至図5(D)に示すデータベースの夫々は、スキーマとして、「tid」、「A」、「B」、「C」を有する。「tid」は、図4の説明における、行番号に対応する。「A」、「B」、及び「C」の夫々は、図4の説明における、「名前」、「性別」、「年齢」の夫々に対応する。ただし、図5以降の説明におけるデータベースに蓄積された管理対象のデータは、図4の説明で用いた人物のデータではなく、一般的な管理対象のデータであり数値や文字列であるものとして説明する。
 また、詳細は後述するが、図6のデータベース150Aは、以下の第1の更新処理乃至第4の更新処理が行われたデータである。
 なお、データベース150Aの符号が含む「A」の文字は、図5(A)乃至図5(D)に示すデータベース150-8、150-11、150-13、150-16等を含むデータベースのうち、ある1つの実施形態であることを示している。
 図5(A)乃至図5(D)に示すデータベース150-8、150-11、150-13、150-16を含むデータベースのうち、他の実施形態は、図8以降を用いて、データベース150B等を用いて後述する。
 第1の更新処理は、論理時刻が「7」において、「tid」について「1001」のデータが追加される更新処理である。
 第2の更新処理は、論理時刻が「10」において、「tid」について「1002」、「1003」のデータが追加される更新処理である。
 第3の更新処理は、論理時刻が「12」において、「tid」について「1002」のデータが変更される更新処理である。
 第4の更新処理は、論理時刻が「15」において、「tid」について「1003」のデータが削除される更新処理である。
 図5(A)には、データベース150-8、即ち、検索対象論理時刻stが「8」におけるデータベースが図示されている。即ち、データベース150-8は、第1の更新処理の結果として得られるデータベースである。データベース150-8は、スキーマの夫々に対応するデータとして、「1001」、「a1」、「b1」、「c1」のデータの組を含む。即ち、データベース150-8は、「tid」が「1001」のデータのみを含む。
 検索処理において、検索対象論理時刻stとして「8」が指定された場合、検索対象特定部131は、図6のデータベース150Aから、図5(A)に示すデータベース150-8のデータを、検索対象の候補のデータとして特定する。
 図5(B)には、データベース150-11、即ち、検索対象論理時刻stが「11」である場合におけるデータベースが図示されている。即ち、データベース150-11は、第1の更新処理及び第2の更新処理の結果として得られるデータベースである。データベース150-11は、「tid」が「1001」、「1002」、「1003」のデータを含む。
 検索処理において、検索対象論理時刻stとして「11」が指定された場合、検索対象特定部131は、データベース150Aから、図5(B)に示すデータベース150-11のデータを、検索対象の候補のデータとして特定する。
 図5(C)には、データベース150-13、即ち、検索対象論理時刻stが「13」である場合におけるデータベースが図示されている。即ち、データベース150-13は、第1の更新処理乃至第3の更新処理の結果として得られるデータベースである。データベース150-13は、「tid」が「1001」、「1002」、「1003」のデータを含む。また、図5(C)のデータベース150-13における「tid」が「1002」のデータは、図5(B)のデータベース150-11における「tid」が「1002」のデータと異なる。即ち、図5(C)のデータベース150-13における「tid」が「1002」のデータは、第3の更新処理により変更されている。
 検索処理において、検索対象論理時刻stとして「13」が指定された場合、検索対象特定部131は、図6のデータベース150Aから、図5(C)に示すデータベース150-13のデータを、検索対象の候補のデータとして特定する。
 図5(D)には、データベース150-16、即ち、検索対象論理時刻stが「16」である場合におけるデータベースが図示されている。即ち、データベース150-16は、第1の更新処理乃至第4の更新処理の結果として得られるデータベースである。データベース150-16は、「tid」が「1001」、「1002」のデータを含む。
 検索処理において、検索対象論理時刻stとして「16」が指定された場合、検索対象特定部131は、図6のデータベース150Aから、図5(D)に示すデータベース150-16のデータを、検索対象の候補のデータとして特定する。
 図6のデータベース150Aは、スキーマとして、「tid」、「xt_ins」、「xt_del」、「A」、「B」、「C」を有する。「tid」は、図4の説明における、行番号に対応する。「xt_ins」は、図4の説明における、「挿入論理時刻xt_ins」に対応する。「xt_del」は、図4の説明における、「削除論理時刻xt_del」に対応する。即ち、データベース150Aは、挿入論理時刻xt_ins、及び削除論理時刻xt_delを、データベースのスキーマとして蓄積している。
 図6を用いて、検索対象論理時刻stとして「13」が指定された検索処理において、検索対象特定部131が、データベース150Aから、図5(C)に示すデータベース150-13を、検索対象の候補のデータとして特定するまでの一連の流れを説明する。
 検索対象特定部131は、データベース150Aの4つの行の夫々が、検索対象論理時刻stが「13」の時刻において有効であったかを特定する。具体的には、検索対象特定部131は、データベース150Aの行の夫々について、以下の式(1)及び式(2)を満たすか否かを確認することで、その行の管理対象のデータが有効であったか否かを判定することができる。
 st > xt_ins ・・・ (1)
 st ≦ xt_del ・・・ (2)
 即ち、式(1)を満たす場合、その行の管理対象のデータは、検索対象論理時刻stより前に有効となったデータである。換言すれば、式(1)が満たされない場合、その行の管理対象のデータは、未だ有効でなかったデータである。
 また、式(2)を満たす場合、その行の管理対象のデータは、検索対象論理時刻stの時点では無効となっていないデータである。換言すれば、式(2)が満たされない場合、その行の管理対象のデータは、既に無効になったデータである。
 検索対象論理時刻stとして「13」が指定された場合、検索対象特定部131は、図6のデータベース150Aの行の夫々の有効又は無効の判定を、以下の通り行う。
 図6のデータベース150Aの1行目の行(「tid」が「1001」の行)は、式(1)及び式(2)を満たすので有効である。
 図6のデータベース150Aの2行目の行(「tid」が「1001」の行のうち上の行)は、式(2)を満たさないので無効である。
 図6のデータベース150Aの3行目の行(「tid」が「1001」の行のうち下の行)は、式(1)及び式(2)を満たすので有効である。
 図6のデータベース150Aの4行目の行(「tid」が「1001」の行)は、式(1)及び式(2)を満たすので有効である。
 これにより、上述のように図6のデータベース150Aのうち、有効である1行目、3行目、4行目が、図5(C)のデータベース150-13として検索対象の候補のデータとして特定される。
 図7は、第1実施形態における図4の機能的構成を有するストレージ管理系ノードにより実行される、管理対象データの管理の流れの一例を説明するフローチャートである。
 ここで、第1実施形態(及び後述の第2実施形態乃至第4実施形態)の「格納処理」とは、更新処理によりデータベースに蓄積されたデータが変更される際、変更されたデータが図4のストレージ管理系ノード1の記憶部18に格納される処理である。
 更新処理が行われることにより、データベース150Aに蓄積して管理すべきデータ(管理対象のデータ)が発生すると、格納処理が開始されて、次のようなステップS11乃至S15の処理が実行される。
 即ち、ステップS11において、論理時刻情報取得部112は、管理対象のデータの挿入論理時刻xt_ins及び削除論理時刻xt_delを、論理時刻情報として取得する。
 ステップS12において、行番号情報取得部113は、管理対象のデータがデータベースにおけるいずれの行であるかを特定可能な情報を、行番号情報として取得する。
 ステップS13において、対象データ管理部114は、ステップS12の処理で取得された行番号情報に基づき、データベース150Aの中に、無効になった管理対象のデータがあるか否かを判定する。
 無効になった管理対象のデータがある場合、ステップS13の処理においてYESであると判定されて、処理はステップS14に進む。
 ステップS14において、対象データ管理部114は、ステップS11の処理で取得された、無効になった管理対象のデータの削除論理時刻xt_delと、無効になった管理対象のデータとを対応づけてデータベース150Aに蓄積して管理する。
 ステップS15において、対象データ管理部114は、ステップS11の処理で取得された有効になったデータの挿入論理時刻xt_insと、有効になった管理対象のデータとを対応づけてデータベース150Aに蓄積して管理する。
 これにより、格納処理は終了する。
 以上、管理対象のデータの中に無効になったデータがある場合のステップS13以降の処理について説明した。
 これに対して、管理対象のデータの中に無効になったデータが存在する場合のステップS13以降の処理は次のようになる。
 即ち、無効になったデータがない場合、ステップS13の処理においてNOであると判定されて、処理はステップS15に進む。即ち、無効になったデータがある場合に実行されたステップS14の処理は、無効になった管理対象のデータがない場合には実行されない。
 ステップS15において、対象データ管理部114は、ステップS11の処理で取得された論理時刻情報を、有効になったデータの挿入論理時刻xt_insとして、有効になった管理対象のデータとを対応づけてデータベース150Aに蓄積して管理する。
 これにより、格納処理は終了する。
 ここで、格納処理の理解を容易なものとすべく、データベース150Aの中に無効になった管理対象のデータがある場合の第1の例と、データベース150Aの中に無効になった管理対象のデータがない場合の第2の例との夫々における格納処理について説明する。
 第1の例は、管理対象のデータとして、「A」、「B」、及び「C」のスキーマを持つデータ群のうち、「tid」が「1002」の管理対象のデータに対する更新処理が実行された場合の例である。
 なお、以下の説明において、「A」というスキーマが「a1」、「B」というスキーマが「b1」、「C」というスキーマが「c1」であることを、「(A,B,C)=(a1,b1,c1)」と記載する。
 第1の例では、更新処理前には、論理時刻10乃至12において、管理対象のデータ(A,B,C)=(a2,b2,c2)であったものが、論理時刻12における更新処理により、管理対象のデータ(A,B,C)=(a2,b2’,c2’)に更新されたものとする。
 ステップS11において、管理対象のデータの挿入論理時刻xt_ins及び削除論理時刻xt_delを、論理時刻情報として取得する。具体的には、ステップS11の処理は、無効になった管理対象のデータ(A,B,C)=(a2,b2,c2)の挿入論理時刻xt_ins=「10」及び削除論理時刻xt_del=「12」の情報を論理時刻情報として取得する。また、具体的には、ステップS11の処理は、有効になった管理対象のデータ(A,B,C)=(a2,b2’,c2’)の挿入論理時刻xt_ins=「12」を論理時刻情報として取得する。
 ステップS12において、行番号情報として「1002」が取得される。
 第1の例では無効になった管理対象のデータ(A,B,C)=(a2,b2,c2)があるため、ステップS13の処理においてYESであると判定されて、処理はステップS14に進む。
 ステップS14において、無効になった管理対象のデータの削除論理時刻xt_delは、無効になった管理対象のデータ(A,B,C)=(a2,b2,c2)と対応づけられてデータベース150Aに蓄積されて管理される。
 ステップS15において、有効になった管理対象のデータの挿入論理時刻xt_insは、有効になった管理対象のデータ(A,B,C)=(a2,b2’,c2’)と対応づけられて、データベース150Aに蓄積されて管理される。
 これにより格納処理は終了となる。
 以上、データベース150Aの中に無効になった管理対象のデータがある場合の第1の例を用いて格納処理の説明をした。
 次に、データベース150Aの中に無効になった管理対象のデータがない場合の第2の例を用いて格納処理の説明をする。
 第2の例は、管理対象のデータとして、「A」、「B」、及び「C」のスキーマを持つデータ群のうち、「tid」が「1003」の管理対象のデータに対する更新処理が実行された場合の例である。
 第2の例では、更新処理前には、論理時刻10までにおいて、「tid」が「1003」の管理対象のデータは存在しなかったが、論理時刻10における更新処理により、管理対象のデータ(A,B,C)=(a3,b3,c3)が更新(追加)されたものとする。
 ステップS11において、管理対象のデータの挿入論理時刻xt_ins及び削除論理時刻xt_delを、論理時刻情報として取得する。具体的には、ステップS11の処理は、有効になった管理対象のデータ(A,B,C)=(a3,b3,c3)の挿入論理時刻xt_ins=「10」を論理時刻情報として取得する。また、ステップS11の処理は、有効になった管理対象のデータ(A,B,C)=(a3,b3,c3)の削除論理時刻xt_del=「∞」を論理時刻情報として取得する。なお、上述で説明した通り、削除論理時刻xt_del=「∞」という論理時刻情報は、削除論理時刻xt_delが未定である旨を示す論理時刻情報である。
 ステップS12において、行番号情報として「1002」が取得される。
 第2の例では無効になったデータがないため、ステップS13の処理においてNOであると判定されて、処理はステップS15に進む。
 ステップS15において、有効になった管理対象のデータの挿入論理時刻xt_insと、有効になった管理対象のデータ(A,B,C)=(a3,b3,c3)とが対応づけて、データベース150Aに蓄積されて管理される。
 これにより格納処理は終了となる。
 以上、データベース150Aの中に無効になった管理対象のデータがない場合の第2の例を用いて格納処理の説明をした。
 以上をまとめると、第1の例のように、管理対象のデータを書き換える様な更新処理の場合、更新処理により無効となる管理対象のデータ(A,B,C)=(a2,b2,c2)が、ステップS14の処理によりデータベース150Aに蓄積されて管理される。また、更新処理により、有効となる管理対象のデータ(A,B,C)=(a2,b2’,c2’)が、ステップS15の処理によりデータベース150Aに蓄積されて管理される。
 また、第2の例のように、管理対象のデータを追加する様な更新処理の場合、更新処理により無効となる管理対象のデータは存在せず、ステップS14の処理は実行されない。また、更新処理により、有効となる管理対象のデータ(A,B,C)=(a3,b3,c3)が、ステップS15の処理によりデータベース150Aに蓄積されて管理される。
 以上、格納処理の理解を容易なものとすべく、データベース150Aの中に無効になった管理対象のデータがある場合の第1の例と、データベース150Aの中に無効になった管理対象のデータがない場合の第2の例との夫々における格納処理について説明した。
 以上、本発明の第1実施形態に係るデータベース管理システムについて説明した。
 次に、本発明の第2実施形態に係るデータベース管理システムについて説明する。
[第2実施形態]
 第2実施形態に係るデータベース管理システムの構成は、第1実施形態と同様である。即ち、図1はそのまま、本発明の第2実施形態に係るデータベース管理システムの構成を示している。よって、本発明の第2実施形態に係るデータベース管理システムの構成の説明は省略する。
 また、第2実施形態に係るストレージ管理系ノード1のハードウェア構成は、第1実施形態と同様である。即ち、図3はそのまま、本発明の第2実施形態に係るストレージ管理系ノード1のハードウェア構成を示している。
 また、図示はしないが、第2実施形態に係るデータベース管理システムのクライアント系ノード2及びトランザクション管理系ノード3の夫々は、図3に示すハードウェア構成と基本的に同様の構成を有している。
 よって、本発明の第2実施形態に係る、ストレージ管理系ノード1、クライアント系ノード2、及びトランザクション管理系ノード3の夫々のハードウェア構成の説明は省略する。
 また、第2実施形態に係るデータベース管理システムの機能的構成は、第1実施形態と同様である。即ち、図4はそのまま、本発明の第2実施形態に係るデータベース管理システムの機能的構成を示している。よって、本発明の第2実施形態に係るデータベース管理システムの機能的構成の説明は省略する。
 第2実施形態と第1実施形態の差異点は、対象データ管理部114が、論理時刻情報と、行番号情報と、管理対象のデータとを対応付けてデータベース150に蓄積して管理する対応付けの仕組みである。
 即ち、第1実施形態で採用された仕組みは、管理対象のデータ、当該管理対象のデータの挿入論理時刻xt_ins及び削除論理時刻xt_delが、データベース150Aのスキーマとして蓄積される仕組みであった。
 ここで、「最新の論理時刻」とは、現時点(例えば検索処理の開始時点)からみて直前の更新処理が行われた論理時刻に1を加えたものである。また、最新の論理時刻におけるデータベース、即ち最新の論理時刻より小さい論理時刻における更新処理が完了したデータベースを、「最新のデータベース」と呼ぶ。
 このような第1実施形態で採用される仕組みに対して、第2実施形態で採用される仕組みは、最新の論理時刻において有効な管理対象のデータの挿入論理時刻xt_insが、第1のデータベース(例えば後述する図8のデータベース150B-1)のスキーマとして蓄積される仕組みである。また、第2実施形態で採用される仕組みは、最新の論理時刻において無効な管理対象のデータの挿入論理時刻xt_ins及び削除論理時刻xt_delが、第2のデータベース(例えば後述するデータベース150B-2)のスキーマとして蓄積される仕組みである。
 さらに、以下、第2実施形態で採用される仕組みの詳細について、図8及び図9を用いて説明する。
 図8は、第2実施形態における図1のストレージ管理系ノードで管理されるデータベースに含まれる、管理対象のデータの例を示す図である。
 図8(A)には、最新のデータベースにおいて有効であるデータを蓄積するデータベース150B-1の例が示されている。
 図8(B)には、最新のデータベースにおいて無効であるデータを蓄積するデータベース150B-2の例が示されている。
 第2実施形態に係る対象データ管理部114は、挿入論理時刻xt_ins、削除論理時刻xt_del、及び管理対象のデータ(有効と無効とを夫々区別したデータ)を対応付けて、データベース150B-1及びデータベース150B-2に蓄積する。
 具体的には例えば、図8(A)のデータベース150B-1には、図5(D)に示すデータベース150-16に含まれる管理対象のデータと、挿入論理時刻xt_insとが対応づけられて蓄積されている。
 図8(B)のデータベース150B-2には、図6に示すデータベース150Aのうち図8に示すデータベース150B-1に含まれない管理対象のデータと、挿入論理時刻xt_insと、削除論理時刻xt_delとが対応づけられて蓄積されている。換言すれば、データベース150B-2は、最新の論理時刻において無効である管理対象のデータの更新の履歴である。
 即ち、図8(A)に示すデータベース150B-1及び図8(B)に示すデータベース150B-2には、最新の論理時刻において有効である管理対象のデータと無効である管理対象のデータとが、別のデータベースとして蓄積されている。
 即ち、対象データ管理部114は、最新の論理時刻において、有効である管理対象のデータを、データベース150B-1に蓄積する。また、対象データ管理部114は、最新の論理時刻において無効である管理対象のデータを、データベース150B-2に蓄積する。
 第2実施形態において、検索対象特定部131は、検索処理を行うとき、第1実施形態と同様に、検索対象論理時刻stにおいて有効であった管理対象のデータを、検索対象の候補のデータとして特定する。ここで、検索対象論理時刻stとは、上述したように、クライアント系ノード2から送信されてきた検索要求情報に含まれる論理時刻である。
 しかしながら、第2実施形態に係る検索対象特定部131は、以下のように検索する点で第1実施形態と異なる。
 まず、検索対象特定部131は、検索処理において指定された検索対象論理時刻stのデータを用いて、図8(A)に示すデータベース150B-1から検索対象の候補のデータを特定する。
 具体的には例えば、検索対象特定部131は、データベース150B-1の行のデータの夫々のうち、第1実施形態で示した式(1)の条件を満たすデータを、検索対象の候補のデータとして特定する。これにより、検索対象特定部131は、最新の論理時刻において、有効なデータのうち、検索対象論理時刻stにおいて有効である管理対象のデータを、検索対象の候補のデータとして特定することができる。
 次に、検索対象特定部131は、図8(B)に示すデータベース150B-2から、検索対象の候補を特定する。即ち、検索対象特定部131は、検索処理において指定された検索対象論理時刻stのデータを用いて、図8(B)に示すデータベース150B-2から検索対象の候補のデータを特定する。
 具体的には例えば、検索対象特定部131は、データベース150B-2の行のデータの夫々のうち、第1実施形態で示した式(1)及び式(2)の条件を満たすデータを、検索対象の候補のデータとして特定する。例えば、管理対象のデータが削除される様な更新処理がされた後において、削除された管理対象のデータは、最新の論理時刻において無効な管理対象のデータである。検索対象特定部131は、第1実施形態で上述したのと同様に、検索対象論理時刻stにおいて有効であった管理対象のデータを、データベース150B-2から、検索対象の候補のデータとして特定する。
 更に、検索対象特定部131は、データベース150B-1から特定した検索対象の候補のデータと、データベース150B-2から特定した検索対象の候補のデータとの和集合を、総合的な検索対象の候補のデータとして特定する。
 ここで、総合的な検索対象の候補のデータが、検索部132おける検索対象特定部131により特定された検索対象の候補のデータとして採用され、検索に用いられる。
 なお、検索対象の候補として、最新の論理時刻において有効でない行のデータ(例えば、「tid」が「1003」のデータ)は検索対象の候補とする必要がない場合、データベース150B-2から検索対象の候補を特定する必要はない。
 第2実施形態に係るデータベース管理システムは、上述のような一連の処理を行うことにより、以下のような効果を奏することができる。
 例えば、検索処理において、検索対象特定部131は、まず、最新の論理時刻において有効なデータが蓄積されたデータベース150B-1から、検索対象の候補のデータを特定する。検索処理において、多くの場合、検索対象論理時刻stとして最新の論理時刻が指定されて検索される。
 検索対象論理時刻stが最新の論理時刻である場合、検索対象特定部131は、データベース150B-2から検索対象の候補のデータを特定する必要はない。つまり、検索対象特定部131は、データベース150B-2の夫々の行のデータが、第1実施形態で示した式(1)及び式(2)の条件を満たすか否かを判定する処理を行わないようにすることができる。
 即ち、第2実施形態において、検索処理に係る処理のうち、第1実施形態で示した式(1)及び式(2)の条件を満たすか否かを判定する処理を削減できるため、検索処理に係る計算資源を節約することができる。
 図9は、第2実施形態における図4の機能的構成を有するストレージ管理系ノードにより実行される、格納処理の一例を説明するフローチャートである。
 更新処理が行われることにより、データベース150B-1又はデータベース150B-2に蓄積して管理すべきデータ(管理対象のデータ)が発生すると、格納処理が開始されて、次のようなステップS21乃至S25の処理が実行される。
 即ち、ステップS21において、論理時刻情報取得部112は、管理対象のデータの挿入論理時刻xt_ins及び削除論理時刻xt_delを、論理時刻情報として取得する。
 ステップS22において、行番号情報取得部113は、管理対象のデータがデータベースにおけるいずれの行であるかを特定可能な情報を、行番号情報として取得する。
 ステップS23において、対象データ管理部114は、ステップS22の処理で取得された行番号情報に基づき、最新の論理時刻において有効なデータが蓄積されたデータベース150B-1の中に、無効になった管理対象のデータがあるか否かを判定する。
 無効になった管理対象のデータがある場合、ステップS23の処理においてYESであると判定されて、処理はステップS24に進む。
 ステップS24において、対象データ管理部114は、ステップS21の処理で取得された、無効になった管理対象のデータの削除論理時刻xt_delと、無効になった管理対象のデータとを対応づけてデータベース150B-2に蓄積して管理する。
 ステップS25において、対象データ管理部114は、ステップS21の処理で取得された有効になったデータの挿入論理時刻xt_insと、有効になった管理対象のデータとを対応づけてデータベース150B-1に蓄積して管理する。
 これにより、格納処理は終了する。
 以上、管理対象のデータの中に無効になったデータがある場合のステップS23以降の処理について説明した。
 これに対して、管理対象のデータの中に無効になったデータが存在しない場合のステップS23以降の処理は次のようになる。
 即ち、無効になったデータがない場合、ステップS23の処理においてNOであると判定されて、処理はステップS25に進む。即ち、無効になったデータがある場合に実行されたステップS24の処理は、無効になった管理対象のデータがない場合には実行されない。
 ステップS25において、対象データ管理部114は、ステップS21の処理で取得された論理時刻情報を、有効になったデータの挿入論理時刻xt_insとして、有効になった管理対象のデータとを対応づけてデータベース150B-1に蓄積して管理する。
 これにより、格納処理は終了する。
 ここで、格納処理の理解を容易なものとすべく、データベース150B-1の中に無効になった管理対象のデータがある場合の第1の例と、データベース150B-1の中に無効になった管理対象のデータがない場合の第2の例との夫々における格納処理について説明する。
 第1の例は、管理対象のデータとして、「A」、「B」、及び「C」のスキーマを持つデータ群のうち、「tid」が「1002」の管理対象のデータに対する更新処理が実行された場合の例である。
 なお、以下の説明において、上述の第1実施形態の説明と同様に、「A」というスキーマが「a1」、「B」というスキーマが「b1」、「C」というスキーマが「c1」であることを、「(A,B,C)=(a1,b1,c1)」と記載する。
 第1の例では、更新処理前には、論理時刻10乃至12において、管理対象のデータが(A,B,C)=(a2,b2,c2)であったものが、論理時刻=「12」における更新処理により、管理対象のデータ(A,B,C)=(a2,b2’,c2’)に更新されたものとする。
 ステップS21において、格納処理が実行される論理時刻を、論理時刻情報として取得する。具体的には、ステップS21の処理は、無効になった管理対象のデータ(A,B,C)=(a2,b2,c2)の挿入論理時刻xt_ins=「10」及び削除論理時刻xt_del=「12」を論理時刻情報として取得する。また、具体的には、ステップS21の処理は、有効になった管理対象のデータ(A,B,C)=(a2,b2’,c2’)の挿入論理時刻xt_ins=「12」を論理時刻情報として取得する。
 ステップS22において、行番号情報として「1002」が取得される。
 第1の例では無効になった管理対象のデータ(A,B,C)=(a2,b2,c2)があるため、ステップS23の処理においてYESであると判定されて、処理はステップS24に進む。
 ステップS24において、無効になった管理対象のデータの削除論理時刻xt_delは、無効になった管理対象のデータ(A,B,C)=(a2,b2,c2)と対応づけられ、データベース150B-2に蓄積されて管理される。
 ステップS25において、有効になった管理対象のデータの挿入論理時刻xt_insは、有効になった管理対象のデータ(A,B,C)=(a2,b2’,c2’)と対応づけられて、データベース150B-1に蓄積されて管理される。
 これにより格納処理は終了となる。
 以上、データベース150B-1の中に無効になった管理対象のデータがある場合の第1の例を用いて格納処理の説明をした。
 次に、データベース150B-1の中に無効になった管理対象のデータがない場合の第2の例を用いて格納処理の説明をする。
 第2の例は、管理対象のデータとして、「A」、「B」、及び「C」のスキーマを持つデータ群のうち、「tid」が「1003」の管理対象のデータに対する更新処理が実行された場合の例である。
 第2の例では、更新処理前には、論理時刻10までにおいて、「tid」が「1003」の管理対象のデータは存在しなかったが、論理時刻10における更新処理により、管理対象のデータ(A,B,C)=(a3,b3,c3)が更新(追加)されたものとする。
 ステップS21において、格納処理が実行される論理時刻を、論理時刻情報として取得する。具体的には、ステップS21の処理は、有効になった管理対象のデータ(A,B,C)=(a3,b3,c3)の挿入論理時刻xt_ins=「10」を論理時刻情報として取得する。
 ステップS22において、行番号情報として「1003」が取得される。
 第2の例では無効になったデータがないため、ステップS23の処理においてNOであると判定されて、処理はステップS25に進む。
 ステップS25において、有効になった管理対象のデータの挿入論理時刻xt_insと、有効になった管理対象のデータ(A,B,C)=(a3,b3,c3)とを対応づけて、データベース150B-1に蓄積されて管理される。
 これにより格納処理は終了となる。
 以上、データベース150B-1の中に無効になった管理対象のデータがない場合の第2の例を用いて格納処理の説明をした。
 以上をまとめると、第1の例のように、管理対象のデータを書き換える様な更新処理の場合、更新処理により無効となる管理対象のデータ(A,B,C)=(a2,b2,c2)が、ステップS24の処理によりデータベース150B-2に蓄積されて管理される。また、更新処理により、有効となる管理対象のデータ(A,B,C)=(a2,b2’,c2’)が、ステップS25の処理によりデータベース150B-1に蓄積されて管理される。
 また、第2の例のように、管理対象のデータを追加する様な更新処理の場合、更新処理により無効となる管理対象のデータは存在せず、ステップS24の処理は実行されない。また、更新処理により、有効となる管理対象のデータ(A,B,C)=(a3,b3,c3)が、ステップS25の処理によりデータベース150B-1に蓄積されて管理される。
 以上、格納処理の理解を容易なものとすべく、データベース150B-1の中に無効になった管理対象のデータがある場合の第1の例と、データベース150B-1の中に無効になった管理対象のデータがない場合の第2の例との夫々における格納処理について説明した。
 以上、本発明の第2実施形態に係るデータベース管理システムについて説明した。
 次に、本発明の第3実施形態に係るデータベース管理システムについて説明する。
[第3実施形態]
 第3実施形態に係るデータベース管理システムの構成は、第1実施形態と同様である。即ち、図1はそのまま、本発明の第3実施形態に係るデータベース管理システムの構成を示している。よって、本発明の第3実施形態に係るデータベース管理システムの構成の説明は省略する。
 また、第3実施形態に係るストレージ管理系ノード1のハードウェア構成は、第1実施形態と同様である。即ち、図3はそのまま、本発明の第3実施形態に係るストレージ管理系ノード1のハードウェア構成を示している。
 また、図示はしないが、第3実施形態に係るデータベース管理システムのクライアント系ノード2及びトランザクション管理系ノード3の夫々は、図3に示すハードウェア構成と基本的に同様の構成を有している。
 よって、本発明の第3実施形態に係る、ストレージ管理系ノード1、クライアント系ノード2、及びトランザクション管理系ノード3の夫々のハードウェア構成の説明は省略する。
 また、第3実施形態に係るデータベース管理システムの機能的構成は、第1実施形態と同様である。即ち、図4はそのまま、本発明の第3実施形態に係るデータベース管理システムの機能的構成を示している。よって、本発明の第2実施形態に係るデータベース管理システムの機能的構成の説明は省略する。
 第3実施形態と第1実施形態の差異点は、対象データ管理部114が、論理時刻情報と、行番号情報と、管理対象のデータとを対応付けてデータベース150に蓄積して管理する対応付けの仕組みである。
 即ち、第1実施形態で採用された仕組みは、RDBMSにより管理されるリレーショナル形式のデータベースが採用されている仕組みであった。これにより、管理対象のデータ、当該管理対象のデータの挿入論理時刻xt_ins及び削除論理時刻xt_delが、データベース150Aのスキーマとして蓄積された。
 このような第1実施形態で採用される仕組みに対して、第3実施形態で採用される仕組みは、後述するKVSにより管理されるデータベースが採用される仕組みである。詳細は後述するが、これにより、最新の論理時刻における有効な管理対象のデータ、無効な管理対象のデータの挿入論理時刻xt_ins、及び削除論理時刻xt_delが、データベース150CのValueとして蓄積される。また、管理対象のデータの行番号情報が、データベース150CのKeyとして蓄積される。即ち、第3実施形態で採用される仕組みは、KVSにより管理されるデータベース150Cを利用した仕組みである。
 そこで、以下、第3実施形態で採用される仕組みの詳細について、図10乃至図12を用いて説明する。
 第3実施形態において、データベースとして、KVS(Key-Value Store)により管理されるデータベースが採用されているものとする。
 KVSとは、キーと値(Value)の組を大量に蓄積し、キーを指定して検索を高速に実行可能なデータベース管理システムのことである。KVSにより管理されるデータベースは、RDBMSにより管理されるリレーショナル形式のデータベースと比較して、機能が極めて限定されている代わりに、性能が高いという特徴がある。
 図10は、第3実施形態における図1のストレージ管理系ノードで管理されるデータベースに含まれる、検索対象の候補のデータの例を示す図である。
 具体的には、図10は、第3実施形態におけるストレージ管理系ノード1で管理されるデータベース150に含まれる、検索対象論理時刻stが「11」の場合の検索対象の候補のデータのリレーションRCを示す図である。
 第3実施形態に係る対象データ管理部114は、挿入論理時刻xt_ins、削除論理時刻xt_del、及び管理対象のデータを対応付けて、データベース150Cに蓄積する。
 具体的には例えば、図10に示すリレーションRCは、KVSにより管理されており、スキーマとしてKeyとValueとを持つ。ここで、図10に示すリレーションRCに示すように、第1実施形態や第2実施形態における行番号「tid」に対応する行番号が、「Key」として管理される。また、第1実施形態や第2実施形態における管理対象のデータは、「Value」として管理される。
 図11は、第3実施形態における図1のストレージ管理系ノードで管理されるデータベースに含まれる、管理対象のデータの例を示す図である。
 図11には、KVSにより管理されるデータベース150Cの例が示されている。
 図11のデータベース150Cには、図6に示すデータベース150Aに含まれる管理対象のデータと、挿入論理時刻xt_insと、削除論理時刻xt_delとが対応づけられたデータが、KVSにより管理されるデータベースとして蓄積されている。
 具体的には、図11に示すデータベース150Cは、図10に示すリレーションRCと同様に、KVSにより管理されており、スキーマとしてKeyとValueとを持つ。ここで、図11に示すデータベース150Cに示すように、第1実施形態や第2実施形態における行番号「tid」は、「Key」として管理される。また、第1実施形態や第2実施形態における管理対象のデータは、「Value」として管理される。
 第3実施形態において、検索対象特定部131は、検索処理を行うとき、第1実施形態と同様に、検索対象論理時刻stに有効であった管理対象のデータを、検索対象の候補のデータとして特定する。ここで、検索対象論理時刻stとは、上述したように、クライアント系ノード2から送信されてきた検索要求情報に含まれる論理時刻である。
 しかしながら、第3実施形態に係る検索対象特定部131は、以下のように検索する点で第1実施形態と異なる。
 まず、検索対象特定部131は、検索処理において指定された行番号情報を用いて、図11に示すデータベース150Cから、検索対象の候補のデータを特定する。
 具体的には例えば、検索対象特定部131は、データベース150Cの行のデータの夫々のうち、検索内容に関する行番号の情報を、行番号情報として指定する。即ち、検索対象特定部131は、行番号情報に基づき、KVSで管理されるデータベース150Cにおける「Key」と一致する行を、検索対象の候補のデータとして特定する。これにより、検索対象特定部131は、行番号情報により特定された検索対象の候補のデータの夫々のValueの夫々が取得できる。
 次に、検索対象特定部131は、検索対象の候補のデータのValueのデータの夫々のうち、第1実施形態で示した式(1)及び式(2)の条件を満たすデータを検索対象の候補のデータとして特定する。これにより、検索対象の候補のデータのうち、検索対象論理時刻stにおける管理対象のデータを、総合的な検索対象の候補のデータとして特定することができる。
 上述のような第3実施形態の処理を行うことにより、以下のような効果を奏することができる。
 例えば、第1実施形態において、説明の簡単のため、データベースとして、RDBMSにより管理されるリレーショナル形式のデータベースが採用されているものとした。しかし、第3実施形態に示したように、KVSにより管理されるデータベース150Cにおいても、論理時刻情報と、行番号情報と、管理対象のデータとを対応付けて蓄積することができる。
 また、KVSにより管理されるデータベース150Cは、RDBMSにより管理されるリレーショナル形式のデータベースと比較して、機能が極めて限定されている代わりに、性能が高い。即ち、データの様式や更新の有無によっては、KVSにより管理されるデータベース150Cを採用したデータベース管理システムは、RDBMSにより管理されるリレーショナル形式のデータベースと比較して性能が高いシステムとなる可能性がある。
 図12は、第3実施形態における図4の機能的構成を有するストレージ管理系ノードにより実行される、管理対象のデータの管理の流れの例を説明するフローチャートである。
 更新処理が行われることにより、データベース150Cに蓄積して管理すべきデータ(管理対象のデータ)が発生すると、格納処理が開始されて、次のようなステップS31乃至S35の処理が実行される。
 即ち、ステップS31において、論理時刻情報取得部112は、管理対象のデータの挿入論理時刻xt_ins及び削除論理時刻xt_delを、論理時刻情報として取得する。
 ステップS32において、行番号情報取得部113は、管理対象のデータがデータベースにおけるいずれの行であるかを特定可能な情報を、行番号情報として取得する。
 ステップS33において、対象データ管理部114は、ステップS32の処理で取得された行番号情報に基づき、最新の論理時刻において有効なデータが蓄積されたデータベース150Cの中に、無効になった管理対象のデータがあるか否かを判定する。
 無効になった管理対象のデータがある場合、ステップS33の処理においてYESであると判定されて、処理はステップS34に進む。
 ステップS34において、対象データ管理部114は、ステップS31の処理で取得された、無効になった管理対象のデータの削除論理時刻xt_delと、無効になった管理対象のデータとを対応づけてデータベース150Cに蓄積して管理する。
 ステップS35において、対象データ管理部114は、ステップS31の処理で取得された有効になったデータの挿入論理時刻xt_insと、有効になった管理対象のデータとを対応づけてデータベース150Cに蓄積して管理する。
 これにより、格納処理は終了する。
 以上、管理対象のデータの中に無効になったデータがある場合のステップS33以降の処理について説明した。
 これに対して、管理対象のデータの中に無効になったデータが存在しない場合のステップS33以降の処理は次のようになる。
 即ち、無効になったデータがない場合、ステップS33の処理においてNOであると判定されて、処理はステップS35に進む。即ち、無効になったデータがある場合に実行されたステップS34の処理は、無効になった管理対象のデータがない場合には実行されない。
 ステップS35において、対象データ管理部114は、ステップS31の処理で取得された論理時刻情報を、有効になったデータの挿入論理時刻xt_insとして、有効になった管理対象のデータとを対応づけてデータベース150Cに蓄積して管理する。
 これにより、格納処理は終了する。
 ここで、格納処理の理解を容易なものとすべく、データベース150Cの中に無効になった管理対象のデータがある場合の第1の例と、データベース150Cの中に無効になった管理対象のデータがない場合の第2の例との夫々における格納処理について説明する。
 第1の例は、管理対象のデータとして、KVSにより管理されるデータベースに含まれるデータ群のうち、「Key」が「1002」の管理対象のデータに対する更新処理が実行された場合の例である。
 なお、以下の説明において、「挿入論理時刻xt_ins」が「7」であることを、「xt_ins=7」と記載する。同様に、「削除論理時刻xt_del」が「∞」であることを「xt_del=∞」、「Value」が「ABCDEFG」であることを「value=ABCDEFG」と夫々記載する。また、この様な挿入論理時刻xt_insと、削除論理時刻xt_delと、Valueとが対応付けられたものを、「{xt_ins=7,xt_del=∞,value=ABCDEFG}」と記載する。
 第1の例では、更新処理前には、論理時刻10乃至12において、管理対象のデータが「value=hijklmnop」であったものが、論理時刻12における更新処理により、管理対象のデータが「value=HIJKLMNOP」に更新されたものとする。
 ステップS31において、格納処理が実行される論理時刻を、論理時刻情報として取得する。具体的には、ステップS31の処理は、無効になった管理対象のデータ「value=hijklmnop」の挿入論理時刻xt_ins=「10」及び削除論理時刻xt_del=「12」を論理時刻情報として取得する。また、具体的には、ステップS31の処理は、有効になった管理対象のデータ「value=HIJKLMNOP」の挿入論理時刻xt_ins=「12」を論理時刻情報として取得する。
 ステップS32において、行番号情報として「1002」が取得される。
 第1の例では無効になった管理対象のデータ「value=hijklmnop」があるため、ステップS33の処理においてYESであると判定されて、処理はステップS34に進む。
 ステップS34において、無効になった管理対象のデータの削除論理時刻xt_delは、無効になった管理対象のデータ「value=hijklmnop」と対応づけられ、データベース150Cに蓄積されて管理される。
 ステップS35において、有効になった管理対象のデータの挿入論理時刻xt_insは、有効になった管理対象のデータ「value=HIJKLMNOP」と対応づけられて、データベース150Cに蓄積されて管理される。
 これにより格納処理は終了となる。
 以上、データベース150Cの中に無効になった管理対象のデータがある場合の第1の例を用いて格納処理の説明をした。
 次に、データベース150Cの中に無効になった管理対象のデータがない場合の第2の例を用いて格納処理の説明をする。
 第2の例は、管理対象のデータとして、KVSにより管理されるデータベースに含まれるデータ群のうち、「Key」が「1003」の管理対象のデータに対する更新処理が実行された場合の例である。
 第2の例では、更新処理前には、論理時刻10までにおいて、「Key」が「1003」の管理対象のデータは存在しなかったが、論理時刻10における更新処理により、管理対象のデータ「value=1234567890」が更新(追加)されたものとする。
 ステップS31において、格納処理が実行される論理時刻を、論理時刻情報として取得する。具体的には、ステップS31の処理は、有効になった管理対象のデータ「value=1234567890」の挿入論理時刻xt_ins=「10」を論理時刻情報として取得する。
 ステップS32において、行番号情報として「1003」が取得される。
 第2の例では無効になったデータがないため、ステップS23の処理においてNOであると判定されて、処理はステップS35に進む。
 ステップS35において、有効になった管理対象のデータの挿入論理時刻xt_insと、有効になった管理対象のデータ「value=1234567890」とを対応づけて、データベース150Cに蓄積されて管理される。
 これにより格納処理は終了となる。
 以上、データベース150Cの中に無効になった管理対象のデータがない場合の第2の例を用いて格納処理の説明をした。
 以上をまとめると、第1の例のように、管理対象のデータを書き換える様な更新処理の場合、更新処理により無効となる管理対象のデータ「value=hijklmnop」が、ステップS34の処理によりデータベース150Cに蓄積されて管理される。また、更新処理により、有効となる管理対象のデータ「value=HIJKLMNOP」が、ステップS35の処理によりデータベース150Cに蓄積されて管理される。
 また、第2の例のように、管理対象のデータを追加する様な更新処理の場合、更新処理により無効となる管理対象のデータは存在せず、ステップS34の処理は実行されない。また、更新処理により、有効となる管理対象のデータ「value=1234567890」が、ステップS35の処理によりデータベース150Cに蓄積されて管理される。
 以上、格納処理の理解を容易なものとすべく、データベース150Cの中に無効になった管理対象のデータがある場合の第1の例と、データベース150Cの中に無効になった管理対象のデータがない場合の第2の例との夫々における格納処理について説明した。
 以上、本発明の第3実施形態に係るデータベース管理システムについて説明した。
 次に、本発明の第4実施形態に係るデータベース管理システムについて説明する。
[第4実施形態]
 第4実施形態に係るデータベース管理システムの構成は、第1実施形態と同様である。即ち、図1はそのまま、本発明の第4実施形態に係るデータベース管理システムの構成を示している。よって、本発明の第4実施形態に係るデータベース管理システムの構成の説明は省略する。
 また、第4実施形態に係るストレージ管理系ノード1のハードウェア構成は、第1実施形態と同様である。即ち、図3はそのまま、本発明の第4実施形態に係るストレージ管理系ノード1のハードウェア構成を示している。
 また、図示はしないが、第4実施形態に係るデータベース管理システムのクライアント系ノード2及びトランザクション管理系ノード3の夫々は、図3に示すハードウェア構成と基本的に同様の構成を有している。
 よって、本発明の第4実施形態に係る、ストレージ管理系ノード1、クライアント系ノード2、及びトランザクション管理系ノード3の夫々のハードウェア構成の説明は省略する。
 また、第4実施形態に係るデータベース管理システムの機能的構成は、第1実施形態と同様である。即ち、図4はそのまま、本発明の第4実施形態に係るデータベース管理システムの機能的構成を示している。よって、本発明の第4実施形態に係るデータベース管理システムの機能的構成の説明は省略する。
 第4実施形態と第1実施形態の差異点は、対象データ管理部114が、論理時刻情報と、行番号情報と、管理対象のデータとを対応付けてデータベース150を蓄積して管理する対応付けの仕組みである。
 即ち、第1実施形態で採用された仕組みは、データベースにより、挿入論理時刻xt_ins等が対応づけられて管理される仕組みであった。具体的には、管理対象のデータ、当該管理対象のデータの挿入論理時刻xt_ins及び削除論理時刻xt_delの夫々が、データベース150Aのスキーマの夫々として蓄積された。
 このような第1実施形態で採用される仕組みに対して、第4実施形態で採用される仕組みは、後述するファイル名として、管理対象のデータの挿入論理時刻xt_ins等が対応づけられて管理される仕組みである。詳細は後述するが、これにより、管理対象のデータが、ファイルの内容として管理される。また、管理対象のデータの行番号情報、挿入論理時刻xt_ins、及び削除論理時刻xt_delが、ファイル名として管理される。即ち、第4実施形態で採用される仕組みは、ファイル名により管理対象のデータが管理される仕組みである。
 そこで、以下、第4実施形態で採用される仕組みの詳細について、図13乃至図15を用いて説明する。
 第4実施形態に係る対象データ管理部114は、挿入論理時刻xt_ins、削除論理時刻xt_del、及び行番号情報をファイル名として、管理対象のデータをファイルの内容として、ファイルとそのファイルのファイル名とを対応付けて、記憶部18に格納する。つまり、第4実施形態におけるデータベースは、記憶部18に、複数のファイルとして格納されたファイル群である。
 ここで、説明を簡単にするため、第4実施形態における管理対象のデータは1行のテキストデータであり、当該テキストデータはテキストファイルとして管理されるものとする。即ち、1つのテキストファイルは第1実施形態乃至第3実施形態における1行の管理対象のデータに対応する。
 図13は、第4実施形態における図1のストレージ管理系ノード1で管理されるファイルにおける、ファイル名と内容の例を示す図である。以下、ファイル名と内容の対応を示す表を、「ファイル名内容対応表」と呼ぶ。
 具体的には、図13は、第4実施形態におけるストレージ管理系ノード1で管理されるファイルにおける、検索対象論理時刻stが「11」の場合のファイル名内容対応表RDを示す図である。換言すれば、図13に示すファイル名内容対応表RDは、検索対象論理時刻stが「11」の場合の検索対象の候補のデータである。
 また、第4実施形態におけるストレージ管理系ノードで管理されるファイルのファイル名は、図13に示すファイル名内容対応表RDに示すように付与されている。即ち、図13に示すファイル名内容対応表RDは、第1実施形態乃至第3実施形態の行番号情報「tid」の代わりに、行を特定する情報として図13に示すファイル名内容対応表RDの「ファイル名」を採用している。
 図14は、第4実施形態における図1のストレージ管理系ノードで管理されるデータベースのファイルのファイル名を、論理時刻と対応づけたファイル名として管理する例を示す図である。
 図14には、ストレージ管理系ノード1の記憶部18に格納されるファイルのファイル名と、ファイルの内容の例が示されている。
 図14の記憶部18には、ファイル名が「bar(10,12)」のファイルの内容として、「hijklmnop」が、格納されている。「bar(10,12)」というファイル名は、行を特定する情報が「bar」、挿入論理時刻xt_insが「10」、削除論理時刻xt_delが「12」、であることを示している。
 即ち、第4実施形態の対象データ管理部114は、行を特定する情報と、挿入論理時刻xt_insと、削除論理時刻xt_delとをファイル名として記憶部18に記憶する。
 第4実施形態において、検索処理を行うとき、検索対象特定部131は、第1実施形態と同様に、検索対象論理時刻stに有効であった管理対象のデータを、検索対象の候補のデータとして特定する。しかしながら、第4実施形態に係る検索対象特定部131は、以下のように検索する点で第1実施形態と異なる。
 まず、検索対象特定部131は、検索処理において指定された行番号情報、挿入論理時刻xt_ins、及び削除論理時刻xt_delを用いて、図14に示す記憶部18に格納されたファイルから、検索対象の候補のデータが含まれるファイルを特定する。
 具体的には例えば、検索対象特定部131は、図14に示す記憶部18に格納されたファイルのファイル名、行を特定する情報、挿入論理時刻xt_ins、及び削除論理時刻xt_delに基づき、条件に一致するファイル名のファイルを特定する。つまり、検索対象特定部131は、ファイル名から特定された行を特定する情報、挿入論理時刻xt_ins、及び、削除論理時刻xt_delの夫々に基づき、条件に一致するファイル名のファイルを検索対象の候補のデータとして特定する。
 「bar(10,12)」というファイル名のファイルがある場合、行を特定する情報が「bar」、挿入論理時刻xt_insが「10」、削除論理時刻xt_delが「12」であると識別する。検索対象特定部131は、検索対象論理時刻stに基づき、ファイル名から識別した挿入論理時刻xt_ins及び削除論理時刻xt_delに対して、第1実施形態で示した式(1)及び式(2)の条件を満たすか否かを判定する。これにより、「bar(10,12)」というファイル名のファイルが、検索対象論理時刻stにおいて有効であったかを判定することができる。
 検索対象特定部131は、上述の判定を、複数のファイルの夫々に対して行うことで、総合的な検索対象論理時刻とする。
 ここで、総合的な検索対象の候補のデータが、検索部132おける検索対象特定部131により特定された検索対象の候補のデータとして採用され、検索に用いられる。
 即ち、検索対象特定部131は、ファイル名から識別された挿入論理時刻xt_ins及び削除論理時刻xt_delの夫々が、第1実施形態で示した式(1)及び式(2)の条件を満たすファイル名であるかを判定する。これにより、検索対象の候補のデータのうち、検索対象論理時刻stにおける管理対象のデータを、検索対象の候補のデータとして特定することができる。
 第4実施形態に係るデータベース管理システムは、上述のような一連の処理を行うことにより、以下のような効果を奏することができる。
 例えば、第4実施形態において、記憶部18に格納されるファイルは、データベースに限らず、例えば、テキストファイル等、任意のファイル形式のファイルで良い。この場合、第4実施形態における検索対象特定部131は、特定された検索対象の候補のデータとして、ファイルをクライアントに提供することができる。即ち、第4実施形態に係るデータベース管理システムは、管理対象のファイル(データ)を、挿入論理時刻xt_ins及び削除論理時刻xt_delと対応づけて格納することができる。
 これにより、挿入論理時刻xt_ins及び削除論理時刻xt_delを、データベース管理システムにおけるスキーマとして管理せず、ファイル名とすることで管理することができる。即ち、通常データベースにおいて処理するSQL等による処理が不要となり、検索処理における計算資源の消費が削減される。
 図15は、第4実施形態における図4の機能的構成を有するストレージ管理系ノードにより実行される、管理対象データの管理の流れの一例を説明するフローチャートである。即ち、第4実施形態におけるストレージ管理系ノードにより実行される、格納処理の一例を説明するフローチャートである。
 更新処理が行われることにより、記憶部18に格納して管理すべきデータ(管理対象のデータ)が発生すると、格納処理が開始されて、次のようなステップS41乃至S45の処理が実行される。
 即ち、ステップS41において、論理時刻情報取得部112は、管理対象のデータの挿入論理時刻xt_ins及び削除論理時刻xt_delを、論理時刻情報として取得する。
 ステップS42において、行番号情報取得部113は、管理対象のデータがデータベースにおけるいずれの行であるかを特定可能な情報を、行番号情報として取得する。
 ステップS43において、対象データ管理部114は、ステップS42の処理で取得された行番号情報に基づき、記憶部18の中に、無効になった管理対象のデータがあるか否かを判定する。
 無効になった管理対象のデータがある場合、ステップS43の処理においてYESであると判定されて、処理はステップS44に進む。
 ステップS44において、対象データ管理部114は、ステップS41の処理で取得された、無効になった管理対象のデータの削除論理時刻xt_delと、無効になった管理対象のデータ(ファイル)とを対応づけて記憶部18に格納して管理する。
 ステップS45において、対象データ管理部114は、ステップS41の処理で取得された有効になったデータの挿入論理時刻xt_insと、有効になった管理対象のデータ(ファイル)とを対応づけて記憶部18に格納して管理する。
 これにより、格納処理は終了する。
 以上、管理対象のデータの中に無効になったデータがある場合のステップS43以降の処理について説明した。
 これに対して、管理対象のデータの中に無効になったデータが存在しない場合のステップS43以降の処理は次のようになる。
 即ち、無効になったデータがない場合、ステップS43の処理においてNOであると判定されて、処理はステップS45に進む。即ち、無効になったデータがある場合に実行されたステップS44の処理は、無効になった管理対象のデータがない場合には実行されない。
 ステップS45において、対象データ管理部114は、ステップS41の処理で取得された論理時刻情報を、有効になったデータの挿入論理時刻xt_insとして、有効になった管理対象のデータとを対応づけて記憶部18に格納して管理する。
 これにより、格納処理は終了する。
 ここで、格納処理の理解を容易なものとすべく、記憶部18の中に無効になった管理対象のデータがある場合の第1の例と、記憶部18の中に無効になった管理対象のデータがない場合の第2の例との夫々における格納処理について説明する。
 第1の例は、管理対象のデータとして、ファイルが管理されるファイル群のうち、行を特定する情報が「bar」の管理対象のデータに対する更新処理が実行された場合の例である。
 第1の例では、更新処理前には、論理時刻10乃至12において、管理対象のデータが「hijklmnop」であったものが、論理時刻12における更新処理により、管理対象のデータ「HIJKLMNOP」に更新されたものとする。
 ステップS41において、管理対象のデータの挿入論理時刻xt_ins及び削除論理時刻xt_delを、論理時刻情報として取得する。具体的には、ステップS41の処理は、無効になった管理対象のデータ「hijklmnop」の挿入論理時刻xt_ins=「10」及び削除論理時刻xt_del=「12」を論理時刻情報として取得する。また、具体的には、ステップS41の処理は、有効になった管理対象のデータ「HIJKLMNOP」の挿入論理時刻xt_ins=「12」を論理時刻情報として取得する。
 ステップS42において、行を特定するとして「bar」が取得される。
 第1の例では無効になった管理対象のデータ「hijklmnop」があるため、ステップS43の処理においてYESであると判定されて、処理はステップS44に進む。
 ステップS44において、無効になった管理対象のデータの削除論理時刻xt_delは、無効になった管理対象のデータ「hijklmnop」と対応づけられて記憶部18に格納されて管理される。
 ステップS45において、有効になった管理対象のデータの挿入論理時刻xt_insは、有効になった管理対象のデータ「HIJKLMNOP」と対応づけられて、記憶部18に格納されて管理される。
 これにより格納処理は終了となる。
 以上、記憶部18の中に無効になった管理対象のデータがある場合の第1の例を用いて格納処理の説明をした。
 次に、記憶部18の中に無効になった管理対象のデータがない場合の第2の例を用いて格納処理の説明をする。
 第2の例は、管理対象のデータとして、ファイルが管理されるファイル群のうち、行を特定する情報が「baz」の管理対象のデータに対する更新処理が実行された場合の例である。
 第2の例では、更新処理前には、論理時刻が「10」である時刻までにおいて、行を特定する情報が「baz」の管理対象のデータは存在しなかったが、論理時刻10における更新処理により、管理対象のデータ「1234567890」が更新(追加)されたものとする。
 ステップS41において、管理対象のデータの挿入論理時刻xt_ins及び削除論理時刻xt_delを、論理時刻情報として取得する。具体的には、ステップS41の処理は、有効になった管理対象のデータ「1234567890」の挿入論理時刻xt_ins=「10」を論理時刻情報として取得する。また、ステップS41の処理は、有効になった管理対象のデータ「1234567890」の削除論理時刻xt_del=「∞」を論理時刻情報として取得する。なお、上述で説明した通り、削除論理時刻xt_del=「∞」という論理時刻情報は、削除論理時刻xt_delが未定である旨を示す論理時刻情報である。なお、図14に示す記憶部18のファイル名は、論理時刻が「15」において、行を特定する情報が「baz」の管理対象のデータが削除される更新処理が行われた場合におけるファイル名である。
 ステップS42において、行を特定する情報として「baz」が取得される。
 第2の例では無効になったデータがないため、ステップS43の処理においてNOであると判定されて、処理はステップS45に進む。
 ステップS45において、有効になった管理対象のデータの挿入論理時刻xt_insと、有効になった管理対象のデータ「1234567890」とを対応づけて、記憶部18に格納されて管理される。
 これにより格納処理は終了となる。
 以上、記憶部18の中に無効になった管理対象のデータがない場合の第2の例を用いて格納処理の説明をした。
 以上をまとめると、第1の例のように、管理対象のデータを書き換える様な更新処理の場合、更新処理により無効となる管理対象のデータ「hijklmnop」が、ステップS44の処理により記憶部18に格納されて管理される。また、更新処理により、有効となる管理対象のデータ「HIJKLMNOP」が、ステップS45の処理により記憶部18に格納されて管理される。
 また、第2の例のように、管理対象のデータを追加する様な更新処理の場合、更新処理により無効となる管理対象のデータは存在せず、ステップS44の処理は実行されない。また、更新処理により、有効となる管理対象のデータ「1234567890」が、ステップS45の処理により記憶部18に格納されて管理される。
 以上、格納処理の理解を容易なものとすべく、記憶部18の中に無効になった管理対象のデータがある場合の第1の例と、記憶部18の中に無効になった管理対象のデータがない場合の第2の例との夫々における格納処理について説明した。
 以上、本発明の実施形態の夫々について説明したが、本発明は、上述の実施形態に限定されるものではなく、本発明の目的を達成できる範囲での変形、改良等は本発明に含まれるものである。
 例えば、第1実施形態の説明において、更新要求整合性管理部322は、データベースの整合性が崩れるか否かを判定して、整合性が維持されることが確実である場合にのみ、ストレージ管理系ノード1に更新要求情報を送信するとした。更新要求整合性管理部322は、具体的に以下のような処理を行うことで、整合性の管理を行ってもよい。
 具体的には例えば、まず、トランザクション管理系ノード3は、更新要求整合性管理部322は、ストレージ管理系ノード1に更新要求情報を送信する。次に、トランザクション管理系ノード3は、更新の内容を処理した場合にデータベースの整合性が崩れるか否かを、ストレージ管理系ノード1に判定させることができる。ここで、整合性が維持されることが確実である場合にのみ、トランザクション管理系ノード3は、ストレージ管理系ノード1に更新の内容を確定(トランザクションをコミット)させることができる。また、整合性が維持されることが確実でない場合に、トランザクション管理系ノード3は、ストレージ管理系ノード1に更新の内容を破棄させることができる。
 更に言えば、更新要求整合性管理部322は、整合性の管理にSIの方式を採用して管理してよい。以下、整合性の管理にSIの方式を採用した場合について説明する。ここで、トランザクション管理系ノード3は、トランザクション管理系ノード3-1,3-2の2台が存在し、同時に更新処理を行っているものとして説明する。また、トランザクション管理系ノード3-1,3-2は、1つのストレージ管理系ノード1に更新要求を送信するものとする。また、トランザクション管理系ノード3-1,3-2は、更新の内容を処理した場合にデータベースの整合性が崩れるか否かを、ストレージ管理系ノード1に判定させる。なお、トランザクション管理系ノード3-1が更新要求整合性管理部322-1を有し、トランザクション管理系ノード3-2が更新要求整合性管理部322-2を有するものとして説明する。
 まず、トランザクション管理系ノード3-1の更新要求整合性管理部322-1は、対象データ管理部114により管理される、論理時刻情報と、行番号情報と、管理対象のデータとが対応付けられたデータベース150を、ストレージ管理系ノード1に複製させる。例えば、更新要求整合性管理部322-1は、最新のデータベースの複製であるスナップショットのデータベース150-1Sを、ストレージ管理系ノード1に生成させる。即ち、スナップショットのデータベース150-1Sは、最新のデータベースが複製されたデータベースの1つである。ここで、スナップショットのデータベース150-1Sは、ストレージ管理系ノード1のRAM13や記憶部18の一領域に記憶されていてよい。即ち、スナップショットのデータベース150-1Sは、記憶部18に記憶されたデータベース150と異なる領域に記憶されてよい。
 次に、更新要求整合性管理部322-1は、スナップショットのデータベース150-1Sに対して更新処理を行い、更新されたスナップショットのデータベース150-1Mを生成する。このとき、更新されたスナップショットのデータベース150-1Mは、スナップショットのデータベース150-1に含まれる管理対象のデータのうち、一部(いくつかの行のデータ)が更新(変更)されたデータベースとなっている。ここで、更新されたスナップショットのデータベース150-1Mは、ストレージ管理系ノード1のRAM13や記憶部18の一領域に記憶されていてよい。即ち、更新されたスナップショットのデータベース150-1Mは、記憶部18に記憶されたデータベース150と異なる領域に記憶されてよい。
 ここで、上述した更新要求整合性管理部322-1が管理する更新処理がなされている間に、トランザクション管理系ノード3-2の更新要求整合性管理部322-2は、他の更新処理を管理(処理)している。即ち、更新要求整合性管理部322-2は、ストレージ管理系ノード1に、スナップショットのデータベース150-2Sや更新されたスナップショットのデータベース150-2Mを生成や管理させている。
 更に言えば、トランザクション管理系ノード3-1の更新要求整合性管理部322-1が上述の更新処理を行っている間に、トランザクション管理系ノード3-2の更新要求整合性管理部322-2が、更新処理を行い、完了している可能性がある。そこで、トランザクション管理系ノード3-1の更新要求整合性管理部322-1は、データベース150のうち、更新処理により書き換えるべき管理対象のデータが、他の更新処理により更新されていないかを、ストレージ管理系ノード1に管理させることができる。
 この時、データベース150に含まれるデータのうち、上述の更新処理により更新された一部のデータが、既に更新されていない場合、当該一部のデータのみを、データベース150に書き戻す。これにより、更新要求整合性管理部322-1は、スナップショットのデータベース150-1Sと更新されたスナップショットのデータベース150-1Mとの間で差異のある管理対象のデータを、ストレージ管理系ノード1のデータベース150に反映させる。
 また、データベース150に含まれるデータのうち、上述の更新処理により更新された一部のデータが、既に更新されている場合、更新処理の結果やスナップショットのデータベース150-1M等は破棄される。これにより、更新処理の内容は、データベース150に反映されない。この場合、更新要求整合性管理部322-1は、更新処理をスナップショットの生成からやり直してもよいし、クライアント系ノード2に更新処理が失敗した旨を通知してもよい。
 これにより、更新要求整合性管理部322は、ストレージ管理系ノード1に格納されたデータベース150の整合性が維持されるか否かを検証し、整合性が維持される場合のみ、実際にデータベース150に更新処理を反映することができる。即ち、データベース150の整合性が維持される。
 このように同時並行的に更新処理が管理される場合、先に反映(コミット)された更新処理の内容は、後に反映(コミット)されようとする更新処理の内容に優先する。更には、先に反映された更新処理の内容により変更されていない場合にのみ、後に反映されようとする更新処理の内容が反映される。このように、「先に反映(コミット)された更新処理の内容は、後に反映(コミット)されようとする更新処理の内容に優先する」といったルールを、「First-Committer-Wins Rule」と呼ぶ。
 なお、ストレージ管理系ノード1やトランザクション管理系ノード3は、上述の「First-Committer-Wins Rule」に則って、更新処理を管理すれば足りる。即ち、ストレージ管理系ノード1は、必ずしも、上述のようにスナップショットのデータベース150-1Sや、更新されたスナップショットのデータベース150-1Mを生成や管理をする必要はない。つまり、ストレージ管理系ノード1は、スナップショットのデータベース150-1Sや、更新されたスナップショットのデータベース150-1Mを生成しなくてもよい。
 例えば、ストレージ管理系ノード1は、スナップショットのデータベース150-1Sと更新されたスナップショットのデータベース150-1Mを生成しない。この場合、ストレージ管理系ノード1は、更新処理によって差異が生じる管理対象のデータについて、当該差異等を管理する。
 更に言えば、上述の差異等は、ストレージ管理系ノード1ではなく、トランザクション管理系ノード3-1,3-2により管理されてよい。この場合、トランザクション管理系ノード3-1,3-2は、協働して、更新処理による差異を管理する。また、上述の例における、更新要求整合性管理部322-1により管理される更新処理と、更新要求整合性管理部322-2により管理される更新処理とが存在する場合、当該差異について先に処理された更新処理を優先する。
 即ち、トランザクション管理系ノード群G3は、複数の更新処理を、更新処理に係る差異として管理したうえで、「First-Committer-Wins Rule」に則って、ストレージ管理系ノード1のデータベース150に反映(コミット)する。
 上述のように、整合性の管理にSIの方式を採用する場合、更新要求情報は、以下の情報を含んでいてよい。具体的には、更新要求情報は、「トランザクション開始時刻」、「行毎の更新情報」を含んでいてよい。
 ここで、「トランザクション開始時刻」は、例えば、クライアント系ノード2から更新要求が送信されてきた時刻であってよい。また例えば、クライアント系ノード2が更新要求の管理に係る検索処理をストレージ管理系ノード1に実行させた場合、「トランザクション管理時刻」は、当該検索処理における検索対象論理時刻であってよい。更新要求整合性管理部322は、先に送信されてきた更新要求を優先する「First-Committer-Wins Rule」を適用して、更新処理を管理する。
 また、「行毎の更新情報」は、例えば、以下の内容を含んでよい。更新の内容として、新規行(管理対象のデータ)の挿入の場合、「行毎の更新情報」は、「行番号情報と、具体的な管理対象のデータの内容(例えば図5や図6におけるA,B,Cの具体的な値)」を含む。また、既存行(既にデータベース150に蓄積された管理対象のデータ)を削除する場合、「削除を行う管理対象のデータの行番号情報」を含む。
 例えば、第1実施形態の説明において、管理対象のデータは、「行」毎に管理されるものとしたが、特にこれに限定されない。即ち、管理対象のデータは、所定単位毎に管理されれば足りる。
 具体的には例えば、管理対象のデータは、「複数行」毎に管理されてもよく、第4実施形態の説明のように「ファイル」毎に管理されてもよい。
 また例えば、第1実施形態の説明において、データベース管理システムは、管理対象のデータが有効になった時間帯の少なくとも一部を特定可能な情報を、論理時刻情報として取得するものとしたが、特にこれに限定されない。即ち、例えば、論理時刻は、データベースの管理に使われ、一方向に変化する識別子であれば足りる。
 具体的には例えば、データベースの更新毎に付与された整数値でもよく、「年」「月」「日」「時」「分」「秒」等の組み合わせで示される、日時の形態の情報でもよい。
 また例えば、第1実施形態の説明において、論理時刻情報取得部112は、管理対象のデータが有効になった論理時刻を挿入論理時刻xt_ins、管理対象のデータが無効になった論理時刻を削除論理時刻xt_delとして取得したが、特にこれに限定されない。即ち、管理対象のデータが有効になった時間帯の少なくとも一部を特定可能な情報であれば足りる。
 具体的には例えば、挿入論理時刻xt_ins、及び削除論理時刻xt_delに挟まれた論理時刻の時間帯を示しうる情報を取得すれば足りる。
 また例えば、第1実施形態乃至第4実施形態の説明において、管理対象のデータが有効であったか否かを判定する式は、式(1)及び式(2)であるとしたが、特にこれに限定されない。
 具体的には例えば、式(1)及び式(2)に代えて、以下の式(3)及び式(4)を満たすか否かを確認することで、その行の管理対象のデータが有効であったか否かを判定することができる。
 st ≧ xt_ins ・・・ (3)
 st < xt_del ・・・ (4)
 なお、式(2)を採用し、式(1)に代えて式(3)を採用してもよい。また、式(1)を採用し、式(2)に代えて式(4)を採用してもよい。即ち、式(1)及び式(3)のうちいずれか一方を採用し、式(2)及び式(4)のいずれか一方を採用すれば足りる。
 また例えば、論理時刻として「年」「月」「日」「時」「分」「秒」等の組み合わせで示される日時の形態を採用する場合、ノード間の時刻計測の誤差を考慮した管理対象のデータが有効であったか否かを判定する式を採用することができる。具体的には例えば、所定の正の時間幅を表す定数εを用いて、以下の式(5)及び式(6)を満たすか否かを確認することで、その行の管理対象のデータが有効であったか否かを判定することができる。
 st > xt_ins+ε ・・・ (5)
 st ≦ xt_del+ε ・・・ (6)
 ただし、上述の式(5)及び式(6)は、あくまで例示である。即ち、式(5)及び式(6)に限定されない。検索対象特定部131は、ノード間の時刻計測の誤差を考慮して、管理対象のデータが有効であったか否かを判定することができれば足りる。
 また例えば、第1実施形態の説明において、行番号情報取得部113は、管理対象のデータが属する行番号を取得するものとしたが、特にこれに限定されない。即ち、管理対象のデータが属する前記所定単位を特定可能な情報であれば足りる。
 具体的には例えば、管理対象のデータが複数行毎に管理されている場合、複数行の何番目であるかの情報であればよく、管理対象のデータがファイル毎に管理されている場合、ファイル名であってよい。
 また例えば、第1実施形態の説明において、対象データ管理部114は、データベース150Aのスキーマとして、挿入論理時刻xt_ins、及び削除論理時刻xt_delを管理するものとしたが、特にこれに限定されない。即ち、管理対象のデータが有効になった時間帯の少なくとも一部を特定可能な情報と、管理対象のデータが属する前記所定単位を特定可能な情報と、管理対象のデータとを対応づけて管理できれば足る。
 具体的には例えば、第2実施形態乃至第4実施形態に示したように、対応づけて管理してよい。
 また例えば、第1実施形態の説明において、対象データ管理部114は、管理対象のデータが未だ無効になっていない旨を示す情報として、削除論理時刻xt_delが「∞」の値を採用したが、特にこれに限定されない。
 具体的には例えば、対象データ管理部114は、任意に設定した整数値を未だ無効になっていない旨を示す情報として採用してよい。更に言えば、未だ無効になっていない旨を示す情報を示す値を数値として管理する場合、未だ無効になっていない旨を示す情報は、大きな値が望ましい。これにより、検索対象論理時刻stと削除論理時刻xt_delとの大小関係を用いて、検索対象の候補のデータを特定することができる。
 また例えば、第2実施形態の説明において、対象データ管理部144は、管理対象のデータが最新の論理時刻において有効か否かに基づいて、管理対象のデータを第1のデータベースに蓄積するか、第2のデータベースに蓄積するかを異ならせるものとしたが、特にこれに限定されない。
 具体的には例えば、対象データ管理部114は、任意の数のデータベースに管理対象のデータを蓄積して管理してよい。例えば、対象データ管理部114は、最新の論理時刻において無効な管理対象のデータを、論理時刻の区分毎に複数のデータベースに蓄積してもよい。即ち例えば、所定の論理時刻よりも前の論理時刻において無効となった管理対象のデータは、第3のデータベースに蓄積して管理されてもよい。この場合、検索処理において、検索対象の候補のデータが第1のデータベース及び第2のデータベースにも含まれない場合に、第3のデータベースから検索対象の候補のデータが特定されてよい。これにより、検索処理の対象となりづらい管理対象のデータを別のデータベースとして管理し、検索処理等の処理に係るコストを削減することができる。
 第1実施形態及び第2実施形態の説明における対象データ管理部114を採用することで、以下のようなデータを管理する効率が向上する可能性がある。
 具体的には例えば、オンラインバンキングシステムや、航空券の予約システム等、大量の検索と更新が入り混じっており、整合性が必要とされる(絶対に間違いが許されない)システムを管理する効率が向上する可能性がある。
 第3実施形態の説明における対象データ管理部114を採用することで、以下のようなデータを管理する効率が向上する可能性がある。
 具体的には例えば、更新の大部分はデータの新規追加がほとんどであるが、稀に変更や削除が行われるようなシステムを管理する効率が向上する可能性がある。即ち例えば、IoTシステムにおける大量のセンサーから送られてくるデータの蓄積を行うシステムや、SNS(Social Networking System)のデータの蓄積を行うシステムにおいて、効率が向上する可能性がある。即ち例えば、大量のセンサーから送られてくるデータやSNSのデータは、大量の文字情報、画像、動画等であって、稀に変更や削除が行われる。
 第4実施形態の説明における対象データ管理部114を採用することで、以下のようなデータを管理する効率が向上する可能性がある。
 例えば、データベース管理システムを介さずより高速に処理を行いたい場合や、各種リソースの量の制限によりデータベース管理システムを動かしにくいシステム(例えば、組込みシステム)をストレージ管理系に利用したい場合等に、データを管理する効率が向上する可能性がある。
 また、上述したように、データベース管理システムは、ストレージ管理系ノード群G1と、クライアント系ノード群G2と、トランザクション管理系ノード群G3から構成され、論理時刻を用いてデータベースを管理することで、以下のような効果を奏する。
 具体的には例えば、トランザクション管理(更新処理の管理)や、当該管理にSIの方式を採用することで、整合性を保ったままデータの複製を複数持つことできるため、可用性を高めることができる。即ち、複数のノードのうち何れかのノードの一部が壊れた場合において、データが失われない。換言すれば、データベース管理システムは、複数のノードのうち何れかのノードの一部が壊れた場合においても、正常に稼働を続けることができる。即ち、データベース管理システムは、論理時刻を用いてデータベースを管理することでトランザクション管理を行う。これにより、複数のストレージ管理系ノード1の間でのデータベースの整合性を保つことができる。
 また例えば、上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。
 換言すると、図4の機能的構成は例示に過ぎず、特に限定されない。
 即ち、上述した一連の処理を全体として実行できる機能が情報処理システムに備えられていれば足り、この機能を実現するためにどのような機能ブロックを用いるのかは特に図4の例に限定されない。また、機能ブロックの存在場所も、図4に特に限定されず、任意でよい。例えば、ストレージ管理系ノード1の機能ブロックをクライアント系ノード2等に移譲させてもよい。逆にクライアント系ノード2の機能ブロックをストレージ管理系ノード1等に移譲させてもよい。
 また、1つの機能ブロックは、ハードウェア単体で構成してもよいし、ソフトウェア単体で構成してもよいし、それらの組み合わせで構成してもよい。
 一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、コンピュータ等にネットワークや記録媒体からインストールされる。
 コンピュータは、専用のハードウェアに組み込まれているコンピュータであってもよい。
 また、コンピュータは、各種のプログラムをインストールすることで、各種の機能を実行することが可能なコンピュータ、例えばサーバの他汎用のスマートフォンやパーソナルコンピュータであってもよい。
 このようなプログラムを含む記録媒体は、ユーザ等にプログラムを提供するために装置本体とは別に配布される図示せぬリムーバブルメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でユーザ等に提供される記録媒体等で構成される。
 なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的或いは個別に実行される処理をも含むものである。
 また、本明細書において、システムの用語は、複数の装置や複数の手段等より構成される全体的な装置を意味するものとする。
 以上まとめると、本発明が適用される情報処理システムは、次のような構成を取れば足り、各種各様な実施形態を取ることができる。
 即ち、本発明が適用される情報処理システム(例えば、図4のストレージ管理系ノード1)は、
 データを所定単位(例えば、図5(B)の「行」)毎に管理する情報処理システムであって、
 管理対象のデータ(例えば、図5(B)の「a3」、「b3」、「c3」)が有効になった時間帯の少なくとも一部を特定可能な第1情報(例えば、「論理時刻xt」や「その幅」であって、図6の「xt_ins」や「xt_del」であり、管理対象のデータが図6の「a3」、「b3」、「c3」ならば「10」や「15」)を取得する第1取得手段(例えば、図4の論理時刻情報取得部112)と、
 前記管理対象のデータが属する前記所定単位を特定可能な第2情報(例えば、図5や図6の「tid」)を取得する第2取得手段(例えば、図4の行番号情報取得部113)と、
 前記第1情報と、前記第2情報と、前記管理対象のデータとを対応付けて管理する(例えば図6のデータベース150Aのように管理する)管理手段(例えば、図4の対象データ管理部114)と、
 を備える。
 これにより、情報処理システムは、第1情報や第2情報に基づいて、管理対象のデータを検索することが可能となる。また、情報処理システムは、第1情報に基づいて管理対象のデータを検索ができることで、分散されたデータベース管理システムにおけるスケーラビリティを向上させることができる。即ち、このような情報処理システムは、所定の過去の時刻のデータを取得する際の処理コストを低減し、且つ、整合性を保ったまま、複数の情報処理システムを活用してデータベースに対する処理能力を向上させることができる。
 また、前記管理手段は、
  前記管理対象のデータが有効になった時点を特定可能な第1の1情報(例えば、図6の「xt_ins」の値)と、
  前記管理対象のデータが無効になった時点を特定可能な第1の2情報(例えば、図6の「xt_del」の値)と、
 を含む情報を前記第1情報として、
 前記第2情報と、前記管理対象のデータとに対応付けて管理することができる。
 これにより、このような情報処理システムは、第1情報により示される範囲が、管理対象のデータが有効になった時点と無効になった時点とに対応付けられて管理されることができる。
 また、前記第1の2情報は、前記管理対象のデータが未だ無効になっていない旨を示す情報(例えば、管理対象のデータが図6の「a1」ならば「xt_del=∞」の値)を含む。
 これにより、第1の2情報に基づき、管理対象のデータが未だ無効になっていないことを特定することができる。
 また、前記管理手段は、
  管理対象の1以上の前記データのうち、有効な1以上のデータを第1データ群(例えば図8(A)のデータベース150B―1で管理されるデータ群)として、無効な1以上のデータを第2データ群(例えば図8(B)のデータベース150B―2で管理されるデータ群)として夫々管理し、
  前記第1データ群に含まれる管理対象のデータついては、
   前記管理対象のデータが有効になった時点を特定可能な第1の1情報(例えば、図8(A)の「xt_ins」の値)を前記第1情報として、
  前記第2情報と、前記管理対象のデータとを対応付けて管理し、
  前記第2データ群に含まれる管理対象のデータついては、
   前記第1の1情報(例えば、図8(B)の「xt_ins」の値)と、
   前記管理対象のデータが無効になった時点を特定可能な第1の2情報(例えば、図8(B)の「xt_del」の値)と、
  を含む情報を前記第1情報として、
  前記第2情報と、前記管理対象のデータとを対応付けて管理することができる。
 これにより、情報処理システムは、検索処理において、まず、第1データ群から検索対象の候補のデータを特定することができる。次に、情報処理システムは、必要に応じて、第2データ群から更に検索対象の候補のデータを特定することができる。そして、第1データ群から特定した検索対象の候補のデータと、第2データ群から特定した検索対象の候補のデータとの和集合を、総合的な検索対象の候補のデータとして特定する。第2データ群から検索対象の候補を特定する必要がない場合、情報処理システムは、第2データ群から検索対象の候補のデータを特定する処理を行う必要がない。即ち、このような情報処理システムは、検索処理に係る計算資源を節約することができる。
 また、前記管理手段は、
  前記第2情報(例えば、図11の「tid=1001」のような「Key」)と、前記管理対象のデータ(例えば、図11の「value=ABCDEFG」)及び前記第1情報(例えば、図11の「xt_ins=7」や「xt_del=∞」)を含む情報(例えば、管理対象のデータと論理時刻のデータを含む「Value」)とを対応付けて(例えば、図11のKVS形式のデータベース150Cのように)管理することができる。
 これにより、情報処理システムは、1つの情報(例えば、第2情報)と対応付けられた他の情報(例えば、管理対象のデータ及び前記第1情報を含む情報)を管理するデータベース管理システムを用いて、第1情報、第2情報、及び管理対象のデータを管理することができる。
 ここで、1つの情報(例えば、第2情報)と対応付けられた他の情報を管理するデータベース管理システムは、通常、他のデータベース管理システム(例えば、RDBMSにより管理されるリレーショナル形式のデータベース)と比較して性能が高い。即ち、情報処理システムは、検索処理の性能を向上させることができる。
 また、前記管理対象のデータは、前記第1情報(例えば、図6の「xt_ins」や「xt_del」に相当するものであって、管理対象のデータが図14の「1234567890」ならば「10」や「15」)及び前記第2情報(例えば、図6の「tid」に相当するものであって、管理対象のデータが図14の「1234567890」ならば「baz」)を含むファイル名(例えば、管理対象のデータが図14の「1234567890」ならば「baz(10,15)」)のファイルとして所定の媒体(例えば、図4の記憶部18)に記憶されており、
 前記管理手段は、前記ファイル名を管理することで、前記第1情報と、前記第2情報と、前記管理対象のデータとを対応付けて管理(例えば、記憶部18に記憶された、図14に示すファイルの一覧のように管理)することができる。
 これにより、情報処理システムは、任意のファイル形式のファイルを、管理対象のデータとして、第1情報、及び第2情報と対応付けて管理することができる。これにより例えば、情報処理システムは、特定された検索対象の候補のデータとして、ファイルをクライアントに提供することができる。
 また例えば、第1情報を、データベース管理システムにおけるスキーマとして管理せず、単にファイルのファイル名として管理することができる。即ち、通常データベースにおいて処理するSQL等による処理が不要となり、検索処理における計算資源の消費を削減することができる。
 また、前記管理対象のデータが有効であった前記時間帯のうち、所定の時刻を特定可能な第3情報(例えば、明細書で言う「検索対象論理時刻st」)を取得する第3取得手段と、
 前記管理手段により管理される前記第1情報(図6のデータベース150Aの「xt_ins」、「xt_del」)、及び前記第3情報に基づき、前記第3情報により特定される時刻に有効であった前記管理対象のデータ(例えば、「検索対象論理時刻st」が「13」であった場合、図6のデータベース150Aの「tid」が「1001」の行、「1002」であって上の行、及び「1003」の行のデータ)を、検索対象の候補のデータとして特定する特定手段と、
 前記特定手段により特定された前記検索対象の候補のデータ(例えば、図6のデータベース150Aの「tid」が「1001」の行、「1002」であって上の行、及び「1003」の行のデータを抽出した図5(C)のデータベース150-13)から検索する検索手段と、を備える。
 これにより、管理対象のデータを、単に第1情報、及び第2情報と対応付けて管理するのみならず、任意の時点における管理対象のデータから検索対象の候補のデータを特定して、検索することができる。
 また、第1情報処理システム(例えば、図4のストレージ管理系ノード1)により管理対象のデータが所定単位毎に管理されている場合における、当該管理対象のデータの更新を管理する第2情報処理システム(例えば、図4のトランザクション管理系ノード3)として機能する情報処理システムであって、
  前記管理対象のデータの更新の内容(例えば、図5(B)の「tid=1002」のB列を「b2’」とする更新の内容)を特定可能な情報を、更新要求情報として取得する取得手段(例えば、図4の更新要求情報取得部321)と、
  前記更新要求情報に基づき、前記管理対象のデータが管理される前記第1情報処理システムに対して当該更新要求情報を送信することで、当該更新の要求(送信すべきか、送信した結果が処理されたか)を管理する管理手段(例えば、図4の更新要求整合性管理部322)と、
 を備え、
 前記第1情報処理システムは、
  前記第2情報処理システムから送信されてくる前記更新要求情報に基づき、更新をされた前記管理対象のデータを更新後管理対象のデータとして生成し、当該更新後管理対象のデータを有効化し、
  前記更新後管理対象のデータが有効になった時間帯の少なくとも一部を特定可能な有効時間帯情報を取得し、
  前記更新後管理対象のデータが属する前記所定単位を特定可能な所定単位特定情報を取得し、
  前記有効時間帯情報と、前記所定単位特定情報と、前記更新後管理対象のデータとを対応付けて管理することができる。
 これにより、第2情報処理システムは、データベースの整合性が崩れるか否かを判定して、整合性が維持されることが確実である場合にのみ、第1情報処理装置に更新の要求を送信する。これにより、第1情報処理装置により管理されるデータベースは、更新処理に係る整合性が維持される。
 また、前記第2情報処理システムの前記管理手段は、
  先の時点に取得された更新要求情報により更新される管理対象のデータ(例えば、「更新要求整合性管理部322-2により管理される更新処理により更新される管理対象のデータ」)が後の時点に取得された他の更新要求情報により更新されるか否か(例えば、「更新要求整合性管理部322-1により管理される更新処理により更新されるか否か」)に基づき、前記管理対象のデータが管理される前記第1情報処理システムに対して当該他の更新要求情報(例えば、「更新要求整合性管理部322-1により管理される更新処理」)を送信するか否かを管理することができる。
 これにより、複数の第2情報処理システムの夫々により、同時に複数の更新の要求の夫々を処理した場合であっても、整合性が維持されることが確実である場合にのみ、第1情報処理装置に書き戻すことができる。即ち、第1情報処理装置により管理されるデータベースは、更新処理に係る整合性が維持される。
 また、第1情報処理装置により管理されるデータベースの整合性が維持されるからこそ、複数の第2情報処理システムの夫々により、同時に複数の更新の夫々の要求を処理することができる。
 即ち、第1情報処理システムと、複数の第2情報処理システムを含む様に、情報処理システムを構成すると、スケールアウトがされた環境において、第1情報処理装置により管理されるデータベースは、更新処理に係る整合性が維持される。即ち例えば、第1情報処理システム及び第2情報処理システムを含む情報処理システムは、複数の情報処理システムを活用することで、整合性を維持したまま、データベースに対する処理能力を向上させることができる。
 1・・・ストレージ管理系ノード、2・・・クライアント系ノード、3・・・トランザクション管理系ノード、11・・・CPU、18・・・記憶部、19・・・通信部、111・・・更新要求情報取得部、112・・・論理時刻情報取得部、113・・・行番号情報取得部、114・・・対象データ管理部、121・・・索対象論理情報取得部、122・・・検索内容情報取得部、123・・・検索管理部、124・・・検索結果提示部、131・・・検索対象特定部、132・・・検索部、150・・・データベース、212・・・CPU、221・・・更新要求管理部、222・・・検索要求管理部、312・・・CPU、321・・・更新要求情報取得部、322・・・更新要求整合性管理部

Claims (9)

  1.  データを所定単位毎に管理する情報処理システムであって、
     管理対象のデータが有効になった時間帯の少なくとも一部を特定可能な第1情報を取得する第1取得手段と、
     前記管理対象のデータが属する前記所定単位を特定可能な第2情報を取得する第2取得手段と、
     前記第1情報と、前記第2情報と、前記管理対象のデータとを対応付けて管理する管理手段と、
     を備える情報処理システム。
  2.  前記管理手段は、
      前記管理対象のデータが有効になった時点を特定可能な第1の1情報と、
      前記管理対象のデータが無効になった時点を特定可能な第1の2情報と、
     を含む情報を前記第1情報として、
     前記第2情報と、前記管理対象のデータとに対応付けて管理する、
     請求項1に記載の情報処理システム。
  3.  前記第1の2情報は、前記管理対象のデータが未だ無効になっていない旨を示す情報を含む、
     請求項2に記載の情報処理システム。
  4.  前記管理手段は、
      管理対象の1以上の前記データのうち、有効な1以上のデータを第1データ群として、無効な1以上のデータを第2データ群として夫々管理し、
      前記第1データ群に含まれる管理対象のデータついては、
       前記管理対象のデータが有効になった時点を特定可能な第1の1情報を前記第1情報として、
      前記第2情報と、前記管理対象のデータとを対応付けて管理し、
      前記第2データ群に含まれる管理対象のデータついては、
       前記第1の1情報と、
       前記管理対象のデータが無効になった時点を特定可能な第1の2情報と、
      を含む情報を前記第1情報として、
      前記第2情報と、前記管理対象のデータとを対応付けて管理する、
     請求項1に記載の情報処理システム。
  5.  前記管理手段は、
      前記第2情報と、前記管理対象のデータ及び前記第1情報を含む情報とを対応付けて管理する、
     請求項1に記載の情報処理システム。
  6.  前記管理対象のデータは、前記第1情報及び前記第2情報を含むファイル名のファイルとして所定の媒体に記憶されており、
     前記管理手段は、前記ファイル名を管理することで、前記第1情報と、前記第2情報と、前記管理対象のデータとを対応付けて管理する、
     請求項1に記載の情報処理システム。
  7.  前記管理対象のデータが有効であった前記時間帯のうち、所定の時刻を特定可能な第3情報を取得する第3取得手段と、
     前記管理手段により管理される前記第1情報、及び前記第3情報に基づき、前記第3情報により特定される時刻に有効であった前記管理対象のデータを、検索対象の候補のデータとして特定する特定手段と、
     前記特定手段により特定された前記検索対象の候補のデータから検索する検索手段と、
     をさらに備える、
     請求項1乃至6のうちいずれか1項に記載の情報処理システム。
  8.  第1情報処理システムにより管理対象のデータが所定単位毎に管理されている場合における、当該管理対象のデータの更新を管理する第2情報処理システムとして機能する情報処理システムであって、
      前記管理対象のデータの更新の内容を特定可能な情報を、更新要求情報として取得する取得手段と、
      前記更新要求情報に基づき、前記管理対象のデータが管理される前記第1情報処理システムに対して当該更新要求情報を送信することで、当該更新の要求を管理する管理手段と、
     を備え、
     前記第1情報処理システムは、
      前記第2情報処理システムから送信されてくる前記更新要求情報に基づき、更新をされた前記管理対象のデータを更新後管理対象のデータとして生成し、当該更新後管理対象のデータを有効化し、
      前記更新後管理対象のデータが有効になった時間帯の少なくとも一部を特定可能な有効時間帯情報を取得し、
      前記更新後管理対象のデータが属する前記所定単位を特定可能な所定単位特定情報を取得し、
      前記有効時間帯情報と、前記所定単位特定情報と、前記更新後管理対象のデータとを対応付けて管理する、
     情報処理システム。
  9.  前記第2情報処理システムの前記管理手段は、
      先の時点に取得された更新要求情報により更新される管理対象のデータが後の時点に取得された他の更新要求情報により更新されるか否かに基づき、前記管理対象のデータが管理される前記第1情報処理システムに対して当該他の更新要求情報を送信するか否かを管理する、
     請求項8に記載の情報処理システム。
PCT/JP2020/021032 2019-05-28 2020-05-28 情報処理システム WO2020241727A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019099392A JP7398066B2 (ja) 2019-05-28 2019-05-28 情報処理システム
JP2019-099392 2019-05-28

Publications (1)

Publication Number Publication Date
WO2020241727A1 true WO2020241727A1 (ja) 2020-12-03

Family

ID=73545970

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/021032 WO2020241727A1 (ja) 2019-05-28 2020-05-28 情報処理システム

Country Status (2)

Country Link
JP (1) JP7398066B2 (ja)
WO (1) WO2020241727A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001101053A (ja) * 1999-09-30 2001-04-13 Toshiba Corp トランザクション管理方法及びトランザクション管理装置
JP2011086241A (ja) * 2009-10-19 2011-04-28 Internatl Business Mach Corp <Ibm> データベースの複製を生成する装置及び方法
JP2016103115A (ja) * 2014-11-27 2016-06-02 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation データベースを管理するシステム及び方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001101053A (ja) * 1999-09-30 2001-04-13 Toshiba Corp トランザクション管理方法及びトランザクション管理装置
JP2011086241A (ja) * 2009-10-19 2011-04-28 Internatl Business Mach Corp <Ibm> データベースの複製を生成する装置及び方法
JP2016103115A (ja) * 2014-11-27 2016-06-02 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation データベースを管理するシステム及び方法

Also Published As

Publication number Publication date
JP2020194335A (ja) 2020-12-03
JP7398066B2 (ja) 2023-12-14

Similar Documents

Publication Publication Date Title
CN105630863B (zh) 用于多版本并发提交状态的事务控制块
US9798794B2 (en) Mechanism to run OLTP workload on in-memory database under memory pressure
US20180203888A1 (en) Multi-Version Concurrency Control Method in Database and Database System
US10417265B2 (en) High performance parallel indexing for forensics and electronic discovery
US11709821B2 (en) Tracking change data in a database
US9606921B2 (en) Granular creation and refresh of columnar data
US9639542B2 (en) Dynamic mapping of extensible datasets to relational database schemas
US9128972B2 (en) Multi-version concurrency control on in-memory snapshot store of oracle in-memory database
US9558257B2 (en) Method of synchronizing data between databases, and computer system and computer program for the same
US7444329B2 (en) Event driven transaction state management with single cache for persistent framework
EP2874077B1 (en) Stateless database cache
US10754854B2 (en) Consistent query of local indexes
US11487714B2 (en) Data replication in a data analysis system
US9576038B1 (en) Consistent query of local indexes
US20090228473A1 (en) Data storage for file updates
US7478112B2 (en) Method and apparatus for initializing data propagation execution for large database replication
CN109902130A (zh) 一种数据存储方法、数据查询方法和装置、存储介质
US9459969B1 (en) Method and system for enhanced backup database indexing
JP4380692B2 (ja) サマリーテーブルをリフレッシュするための装置、方法、及びプログラム
WO2020241727A1 (ja) 情報処理システム
JP2023546818A (ja) データベースシステムのトランザクション処理方法、装置、電子機器、及びコンピュータプログラム
KR20190129474A (ko) 데이터 검색 장치 및 방법
WO2011099082A1 (ja) データベース管理システム
US20180173805A1 (en) Application programming interface for detection and extraction of data changes
CN111444179B (zh) 数据处理方法、装置、存储介质及服务器

Legal Events

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

Ref document number: 20814880

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20814880

Country of ref document: EP

Kind code of ref document: A1