WO2014141594A1 - 計算機システム - Google Patents
計算機システム Download PDFInfo
- Publication number
- WO2014141594A1 WO2014141594A1 PCT/JP2014/000843 JP2014000843W WO2014141594A1 WO 2014141594 A1 WO2014141594 A1 WO 2014141594A1 JP 2014000843 W JP2014000843 W JP 2014000843W WO 2014141594 A1 WO2014141594 A1 WO 2014141594A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- index
- data
- incomplete
- query
- processing device
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2272—Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
Definitions
- the present invention relates to a computer system, an inquiry processing method, and a program for processing an inquiry from a client using an index.
- an index In a computer system having a database, an index (index) is created in order to speed up processing to stored data, and the index is updated in accordance with deletion, update, and addition of stored data.
- An index that supports all of the indexed data stored in the database is called a complete index.
- an index that does not have incompleteness in data structure but supports only a part of index target data is called an incomplete index.
- An incomplete index is difficult to obtain the same results as using a complete index because it supports a small amount of data, but there is no data structure incompleteness, so it should be used for queries. But processing does not break. For this reason, it is better to process a query quickly using an incomplete index than to have the query aborted uniformly or to wait a long time for the incomplete index to become a complete index. There are cases where there are benefits for clients. However, in the first related technique related to the present invention, there is no idea of processing a query using an incomplete index as it is.
- An object of the present invention is to provide a computer system that solves the above-described problem, that is, the problem that an incomplete index is not effectively used.
- a computer system provides: A database having a data portion for storing data and an index portion for storing an incomplete index of the data; A processing unit that receives a query from a client, processes the query using the incomplete index, and sends a response to the query to the client.
- An inquiry processing method is as follows.
- a program according to the third aspect of the present invention is: A processor connected to a database having a data part for storing data and an index part for storing an incomplete index of said data; Receiving a query from a client; Processing the query using the incomplete index; Sending a response to the inquiry to the client.
- the incomplete index can be effectively used.
- the computer system 100 includes a database 110 and a processing device 120.
- the type of the database 110 is arbitrary.
- the database 110 may be a key value store (KVS).
- the database 110 may be a relational database (RDB).
- the database 110 has a data part 111 and an index part 112.
- the data unit 111 has a function of storing data 1111.
- the index unit 112 has a function of storing an incomplete index 1121 of the data 1111.
- the incomplete index 1121 means an index that supports only index target data stored in the data part 111, although there is no incompleteness in the data structure.
- the processing device 120 has a function of receiving a query from the client 130, a function of processing the query using an incomplete index 1121, and a function of transmitting a response to the query to the client 130.
- the processing device 120 generally has a processor, a memory, and a communication device, and executes a predetermined process by executing a program stored in the memory.
- FIG. 2 is a flowchart showing a procedure of inquiry processing in the present embodiment. The operation of this embodiment will be described below with reference to FIG.
- the processing device 120 of the computer system 100 first receives an inquiry transmitted from the client 130 through a network (not shown) (step S101). Next, the processing device 120 processes the received inquiry by accessing the data 1111 of the data part 111 using the incomplete index 1121 stored in the index part 112 (step S102). Then, the processing device 120 transmits the processing result as a response to the inquiry to the client 130 (step S103).
- the incomplete index can be effectively used.
- the present embodiment is based on the above-described configuration and operation, and the following additional changes are possible.
- the processing device 120 may have a function of determining the type of inquiry and not performing the above-described inquiry processing using the incomplete index 1121 when the determined type is not a predetermined type.
- the processing device 120 determines the type of the query, and processes the query using the incomplete index 1121 only when the determined type is a predetermined type, and otherwise performs the query. It may be impossible to execute.
- the predetermined type may be, for example, a query that returns one of the aggregation functions MAX (maximum value), MIN (minimum value), and AVG (average value).
- the reason for this is that the query processing for viewing the statistical tendency such as the maximum value, the minimum value, and the average value uses a part of the data 1111 without using all the data 1111 stored in the data part 111. This is because the result can be obtained with a certain degree of accuracy.
- the processing device 120 analyzes the user-specified information included in the query, and if the incomplete index 1121 is not allowed in the user-specified information, the processing of the query using the incomplete index 1121 is performed. May have no function. Alternatively, the processing device 120 analyzes the user-specified information included in the query, and processes the query using the incomplete index 1121 only when the use of the incomplete index 1121 is allowed in the user-specified information. Otherwise, the above query may not be executed.
- the processing device 120 has a function of calculating the degree of completion of the incomplete index 1121 and, when the calculated degree of completion does not exceed the threshold, the processing of the inquiry using the incomplete index 1121 is not performed. It may be. Alternatively, the processing device 120 calculates the degree of completion of the incomplete index 1121, and performs the above query processing using the incomplete index 1121 only when the calculated degree of completion exceeds the threshold. The above query may not be executed except for.
- the processing device 120 determines the degree of completion of the incomplete index 1121, for example, the number of data 1111 registered in the incomplete index 1121 or the incomplete index for the number of data 1111 stored in the data section 111. The ratio of the number of data 1111 registered in 1121 may be used.
- the processing device 120 sets the index 1121 in which all data is incomplete among the plurality of sub-data units.
- the number of sub-data parts registered, or the ratio of the number of sub-data parts registered in the index 1121 in which all data is incomplete with respect to the total number of sub-data parts may be used.
- the processing device 120 calculates the degree of completion of the incomplete index 1121 and the cost required to access the data unit 111 using the incomplete index 1121, and based on the calculated degree of completion and cost.
- the index value for selecting the incomplete index 1121 is calculated, and when the calculated index value is not superior to the threshold value, the above query processing using the incomplete index 1121 is not performed. Good.
- the processing device 120 may process the query using the incomplete index 1121 only when the index value calculated as described above is superior to the threshold value, and otherwise may not execute the query. .
- the processing device 120 may use the height of the tree structure as the cost when the incomplete index 1121 is an index having a tree structure.
- the processing device 120 determines the degree of completion of the old index and the old index.
- the cost required to access and use the data unit 111 is calculated, an index value for selecting the old index is calculated based on the calculated completion degree and cost, and the calculated index value may be used as the threshold value. .
- the processing device 120 uses the incomplete index 1121 instead of disabling the query.
- the query may be processed to calculate a prediction interval or a confidence interval based on a statistical method and include it in the response.
- the confidence level may be arbitrary, such as 90% and 95%. For example, assuming that the confidence level is 90% and the confidence interval is 20 to 30, the processing apparatus returns a response that “the confidence level is 90% and the query result is between 20 and 30”, for example.
- the computer system 200 includes a database 210 and a processing device 220.
- the type of the database 210 is arbitrary.
- the database 210 may be a key value store (KVS).
- the database 210 may be a relational database (RDB).
- the database 210 includes a data part 211, an index part 212, and index information 213.
- the data unit 211 has a function of storing data 2111.
- the index unit 212 has a function of storing an old index 2121 that is a complete index of the data 2111 and a new index 2122 that is an incomplete index.
- the new index 2122 means an index in which there is no incomplete data structure, but only a part of the index target data stored in the data part 211 is registered.
- the new index 2122 is an index that is being rebuilt for use in place of the old index 2121 with reduced access efficiency.
- the index information 213 represents management information regarding the old index 2121 and the new index 2122. In the index information 213, which column of which table of the data 2111 the old index 2121 and the new index 2122 are indexed, whether the new index 2122 is in an incomplete state, or the old index 2121 is still valid. It has information such as.
- the processing device 220 receives a query from the client 230, determines whether or not to use the new index 2122 for processing the received query, and if it determines to use the new index 2122, the new index 2122 Is used to process the query, and if it is decided not to use the new index 2122, the old index 2121 is used to process the query, and a response to the query is sent to the client 230.
- the processing device 220 generally includes a processor, a memory, and a communication device, and executes a predetermined process by executing a program stored in the memory.
- FIG. 4 is a flowchart showing a procedure of inquiry processing in the present embodiment. The operation of this embodiment will be described below with reference to FIG.
- the processing device 220 of the computer system 200 first receives an inquiry transmitted from the client 230 through a network (not shown) (step S201). Next, the processing device 220 refers to the index information 213 to determine whether or not the new index 2122 exists in the index that can be used for processing the received query (step S202). If the new index 2122 does not exist, the processing device 220 processes the received query by accessing the data 2111 of the data part 211 using the old index 2121 stored in the index part 212 (step S203). ). Then, the processing device 220 transmits the processing result to the client 230 as a response to the inquiry (step S207).
- the processing device 220 determines whether the new index 2122 can be used (step S204). For example, the processing device 220 can use the new index 2122 if any one of the following conditions 1 to 4 is satisfied, and cannot use it otherwise. Alternatively, the new index 2122 can be used if any two of the following conditions 1 to 4 are satisfied, and cannot be used otherwise. Alternatively, the new index 2122 can be used if any three of the following conditions 1 to 4 are satisfied, and cannot be used otherwise. Alternatively, if all of the following conditions 1 to 4 are satisfied, the new index 2122 is usable, and otherwise it is not usable.
- the inquiry type is a predetermined type.
- the predetermined type may be, for example, an aggregation function MAX (maximum value), MIN (minimum value), and AVG (average value).
- Such a query shows a tendency if column c1 is assumed to be a classification name, and there is a high possibility that an accurate result is not necessarily required.
- the new index 2122 can be effectively used only for queries that do not have a large difference in query results from when the old index 2121 is used.
- Condition 2 The user-specified information included in the query is permitted to use the new index 2122 which is an incomplete index. By determining whether or not the new index 2122 can be used in consideration of this condition 2, it is possible to entrust the user with the determination of whether or not the new index 2122 can be used.
- Condition 3 The degree of completion of the new index 2122 exceeds the threshold.
- the method for calculating the degree of completion of the new index 2122 may be the same as the method for calculating the degree of completion of the incomplete index 1121 in the first embodiment. By determining whether or not the new index 2122 can be used in consideration of the condition 3, it is possible to prevent the use of the new index 2122 having a very low degree of completion immediately after the start of reconstruction.
- the index value for selecting the new index 2122 calculated based on the degree of completion of the new index 2122 and the cost required to access the data part 211 using the new index 2122 is superior to the threshold value.
- the cost calculation method may be the same as the cost calculation method for the incomplete index 1121 in the first embodiment.
- an index value calculated for the old index 2121 by the same method as the new index 2122 may be used as the threshold value.
- step S205 when it is determined that the new index 2122 cannot be used (NO in step S205), the processing device 220 processes the query using the old index 2121 (step S203), and sends the processing result to the client 230 as a response to the query. Transmit (step S207).
- the processing device 220 determines that the new index 2122 can be used (YES in step S205)
- the processing device 220 accesses the data 2111 of the data portion 211 using the new index 2122 stored in the index portion 212.
- the received inquiry is processed (step S206).
- the processing result is transmitted to the client 230 as a response to the inquiry (step S207).
- the incomplete index can be effectively used.
- the present embodiment it is possible to determine whether or not the incomplete new index 2122 being reconstructed can be used, and if it cannot be used, the inquiry from the client 230 can be processed using the old index 2121.
- KVS has attracted attention in order to store extremely large amounts of data.
- Voldemort http://www.project-voldemort.com/
- KVS emphasizes scalability and throughput, and is expected to expand the system by adding nodes as needed from the configuration consisting of a small number of nodes and handle a large number of simultaneous requests for huge amounts of data. Yes.
- KVS key-value pairs
- KV pairs key-value pairs
- the key is designated to acquire the value (get)
- the KV pair is stored (put)
- the key is designated to delete the KV pair (delete).
- the index reconstruction described later in this embodiment uses a scan of all stored data, but this is an operation with some restrictions.
- RDB relational database
- one index structure is composed of multiple KV pairs.
- KV pair is expressed as “ ⁇ key, value ⁇ ”
- each search target column value is expressed as a KV pair in KVS.
- FIG. 6 shows an example of an index having a B-tree structure (FIG. 6A) and an example of a hash index expressing the index by a KV pair (FIG. 6B).
- each node constituting the tree is a KV pair.
- KVS is used for storing extremely large amounts of data because of its scalability. In order to rebuild the index, it is essential to scan all the data to be indexed. If a large amount of target data is stored like KVS, it takes a long time to rebuild the index. It is.
- the purpose of this embodiment is to solve the problem that the index being reconstructed is not effectively utilized.
- the computer system 300 includes a KVS 310 and a processing device 320.
- the KVS 310 includes a data part 311, an index part 312, index information 313, and statistical information 314.
- the data part 311 has a function of storing data 3111.
- Data 3111 is user data created by the user.
- Each piece of data 3111 has a content and format such as data in the KV format shown in FIG. 5B, for example.
- the index unit 312 has a function of storing an old index 3121 that is a complete index of the data 3111 and a new index 3122 that is an incomplete index being reconstructed.
- the new index 3122 means an index in which all data to be indexed stored in the data part 311 is not registered and some data is registered, although there is no incompleteness in the data structure. To do.
- the index information 313 is a KV pair that manages valid index information.
- FIG. 8 shows a configuration example of the index information 313.
- a character string that indicates which column of which table the index managed by the index information 313 is recorded.
- a combination of a character string that identifies tabular data and a character string that identifies a name column is a key. Value.
- information identifying a valid index is recorded in the value of the KV pair constituting the index information 313.
- the statistical information 314 is data storing various information such as the number of records registered in the new index 3122.
- FIG. 9 is a configuration example of the statistical information 314.
- the statistical information 314 in this example includes a KV pair that records the number of records registered in the old index 3121 and a KV pair that records the number of records registered in the new index 3122.
- Information specifying the old index 3121 or the new index 3122 is recorded in the key of each KV pair.
- the number of data registered in the old index 3121 is recorded.
- the number of data registered in the new index 3122 is recorded in the value of the KV pair in the new index 3122.
- the KVS 310 is constructed by a plurality of nodes (computers), and the KV pairs stored in the KVS 310 are distributed and stored in the plurality of nodes. Therefore, the KV pair constituting the individual data 2111 in the data part 311 described above, the KV pair constituting the old index 3121 and the new index 3122 in the index part 312, the KV pair constituting the index information 313, and the statistical information 314 are stored. The constituting KV pairs are distributed and stored in a plurality of nodes.
- the processing device 320 includes a processor such as an MPU and peripheral circuits such as a memory and a communication device, and the processor reads and executes a program stored in the memory, whereby the hardware and the program cooperate with each other. And has a function of realizing various processing units.
- the main processing units realized by the processing device 320 include an inquiry processing unit 321, an index selection unit 322, and an index creation unit 323.
- the inquiry processing unit 321 has a function of receiving and processing an inquiry from the client 330 through a network or the like (not shown) and transmitting a response to the client 330.
- the query processing unit 321 In order to determine the index for processing the query, the query processing unit 321 notifies the received query to the index selection unit 322, and processes the query using the index determined by the index selection unit 322.
- the index selection unit 322 has a function of determining an index to be used for processing the query received from the query processing unit 321 and notifying the query processing unit 321 of the index. More specifically, first, the index selection unit 322 determines index candidates to be used for query processing with reference to the index information 313. Next, if the index candidate includes the new index 3122 whose status is being created, the index selection unit 322 causes the query type determination unit 3221, the user-specified information determination unit 3222, and the index value calculation comparison unit 3223. To determine whether or not the new index 3122 can be used. If it is determined that the new index 3122 can be used, the index selection unit 322 notifies the inquiry processing unit 321 of the new index 3122. On the other hand, if it is determined that the new index 3122 is unusable, the index selection unit 322 notifies the inquiry processing unit 321 of the old index 3121.
- the inquiry type determination unit 3221 determines the type of inquiry, and determines that the new index 3122 is unusable unless it is a predetermined type.
- the predetermined type is, for example, a query that returns an aggregation function MAX (maximum value), MIN (minimum value), and AVG (average value).
- the user-specified information determination unit 3222 analyzes the user-specified information included in the inquiry, and determines that the new index 3122 is unusable if it is not described in the user-specified information that the use of the new index 3122 is permitted.
- the index value calculation comparison unit 3223 calculates an index value related to the new index 3122, and determines that the new index 3122 is unusable if the calculated index value is not superior to the threshold value.
- the usage cost is a cost required to access the data in the data part 311 using an index.
- the height of the tree can be used as the usage cost.
- the degree of perfection of the index is the degree of completeness of the index and takes a value from 0 to 1 (the degree of completeness increases as the value approaches 1).
- the value of the KV pair value of the new index in the statistical information 314 shown in FIG. is used as the number of records to be indexed.
- ⁇ is a weighting coefficient between the use cost and the degree of completion of the index. If the degree of perfection of the index is more important than the usage cost, ⁇ is set to a larger value, and if not, it is set to a smaller value.
- the index creation unit 323 has a function of rebuilding an index. Hereinafter, the index reconstruction will be described.
- KVS is generally characterized by high throughput when many clients are connected at the same time, and clients must be able to access consistent information even during index reconstruction.
- the method is not realistic. Therefore, normally, as described above, one index structure is composed of a plurality of KV pairs. In other words, in the hash index, each search target column value is represented as a KV pair on the KVS. In the B-tree structure index, each node constituting the tree is a KV pair.
- KVS is constructed by a plurality of nodes (this node is not a node constituting the above-mentioned tree but a single computer or the like), and a KV pair stored therein is a KVS pair. From outside, they are managed in a distributed manner without being conscious of which node each is stored in. Therefore, atomic updates are limited to one KV pair. If each node of the index (this is a node of the tree) is simply made into a KV pair, a halfway tree that is being updated by another client while an operation is being performed on the index.
- This problem can be solved by taking the structure and procedure described in Non-Patent Document 2, for example, if the index structure is a B-tree.
- the index creation unit 323 performs the index reconstruction by a mechanism described in Non-Patent Document 2 so that no problem occurs even when the halfway new index 3122 being reconstructed is used. .
- the index creation unit 323 sequentially acquires (scans) the data 2111 from the data unit 311 of the KVS 310, and adds a reference to the data to the new index 3122 being reconstructed if the data is an index target.
- the statistical information 314 is updated.
- the update of the statistical information 314 is not necessarily performed in units of one item. For example, every ten records may be registered together in the index.
- the index creating unit 323 creates index information 313 as shown in FIG. 8A when creating a new index 3122 to be used in place of the old index 3121. To a state as shown in FIG. Further, when the creation of the new index 3122 is completed, the index creating unit 323 changes the index information 313 from the state shown in FIG. 8B to the state shown in FIG. 8C. As described above, since the index information 313 is one KV pair, the index information 313 is updated by a CAS (Compare And Swap) operation. Therefore, switching from the state of the old index alone to the state where the old index and the new index coexist, and the switching from the state where the old index and the new index coexist to the state of the new index only are performed atomically. Is possible.
- the inquiry processing unit 321 in the processing device 320 of the computer system 300 first receives an inquiry transmitted from the client 330 through a network (not shown) (step S301 in FIG. 10). Next, the query processing unit 321 notifies the index selection unit 322 of the received query in order to select an index to be used for processing of the received query (step S302).
- the index selection unit 322 analyzes the query received from the query processing unit 321 and refers to the index information 313 to confirm whether there is a valid index in the query (step S311 in FIG. 11).
- the index selection unit 322 notifies the inquiry processing unit 321 to that effect (step S312).
- KVS basically has only a method of acquiring data by specifying a key. For this reason, an index must be prepared if it is originally stored in the KVS using a column such as c2 as a key, or if another column is a key. Therefore, if there is no valid index, the query cannot be executed, as will be described later.
- the index selection unit 322 further refers to the acquired index information 313 to check whether there is a new index 3122 whose status is being created (step S313). If the new index 3122 does not exist, the index selection unit 322 notifies the inquiry processing unit 321 of the old index 3121 described in the index information 313 (step S314). If the new index 3122 exists, the index selection unit 322 determines whether or not to use the new index 3122 as follows (steps S315 to S318).
- the index selection unit 322 uses the inquiry type determination unit 3211 to determine the type of inquiry (step S315). If the query type does not return the aggregate function MAX (maximum value), MIN (minimum value), or AVG (average value), the index selection unit 322 determines that the new index 3122 is not used, and stores the index information 313 in the index information 313. The old index 3121 described is notified to the inquiry processing unit 321 (step S314).
- the index selection unit 322 uses the user-specified information determination unit 3222 to re-execute the query. It is determined whether or not user-specified information indicating that the incomplete new index 3122 being constructed may be used is described (step S316). If a predetermined character string or the like permitting use of the new index 3122 does not exist in the query, the index selection unit 322 determines that the new index 3122 is not used, and queries the old index 3121 described in the index information 313. The processing unit 321 is notified (step S314).
- the index selection unit 322 uses the index value calculation comparison unit 3223 to calculate the index value of the new index 3122 using the above-described equation 1 (step S317).
- the index value is compared with the index value calculated by the above-described formula 1 for the old index 3121 (step S318). If the index value of the new index 3122 is not lower than the index value of the old index 3121 (that is, if the index value of the new index 3122 is greater than or equal to the index value of the old index 3121), the index selection unit 322 Is determined not to be used, and the old index 3121 described in the index information 313 is notified to the query processing unit 321 (step S314).
- the new index 3122 is used.
- the new index 3122 described in the index information 313 is notified to the inquiry processing unit 321 (step S319).
- the inquiry processing unit 321 When the inquiry processing unit 321 receives information on the index to be used from the index selection unit 322 (step S303 in FIG. 10), the inquiry processing unit 321 analyzes the information. When the query processing unit 321 receives information indicating that there is no valid index to be used from the index selection unit 322, the query processing unit 321 determines that the currently received query cannot be executed, and transmits an error message or the like to the client 330 ( Steps S304 and S305).
- the query processing unit 321 receives information on the new index 3122 as an index to be used from the index selection unit 322, the query processing unit 321 processes the query using the new index 3122 (steps S304 and S306).
- the query processing unit 321 receives the information of the old index 3121 as the index to be used from the index selection unit 322, the query processing unit 321 processes the query using the old index 3121 (steps S304 and S307). Then, the inquiry processing unit 321 transmits the processing result to the client 330 as a response to the inquiry (step S308).
- the index creating unit 323 adds the information of the new index 3122 to the index information 313 that manages the index information of the old index 3121, and the index information 313 is changed from the state shown in FIG. The state is changed to that shown in (B) (step S321).
- the index creation unit 323 sequentially acquires the data 3111 one by one from the data unit 311 of the KVS 310, and executes the following processing (steps S322 to S326).
- Step S327 When the index creation unit 323 finishes the processing for all the data 3111 of the data unit 311 of the KVS 310, the index creation unit 323 updates the information of the index information 313, and the index information 313 is changed from the state shown in FIG. ) (Step S327).
- the above-described operation of the index creation unit 323 is based on the assumption that the KVS 310 has a function of scanning all internal data.
- these functions are implemented as management functions and do not guarantee that the data acquired during the scan is consistent. Accordingly, with respect to data acquired during the entire scan, some data may reflect an update at a certain time, while another data may not reflect an update at the same time. Therefore, in order to build a consistent index, it is necessary to quiesce (not update) the index creation target object. However, inquiries that do not involve updating are possible.
- the incomplete index can be effectively used.
- the present embodiment it is possible to determine whether or not the incomplete new index 3122 being reconstructed can be used, and if it cannot be used, the inquiry from the client 330 can be processed using the old index 3121.
- the state is changed from the state where the old index 3121 and the new index 3122 are used together to the state where only the new index 3122 is used. Can do.
- the inquiry processing unit 321, the index selection unit 322, and the index creation unit 323 do not have to exist on the same processing device 320, and may exist on different processing devices 320.
- the B-tree and the hash index are exemplified as the structures of the indexes 3121 and 3122, the indexes targeted by the present invention are not limited to these, and may have other structures.
- the data stored in the KVS 310 is not limited to the table format targeted by Microsharding, but can be generally expressed in a key-value format and its index.
- index completeness number of completed nodes / total number of nodes (3)
- the present invention can be used for a computer system that processes an inquiry from a client by using an index, particularly KVS.
- a part or all of the above embodiments can be described as in the following supplementary notes, but is not limited thereto.
- Appendix 1 A computer system, A database having a data portion for storing data and an index portion for storing an incomplete index of the data; A computer system comprising: a processing device that receives a query from a client, processes the query using the incomplete index, and sends a response to the query to the client.
- Appendix 2 The computer system according to supplementary note 1, wherein the processing device determines a type of the inquiry, and does not perform the processing of the inquiry using the incomplete index when the determined type is not a predetermined type.
- the processing device analyzes user-specified information included in the query, and when the use of the incomplete index is not permitted in the user-specified information, the processing of the query using the incomplete index is performed.
- the processing device calculates a degree of completion of the incomplete index, and when the calculated degree of completion does not exceed a threshold, the processing of the query using the incomplete index is not performed.
- the processing device calculates a degree of completion of the incomplete index and a cost required to access the data part using the incomplete index, and based on the calculated degree of completion and the cost Any one of appendices 1 to 3, wherein an index value for selecting the incomplete index is calculated, and the query processing using the incomplete index is not performed when the calculated index value is not superior to a threshold value
- the computer system described in Crab The index part stores an old index which is a complete index;
- the incomplete index is a new index being rebuilt for use in place of the old index; If the processing device does not process the query using the incomplete index, the processing device processes the query using the old index, and sends a response to the query to the client.
- a computer system according to any one of the above.
- the processing device sequentially refers to the data stored in the data section, updates the new index to a more complete index, and when the new index has been updated to a complete index, The computer system according to appendix 6, which invalidates the old index.
- the old index and the new index have the same identifier, The database includes index information for storing information on the old index and information on the new index in association with the identifier.
- [Appendix 9] The computer system according to any one of appendices 1 to 8, wherein the database is a key-value store.
- [Appendix 10] The computer system according to appendix 2, wherein the predetermined type is any one of an aggregation function MAX (maximum value), MIN (minimum value), and AVG (average value).
- the processing device uses the number of the data registered in the incomplete index or the incomplete index for the number of data stored in the data section.
- the processing device In the calculation of the degree of completion of the incomplete index, the processing device, when the data part is composed of a plurality of sub data parts, of the plurality of sub data parts, all data is the incomplete index.
- Computer system. [Appendix 13] The computer system according to appendix 5, wherein the processor uses the height of the tree structure when the incomplete index is an index having a tree structure in calculating the cost.
- the processing device uses the degree of completion of the old index and the old index when the incomplete index is a new index being rebuilt for use instead of the old index stored in the index section. And calculating a cost required to access the data part, calculating an index value for selecting the old index based on the calculated degree of completion and the cost, and calculating the calculated index value as the threshold value
- the computer system according to appendix 5.
- a query processing method executed by a computer system having a database having a data part for storing data and an index part for storing an incomplete index of the data, and a processing device, A query processing method in which the processing device receives a query from a client, processes the query using the incomplete index, and sends a response to the query to the client.
- the processing device calculates a degree of completion of the incomplete index and a cost required to access the data part using the incomplete index, and based on the calculated degree of completion and the cost Any one of appendices 15 to 17, wherein an index value for selecting the incomplete index is calculated, and the query processing using the incomplete index is not performed when the calculated index value is not superior to a threshold value
- the index part stores an old index which is a complete index;
- the incomplete index is a new index being rebuilt for use in place of the old index; If the processing device does not process the query using the incomplete index, the processing device processes the query using the old index, and sends a response to the query to the client.
- the processing device sequentially refers to the data stored in the data section, updates the new index to a more complete index, and when the new index has been updated to a complete index, The inquiry processing method according to attachment 20, wherein the old index is invalidated.
- the old index and the new index have the same identifier,
- the database includes index information for storing information on the old index and information on the new index in association with the identifier.
- [Appendix 23] The query processing method according to any one of appendices 15 to 22, wherein the database is a key-value store.
- [Appendix 24] The inquiry processing method according to supplementary note 16, wherein the predetermined type is any one of an aggregation function MAX (maximum value), MIN (minimum value), and AVG (average value).
- the processing device uses the number of the data registered in the incomplete index or the incomplete index for the number of data stored in the data section. 20.
- the processing device In the calculation of the degree of completion of the incomplete index, when the data part is composed of a plurality of sub data parts, the processing device is configured such that all data among the plurality of sub data parts is the incomplete index. The number of the sub-data parts registered in the total number of the sub-data parts, or the ratio of the number of the sub-data parts registered in the incomplete index to the total number of the sub-data parts.
- Query processing method [Appendix 27] The query processing method according to appendix 19, wherein the processing device uses the height of the tree structure when the incomplete index is an index having a tree structure in calculating the cost.
- the processing device uses the degree of completion of the old index and the old index when the incomplete index is a new index being rebuilt for use instead of the old index stored in the index section. And calculating a cost required to access the data part, calculating an index value for selecting the old index based on the calculated degree of completion and the cost, and calculating the calculated index value as the threshold value
- the inquiry processing method according to appendix 19.
- a processor connected to a database having a data portion for storing data and an index portion for storing an incomplete index of said data; Receiving a query from a client; Processing the query using the incomplete index; And a program for sending a response to the inquiry to the client.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
(1)問合せを異常終了させる。
(2)問合せの処理を一時的に中断し、完全な索引になるように索引の作成処理を実行した後、中断した問合せの処理を再開する。
データを記憶するデータ部と上記データの不完全な索引を記憶する索引部とを有するデータベースと、
クライアントからの問合せを受信し、上記不完全な索引を使用して上記問合せを処理し、上記問合せに対する応答を上記クライアントに送信する処理装置と
を有する。
データを記憶するデータ部と上記データの不完全な索引を記憶する索引部とを有するデータベースと、処理装置とを有する計算機システムが実行する問合せ処理方法であって、
上記処理装置が、クライアントからの問合せを受信し、上記不完全な索引を使用して上記問合せを処理し、上記問合せに対する応答を上記クライアントに送信する。
また本発明の第3の観点に係るプログラムは、
データを記憶するデータ部と上記データの不完全な索引を記憶する索引部とを有するデータベースに接続されたプロセッサに、
クライアントからの問合せを受信するステップと、
上記不完全な索引を使用して上記問合せを処理するステップと、
上記問合せに対する応答を上記クライアントに送信するステップと
を行わせる。
[第1の実施形態]
図1を参照すると、本発明の第1の実施形態に係る計算機システム100は、データベース110と処理装置120とを有する。データベース110の種類は任意である。例えばデータベース110は、キーバリューストア(KVS)であってよい。或いはデータベース110は、リレーショナルデータベース(RDB)であってよい。
図3を参照すると、本発明の第2の実施形態に係る計算機システム200は、データベース210と処理装置220とを有する。データベース210の種類は任意である。例えばデータベース210は、キーバリューストア(KVS)であってよい。或いはデータベース210は、リレーショナルデータベース(RDB)であってよい。
問合せの種別が予め定められた種別であること。上記予め定められた種別としては、例えば、集計関数MAX(最大値)とMIN(最小値)とAVG(平均値)としてよい。例えば、「SELECT c1, AVG(value) FROM t1 WHERE c2=3 GROUP BY c1」のような問合せは、AVG(value)の文字列を検出することで、AVG(平均値)を返す集計関数であることがわかる。このような問合せは、列c1が分類名のようなものであると想定すれば、傾向を見るものであり、必ずしも正確な結果は要求されない可能性が高い。この条件1を考慮して新索引2122の使用可否を決定することにより、旧索引2121を使用した場合と問合せ結果に大きな違いがでないような問合せに関してのみ新索引2122の有効活用が可能になる。
問合せに含まれるユーザ指定情報において、不完全な索引である新索引2122の使用が許容されていること。この条件2を考慮して新索引2122の使用可否を決定することにより、新索引2122の使用可否の判断をユーザ側に委ねることが可能になる。
新索引2122の完成度合いが閾値を超えていること。新索引2122の完成度合いの算出方法は、第1の実施形態における不完全な索引1121の完成度合いの算出方法と同じでよい。この条件3を考慮して新索引2122の使用可否を決定することにより、再構築開始直後の完成度の極めて低い新索引2122の使用を防止することが可能になる。
新索引2122の完成度合いと新索引2122を使用してデータ部211をアクセスするのに要するコストとに基づいて算出した、新索引2122を選択する指標値が閾値より優れていること。上記コストの算出方法は、第1の実施形態における不完全な索引1121のコストの算出方法と同じでよい。また、旧索引2121について新索引2122と同じ方法で算出した指標値を上記閾値として使用してよい。この条件4を考慮して新索引2122の使用可否を決定することにより、再構築開始直後の完成度の極めて低い新索引2122の使用を防止することが可能になる。また、旧索引2121について新索引2122と同じ方法で算出した指標値を上記閾値として使用する方法によれば、完成度合いと利用コストとを統合した観点から、旧索引2121と新索引2122とのうちのより好ましい方を選択して使用することが可能になる。
次に本発明の第3の実施形態について詳細に説明する。本実施形態は、分散キーバリューストア(以下、KVSと記す)に本発明を適用する。このため、まず、分散KVSについて簡単に説明する。
指標値=利用コスト+α(1-索引の完成度) …(1)
索引の完成度
=現在索引に存在するレコード数/索引の対象となるレコード数 …(2)
索引の完成度
=完了ノード数/総ノード数 …(3)
[付記1]
計算機システムであって、
データを記憶するデータ部と前記データの不完全な索引を記憶する索引部とを有するデータベースと、
クライアントからの問合せを受信し、前記不完全な索引を使用して前記問合せを処理し、前記問合せに対する応答を前記クライアントに送信する処理装置と
を有する計算機システム。
[付記2]
前記処理装置は、前記問合せの種別を判定し、該判定した種別が予め定められた種別でない場合には前記不完全な索引を使用した前記問合せの処理は行わない
付記1に記載の計算機システム。
[付記3]
前記処理装置は、前記問合せに含まれるユーザ指定情報を解析し、前記不完全な索引の使用が前記ユーザ指定情報において許容されていない場合には前記不完全な索引を使用した前記問合せの処理は行わない
付記1または2に記載の計算機システム。
[付記4]
前記処理装置は、前記不完全な索引の完成度合いを算出し、該算出した完成度合いが閾値を超えない場合には前記不完全な索引を使用した前記問合せの処理は行わない
付記1乃至3の何れかに記載の計算機システム。
[付記5]
前記処理装置は、前記不完全な索引の完成度合いと前記不完全な索引を使用して前記データ部をアクセスするのに要するコストとを算出し、該算出した前記完成度合いと前記コストとに基づいて前記不完全な索引を選択する指標値を算出し、該算出した指標値が閾値より優れていない場合には前記不完全な索引を使用した前記問合せの処理は行わない
付記1乃至3の何れかに記載の計算機システム。
[付記6]
前記索引部は、完全な索引である旧索引を記憶し、
前記不完全な索引は、前記旧索引に代えて使用するために再構築中の新索引であり、
前記処理装置は、前記不完全な索引を使用した前記問合せの処理を行わない場合、前記旧索引を使用して前記問合せを処理し、前記問合せに対する応答を前記クライアントに送信する
付記1乃至5の何れかに記載の計算機システム。
[付記7]
前記処理装置は、前記データ部に記憶された前記データを順に参照して、前記新索引をより完成度の高い索引へと更新し、前記新索引を完全な索引に更新し終えたときに、前記旧索引を無効にする
付記6に記載の計算機システム。
[付記8]
前記旧索引と前記新索引とは同じ識別名を有し、
前記データベースは、前記識別名に対応付けて、前記旧索引に関する情報と前記新索引に関する情報とを記憶する索引情報を有し、
前記処理装置は、前記問合せに対する有効な索引があるか否か、前記新索引に対応する前記旧索引が有効か否かを前記索引情報を参照して決定する
付記6または7に記載の計算機システム。
[付記9]
前記データベースは、キーバリューストアである
付記1乃至8の何れかに記載の計算機システム。
[付記10]
前記予め定められた種別は、集計関数MAX(最大値)、MIN(最小値)、AVG(平均値)のうちの何れかである
付記2に記載の計算機システム。
[付記11]
前記処理装置は、前記不完全な索引の完成度合いの算出では、前記不完全な索引に登録済みの前記データの件数、または前記データ部に記憶される前記データの件数に対する前記不完全な索引に登録済みの前記データの件数の割合を用いる
付記4または5に記載の計算機システム。
[付記12]
前記処理装置は、前記不完全な索引の完成度合いの算出では、前記データ部が複数のサブデータ部から構成されている場合、前記複数のサブデータ部のうち、全データが前記不完全な索引に登録されている前記サブデータ部の数、または前記サブデータ部の総数に対する全データが前記不完全な索引に登録されている前記サブデータ部の数の割合を用いる
付記4または5に記載の計算機システム。
[付記13]
前記処理装置は、前記コストの算出では、前記不完全な索引がツリー構造を有する索引の場合には前記ツリー構造の高さを用いる
付記5に記載の計算機システム。
[付記14]
前記処理装置は、前記不完全は索引が前記索引部に記憶されている旧索引に代えて使用するために再構築中の新索引である場合、前記旧索引の完成度合いと前記旧索引を使用して前記データ部をアクセスするのに要するコストとを算出し、該算出した前記完成度合いと前記コストとに基づいて前記旧索引を選択する指標値を算出し、該算出した指標値を前記閾値とする
付記5に記載の計算機システム。
[付記15]
データを記憶するデータ部と前記データの不完全な索引を記憶する索引部とを有するデータベースと、処理装置とを有する計算機システムが実行する問合せ処理方法であって、
前記処理装置が、クライアントからの問合せを受信し、前記不完全な索引を使用して前記問合せを処理し、前記問合せに対する応答を前記クライアントに送信する
問合せ処理方法。
[付記16]
前記処理装置は、前記問合せの種別を判定し、該判定した種別が予め定められた種別でない場合には前記不完全な索引を使用した前記問合せの処理は行わない
付記15に記載の問合せ処理方法。
[付記17]
前記処理装置は、前記問合せに含まれるユーザ指定情報を解析し、前記不完全な索引の使用が前記ユーザ指定情報において許容されていない場合には前記不完全な索引を使用した前記問合せの処理は行わない
付記15または16に記載の問合せ処理方法。
[付記18]
前記処理装置は、前記不完全な索引の完成度合いを算出し、該算出した完成度合いが閾値を超えない場合には前記不完全な索引を使用した前記問合せの処理は行わない
付記15乃至17の何れかに記載の問合せ処理方法。
[付記19]
前記処理装置は、前記不完全な索引の完成度合いと前記不完全な索引を使用して前記データ部をアクセスするのに要するコストとを算出し、該算出した前記完成度合いと前記コストとに基づいて前記不完全な索引を選択する指標値を算出し、該算出した指標値が閾値より優れていない場合には前記不完全な索引を使用した前記問合せの処理は行わない
付記15乃至17の何れかに記載の問合せ処理方法。
[付記20]
前記索引部は、完全な索引である旧索引を記憶し、
前記不完全な索引は、前記旧索引に代えて使用するために再構築中の新索引であり、
前記処理装置は、前記不完全な索引を使用した前記問合せの処理を行わない場合、前記旧索引を使用して前記問合せを処理し、前記問合せに対する応答を前記クライアントに送信する
付記15乃至19の何れかに記載の問合せ処理方法。
[付記21]
前記処理装置は、前記データ部に記憶された前記データを順に参照して、前記新索引をより完成度の高い索引へと更新し、前記新索引を完全な索引に更新し終えたときに、前記旧索引を無効にする
付記20に記載の問合せ処理方法。
[付記22]
前記旧索引と前記新索引とは同じ識別名を有し、
前記データベースは、前記識別名に対応付けて、前記旧索引に関する情報と前記新索引に関する情報とを記憶する索引情報を有し、
前記処理装置は、前記問合せに対する有効な索引があるか否か、前記新索引に対応する前記旧索引が有効か否かを前記索引情報を参照して決定する
付記20または21に記載の問合せ処理方法。
[付記23]
前記データベースは、キーバリューストアである
付記15乃至22の何れかに記載の問合せ処理方法。
[付記24]
前記予め定められた種別は、集計関数MAX(最大値)、MIN(最小値)、AVG(平均値)のうちの何れかである
付記16に記載の問合せ処理方法。
[付記25]
前記処理装置は、前記不完全な索引の完成度合いの算出では、前記不完全な索引に登録済みの前記データの件数、または前記データ部に記憶される前記データの件数に対する前記不完全な索引に登録済みの前記データの件数の割合を用いる
付記18または19に記載の問合せ処理方法。
[付記26]
前記処理装置は、前記不完全な索引の完成度合いの算出では、前記データ部が複数のサブデータ部から構成されている場合、前記複数のサブデータ部のうち、全データが前記不完全な索引に登録されている前記サブデータ部の数、または前記サブデータ部の総数に対する全データが前記不完全な索引に登録されている前記サブデータ部の数の割合を用いる
付記18または19に記載の問合せ処理方法。
[付記27]
前記処理装置は、前記コストの算出では、前記不完全な索引がツリー構造を有する索引の場合には前記ツリー構造の高さを用いる
付記19に記載の問合せ処理方法。
[付記28]
前記処理装置は、前記不完全は索引が前記索引部に記憶されている旧索引に代えて使用するために再構築中の新索引である場合、前記旧索引の完成度合いと前記旧索引を使用して前記データ部をアクセスするのに要するコストとを算出し、該算出した前記完成度合いと前記コストとに基づいて前記旧索引を選択する指標値を算出し、該算出した指標値を前記閾値とする
付記19に記載の問合せ処理方法。
[付記29]
データを記憶するデータ部と前記データの不完全な索引を記憶する索引部とを有するデータベースに接続されたプロセッサに、
クライアントからの問合せを受信するステップと、
前記不完全な索引を使用して前記問合せを処理するステップと、
前記問合せに対する応答を前記クライアントに送信するステップと
を行わせるためのプログラム。
110…データベース
111…データ部
112…索引部
120…処理装置
130…クライアント
1111…データ
1121…索引(不完全)
Claims (16)
- 計算機システムであって、
データを記憶するデータ部と前記データの不完全な索引を記憶する索引部とを有するデータベースと、
クライアントからの問合せを受信し、前記不完全な索引を使用して前記問合せを処理し、前記問合せに対する応答を前記クライアントに送信する処理装置と
を有する計算機システム。 - 前記処理装置は、前記問合せの種別を判定し、該判定した種別が予め定められた種別でない場合には前記不完全な索引を使用した前記問合せの処理は行わない
請求項1に記載の計算機システム。 - 前記処理装置は、前記問合せに含まれるユーザ指定情報を解析し、前記不完全な索引の使用が前記ユーザ指定情報において許容されていない場合には前記不完全な索引を使用した前記問合せの処理は行わない
請求項1または2に記載の計算機システム。 - 前記処理装置は、前記不完全な索引の完成度合いを算出し、該算出した完成度合いが閾値を超えない場合には前記不完全な索引を使用した前記問合せの処理は行わない
請求項1乃至3の何れかに記載の計算機システム。 - 前記処理装置は、前記不完全な索引の完成度合いと前記不完全な索引を使用して前記データ部をアクセスするのに要するコストとを算出し、該算出した前記完成度合いと前記コストとに基づいて前記不完全な索引を選択する指標値を算出し、該算出した指標値が閾値より優れていない場合には前記不完全な索引を使用した前記問合せの処理は行わない
請求項1乃至3の何れかに記載の計算機システム。 - 前記索引部は、完全な索引である旧索引を記憶し、
前記不完全な索引は、前記旧索引に代えて使用するために再構築中の新索引であり、
前記処理装置は、前記不完全な索引を使用した前記問合せの処理を行わない場合、前記旧索引を使用して前記問合せを処理し、前記問合せに対する応答を前記クライアントに送信する
請求項1乃至5の何れかに記載の計算機システム。 - 前記処理装置は、前記データ部に記憶された前記データを順に参照して、前記新索引をより完成度の高い索引へと更新し、前記新索引を完全な索引に更新し終えたときに、前記旧索引を無効にする
請求項6に記載の計算機システム。 - 前記旧索引と前記新索引とは同じ識別名を有し、
前記データベースは、前記識別名に対応付けて、前記旧索引に関する情報と前記新索引に関する情報とを記憶する索引情報を有し、
前記処理装置は、前記問合せに対する有効な索引があるか否か、前記新索引に対応する前記旧索引が有効か否かを前記索引情報を参照して決定する
請求項6または7に記載の計算機システム。 - 前記データベースは、キーバリューストアである
請求項1乃至8の何れかに記載の計算機システム。 - 前記予め定められた種別は、集計関数MAX(最大値)、MIN(最小値)、AVG(平均値)のうちの何れかである
請求項2に記載の計算機システム。 - 前記処理装置は、前記不完全な索引の完成度合いの算出では、前記不完全な索引に登録済みの前記データの件数、または前記データ部に記憶される前記データの件数に対する前記不完全な索引に登録済みの前記データの件数の割合を用いる
請求項4または5に記載の計算機システム。 - 前記処理装置は、前記不完全な索引の完成度合いの算出では、前記データ部が複数のサブデータ部から構成されている場合、前記複数のサブデータ部のうち、全データが前記不完全な索引に登録されている前記サブデータ部の数、または前記サブデータ部の総数に対する全データが前記不完全な索引に登録されている前記サブデータ部の数の割合を用いる
請求項4または5に記載の計算機システム。 - 前記処理装置は、前記コストの算出では、前記不完全な索引がツリー構造を有する索引の場合には前記ツリー構造の高さを用いる
請求項5に記載の計算機システム。 - 前記処理装置は、前記不完全は索引が前記索引部に記憶されている旧索引に代えて使用するために再構築中の新索引である場合、前記旧索引の完成度合いと前記旧索引を使用して前記データ部をアクセスするのに要するコストとを算出し、該算出した前記完成度合いと前記コストとに基づいて前記旧索引を選択する指標値を算出し、該算出した指標値を前記閾値とする
請求項5に記載の計算機システム。 - データを記憶するデータ部と前記データの不完全な索引を記憶する索引部とを有するデータベースと、処理装置とを有する計算機システムが実行する問合せ処理方法であって、
前記処理装置が、クライアントからの問合せを受信し、前記不完全な索引を使用して前記問合せを処理し、前記問合せに対する応答を前記クライアントに送信する
問合せ処理方法。 - データを記憶するデータ部と前記データの不完全な索引を記憶する索引部とを有するデータベースに接続されたプロセッサに、
クライアントからの問合せを受信するステップと、
前記不完全な索引を使用して前記問合せを処理するステップと、
前記問合せに対する応答を前記クライアントに送信するステップと
を行わせるためのプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/775,779 US10146818B2 (en) | 2013-03-15 | 2014-02-19 | Computing system |
JP2015505254A JP6103037B2 (ja) | 2013-03-15 | 2014-02-19 | 計算機システム |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013-053392 | 2013-03-15 | ||
JP2013053392 | 2013-03-15 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2014141594A1 true WO2014141594A1 (ja) | 2014-09-18 |
Family
ID=51536278
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2014/000843 WO2014141594A1 (ja) | 2013-03-15 | 2014-02-19 | 計算機システム |
Country Status (3)
Country | Link |
---|---|
US (1) | US10146818B2 (ja) |
JP (1) | JP6103037B2 (ja) |
WO (1) | WO2014141594A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016177688A (ja) * | 2015-03-20 | 2016-10-06 | 株式会社東芝 | データ処理装置、データ処理方法およびコンピュータプログラム |
CN107977396A (zh) * | 2014-11-12 | 2018-05-01 | 华为技术有限公司 | 一种KeyValue数据库的数据表的更新方法与表数据更新装置 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170060941A1 (en) * | 2015-08-25 | 2017-03-02 | Futurewei Technologies, Inc. | Systems and Methods for Searching Heterogeneous Indexes of Metadata and Tags in File Systems |
US11023439B2 (en) * | 2016-09-01 | 2021-06-01 | Morphick, Inc. | Variable cardinality index and data retrieval |
US10706106B2 (en) * | 2017-02-09 | 2020-07-07 | Micron Technology, Inc. | Merge tree modifications for maintenance operations |
US11068460B2 (en) * | 2018-08-06 | 2021-07-20 | Oracle International Corporation | Automated real-time index management |
US11817183B2 (en) * | 2018-09-11 | 2023-11-14 | Koninklijke Philips N.V. | Phenotype analysis system and method |
US10915546B2 (en) | 2018-10-10 | 2021-02-09 | Micron Technology, Inc. | Counter-based compaction of key-value store tree data block |
US11100071B2 (en) | 2018-10-10 | 2021-08-24 | Micron Technology, Inc. | Key-value store tree data block spill with compaction |
US11048755B2 (en) | 2018-12-14 | 2021-06-29 | Micron Technology, Inc. | Key-value store tree with selective use of key portion |
US10852978B2 (en) | 2018-12-14 | 2020-12-01 | Micron Technology, Inc. | Key-value store using journaling with selective data storage format |
US10936661B2 (en) | 2018-12-26 | 2021-03-02 | Micron Technology, Inc. | Data tree with order-based node traversal |
JP7193721B2 (ja) * | 2019-01-31 | 2022-12-21 | 富士通株式会社 | 情報処理装置およびデータベース検索プログラム |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09305619A (ja) * | 1996-05-10 | 1997-11-28 | Toshiba Corp | 階層インデックス検索装置、及び文書検索方法 |
JP2006227715A (ja) * | 2005-02-15 | 2006-08-31 | Matsushita Electric Ind Co Ltd | 索引サーバ、情報端末、および分散型データベースシステム |
JP2010044763A (ja) * | 2008-08-08 | 2010-02-25 | Estsoft Corp | リアルタイム索引情報抽出機能を有するファイルアップロード方法及びこれを用いたウェブストレージシステム |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0444358B1 (en) * | 1990-02-27 | 1998-08-19 | Oracle Corporation | Dynamic optimization of a single relation access |
JPH0594475A (ja) | 1991-10-03 | 1993-04-16 | Hokkaido Nippon Denki Software Kk | 索引生成方式 |
US6366904B1 (en) * | 1997-11-28 | 2002-04-02 | International Business Machines Corporation | Machine-implementable method and apparatus for iteratively extending the results obtained from an initial query in a database |
US8380701B1 (en) * | 2011-09-02 | 2013-02-19 | International Business Machines Corporation | Using a partially built index in a computer database system |
-
2014
- 2014-02-19 JP JP2015505254A patent/JP6103037B2/ja active Active
- 2014-02-19 WO PCT/JP2014/000843 patent/WO2014141594A1/ja active Application Filing
- 2014-02-19 US US14/775,779 patent/US10146818B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09305619A (ja) * | 1996-05-10 | 1997-11-28 | Toshiba Corp | 階層インデックス検索装置、及び文書検索方法 |
JP2006227715A (ja) * | 2005-02-15 | 2006-08-31 | Matsushita Electric Ind Co Ltd | 索引サーバ、情報端末、および分散型データベースシステム |
JP2010044763A (ja) * | 2008-08-08 | 2010-02-25 | Estsoft Corp | リアルタイム索引情報抽出機能を有するファイルアップロード方法及びこれを用いたウェブストレージシステム |
Non-Patent Citations (2)
Title |
---|
KABUSHIKI KAISHA ASSIST, DATABASE JIGYOBU EIGYO GIJUTSUBU PROFESSIONAL SERVICE-KA, PRO GA OSHIERU PERFORMANCE TUNING JISSEN TUTORIAL, DB MAGAZINE, 1 August 1999 (1999-08-01), pages 126 - 131 * |
SATOSHI YAMATO, MIWAKU NO NET TOOL DAI 10 KAI MSN SEARCH TOOLBAR DE KENSAKU KANKYO O KYOKA SURU, vol. 10, no. 8, 1 August 2005 (2005-08-01), PC JAPAN, pages 144 - 147 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107977396A (zh) * | 2014-11-12 | 2018-05-01 | 华为技术有限公司 | 一种KeyValue数据库的数据表的更新方法与表数据更新装置 |
CN107977396B (zh) * | 2014-11-12 | 2021-07-20 | 华为技术有限公司 | 一种KeyValue数据库的数据表的更新方法与表数据更新装置 |
JP2016177688A (ja) * | 2015-03-20 | 2016-10-06 | 株式会社東芝 | データ処理装置、データ処理方法およびコンピュータプログラム |
Also Published As
Publication number | Publication date |
---|---|
JP6103037B2 (ja) | 2017-03-29 |
US20160026666A1 (en) | 2016-01-28 |
JPWO2014141594A1 (ja) | 2017-02-16 |
US10146818B2 (en) | 2018-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6103037B2 (ja) | 計算機システム | |
US11288282B2 (en) | Distributed database systems and methods with pluggable storage engines | |
US11550769B2 (en) | Data processing method, apparatus, and system | |
US9953054B2 (en) | Systems and methods for implementing and maintaining sampled tables in a database system | |
EP3047398B1 (en) | Combined row and columnar storage for in-memory databases for oltp and analytics workloads | |
US10331641B2 (en) | Hash database configuration method and apparatus | |
US10769126B1 (en) | Data entropy reduction across stream shard | |
US9020916B2 (en) | Database server apparatus, method for updating database, and recording medium for database update program | |
US7860822B1 (en) | Distributed aggregation mapping | |
WO2020005808A1 (en) | Multi-table partitions in a key-value database | |
US10936559B1 (en) | Strongly-consistent secondary index for a distributed data set | |
US11086841B1 (en) | Streams on shared database objects | |
US11216421B2 (en) | Extensible streams for operations on external systems | |
US11940995B1 (en) | Key prefix driven data encryption in tree structures | |
US11762861B2 (en) | Generating a single transactional data stream from multiple database logs | |
US20220342888A1 (en) | Object tagging | |
CN115918110A (zh) | 使用键值存储库的空间搜索 | |
US12007997B2 (en) | Metadata search via N-gram index | |
Gedik et al. | Disk-based management of interaction graphs | |
US11860835B1 (en) | Efficient drop column requests in a non-relational data store | |
JP5673224B2 (ja) | 情報管理装置、情報管理方法、及びプログラム | |
JP2018041174A (ja) | データベース管理装置、データベース管理方法、及びプログラム | |
US11868352B2 (en) | Systems and methods for spilling data for hash joins | |
CN116595025B (zh) | 矢量瓦片的动态更新方法、终端和介质 | |
US11113296B1 (en) | Metadata management for a transactional storage system |
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: 14763056 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2015505254 Country of ref document: JP Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: 14775779 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 14763056 Country of ref document: EP Kind code of ref document: A1 |