WO2017104012A1 - Data management system and method - Google Patents

Data management system and method Download PDF

Info

Publication number
WO2017104012A1
WO2017104012A1 PCT/JP2015/085149 JP2015085149W WO2017104012A1 WO 2017104012 A1 WO2017104012 A1 WO 2017104012A1 JP 2015085149 W JP2015085149 W JP 2015085149W WO 2017104012 A1 WO2017104012 A1 WO 2017104012A1
Authority
WO
WIPO (PCT)
Prior art keywords
key
data
conversion method
key conversion
access
Prior art date
Application number
PCT/JP2015/085149
Other languages
French (fr)
Japanese (ja)
Inventor
友隆 塩野谷
高橋 正和
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to PCT/JP2015/085149 priority Critical patent/WO2017104012A1/en
Publication of WO2017104012A1 publication Critical patent/WO2017104012A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor

Definitions

  • the present invention generally relates to data management for managing data in association with a key.
  • NoSQL has the basic functions of relational databases, typically high-speed data reference function using indexes, and cross-search function by table join (search function across multiple tables). There is no. Therefore, in order to improve performance related to data management (for example, to improve search speed), data pre-processing that predicts actual access patterns is required.
  • Patent Document 1 receives array representation data and changes the data into parallel individual elements.
  • Patent Documents 2 and 3 are known.
  • the techniques of Patent Documents 2 and 3 perform a data search with reference to a data usage history, and perform a normal data search when no search target data is found in the data search.
  • a data infrastructure is designed according to the access pattern (use case).
  • the “data infrastructure” referred to here is a computer system composed of one or more data management devices, for example, a computer system composed of one or more data management devices (nodes) that manage distributed key-value pairs. .
  • Patent Document 1 relies on data design described in a document-oriented manner and does not consider access patterns.
  • Patent Documents 2 and 3 are techniques for structured data, and cannot be applied to an environment where unstructured data is stored.
  • the data management system stores key conversion method information that is information indicating a key conversion method applied among a plurality of key conversion methods for each of a plurality of access ranges in the database unit.
  • the database unit is one or more databases having one or more data areas in which one or more key data pair units are stored.
  • Each of the one or more key data pair units is one or more key data pairs.
  • Each of the one or more key data pairs is a key and data pair.
  • Each of the plurality of access ranges is a range according to a set of a key data pair unit and a key range of the key data pair unit.
  • the data management system receives the query, performs data reference processing or data storage processing on the database unit in response to the query, and returns the query result.
  • the data management system specifies a key conversion method corresponding to the access range in the process from the key conversion method information, and uses the specified key conversion method.
  • the data management system selects, for each of one or more key data pair units, a key conversion method suitable for an access pattern to which the access status of the key data pair unit belongs, from a plurality of key conversion methods, and selects the selected key Correspondence between the conversion method and the access range according to the key data pair unit and the key range for the key data pair unit is recorded in the key conversion method information.
  • the key conversion method that is most suitable for the changed access pattern can be applied to the key data pair unit.
  • FIG. 1 shows a configuration of a data management apparatus according to an embodiment.
  • An example of data space is shown.
  • the structure of an access source table is shown.
  • the structure of a query table is shown.
  • the structure of a key conversion function table is shown.
  • the structure of a key conversion function determination table is shown.
  • An outline of the processing of the data management device is shown.
  • the flow of data reference processing is shown.
  • the flow of data storage processing is shown.
  • the flow of a key conversion function determination process is shown.
  • the flow of a key conversion function narrowing process is shown.
  • An example of a setting screen is shown.
  • An example of unifying key conversion functions for all keys in the namespace is shown below.
  • information may be described using an expression such as “xxx table”, but the information may be expressed in any data structure. That is, in order to show that the information does not depend on the data structure, the “xxx table” can be referred to as “xxx information”.
  • the configuration of each table is an example, and one table may be divided into two or more tables, or all or part of the two or more tables may be a single table. Good.
  • the process may be described using “program” as a subject, but the program is executed by a processor (for example, a CPU (Central Processing Unit)) to appropriately store a predetermined process.
  • the subject of processing may be a processor in order to use resources (for example, memory) and / or communication interface devices (for example, communication ports), etc.
  • the processing described with a program as the subject includes the processor or the processor.
  • the processor may include a hardware circuit that performs a part or all of the processing, and the program may be installed in each controller from the program source.
  • Program distribution computer or computer readable In the following description, two or more programs may be realized as one program, or one program may be realized as two or more programs.
  • a reference code (or a common part in the reference sign) is used, and when explaining the same kind of element separately, the element ID (or Element reference signs) may be used.
  • the element ID (or Element reference signs) may be used.
  • data area 600 is described when the data area is not particularly distinguished
  • data area 600A and data area 600B are described when the individual data areas are distinguished. May be described.
  • FIG. 1 shows a configuration of a data management apparatus according to the embodiment.
  • data infrastructure composed of one or more data management devices 1.
  • data management device 1 configuring the data infrastructure, but the data infrastructure may be configured by a plurality of data management devices 1.
  • the data management apparatus 1 is typically a computer, and includes a processor 10, a memory 12, a communication interface 14, a database 16, and a communication bus 18 that connects these components.
  • the processor 10 is an example of a processor unit, and is a device that executes a program stored in the memory 12 and reads / writes data from / to the memory 12 and the database 16.
  • a plurality of processors 10 may be mounted. It is assumed that at least one processor 10 includes a timer 20 for measuring time. However, this configuration is not essential, and an external timer may be connected via the communication interface 14, or the internal processing of the program executed by the processor 10 is treated as a virtual clock as one clock. Also good.
  • the memory 12 is an example of a memory unit, and is a device that stores a program executed by the processor 10 and information referred to or updated by the program.
  • the memory 12 may be a volatile memory such as a DRAM (Dynamic Random Access Memory), a non-volatile storage device such as an SSD (Solid State Disk), or a write-once medium such as a CD-Recordable.
  • the memory 12 is not necessarily composed of a single device, but a plurality of or a plurality of types of memories are arranged in a parallel configuration such as RAID (Redundant Array of Independent (or Inexpensive) Disks) or JBOD (Just a (Bunch Of Disks) may be connected in series.
  • the communication interface 14 is an example of an interface unit, and is a device that transmits commands and data to other devices connected via the network 4 or receives commands and data from other devices.
  • the network 4 may be realized using a physical cable or may be realized using a wireless technology.
  • the network 4 may be a local area network (LAN) or a wide area network (WAN).
  • the communication interface 14 is not necessarily one.
  • a plurality of types of communication interfaces corresponding to the networks may be mounted.
  • a plurality of communication interfaces corresponding to the same network may be mounted for the purpose of securing a dedicated network. Thereafter, unless otherwise specified in data transmission / reception in other apparatuses, transmission / reception is implicitly realized via the communication interface 14 and the network 4.
  • the memory 12 stores a function determination program 100, a query determination program 102, a query division program 104, a key conversion program 106, a key reverse conversion program 108, a sort program 110, and a key conversion function group 112. ing. These programs need not always be stored in the memory 12, and may be loaded from another device connected via the network 4 when executed. If the program has a compile module, When executing, the source file may be converted into native code that can be interpreted by the processor 10 and placed in the memory 12.
  • the function determination program 100 refers to a table stored in the database 16, selects a key conversion function used for conversion of a key associated with data, and records the key and the key conversion function in the key conversion function table 304.
  • the query determination program 102 determines whether a query (query for the data area) received from the outside (for example, a client device of the data management apparatus 1) is a query for Get, Scan, or storage (details of the processes will be described later). to decide.
  • the query dividing program 104 converts (divides as necessary) the query so that the key described in the query for Scan or Get matches the converted key.
  • the function determination program 100 converts a key using a key conversion function.
  • the key reverse conversion program 108 can also reverse-convert (return to the original key) the key converted by the key conversion function.
  • the sort program 110 sorts the data in ascending order or descending order with keys associated with the data referred to by the query for scanning.
  • the key conversion function group 112 is a set of a plurality of key conversion functions.
  • the key conversion function is an example of a key conversion method, and is a function (for example, a program) that converts a key into a different value.
  • Each key conversion function may be an arbitrary function.
  • FP Field Promotion
  • the first value (hexadecimal) of data is given to the head of the key.
  • Salt (n) A number is added to the head of the key. The range of numbers is an integer from 0 to n.
  • Hash A hash value of data is added to the head of the key. It is assumed that the hash value is given in 2 bytes (256 ways).
  • the communication bus 18 is a device for realizing transmission / reception of data between the components in the data management apparatus 1.
  • an internal bus for example, CPU bus or address bus
  • an expansion bus for example, Serial ATA PCI Express
  • the communication bus 18 is generally a wired bus, but may be a wireless bus for the purpose of simplifying wiring. Thereafter, when there is no particular notice in the communication among the processor 10, the memory 12, the communication interface 14, and the database 16, transmission / reception is implicitly performed via the communication bus 18.
  • the database 16 is a general term for physical or logical devices that record each of one or more data as a pair and output data paired with an input key (key range).
  • a process for referring to data using each of one or more keys is described as “Get”, and a process for referring to data by specifying a key range is described as “Scan”.
  • a data reference process Get or Scan
  • a data storage process for example, an Insert process
  • the query for Get is described as “Get query”
  • the query for Scan is described as “Scan query”
  • “reference query” is described as a generic term for Get queries and Scan queries.
  • a query for data storage processing is described as “stored query”.
  • the database 16 is realized based on a non-volatile storage device such as an HDD (Hard Disk Drive) or an SSD (Solid State Drive). However, if semi-permanent storage allowed by the application is possible, a non-volatile memory is used. Alternatively, an updatable optical recording medium such as Brue-lay Disc or a write-once medium such as CD-R may be used. At least a part of the database 16 may be realized based on a partial area of the memory 12 (at least a part of information stored in the database 16 may be stored in a partial area of the memory 12). And may be realized based on an external storage device (not shown) connected via the communication interface 14.
  • a non-volatile storage device such as an HDD (Hard Disk Drive) or an SSD (Solid State Drive).
  • an updatable optical recording medium such as Brue-lay Disc or a write-once medium such as CD-R may be used.
  • At least a part of the database 16 may be realized
  • the database 16 has a data space 159.
  • the database 16 stores an access source table 300, a query table 302, a key conversion function table 304, and a key conversion function determination table 306 (details of each table will be described later). At least one of these tables 300, 302, 304, and 306 may be stored in the memory 12.
  • a plurality of key data pairs are stored.
  • a typical example of a key data pair is a key-value pair.
  • a key-value pair may be stored according to a distributed key-value store (KVS), or a key-value pair may be stored according to a column store (for example, for each column, all or part of the column) May be stored compressed).
  • KVS distributed key-value store
  • a column store for example, for each column, all or part of the column
  • the database 16 may be a divided database (a set of database parts), and therefore the data space 159 is also a divided data space (a set of data space parts). Good.
  • Each data space portion is described as a “data area” in the present embodiment.
  • the data space 159 is one or more data areas.
  • the “name space” is a storage space in which key data pairs are stored.
  • the data management device 1 manages a key conversion function for each key range, and can apply different key conversion functions in the same data space (the embodiment may be applied to a data management device having one database).
  • the data management device 1 can automatically optimize a key conversion function (data preprocessing method) associated with a key range.
  • the key conversion function is determined based on the access pattern. Specifically, an optimal key conversion function is determined by a key conversion function determination process (FIG. 10) performed by the function determination program 100 using the key conversion function determination table 306 (FIG. 6). In addition to the key conversion function determination process, as an option, a key conversion function narrowing process (FIG. 11) may be performed.
  • the determined key conversion function is recorded in the key conversion function table 304 (FIG. 5) in association with the key range.
  • FIG. 2 shows an example of the data space 159.
  • the data space 159 illustrated in FIG. 2 includes data areas 600A, 600B, and 600C.
  • Data for the data space 159 is stored in a name space in any of the data areas 600A, 600B, and 600C in association with a key.
  • the name space is an example of a key data pair unit (one or more key data pairs). If the name space size (number of key data pairs accumulated in the name space) exceeds a certain value, the new data storage destination is a different name space (name space in a different data area or in the same data area Or the data storage destination name space is divided into a plurality of blocks 408.
  • the block 408 is a set of one or more (for example, a certain number) key data pairs continuously arranged in an area suitable for access such as a logical block address space.
  • the key data pairs are distributed to a plurality of different name spaces in a plurality of data areas 600A, 600B, and 600C. That is, the data management apparatus 1 (database 16) has a sharding function for distributing data to a plurality of data areas 600A, 600B, and 600C.
  • Various key data pairs can be distributed according to the sharding policy. For example, in consideration of capacity scaling, key data pair distribution may be performed so that the number of name spaces and the size of the name spaces are equal in the data areas 600A, 600B, and 600C.
  • the set of keys and namespaces has unique values throughout the data space 159. Therefore, if the same key as the key linked to the new data already exists in the name space where the data (new data) is stored, the data linked to the existing key (old data) ) Is updated with new data. In addition, the key data pairs are stored in an ascending order sorted by key in each name space.
  • FIG. 3 shows the configuration of the access source table 300.
  • the access source table 300 is a table that stores information related to the access source. Specifically, the access source table 300 has a record for each access source. Each record stores a name space 31, an address 32, an issue count 33 and an access time 34.
  • Name space 31 represents the name of the name space accessed from the access source.
  • Address 32 represents an address on the access source network 4.
  • the address may be an IP address, a MAC address, or a URI (such as server1.abc.company.co.jp) in an environment where Domain Name Server can convert an IP address. Uniform Resource Identifier).
  • the issuance count 33 represents the number of times that the reference query is issued from the access source (in other words, the number of reference queries received from the access source).
  • the number of times of issuance 33 may be reset to an initial value every fixed period, or may be counted in total until the name space is generated and deleted.
  • the access time 34 represents the relationship between the time zone (for example, AM (AM) and PM (PM)) and the number of received reference queries.
  • the time zone may not be a unit of 12 hours such as morning and afternoon. For example, the unit may be one hour or one minute.
  • the time zone is a time zone in the time zone, and the time zone is one day according to the example of FIG. 3, but is not limited thereto. For example, the time zone is one week, and the time zone may be Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, and Sunday.
  • the reference query for the namespace “ns1: customer” is issued from the access source of the address “192.168.0.10”, and the number of issued reference queries is 4010 (AM : 4010 reference queries, afternoon: 0 reference queries).
  • FIG. 4 shows the configuration of the query table 302.
  • the query table 302 is a table that stores information related to the breakdown of reference queries issued to the name space.
  • the query table 302 has a record for each name space and reference query type. Each record stores a name space 41, a query 42, an issue count 43, and an average scan count 44.
  • Name space 41 represents the name of the name space.
  • the query 42 represents a reference query type (“Get” or “Scan”).
  • the issue count 43 represents the number of times that the reference query of the corresponding reference query type has been issued.
  • the average number of scans 44 represents the average number of scans (the number of data referenced by one Scan query). If the value represented by the average number of scans 44 exceeds the sharding size (the maximum value of the number of key data pairs per name space), the data of other name spaces corresponding to the average number of scans 44 Is also referred to.
  • the number 43 of Get queries issued with X keys may be counted once, or may be counted X times or Y times.
  • X is the number of specified keys.
  • Y is the number of keys that match the data among the specified keys (Y is an integer not less than 0 and not more than X).
  • the key conversion function table 304 is created by the function determination program 100.
  • the element representing the access status may be one or two of these three elements, or another element may be used instead of or in addition to at least one of these three elements. .
  • FIG. 5 shows the configuration of the key conversion function table 304.
  • the key conversion function table 304 is a table representing the relationship between the key range in the name space and the applied key conversion function.
  • the key conversion function table 304 has a plurality of records, and each record stores a name space 51, a key range 52, and a key conversion function 53.
  • a range specified from the set of the name space 51 and the key range 52 is an example of an access range.
  • Name space 51 represents the name of the name space.
  • the key range 52 represents the first key of the key range and the last key of the key range. When the first key is “null”, the key range includes all keys smaller than the last key. When the last key is “null”, the key range includes all keys larger than the first key.
  • the key conversion function 53 represents the name (type) of the applied key conversion function.
  • This embodiment is an embodiment in which the key is assumed to monotonously increase (or monotonously decrease) (specifically, implementation that is assumed to receive time-series data generated by a technology such as M2M or IoT)
  • this assumption does not narrow the scope of the present invention.
  • the present invention is also applicable to an environment in which keys change randomly or keys increase and decrease.
  • FIG. 6 shows the configuration of the key conversion function determination table 306.
  • the key conversion function determination table 306 is a table representing the relationship between access patterns and key conversion functions. Specifically, the key conversion function determination table 306 has a plurality of records, and each record stores the data distribution 61, the access source information 62, and the key conversion function 63.
  • the data distribution 61 represents the data distribution per reference query.
  • the data distribution is the number of reference namespaces that exist per data area.
  • a more specific example of the data distribution is as follows.
  • the “number of data areas” referred to here is the number of data areas existing in the plurality of data management apparatuses 1 as a whole.
  • the reference query is a Scan query
  • the average number of scans is a value represented by the average number of scans 44 corresponding to the referenced namespace and the type of reference query “Scan”.
  • the access source information 62 includes an address number 621 that represents the number of access sources and an access frequency 622 that represents an access frequency (reference frequency).
  • the access frequency referred to here is an access frequency per time section (per day in FIG. 6).
  • the key conversion function 63 represents the name (type) of the key conversion function.
  • the key conversion function associated with the data distribution degree, the access source number, and the access frequency can be specified.
  • each of the data distribution degree, the access source number, and the access frequency is two types (that is, the boundary value is one), but the data distribution degree, the access source number, and the access frequency are At least one may be three or more (the boundary value may be two or more).
  • the “access pattern” is a set of data distribution degree, access source number, and access frequency.
  • a key conversion function is associated with each access pattern.
  • the access pattern may be at least one of data distribution, access source number, and access frequency.
  • FIG. 7 shows a processing outline of the data management device 1.
  • the query determination program 102 receives a query from the client (user) 6 via the network 4.
  • the query determination program 102 determines the type of the received query (whether it is a reference query or a storage query. Depending on the determination result, a data reference process or a data storage process is performed, and the query determination program 102 sends the result to the client device. Return to 6.
  • the query determination program 102 updates the access source table 300. Specifically, the query determination program 102 adds 1 to the issuance count 33 corresponding to the address 32 indicating the access source address (address of the client device 6), and the access time (timer) at the access time 34. 1 is added to the value corresponding to the time zone belonging to (the time specified from 20).
  • the query determination program 102 adds a record including the address 32 representing the access source address.
  • the namespace 31 in the added record represents a namespace that is referred to according to the reference query.
  • a plurality of name spaces are referred to by the reference query, a plurality of records respectively corresponding to the plurality of name spaces are added to the access source table 300.
  • the query determination program 102 calls the query division program 104.
  • the query determination program 102 transmits the received reference query to the query division program 104.
  • the query division program 104 refers to the key conversion function table 304, and corresponds to the target namespace (namespace referenced according to the reference query) and the key range to which the target key (key specified by the reference query) belongs. Identify the conversion function.
  • the query division program 104 converts the target key using the specified key conversion function in the key conversion function group 112.
  • the query division program 104 generates a query specifying the converted key.
  • the query division program 104 may generate a plurality of queries for one reference query.
  • the query partitioning program 104 specifies a query in which the target keys 100001 to 110000 have been converted by Salt (5) and a key in which the target keys 100001 to 110000 have been converted by FP. Generated queries.
  • the query division program 104 transmits the generated query to the database 16.
  • the database 16 extracts data corresponding to the key specified in the query.
  • the database 16 calls the key reverse conversion program 108.
  • the key reverse conversion program 108 reverse-converts the converted key specified in the query received by the database 16 into the original key (returns to the original key). For example, in this embodiment, since FP, Salt, and Hash are all processing that adds an additional character string to the head, the key reverse conversion program 108 performs reverse conversion on the processing that excludes the head character string. It may be implemented as.
  • S110 The database 16 uses the sort program 110 to perform ascending sort (or descending sort) with the original key.
  • S108 and S110 are processes in which the key converted by the key conversion function specified in S104 is inversely converted and the search result is re-sorted based on the original key. If data continuity recovery is not required, S108 and S110 may be skipped.
  • the database 16 transmits the search result (the extraction result of S106 (or the sort result of S110)) to the query determination program 102.
  • the query determination program 102 updates the query table 302. Specifically, the query determination program 102 adds 1 to the issue count 43 corresponding to the referenced name space and the type of the reference query.
  • the query determination program 102 updates the average number of scans 44 corresponding to the referenced namespace and the type of the reference query.
  • the process including S102 to S112 is the data reference process.
  • the query determination program 102 transmits the search result to the client device 6.
  • the query determination program 102 calls the key conversion program 106.
  • the key conversion program 106 refers to the key conversion function table 304 and specifies a key conversion function corresponding to the name space specified by the storage query and the key range to which the key specified by the storage query belongs.
  • the key conversion program 106 converts the specified key using the specified key conversion function.
  • the key conversion program 106 generates a query that stores data to be stored and a post-conversion key corresponding to the data. A plurality of queries may be generated for one stored query for the same reason as described for S104.
  • the key conversion program 106 transmits the generated query to the database 16.
  • the database 16 stores the set of data and converted key in the namespace specified by the query.
  • the database 16 notifies the query determination program 102 of the completion of storage.
  • the processing including the above S122 to S124 is data storage processing.
  • the query determination program 102 transmits the result to the client device 6.
  • the data management device 1 executes a key conversion function determination process in addition to the data reference process and the data storage process.
  • the key conversion function determination process is started when a predetermined event occurs.
  • the predetermined event is, for example, that a certain time has passed (the time specified by the timer 20 has become a predetermined time), the number of received queries exceeds the predetermined number, or the amount of stored data is Any of exceeding the fixed quantity may be sufficient.
  • the function determination program 100 calculates the data distribution, the number of access sources, and the access frequency from the operation information (access source table 300 and query table 302).
  • the function determination program 100 determines a key conversion function corresponding to the calculated data distribution, access source number, and access frequency by referring to the key conversion function determination table 306.
  • the data management device 1 records the determined name (type) of the key conversion function in the key conversion function table 304 in association with the name of the name space and the key range.
  • FIG. 10 shows a flow of key conversion function determination processing.
  • the key conversion function determination process is performed for each name space.
  • a key conversion function determination process for one name space is taken as an example.
  • the one namespace is referred to as “target namespace”.
  • the function determination program 100 refers to the query table 302 and identifies the average number of scans corresponding to the target namespace.
  • the function determination program 100 specifies the number of data areas and the sharding size by issuing a query to the database 16.
  • the function determination program 100 refers to the access source table 300, accesses the number of access sources corresponding to the target namespace (the number of addresses 32 corresponding to the target namespace), and the access frequency corresponding to the target namespace (for example, 1 Number of reference queries per day).
  • L140 Loop start.
  • the function determination program 100 repeats the process up to the loop end L142 for each key conversion function included in the key conversion function group 112. In each loop, the key conversion function referred to is “function F”.
  • S150 The function determination program 100 calculates the data distribution for F using the average number of scans specified in S142, the number of data areas specified in S144, and the sharding size. The details of the data distribution calculation method are as described above.
  • S152 The function determination program 100 refers to the key conversion function determination table 306, and specifies a key conversion function corresponding to the data distribution calculated in S150, the number of access sources calculated in S146, and the access frequency.
  • the key conversion function specified here is expressed as “function f”.
  • S154 When the determination result of C140 is true, the function determination program 100 registers F (the name of F) in the candidate list.
  • the candidate list is a list of names of key conversion function candidates (temporarily determined key conversion functions). A key conversion function is determined for the target namespace from the candidate list.
  • the function determination program 100 refers to the candidate list and determines K (number of key conversion function candidates).
  • the function determination program 100 updates the key conversion function table 304 (S156). Specifically, in the function determination program 100, the key conversion function represented by the candidate list is different from the latest key conversion function for the target namespace (the key conversion function corresponding to the end key of the key range “null”). Then, the association between the key conversion function represented by the candidate list, the target namespace, and the key range is recorded in the key conversion function table 304. Specifically, the function determination program 100 determines a key range corresponding to the latest key conversion function for the target namespace (changes the last key from “null” to the largest key), and a new key range.
  • the first key and the last key are “null”, respectively) and the key conversion function indicated by the candidate list are recorded in the key conversion function table 304.
  • the first key in the new key range is used as the associated key.
  • the function determination program 100 performs the above-described S156 for the key conversion functions narrowed down to one of them.
  • the number of key conversion functions (names) recorded in the candidate list may be two or more.
  • the data distribution calculation method employed for FP is different from the data distribution calculation method employed for Salt (and Hash). Therefore, different data distribution degrees are calculated for the target namespace.
  • a plurality of different key conversion functions (function f) may be identified from the key conversion function determination table 306 even if the access source number and the access frequency set are the same. In this case, two or more key conversion function candidates (names) can be registered in the candidate list.
  • the function determination program 100 may select any one of the two or more key conversion function candidates, but in the present embodiment, the key conversion function narrowing process is performed as described above. Thus, two or more key conversion function candidates are narrowed down to one.
  • FIG. 11 shows a flow of the key conversion function narrowing process.
  • the key conversion function narrowing-down process is performed in a range (data distribution 61, address 621) corresponding to at least one of the data distribution (calculated in S150), the number of access sources (calculated in S146), and the access frequency (calculated in S146). Alternatively, even if the access frequency 622) is changed, the key conversion function determined to have the highest possibility that the selected key conversion function does not change is selected from two or more key conversion function candidates. Specifically, it is as follows.
  • L160 Loop start.
  • the function determination program 100 repeats the process up to the loop end L162 for each key conversion function candidate represented by the candidate list.
  • a key conversion function candidate to be referred to is “function f”.
  • the loop is as follows.
  • the function determination program 100 corresponds to the data distribution 61 different from the data distribution 61 corresponding to the data distribution calculated in S150, the access source number calculated in S146, and the access frequency calculated in S146.
  • the key conversion function corresponding to the address number 621 and the access frequency 622 is specified from the key conversion function determination table 306.
  • the identified key conversion function is defined as “function f1”.
  • the function determination program 100 sets the address number 621 different from the address number 621 corresponding to the access source number calculated in S146, the data distribution calculated in S150, and the data corresponding to the access frequency calculated in S146.
  • a key conversion function corresponding to the degree of distribution 61 and the access frequency 622 is specified from the key conversion function determination table 306.
  • the identified key conversion function is defined as “function f2.”
  • the function determination program 100 sets the access frequency 622 different from the access frequency 622 corresponding to the access frequency calculated in S146, the data distribution calculated in S150, and the data corresponding to the access source number calculated in S146.
  • a key conversion function corresponding to the degree of distribution 61 and the address number 621 is specified from the key conversion function determination table 306.
  • the identified key conversion function is defined as “function f3”.
  • the function determination program 100 determines how many of the functions f1, f2, and f3 match the function f, and associates the determined number (matching number) with, for example, the function f (name). Register in a predetermined area (for example, candidate list).
  • the function determination program 100 selects the function f having the largest number of matches among the two or more functions f (two or more key conversion function candidates represented by the candidate list). When there are a plurality of functions f having the largest number of matches, an arbitrary function f among the plurality of functions f may be selected.
  • the function determination program 100 assumes that the corresponding range is incorrect for each of the calculated data distribution, the number of access sources, and the access frequency.
  • a key conversion function is specified from 306. The higher the matching rate between the key conversion function thus identified and the function f, the more likely that the function f is the key conversion function that is most suitable for the calculated data distribution, the number of access sources, and the access frequency. It is considered high.
  • the key conversion function determination table 306 can be adjusted (updated) either manually or automatically. That is, in this embodiment, at least one of manual adjustment (setting) and automatic adjustment (update) of the key conversion function determination table 306 may be performed. For example, it is as follows.
  • the key conversion function narrowing-down process can be performed every time the key conversion function determination process is performed.
  • the function determination program 100 may update the key conversion function determination table 306 in addition to the update of the key conversion function table 304 in S156.
  • the salt data variance is 0.6 and the FP data variance is 0.3. Also assume that the number of access sources is 20, and the access frequency is 5 accesses / day.
  • Salt is a more robust algorithm than FP.
  • the function determination program 100 updates the key conversion function determination table 306 in S156 based on the result of the key conversion function narrowing process. Specifically, the function determination program 100 sets the boundary value for at least one of the data distribution 61, the address number 621, and the access frequency 622 as the current boundary value and the calculated value (data distribution, access source Number, access frequency) or the like. Based on the above specific example, the function determination program 100 changes the boundary value of the data dispersion degree from “0.5” to the calculated data dispersion degree “0.3”. The boundary value after the change is an average value “0” of the boundary value “0.5” before the change and the calculated data dispersion degree “0.3” instead of the calculated data dispersion degree “0.3”. .4 "may be employed.
  • the administrator can set or adjust the key conversion function determination table 306 via a setting screen (for example, GUI (Graphical User Interface)) shown in FIG.
  • the setting screen is displayed on, for example, a display device (not shown) included in the data management apparatus 1 or a display device included in a maintenance apparatus (not shown) connected to the data management apparatus 1 via the network 4.
  • the maintenance device is an example of a computer used by an administrator.
  • the client device 6 may also serve as a maintenance device.
  • the setting screen 70 displays at least a table 1201 of a table 1201 having the same contents as the key conversion function determination table 306 and a table 1202 having the same contents as the key conversion function table 304.
  • Information on the setting screen 70 may be provided by the function determination program 100.
  • the table 1201 is provided with a UI (User Interface) for changing the boundary value, such as the up / down button 72, for at least one boundary value among the data distribution degree, the number of addresses, and the access frequency.
  • a UI User Interface
  • the administrator can change the boundary value to a desired value.
  • the table 1201 is provided with a boundary value addition UI such as a button 74 for at least one boundary value among the data distribution degree, the number of addresses, and the access frequency. Using that UI, the administrator can add boundary values.
  • a boundary value addition UI such as a button 74 for at least one boundary value among the data distribution degree, the number of addresses, and the access frequency.
  • the setting screen 70 displays a UI 76 for starting the key conversion function determination process.
  • the start interval of the timer 20 and the number of stored records (number of key data pairs) can be input as a trigger for starting the key conversion function determination process.
  • At least one of the tables 1201 and 1202 is provided with a UI for changing a key conversion function, such as a pull-down button 78.
  • a UI for changing a key conversion function
  • the administrator can change the key conversion function registered in the key conversion function determination table 306 or the key conversion function table 304 to another key conversion function. If the desired key conversion function does not exist in the key conversion function group 112, a new key conversion function is uploaded to the data management apparatus 1 using the UI, and the key conversion function designated by the administrator is the new key conversion function. May be replaced with a function.
  • the changed boundary value and key conversion function displayed on the setting screen 70 are reflected in the table 306 or 304.
  • the architecture to which the present invention is applied is not limited.
  • the present invention can be applied to both a master-slave type (for example, HBase) and a P2P (Peer To Peer) (for example, Cassandra).
  • a master-slave type for example, HBase
  • P2P Peer To Peer
  • Cassandra for example, Cassandra
  • the present invention can be applied even when a structured data database is employed instead of or in addition to the unstructured data database.
  • the data infrastructure may be the data management device 1 itself (one data management device 1) or a plurality of data management devices 1.
  • the plurality of processors 10 included in the plurality of data management apparatuses 1 are examples of processor units
  • the plurality of memories 12 included in the plurality of data management apparatuses 1 are examples of memory units.
  • the plurality of communication interfaces 14 included in the data management apparatus 1 is an example of an interface unit.
  • One or a plurality of databases 16 is an example of a database unit.
  • the function determination program 100 has one or more key conversions that have been applied to the target namespace so far.
  • the key converted according to the function may be unified with the key converted according to the latest key conversion function (key change function after change). For example, as illustrated in FIG. 13, when the key conversion function applied to the target namespace “ns1: customer” is changed to “Hash”, the function determination program 100 changes all of the target namespace “ns1: customer”.
  • the key (the key converted according to the key conversion functions “Salt (5)” and “FP” so far) may be changed to a key according to the latest key conversion function “Hash”.
  • the function determination program 100 calls the key reverse conversion program 108.
  • the key reverse conversion program 108 reads all the keys belonging to the target key range from the target namespace “ns1: customer”, and performs reverse conversion of each key based on the key conversion function corresponding to the key range.
  • the function determination program 100 calls the key conversion program 106.
  • the key conversion program 106 converts all the keys belonging to the target key range according to the latest key conversion function “Hash”, and converts the converted key into the target namespace “ns1: customer” or a new namespace. To store.
  • the new name space may be a name space created by the function determination program 100 or another program.
  • the new name space may be the target namespace “ns1: customer”, and the existing target namespace “ns1: customer” may be saved (backed up).

Abstract

A data management system stores key transformation method information which is information which represents a key transformation method which has been applied from among a plurality of key transformation methods to each of a plurality of access ranges in a database unit. The database unit stores one or more key data pair units. The data management system carries out for each of the one or more key data pair units: a selection of the key transformation method from the plurality of the key transformation methods which is suited to an access pattern to which an access situation belongs for the key data pair unit; and recording in key transformation method information an association between the selected key transformation method, and the access range which accords with the key data pair unit and a key range for the key data pair unit.

Description

データ管理システム及び方法Data management system and method
 本発明は、概して、データをキーと紐づけて管理するデータ管理に関する。 The present invention generally relates to data management for managing data in association with a key.
 近年、センサのようなデバイスから出力されたデータが人手を介することなくネットワークを通じてストレージに格納される技術(例えば、Machine to Machine(M2M)又はInternet of Things(IoT))により爆発的なデータ増加が起こっている。そして、こうして得られた様々なデータを多角的に組み合わせ今まで予測できなかった事象の予測に活用するビッグデータ解析が行われている。 In recent years, explosive data growth has occurred due to technologies that store data output from devices such as sensors through a network without human intervention (for example, Machine to Machine (M2M) or Internet of Things (IoT)). is happening. And the big data analysis which is utilized for the prediction of the event which could not be predicted until now by combining various data obtained in this way from various angles is performed.
 M2M又はIoTのような技術で発生するデータは一般に規格化されておらず(つまり、非構造化データが一般に発生し)、また、ビッグデータ解析に必要なデータは大規模である。このため、予め決められた容量の記録デバイスに固定されたルール(スキーマ)に従ってデータが格納されるリレーショナルデータベースではデータ管理が難しくなってきている。 ∙ Data generated by technologies such as M2M or IoT is generally not standardized (that is, unstructured data is generally generated), and the data required for big data analysis is large. For this reason, data management is becoming difficult in a relational database in which data is stored according to a rule (schema) fixed to a recording device having a predetermined capacity.
 そこで、データが格納されるサーバの増減によって性能(例えば帯域)及び容量(記憶容量)を容易に変化させられるスケールアウト性と、スキーマを設定することなくデータを格納できるスキーマレス性とを両立するNoSQLが注目されている。 Therefore, it is compatible with both the scale-out property in which the performance (for example, the bandwidth) and the capacity (storage capacity) can be easily changed by increasing / decreasing the number of servers storing the data and the schemaless property in which the data can be stored without setting the schema. NoSQL is attracting attention.
 しかし、NoSQLには、リレーショナルデータベースが有している基本的な機能、典型的には、インデクスを用いた高速データ参照機能、及び、テーブル結合による横断検索機能(複数のテーブルを横断した検索機能)が無い。そのため、データ管理に関する性能向上のためには(例えば検索速度向上のためには)、実際のアクセスパタンを予測したデータ前処理が必要である。 However, NoSQL has the basic functions of relational databases, typically high-speed data reference function using indexes, and cross-search function by table join (search function across multiple tables). There is no. Therefore, in order to improve performance related to data management (for example, to improve search speed), data pre-processing that predicts actual access patterns is required.
 NoSQLにおけるデータ前処理に関して、特許文献1に開示の技術が知られている。特許文献1の技術は、配列表現のデータを受信し、そのデータを、並列した個別要素に変更する。 Regarding the data preprocessing in NoSQL, the technology disclosed in Patent Document 1 is known. The technique of Patent Document 1 receives array representation data and changes the data into parallel individual elements.
 データ管理に関して、特許文献2及び3の技術が知られている。特許文献2及び3の技術は、データ利用履歴を参照したデータ検索を行い、そのデータ検索では検索対象データが見つからなかった場合に、通常のデータ検索を行う。 Regarding the data management, the techniques of Patent Documents 2 and 3 are known. The techniques of Patent Documents 2 and 3 perform a data search with reference to a data usage history, and perform a normal data search when no search target data is found in the data search.
特開2013-196205号公報JP 2013-196205 A 特開2001-155028号公報JP 2001-1555028 A 特開2010-267080号公報JP 2010-267080 A
 アクセスパタン(ユースケース)に応じたデータ基盤が設計される。ここで言う「データ基盤」とは、1以上のデータ管理装置で構成された計算機システム、例えば、分散したキーバリューペアを管理する1以上のデータ管理装置(ノード)で構成された計算機システムである。 A data infrastructure is designed according to the access pattern (use case). The “data infrastructure” referred to here is a computer system composed of one or more data management devices, for example, a computer system composed of one or more data management devices (nodes) that manage distributed key-value pairs. .
 しかし、実際には、想像されたアクセスパタンに応じたデータ基盤が設計される。なぜなら、実際のアクセスパタンはデータ基盤が稼働してみないとわからないためである。 However, in reality, a data infrastructure corresponding to the imagined access pattern is designed. This is because the actual access pattern is not known unless the data infrastructure is operating.
 そのため、必ずしもユースケースにマッチしたデータ基盤(特に、キーバリューペアの分散のためのキー変換方法)を設計することができない。特に、M2M又はIoTのような技術で発生した大量のデータを解析するビッグデータ解析では、構築されたデータ基盤に対して異なるアクセスパタンでのアクセスが追加されていくことがある。つまり、アクセスパタンが固定されないことがある。 Therefore, it is not always possible to design a data infrastructure (particularly a key conversion method for distributing key-value pairs) that matches the use case. In particular, in big data analysis that analyzes a large amount of data generated by technologies such as M2M or IoT, access with different access patterns may be added to the constructed data infrastructure. That is, the access pattern may not be fixed.
 この課題は、特許文献1~3のいずれでも解決することができない。具体的には、特許文献1の技術は、ドキュメント指向型で記述されたデータ設計に依存しており、アクセスパタンは考慮されていない。特許文献2及び3の技術は、いずれも構造化データのための技術であり、非構造化データが格納される環境には適用できない。 This problem cannot be solved by any of Patent Documents 1 to 3. Specifically, the technique of Patent Document 1 relies on data design described in a document-oriented manner and does not consider access patterns. The techniques of Patent Documents 2 and 3 are techniques for structured data, and cannot be applied to an environment where unstructured data is stored.
 データ管理システムは、データベースユニットにおける複数のアクセス範囲の各々について複数のキー変換方法のうちの適用されたキー変換方法を表す情報であるキー変換方法情報を記憶する。データベースユニットは、1以上のキーデータペアユニットが格納される1以上のデータ領域を有する1以上のデータベースである。1以上のキーデータペアユニットの各々は、1以上のキーデータペアである。1以上のキーデータペアの各々は、キーとデータとのペアである。複数のアクセス範囲の各々は、キーデータペアユニットとそのキーデータペアユニットのキー範囲とのセットに従う範囲である。データ管理システムは、クエリを受信し、そのクエリに応答してデータベースユニットに対するデータ参照処理又はデータ格納処理を行い、クエリの結果を返す。データ参照処理及びデータ格納処理の各々では、データ管理システムは、その処理でのアクセス範囲に対応したキー変換方法をキー変換方法情報から特定し、特定されたキー変換方法を使用する。データ管理システムは、1以上のキーデータペアユニットの各々について、そのキーデータペアユニットについてのアクセス状況が属するアクセスパタンに適したキー変換方法を複数のキー変換方法から選択することと、選択したキー変換方法と、そのキーデータペアユニットとそのキーデータペアユニットについてのキー範囲とに従うアクセス範囲との対応付けをキー変換方法情報に記録することとを行う。 The data management system stores key conversion method information that is information indicating a key conversion method applied among a plurality of key conversion methods for each of a plurality of access ranges in the database unit. The database unit is one or more databases having one or more data areas in which one or more key data pair units are stored. Each of the one or more key data pair units is one or more key data pairs. Each of the one or more key data pairs is a key and data pair. Each of the plurality of access ranges is a range according to a set of a key data pair unit and a key range of the key data pair unit. The data management system receives the query, performs data reference processing or data storage processing on the database unit in response to the query, and returns the query result. In each of the data reference process and the data storage process, the data management system specifies a key conversion method corresponding to the access range in the process from the key conversion method information, and uses the specified key conversion method. The data management system selects, for each of one or more key data pair units, a key conversion method suitable for an access pattern to which the access status of the key data pair unit belongs, from a plurality of key conversion methods, and selects the selected key Correspondence between the conversion method and the access range according to the key data pair unit and the key range for the key data pair unit is recorded in the key conversion method information.
 データベースユニットにおけるキーデータペアユニットのアクセス状況が属するアクセスパタンが変化しても、変化後のアクセスパタンに最適なキー変換方法をそのキーデータペアユニットに適用できる。 Even if the access pattern to which the access status of the key data pair unit in the database unit belongs, the key conversion method that is most suitable for the changed access pattern can be applied to the key data pair unit.
実施形態に係るデータ管理装置の構成を示す。1 shows a configuration of a data management apparatus according to an embodiment. データ空間の一例を示す。An example of data space is shown. アクセス元テーブルの構成を示す。The structure of an access source table is shown. クエリテーブルの構成を示す。The structure of a query table is shown. キー変換関数テーブルの構成を示す。The structure of a key conversion function table is shown. キー変換関数決定テーブルの構成を示す。The structure of a key conversion function determination table is shown. データ管理装置の処理概要を示す。An outline of the processing of the data management device is shown. データ参照処理のフローを示す。The flow of data reference processing is shown. データ格納処理のフローを示す。The flow of data storage processing is shown. キー変換関数決定処理のフローを示す。The flow of a key conversion function determination process is shown. キー変換関数絞込み処理のフローを示す。The flow of a key conversion function narrowing process is shown. 設定画面の一例を示す。An example of a setting screen is shown. 名前空間内の全てのキーのキー変換関数を統一する例を示す。An example of unifying key conversion functions for all keys in the namespace is shown below.
 以下、一実施形態を説明する。 Hereinafter, an embodiment will be described.
 なお、以下の説明では、「xxxテーブル」といった表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「xxxテーブル」を「xxx情報」と言うことができる。また、以下の説明において、各テーブルの構成は一例であり、1つのテーブルは、2以上のテーブルに分割されてもよいし、2以上のテーブルの全部又は一部が1つのテーブルであってもよい。 In the following description, information may be described using an expression such as “xxx table”, but the information may be expressed in any data structure. That is, in order to show that the information does not depend on the data structure, the “xxx table” can be referred to as “xxx information”. In the following description, the configuration of each table is an example, and one table may be divided into two or more tables, or all or part of the two or more tables may be a single table. Good.
 また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ(例えばCPU(Central Processing Unit)によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)及び/又は通信インターフェイスデバイス(例えば通信ポート)等を用いながら行うため、処理の主語がプロセッサとされてもよい。プログラムを主語として説明された処理は、プロセッサあるいはそのプロセッサを有する装置が行う処理としてもよい。また、プロセッサは、処理の一部または全部を行うハードウエア回路を含んでもよい。プログラムは、プログラムソースから各コントローラにインストールされてもよい。プログラムソースは、例えば、プログラム配布計算機または計算機が読み取り可能な記憶メディアであってもよい。また、以下の説明において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。 In the following description, the process may be described using “program” as a subject, but the program is executed by a processor (for example, a CPU (Central Processing Unit)) to appropriately store a predetermined process. The subject of processing may be a processor in order to use resources (for example, memory) and / or communication interface devices (for example, communication ports), etc. The processing described with a program as the subject includes the processor or the processor. The processor may include a hardware circuit that performs a part or all of the processing, and the program may be installed in each controller from the program source. Program distribution computer or computer readable In the following description, two or more programs may be realized as one program, or one program may be realized as two or more programs.
 また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号(又は参照符号における共通部分)を使用し、同種の要素を区別して説明する場合は、要素のID(又は要素の参照符号)を使用することがある。例えば、データ領域を特に区別しないで説明する場合には、「データ領域600」と記載し、個々のデータ領域を区別して説明する場合には、「データ領域600A」、「データ領域600B」のように記載することがある。 Moreover, in the following description, when explaining without distinguishing the same kind of element, a reference code (or a common part in the reference sign) is used, and when explaining the same kind of element separately, the element ID (or Element reference signs) may be used. For example, “data area 600” is described when the data area is not particularly distinguished, and “data area 600A” and “data area 600B” are described when the individual data areas are distinguished. May be described.
 図1は、実施形態に係るデータ管理装置の構成を示す。 FIG. 1 shows a configuration of a data management apparatus according to the embodiment.
 1以上のデータ管理装置1で構成されたデータ基盤(データ管理システム)がある。本実施形態では、データ基盤を構成するデータ管理装置1は1台であるが、データ基盤は複数台のデータ管理装置1で構成されてもよい。 There is a data infrastructure (data management system) composed of one or more data management devices 1. In the present embodiment, there is one data management device 1 configuring the data infrastructure, but the data infrastructure may be configured by a plurality of data management devices 1.
 データ管理装置1は、典型的には計算機であり、プロセッサ10と、メモリ12と、通信インターフェース14と、データベース16と、これらの構成要素を接続する通信バス18とを有する。 The data management apparatus 1 is typically a computer, and includes a processor 10, a memory 12, a communication interface 14, a database 16, and a communication bus 18 that connects these components.
 プロセッサ10は、プロセッサユニットの一例であり、メモリ12に格納されているプログラムを実行したり、メモリ12やデータベース16に対してデータを読み書きしたりするデバイスである。プロセッサ10は複数台搭載されていても構わない。少なくとも1つのプロセッサ10は時刻を計測するためのタイマ20を内包しているものとする。ただし、本構成は必須ではなく、外部のタイマを通信インターフェース14を介して接続する様態であってもよいし、プロセッサ10が実行するプログラムの内部処理を1クロックとして仮想的な時刻として扱う構成としてもよい。 The processor 10 is an example of a processor unit, and is a device that executes a program stored in the memory 12 and reads / writes data from / to the memory 12 and the database 16. A plurality of processors 10 may be mounted. It is assumed that at least one processor 10 includes a timer 20 for measuring time. However, this configuration is not essential, and an external timer may be connected via the communication interface 14, or the internal processing of the program executed by the processor 10 is treated as a virtual clock as one clock. Also good.
 メモリ12は、メモリユニットの一例であり、プロセッサ10が実行するプログラム及びプログラムが参照又は更新する情報を記憶するデバイスである。メモリ12は、DRAM(Dynamic Random Access Memory)のような揮発メモリでもよいし、SSD(Solid State Disk)のような不揮発記憶デバイスでもよいし、CD-Recordableなどのライトワンスメディアでもよい。また、メモリ12は、必ずしも単一のデバイスから構成されているわけではなく、複数台又は複数種のメモリをRAID(Redundant Array of Independent (or Inexpensive) Disks)のような並列構成或いはJBOD(Just a Bunch Of Disks)のような直列構成に接続して実現しても構わない。 The memory 12 is an example of a memory unit, and is a device that stores a program executed by the processor 10 and information referred to or updated by the program. The memory 12 may be a volatile memory such as a DRAM (Dynamic Random Access Memory), a non-volatile storage device such as an SSD (Solid State Disk), or a write-once medium such as a CD-Recordable. Further, the memory 12 is not necessarily composed of a single device, but a plurality of or a plurality of types of memories are arranged in a parallel configuration such as RAID (Redundant Array of Independent (or Inexpensive) Disks) or JBOD (Just a (Bunch Of Disks) may be connected in series.
 通信インターフェース14は、インターフェースユニットの一例であり、ネットワーク4を介して接続された他の装置に対して命令及びデータを送信、或いは他の装置からの命令及びデータを受信するデバイスである。ネットワーク4は、物理的なケーブルを用いて実現されてもよいし、無線技術を用いて実現されてもよい。ネットワーク4は、LAN(Local Area Network)やWAN(Wide Area Network)等でよい。通信インターフェース14は、必ずしも1台である必要はない。例えば、データ管理装置1が複数種類のネットワークに接続される場合、それのネットワークにそれぞれ対応した複数種類の通信インターフェースが搭載されてもよい。また、専用のネットワークの確保などを目的として、同一ネットワークに対応した複数の通信インターフェースが搭載されてもよい。以降、他の装置におけるデータの送受信において特に断りが無い場合は、暗黙的に通信インターフェース14とネットワーク4を介して送受信が実現されることとする。 The communication interface 14 is an example of an interface unit, and is a device that transmits commands and data to other devices connected via the network 4 or receives commands and data from other devices. The network 4 may be realized using a physical cable or may be realized using a wireless technology. The network 4 may be a local area network (LAN) or a wide area network (WAN). The communication interface 14 is not necessarily one. For example, when the data management apparatus 1 is connected to a plurality of types of networks, a plurality of types of communication interfaces corresponding to the networks may be mounted. A plurality of communication interfaces corresponding to the same network may be mounted for the purpose of securing a dedicated network. Thereafter, unless otherwise specified in data transmission / reception in other apparatuses, transmission / reception is implicitly realized via the communication interface 14 and the network 4.
 メモリ12には、関数決定プログラム100と、クエリ判断プログラム102と、クエリ分割プログラム104と、キー変換プログラム106と、キー逆変換プログラム108と、ソートプログラム110と、キー変換関数群112とが格納されている。これらのプログラムは、メモリ12に常に格納されている必要はなく、実行する際にネットワーク4を介して接続された別の装置からロードされてきても構わないし、コンパイルモジュールを有する様態であれば、実行する際にプロセッサ10が解釈できるネイティブコードにソースファイルから変換してメモリ12に配置されても構わない。 The memory 12 stores a function determination program 100, a query determination program 102, a query division program 104, a key conversion program 106, a key reverse conversion program 108, a sort program 110, and a key conversion function group 112. ing. These programs need not always be stored in the memory 12, and may be loaded from another device connected via the network 4 when executed. If the program has a compile module, When executing, the source file may be converted into native code that can be interpreted by the processor 10 and placed in the memory 12.
 関数決定プログラム100は、データベース16に格納されたテーブルを参照し、データに紐づけられるキーの変換に用いるキー変換関数を選択し、キーとキー変換関数をキー変換関数テーブル304に記録する。クエリ判断プログラム102は、外部(例えばデータ管理装置1のクライアント装置)から受信したクエリ(データ領域に対するクエリ)がGet、Scan及び格納(各種処理については後述)のいずれの処理のためのクエリかを判断する。クエリ分割プログラム104は、Scan又はGetのためのクエリに記載されたキーを変換後のキーにマッチするようにクエリを変換(必要に応じて分割)する。関数決定プログラム100は、キー変換関数を用いてキーを変換する。また、キー逆変換プログラム108は、キー変換関数によって変換されたキーを逆変換する(元来のキーに戻す)こともできる。本実施形態では、キー逆変換プログラム108を用いたキー変換関数絞込み処理(キー復元を含む処理)があるが、データの参照のみを目的とする態様においては、キー復元は必須のものではない。すなわち、キー変換関数群112における各キー変換関数は必ずしも可逆性を有する必要がない。ソートプログラム110は、Scanのためのクエリによって参照されたデータにそれぞれ紐付けられたキーで昇順又は降順にデータをソートする。キー変換関数群112は、複数のキー変換関数の集合である。キー変換関数は、キー変換方法の一例であり、キーを異なる値に変換する関数(例えばプログラム)である。各キー変換関数は、任意の関数でよい。本実施形態では、複数のキー変換関数として、以下の3つのキー変換関数がある。
・FP(Field Promotion):データの最初の値(16進)をキーの先頭に付与する。
・Salt(n):キーの先頭に数字を付与する。数字の範囲は0~nの整数である。
・Hash:データのハッシュ値をキーの先頭に付与する。ハッシュ値は2バイトで与えられるものとする(256通り)。
The function determination program 100 refers to a table stored in the database 16, selects a key conversion function used for conversion of a key associated with data, and records the key and the key conversion function in the key conversion function table 304. The query determination program 102 determines whether a query (query for the data area) received from the outside (for example, a client device of the data management apparatus 1) is a query for Get, Scan, or storage (details of the processes will be described later). to decide. The query dividing program 104 converts (divides as necessary) the query so that the key described in the query for Scan or Get matches the converted key. The function determination program 100 converts a key using a key conversion function. The key reverse conversion program 108 can also reverse-convert (return to the original key) the key converted by the key conversion function. In this embodiment, there is a key conversion function narrowing-down process (a process including key recovery) using the key reverse conversion program 108, but key recovery is not indispensable in an aspect only for data reference. That is, each key conversion function in the key conversion function group 112 does not necessarily have reversibility. The sort program 110 sorts the data in ascending order or descending order with keys associated with the data referred to by the query for scanning. The key conversion function group 112 is a set of a plurality of key conversion functions. The key conversion function is an example of a key conversion method, and is a function (for example, a program) that converts a key into a different value. Each key conversion function may be an arbitrary function. In the present embodiment, there are the following three key conversion functions as the plurality of key conversion functions.
FP (Field Promotion): The first value (hexadecimal) of data is given to the head of the key.
Salt (n): A number is added to the head of the key. The range of numbers is an integer from 0 to n.
Hash: A hash value of data is added to the head of the key. It is assumed that the hash value is given in 2 bytes (256 ways).
 通信バス18は、データ管理装置1内の構成要素間でのデータの送受信を実現するためのデバイスであり、例えば、内部バス(例えば、CPUバスやアドレスバス)と拡張バス(例えば、Serial ATAやPCI Express)とを接続して構成されるデバイスである。通信バス18は、一般に有線のバスであるが、配線の簡素化などを目的として無線のバスであってもよい。以降、プロセッサ10、メモリ12、通信インターフェース14、及びデータベース16間の通信において特に断りが無い場合は、暗黙的に通信バス18を介して送受信が実現される。 The communication bus 18 is a device for realizing transmission / reception of data between the components in the data management apparatus 1. For example, an internal bus (for example, CPU bus or address bus) and an expansion bus (for example, Serial ATA PCI Express) is a device that is configured. The communication bus 18 is generally a wired bus, but may be a wireless bus for the purpose of simplifying wiring. Thereafter, when there is no particular notice in the communication among the processor 10, the memory 12, the communication interface 14, and the database 16, transmission / reception is implicitly performed via the communication bus 18.
 データベース16は、1つ以上のデータの各々をキーとペアにして記録し入力されたキー(キー範囲)とペアになっているデータを出力する物理的又は論理的なデバイスの総称である。本実施形態においては、1以上のキーの各々を用いてデータを参照する処理を「Get」と記述し、キー範囲を指定してデータを参照する処理を「Scan」と記述する。また、クエリに応答して、データ参照処理(Get又はScan)又はデータ格納処理(例えばInsert処理)が行われる。Getのためのクエリを「Getクエリ」と記述し、Scanのためのクエリを「Scanクエリ」と記述し、Getクエリ及びScanクエリの総称として「参照クエリ」と記述する。一方、データ格納処理のためのクエリを「格納クエリ」と記述する。 The database 16 is a general term for physical or logical devices that record each of one or more data as a pair and output data paired with an input key (key range). In the present embodiment, a process for referring to data using each of one or more keys is described as “Get”, and a process for referring to data by specifying a key range is described as “Scan”. In response to the query, a data reference process (Get or Scan) or a data storage process (for example, an Insert process) is performed. The query for Get is described as “Get query”, the query for Scan is described as “Scan query”, and “reference query” is described as a generic term for Get queries and Scan queries. On the other hand, a query for data storage processing is described as “stored query”.
 一般に、データベース16は、HDD(Hard Disk Drive)やSSD(Solid State Drive)などの不揮発記憶デバイスに基づき実現されるが、アプリケーションが許容する半永続保存が可能であれば、不揮発メモリが用いられてもよいし、Brue-lay Discなどの更新可能な光記録メディアが用いられても構わないし、CD-Rなどのライトワンスメディアが用いられても構わない。データベース16の少なくとも一部は、メモリ12の一部の領域に基づき実現されてもよいし(データベース16に格納される情報の少なくとも一部が、メモリ12の一部の領域に格納されてもよい)し、通信インターフェース14を介して接続されている外部のストレージ装置(図示せず)に基づき実現されてもよい。 In general, the database 16 is realized based on a non-volatile storage device such as an HDD (Hard Disk Drive) or an SSD (Solid State Drive). However, if semi-permanent storage allowed by the application is possible, a non-volatile memory is used. Alternatively, an updatable optical recording medium such as Brue-lay Disc or a write-once medium such as CD-R may be used. At least a part of the database 16 may be realized based on a partial area of the memory 12 (at least a part of information stored in the database 16 may be stored in a partial area of the memory 12). And may be realized based on an external storage device (not shown) connected via the communication interface 14.
 データベース16は、データ空間159を有する。データベース16には、アクセス元テーブル300と、クエリテーブル302と、キー変換関数テーブル304と、キー変換関数決定テーブル306とが格納される(各テーブルの詳細は、後述する)。これらのテーブル300、302、304及び306のうちの少なくとも1つが、メモリ12に格納されてもよい。 The database 16 has a data space 159. The database 16 stores an access source table 300, a query table 302, a key conversion function table 304, and a key conversion function determination table 306 (details of each table will be described later). At least one of these tables 300, 302, 304, and 306 may be stored in the memory 12.
 データ空間159には、複数のキーデータペアが格納される。キーデータペアの典型例がキーバリューペアである。データ空間159には、分散キーバリューストア(KVS)に従いキーバリューペアが格納されてもよいし、カラムストアに従いキーバリューペアが格納されてもよい(例えば、カラム各々について、カラムの全体又は一部が圧縮されて格納されてもよい)。 In the data space 159, a plurality of key data pairs are stored. A typical example of a key data pair is a key-value pair. In the data space 159, a key-value pair may be stored according to a distributed key-value store (KVS), or a key-value pair may be stored according to a column store (for example, for each column, all or part of the column) May be stored compressed).
 図1では、データベース16は1つであるが、データベース16は、分割されたデータベース(データベース部分の集合)でよく、故に、データ空間159も、分割されたデータ空間(データ空間部分の集合)でよい。各データ空間部分は、本実施形態では「データ領域」と記述する。データ空間159は、1以上のデータ領域である。データ領域に、1以上の名前空間がある。本実施形態において、「名前空間」は、キーデータペアが格納された記憶空間である。 In FIG. 1, there is one database 16, but the database 16 may be a divided database (a set of database parts), and therefore the data space 159 is also a divided data space (a set of data space parts). Good. Each data space portion is described as a “data area” in the present embodiment. The data space 159 is one or more data areas. There is one or more name spaces in the data area. In the present embodiment, the “name space” is a storage space in which key data pairs are stored.
 一般に、単一名前空間に複数のキー変換関数を適用できないし、一旦適用したキー変換関数を途中で切り替えることもできない。 Generally, multiple key conversion functions cannot be applied to a single name space, and once applied key conversion functions cannot be switched in the middle.
 データ管理装置1は、キー範囲毎にキー変換関数を管理し、同一データ空間上で異なるキー変換関数を適用できる(データベース数が1つであるデータ管理装置に実施形態が適用されてよい)。データ管理装置1は、キー範囲に紐付けられるキー変換関数(データ前処理方法)を自動で最適化できる。 The data management device 1 manages a key conversion function for each key range, and can apply different key conversion functions in the same data space (the embodiment may be applied to a data management device having one database). The data management device 1 can automatically optimize a key conversion function (data preprocessing method) associated with a key range.
 この実現のためには、例えば次の2つの要素が重要である。
(要素1)どのようにキー変換関数を決定するか。
(要素2)決定後のキー変換関数をどのように記録しておくか。
For this realization, for example, the following two elements are important.
(Element 1) How to determine the key conversion function.
(Element 2) How to record the key conversion function after determination.
 (要素1)に関して、キー変換関数は、アクセスパタンに基づき決定される。具体的には、キー変換関数決定テーブル306(図6)を用いて関数決定プログラム100が行うキー変換関数決定処理(図10)により、最適なキー変換関数が決定される。なお、キー変換関数決定処理に加えて、オプションとして、キー変換関数絞込み処理(図11)が行われてもよい。 For (Element 1), the key conversion function is determined based on the access pattern. Specifically, an optimal key conversion function is determined by a key conversion function determination process (FIG. 10) performed by the function determination program 100 using the key conversion function determination table 306 (FIG. 6). In addition to the key conversion function determination process, as an option, a key conversion function narrowing process (FIG. 11) may be performed.
 (要素2)に関して、決定されたキー変換関数は、キー変換関数テーブル304(図5)に、キー範囲に紐付けて記録される。 Regarding (element 2), the determined key conversion function is recorded in the key conversion function table 304 (FIG. 5) in association with the key range.
 以下、本実施形態を詳細に説明する。 Hereinafter, this embodiment will be described in detail.
 図2は、データ空間159の一例を示す。 FIG. 2 shows an example of the data space 159.
 図2に例示のデータ空間159は、データ領域600A、600B及び600Cで構成されている。 The data space 159 illustrated in FIG. 2 includes data areas 600A, 600B, and 600C.
 データ空間159に対するデータは、データ領域600A、600B及び600Cのいずれかにおける名前空間に、キーと紐付けられて格納される。名前空間は、キーデータペアユニット(1以上のキーデータペア)の一例である。名前空間のサイズ(名前空間に蓄積されたキーデータペアの数)が一定値を超えた場合、新たなデータの格納先が異なる名前空間(異なるデータ領域内の名前空間、又は、同一データ領域内の異なる名前空間)にされる、又は、データの格納先の名前空間が複数のブロック408に分割される。ブロック408は、例えば、ロジカルブロックアドレス空間のようなアクセスに適した領域に連続配置された1以上の(例えば一定数の)キーデータペアの集合である。これにより、キーデータペアが異なる複数のデータ領域600A、600B及び600Cの異なる複数の名前空間に分散される。つまり、データ管理装置1(データベース16)は、データを複数のデータ領域600A、600B及び600Cに分散するシャーディング機能を有する。シャーディングのポリシーに応じた様々なキーデータペア分散が可能である。例えば、容量スケーリングを考慮して、名前空間の数や名前空間のサイズがデータ領域600A、600B及び600Cで均等になるようにキーデータペア分散が行われてよい。 Data for the data space 159 is stored in a name space in any of the data areas 600A, 600B, and 600C in association with a key. The name space is an example of a key data pair unit (one or more key data pairs). If the name space size (number of key data pairs accumulated in the name space) exceeds a certain value, the new data storage destination is a different name space (name space in a different data area or in the same data area Or the data storage destination name space is divided into a plurality of blocks 408. The block 408 is a set of one or more (for example, a certain number) key data pairs continuously arranged in an area suitable for access such as a logical block address space. As a result, the key data pairs are distributed to a plurality of different name spaces in a plurality of data areas 600A, 600B, and 600C. That is, the data management apparatus 1 (database 16) has a sharding function for distributing data to a plurality of data areas 600A, 600B, and 600C. Various key data pairs can be distributed according to the sharding policy. For example, in consideration of capacity scaling, key data pair distribution may be performed so that the number of name spaces and the size of the name spaces are equal in the data areas 600A, 600B, and 600C.
 なお、キーと名前空間のセットが、データ空間159全体でユニークな値となっている。このため、データ(新データ)の格納先の名前空間に、その新データに紐付けられるキーと同じキーが既に存在している場合、その既に存在しているキーに紐付いているデータ(旧データ)が、新データに更新される。また、キーデータペアは、各名前空間において、キーで昇順ソートした状態で保存される。 It should be noted that the set of keys and namespaces has unique values throughout the data space 159. Therefore, if the same key as the key linked to the new data already exists in the name space where the data (new data) is stored, the data linked to the existing key (old data) ) Is updated with new data. In addition, the key data pairs are stored in an ascending order sorted by key in each name space.
 図3は、アクセス元テーブル300の構成を示す。 FIG. 3 shows the configuration of the access source table 300.
 アクセス元テーブル300は、アクセス元に関する情報を格納するテーブルである。具体的には、アクセス元テーブル300は、アクセス元毎にレコードを有する。各レコードが、名前空間31、アドレス32、発行回数33及びアクセス時刻34を格納する。 The access source table 300 is a table that stores information related to the access source. Specifically, the access source table 300 has a record for each access source. Each record stores a name space 31, an address 32, an issue count 33 and an access time 34.
 名前空間31は、アクセス元からアクセスされる名前空間の名称を表す。 Name space 31 represents the name of the name space accessed from the access source.
 アドレス32は、アクセス元のネットワーク4上のアドレスを表す。そのアドレスは、IPアドレスであってもよいし、MACアドレスであってもよいし、Domain Name ServerがIPアドレスを変換できる環境であれば、server1.abc.company.co.jpのようなURI(Uniform Resource Identifier)であってもよい。 Address 32 represents an address on the access source network 4. The address may be an IP address, a MAC address, or a URI (such as server1.abc.company.co.jp) in an environment where Domain Name Server can convert an IP address. Uniform Resource Identifier).
 発行回数33は、アクセス元から参照クエリが発行された回数(言い換えれば、アクセス元から受信した参照クエリの数)を表す。発行回数33は、一定期間毎に初期値にリセットされてもよいし、名前空間が生成されてから削除されるまで通算でカウントされてもよい。 The issuance count 33 represents the number of times that the reference query is issued from the access source (in other words, the number of reference queries received from the access source). The number of times of issuance 33 may be reset to an initial value every fixed period, or may be counted in total until the name space is generated and deleted.
 アクセス時刻34は、時間帯(例えば午前(AM)と午後(PM))と受信した参照クエリの数との関係を表す。時間帯は、午前及び午後といった12時間単位でなくてもよく、例えば、その単位は1時間でも1分であっても構わない。また、時間帯は、時間区画における時間帯であり、時間区画は、図3の例によれば1日であるが、それに限られないでよい。例えば、時間区画は1週間であり、時間帯は、月・火・水・木・金・土・日でよい。 The access time 34 represents the relationship between the time zone (for example, AM (AM) and PM (PM)) and the number of received reference queries. The time zone may not be a unit of 12 hours such as morning and afternoon. For example, the unit may be one hour or one minute. Further, the time zone is a time zone in the time zone, and the time zone is one day according to the example of FIG. 3, but is not limited thereto. For example, the time zone is one week, and the time zone may be Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, and Sunday.
 図3の例によれば、名前空間「ns1:customer」に対する参照クエリは、アドレス「192.168.0.10」のアクセス元から発行されるようにあっており、発行された参照クエリの数は4010(午前:4010個の参照クエリ、午後:0個の参照クエリ)であることがわかる。 According to the example of FIG. 3, the reference query for the namespace “ns1: customer” is issued from the access source of the address “192.168.0.10”, and the number of issued reference queries is 4010 (AM : 4010 reference queries, afternoon: 0 reference queries).
 図4は、クエリテーブル302の構成を示す。 FIG. 4 shows the configuration of the query table 302.
 クエリテーブル302は、名前空間に発行された参照クエリの内訳に関する情報を格納するテーブルである。クエリテーブル302は、名前空間及び参照クエリ種類毎にレコードを有する。各レコードが、名前空間41、クエリ42、発行回数43及び平均スキャン件数44を格納する。 The query table 302 is a table that stores information related to the breakdown of reference queries issued to the name space. The query table 302 has a record for each name space and reference query type. Each record stores a name space 41, a query 42, an issue count 43, and an average scan count 44.
 名前空間41は、名前空間の名称を表す。クエリ42は、参照クエリ種類(「Get」又は「Scan」)を表す。発行回数43は、該当する参照クエリ種類の参照クエリが発行された回数を表す。平均スキャン件数44は、平均スキャン件数(1個のScanクエリにより参照されたデータの件数)を表す。平均スキャン件数44が表す値が、シャーディングサイズ(名前空間1個あたりのキーデータペア数の最大値)を超えている場合、その平均スキャン件数44に対応する名前空間の他の名前空間のデータも参照されたことを意味する。 Name space 41 represents the name of the name space. The query 42 represents a reference query type (“Get” or “Scan”). The issue count 43 represents the number of times that the reference query of the corresponding reference query type has been issued. The average number of scans 44 represents the average number of scans (the number of data referenced by one Scan query). If the value represented by the average number of scans 44 exceeds the sharding size (the maximum value of the number of key data pairs per name space), the data of other name spaces corresponding to the average number of scans 44 Is also referred to.
 X個のキー(Xは2以上の整数)が指定されたGetクエリの発行回数43は、1回とカウントされてもよいし、X回又はY回とカウントされてもよい。Xは、指定されたキーの数である。Yは、指定されたキーのうちデータにマッチしたキーの数である(Yは0以上且つX以下の整数)。 The number 43 of Get queries issued with X keys (X is an integer equal to or greater than 2) may be counted once, or may be counted X times or Y times. X is the number of specified keys. Y is the number of keys that match the data among the specified keys (Y is an integer not less than 0 and not more than X).
 図3のアクセス元テーブル300及び図4のクエリテーブル302から、各名前空間について、アクセス状況、具体例として、アクセス元数、参照頻度(参照が集中する時間帯)及び参照データ件数(参照されるデータ件数)がわかる。これらの3つの要素に基づき、キー変換関数テーブル304が関数決定プログラム100により作成される。なお、アクセス状況を表す要素は、これら3つの要素のうちの1又は2つの要素でもよいし、これら3つの要素のうちの少なくとも1つに代えて又は加えて別の要素が採用されてもよい。 From each of the access source table 300 in FIG. 3 and the query table 302 in FIG. Know the number of data). Based on these three elements, the key conversion function table 304 is created by the function determination program 100. The element representing the access status may be one or two of these three elements, or another element may be used instead of or in addition to at least one of these three elements. .
 図5は、キー変換関数テーブル304の構成を示す。 FIG. 5 shows the configuration of the key conversion function table 304.
 キー変換関数テーブル304は、名前空間におけるキー範囲と、適用されるキー変換関数との関係を表すテーブルである。キー変換関数テーブル304は、複数のレコードを有し、各レコードが、名前空間51、キー範囲52及びキー変換関数53を格納する。名前空間51及びキー範囲52のセットから特定される範囲が、アクセス範囲の一例である。 The key conversion function table 304 is a table representing the relationship between the key range in the name space and the applied key conversion function. The key conversion function table 304 has a plurality of records, and each record stores a name space 51, a key range 52, and a key conversion function 53. A range specified from the set of the name space 51 and the key range 52 is an example of an access range.
 名前空間51は、名前空間の名称を表す。 Name space 51 represents the name of the name space.
 キー範囲52は、キー範囲の先頭キーと、キー範囲の末尾キーとを表す。先頭キーが「null」の場合、キー範囲は、末尾キーよりも小さなキー全てを含む。末尾キーが「null」の場合、キー範囲は、先頭キーよりも大きなキー全てを含む。 The key range 52 represents the first key of the key range and the last key of the key range. When the first key is “null”, the key range includes all keys smaller than the last key. When the last key is “null”, the key range includes all keys larger than the first key.
 キー変換関数53は、適用されているキー変換関数の名称(種類)を表す。 The key conversion function 53 represents the name (type) of the applied key conversion function.
 本実施形態は、キーが単調増加(又は単調減少)することが想定された実施形態(具体的には、M2M又はIoTのような技術で発生する時系列データを受信することが想定された実施形態)であるが、この想定は本発明の適用範囲を狭めるものではない。キーがランダムに変化、或いは、キーが増加及び減少する環境にも本発明は適用可能である。 This embodiment is an embodiment in which the key is assumed to monotonously increase (or monotonously decrease) (specifically, implementation that is assumed to receive time-series data generated by a technology such as M2M or IoT) However, this assumption does not narrow the scope of the present invention. The present invention is also applicable to an environment in which keys change randomly or keys increase and decrease.
 図6は、キー変換関数決定テーブル306の構成を示す。 FIG. 6 shows the configuration of the key conversion function determination table 306.
 キー変換関数決定テーブル306は、アクセスパタンとキー変換関数との関係を表すテーブルである。具体的には、キー変換関数決定テーブル306は、複数のレコードを有し、各レコードが、データ分散度61、アクセス元情報62及びキー変換関数63を格納する。 The key conversion function determination table 306 is a table representing the relationship between access patterns and key conversion functions. Specifically, the key conversion function determination table 306 has a plurality of records, and each record stores the data distribution 61, the access source information 62, and the key conversion function 63.
 データ分散度61は、参照クエリ1個あたりのデータ分散度を表す。データ分散度は、データ領域1個あたりに存在する参照名前空間の数である。「参照名前空間」とは、参照クエリの処理において参照される名前空間(例えばテーブル)である。従って、例えば、データ領域数=4において、参照名前空間数=2であれば、データ分散度=0.5(=2/4)であり、参照名前空間数=6であれば、データ分散度=1.5(=6/4)である。データ分散度のより具体的な一例は、下記の通りである。
(前提(仮定))
・平均スキャン件数=450
・シャーディングサイズ=100
・名前空間数=10
・データ領域数=10
・10個のデータ領域の各々に1個の名前空間が存在。
・データ管理装置1が複数台ある場合、ここで言う「データ領域数」は、複数のデータ管理装置1全体に存在するデータ領域の数である。
・参照クエリがScanクエリの場合、平均スキャン件数は、参照される名前空間と参照クエリの種類「Scan」とに対応する平均スキャン件数44が表す値である。
(データ分散度)
(ケース1)FPのように同一データ領域の同一名前空間に連続的にデータを配置するキー変換関数のケース:
データ分散度
=参照名前空間数/データ領域数
={(平均スキャン件数/シャーディングサイズ)の小数点以下第1位を切り上げた値}/データ領域数
={(450/100)の小数点以下第1位を切り上げた値}/10
=5/10
=0.5
(ケース2)SaltやHashのように1件ずつ格納先データ領域を切り替えながらデータを配置する(複数のデータ領域を跨るようにデータを配置する)キー変換関数のケース:
データ分散度
=参照名前空間数/データ領域数
=(平均スキャン件数(平均スキャン件数が名前空間数未満の場合)、又は、名前空間数(平均スキャン件数が名前空間数以上の場合)/データ領域数
=10/10
=1.0
The data distribution 61 represents the data distribution per reference query. The data distribution is the number of reference namespaces that exist per data area. The “reference name space” is a name space (for example, a table) referred to in the processing of the reference query. Therefore, for example, if the number of data areas = 4 and the number of reference namespaces = 2, the data distribution degree = 0.5 (= 2/4), and if the number of reference namespaces = 6, the data distribution degree = 1.5 (= 6/4). A more specific example of the data distribution is as follows.
(Assumption (assumed))
・ Average number of scans = 450
・ Sharding size = 100
・ Number of namespaces = 10
-Number of data areas = 10
-One name space exists for each of the 10 data areas.
When there are a plurality of data management apparatuses 1, the “number of data areas” referred to here is the number of data areas existing in the plurality of data management apparatuses 1 as a whole.
When the reference query is a Scan query, the average number of scans is a value represented by the average number of scans 44 corresponding to the referenced namespace and the type of reference query “Scan”.
(Data distribution)
(Case 1) Case of a key conversion function that continuously arranges data in the same name space of the same data area as in FP:
Data degree of distribution = number of reference namespaces / number of data areas = {value obtained by rounding up the first decimal place of (average scan count / sharding size)} / number of data areas = {first decimal place of (450/100) Rounded up value} / 10
= 5/10
= 0.5
(Case 2) Key conversion function that arranges data while switching storage destination data areas one by one like Salt or Hash (places data across multiple data areas):
Data dispersion = number of reference namespaces / number of data areas = (average number of scans (when the average number of scans is less than the number of namespaces) or number of namespaces (when the average number of scans is greater than or equal to the number of namespaces) / data area Number = 10/10
= 1.0
 アクセス元情報62は、アクセス元の数を表すアドレス数621と、アクセスの頻度(参照の頻度)を表すアクセス頻度622とを含む。ここで言うアクセス頻度は、時間区間あたり(図6では1日あたり)のアクセス頻度である。 The access source information 62 includes an address number 621 that represents the number of access sources and an access frequency 622 that represents an access frequency (reference frequency). The access frequency referred to here is an access frequency per time section (per day in FIG. 6).
 キー変換関数63は、キー変換関数の名称(種類)を表す。 The key conversion function 63 represents the name (type) of the key conversion function.
 キー変換関数決定テーブル306を参照することで、データ分散度、アクセス元数及びアクセス頻度に紐付けられているキー変換関数を特定することができる。 Referring to the key conversion function determination table 306, the key conversion function associated with the data distribution degree, the access source number, and the access frequency can be specified.
 なお、図6の例では、データ分散度、アクセス元数及びアクセス頻度の各々は、2通りであるが(つまり境界値が1つであるが)、データ分散度、アクセス元数及びアクセス頻度の少なくとも1つは、3通り以上であってもよい(境界値が2つ以上であってもよい)。 In the example of FIG. 6, each of the data distribution degree, the access source number, and the access frequency is two types (that is, the boundary value is one), but the data distribution degree, the access source number, and the access frequency are At least one may be three or more (the boundary value may be two or more).
 また、図6の例によれば、本実施形態において、「アクセスパタン」は、データ分散度、アクセス元数及びアクセス頻度のセットである。アクセスパタン毎にキー変換関数が紐付けられる。アクセスパタンは、データ分散度、アクセス元数及びアクセス頻度のうちの少なくとも1つでもよい。 Further, according to the example of FIG. 6, in the present embodiment, the “access pattern” is a set of data distribution degree, access source number, and access frequency. A key conversion function is associated with each access pattern. The access pattern may be at least one of data distribution, access source number, and access frequency.
 以下、本実施形態で行われる処理を説明する。 Hereinafter, processing performed in this embodiment will be described.
 図7は、データ管理装置1の処理概要を示す。 FIG. 7 shows a processing outline of the data management device 1.
 クエリ判断プログラム102が、クライアント(ユーザ)6からネットワーク4を介してクエリを受信する。クエリ判断プログラム102が、受信したクエリの種類(参照クエリか格納クエリかを判断する。判断結果に応じて、データ参照処理又はデータ格納処理が行われ、その結果を、クエリ判断プログラム102がクライアント装置6に返す。 The query determination program 102 receives a query from the client (user) 6 via the network 4. The query determination program 102 determines the type of the received query (whether it is a reference query or a storage query. Depending on the determination result, a data reference process or a data storage process is performed, and the query determination program 102 sends the result to the client device. Return to 6.
 データ参照処理を、図7及び図8を参照して説明する。 The data reference process will be described with reference to FIGS.
 S102:クエリ判断プログラム102は、アクセス元テーブル300を更新する。具体的には、クエリ判断プログラム102は、アクセス元アドレス(クライアント装置6のアドレス)を表すアドレス32に対応した発行回数33に1を追加し、且つ、アクセス時刻34における、アクセスされた時刻(タイマ20から特定される時刻)に属する時間帯に対応した値に1を追加する。アクセス元アドレスを表すアドレス32がアクセス元テーブル300に無い場合、クエリ判断プログラム102は、アクセス元アドレスを表すアドレス32を含んだレコードを追加する。追加されたレコードにおける名前空間31は、参照クエリに従い参照される名前空間を表す。その参照クエリで複数の名前空間が参照される場合、その複数の名前空間にそれぞれ対応した複数のレコードがアクセス元テーブル300に追加される。 S102: The query determination program 102 updates the access source table 300. Specifically, the query determination program 102 adds 1 to the issuance count 33 corresponding to the address 32 indicating the access source address (address of the client device 6), and the access time (timer) at the access time 34. 1 is added to the value corresponding to the time zone belonging to (the time specified from 20). When the address 32 representing the access source address does not exist in the access source table 300, the query determination program 102 adds a record including the address 32 representing the access source address. The namespace 31 in the added record represents a namespace that is referred to according to the reference query. When a plurality of name spaces are referred to by the reference query, a plurality of records respectively corresponding to the plurality of name spaces are added to the access source table 300.
 S104:クエリ判断プログラム102は、クエリ分割プログラム104を呼び出す。クエリ判断プログラム102は、クエリ分割プログラム104に、受信した参照クエリを送信する。クエリ分割プログラム104は、キー変換関数テーブル304を参照し、対象名前空間(参照クエリに従い参照される名前空間)と対象キー(参照クエリが指定しているキー)が属するキー範囲とに対応したキー変換関数を特定する。クエリ分割プログラム104は、対象キーを、キー変換関数群112のうちの特定されたキー変換関数を用いて変換する。クエリ分割プログラム104は、変換後のキーを指定したクエリを生成する。なお、S104において、クエリ分割プログラム104は、1つの参照クエリにつき複数のクエリを生成することもある。例えば、参照される名前空間が名前空間「ns1:customer」であり、参照クエリで指定されたキーが090000~110000の場合、090000~100000について、キー変換関数「Salt(5)」が特定され、100001~110000について、キー変換関数「FP」が特定される。この場合、クエリ分割プログラム104は、1つの参照クエリにつき、対象キー100001~110000がSalt(5)により変換されたキーを指定したクエリと、対象キー100001~110000がFPにより変換されたキーを指定したクエリとを生成する。 S104: The query determination program 102 calls the query division program 104. The query determination program 102 transmits the received reference query to the query division program 104. The query division program 104 refers to the key conversion function table 304, and corresponds to the target namespace (namespace referenced according to the reference query) and the key range to which the target key (key specified by the reference query) belongs. Identify the conversion function. The query division program 104 converts the target key using the specified key conversion function in the key conversion function group 112. The query division program 104 generates a query specifying the converted key. In S104, the query division program 104 may generate a plurality of queries for one reference query. For example, if the name space referred to is the namespace “ns1: customer” and the keys specified in the reference query are 090000 to 110000, the key conversion function “Salt (5)” is specified for 090000 to 100000, A key conversion function “FP” is specified for 100001 to 110000. In this case, for each reference query, the query partitioning program 104 specifies a query in which the target keys 100001 to 110000 have been converted by Salt (5) and a key in which the target keys 100001 to 110000 have been converted by FP. Generated queries.
 S106:クエリ分割プログラム104は、生成したクエリをデータベース16に送信する。データベース16は、そのクエリで指定されているキーに対応したデータを抽出する。 S106: The query division program 104 transmits the generated query to the database 16. The database 16 extracts data corresponding to the key specified in the query.
 S108:データベース16は、キー逆変換プログラム108を呼び出す。キー逆変換プログラム108は、データベース16が受信したクエリで指定されている変換後キーを、元来のキーに逆変換する(元来のキーに戻す)。例えば、本実施形態において、FP、Salt及びHashは、全て、追加の文字列を先頭に付与する処理であるから、キー逆変換プログラム108は、その先頭の文字列を排除する処理を、逆変換として実施すればよい。 S108: The database 16 calls the key reverse conversion program 108. The key reverse conversion program 108 reverse-converts the converted key specified in the query received by the database 16 into the original key (returns to the original key). For example, in this embodiment, since FP, Salt, and Hash are all processing that adds an additional character string to the head, the key reverse conversion program 108 performs reverse conversion on the processing that excludes the head character string. It may be implemented as.
 S110:データベース16は、ソートプログラム110を用いて、元来のキーで昇順ソート(又は降順ソート)を実施する。S108とS110は、S104で特定されたキー変換関数によって変換されたキーを逆変換し、検索結果を元来のキーに基づいてソートし直す処理である。データの連続性の回復が必要ない場合、S108及びS110はスキップされてよい。 S110: The database 16 uses the sort program 110 to perform ascending sort (or descending sort) with the original key. S108 and S110 are processes in which the key converted by the key conversion function specified in S104 is inversely converted and the search result is re-sorted based on the original key. If data continuity recovery is not required, S108 and S110 may be skipped.
 S112:データベース16は、検索結果(S106の抽出結果(又は、S110のソート結果))を、クエリ判断プログラム102に送信する。クエリ判断プログラム102は、クエリテーブル302を更新する。具体的には、クエリ判断プログラム102は、参照された名前空間と参照クエリの種類とに対応する発行回数43に1を追加する。参照クエリがScanクエリの場合、クエリ判断プログラム102は、参照された名前空間と参照クエリの種類とに対応する平均スキャン件数44を更新する。 S112: The database 16 transmits the search result (the extraction result of S106 (or the sort result of S110)) to the query determination program 102. The query determination program 102 updates the query table 302. Specifically, the query determination program 102 adds 1 to the issue count 43 corresponding to the referenced name space and the type of the reference query. When the reference query is a Scan query, the query determination program 102 updates the average number of scans 44 corresponding to the referenced namespace and the type of the reference query.
 以上のS102~S112を含んだ処理がデータ参照処理である。クエリ判断プログラム102は、検索結果をクライアント装置6に送信する。 The process including S102 to S112 is the data reference process. The query determination program 102 transmits the search result to the client device 6.
 データ格納処理を、図7及び図9を参照して説明する。 Data storage processing will be described with reference to FIGS.
 S122:クエリ判断プログラム102は、キー変換プログラム106を呼び出す。キー変換プログラム106は、キー変換関数テーブル304を参照し、格納クエリが指定している名前空間と格納クエリが指定しているキーが属するキー範囲とに対応するキー変換関数を特定する。キー変換プログラム106は、指定されているキーを、特定されたキー変換関数を用いて変換する。キー変換プログラム106は、格納対象のデータとそのデータに対応する変換後キーとを格納するクエリを生成する。S104について説明した理由と同様の理由により、1つの格納クエリにつき複数のクエリが生成されることがある。 S122: The query determination program 102 calls the key conversion program 106. The key conversion program 106 refers to the key conversion function table 304 and specifies a key conversion function corresponding to the name space specified by the storage query and the key range to which the key specified by the storage query belongs. The key conversion program 106 converts the specified key using the specified key conversion function. The key conversion program 106 generates a query that stores data to be stored and a post-conversion key corresponding to the data. A plurality of queries may be generated for one stored query for the same reason as described for S104.
 S124:キー変換プログラム106は、生成したクエリをデータベース16に送信する。データベース16は、そのクエリに応答して、データと変換後キーとのセットを、そのクエリで指定されている名前空間に格納する。データベース16は、格納完了をクエリ判断プログラム102に通知する。 S124: The key conversion program 106 transmits the generated query to the database 16. In response to the query, the database 16 stores the set of data and converted key in the namespace specified by the query. The database 16 notifies the query determination program 102 of the completion of storage.
 以上のS122~S124を含んだ処理がデータ格納処理である。クエリ判断プログラム102は、結果をクライアント装置6に送信する。 The processing including the above S122 to S124 is data storage processing. The query determination program 102 transmits the result to the client device 6.
 図7に示すように、データ管理装置1は、データ参照処理及びデータ格納処理に加えて、キー変換関数決定処理を実行する。キー変換関数決定処理は、所定のイベントの発生を契機に開始される。所定のイベントとは、例えば、一定時間が経過した(タイマ20から特定される時刻が所定時刻となった)、受信したクエリの数が所定数を超えた、又は、格納したデータの量が所定量を超えた、のいずれかでよい。関数決定プログラム100は、運用情報(アクセス元テーブル300及びクエリテーブル302)から、データ分散度、アクセス元数及びアクセス頻度を算出する。関数決定プログラム100は、算出されたデータ分散度、アクセス元数及びアクセス頻度に対応するキー変換関数を、キー変換関数決定テーブル306を参照することで決定する。データ管理装置1は、決定したキー変換関数の名称(種類)を、名前空間の名称とキー範囲と対応付けてキー変換関数テーブル304に記録する。 As shown in FIG. 7, the data management device 1 executes a key conversion function determination process in addition to the data reference process and the data storage process. The key conversion function determination process is started when a predetermined event occurs. The predetermined event is, for example, that a certain time has passed (the time specified by the timer 20 has become a predetermined time), the number of received queries exceeds the predetermined number, or the amount of stored data is Any of exceeding the fixed quantity may be sufficient. The function determination program 100 calculates the data distribution, the number of access sources, and the access frequency from the operation information (access source table 300 and query table 302). The function determination program 100 determines a key conversion function corresponding to the calculated data distribution, access source number, and access frequency by referring to the key conversion function determination table 306. The data management device 1 records the determined name (type) of the key conversion function in the key conversion function table 304 in association with the name of the name space and the key range.
 以下、キー変換関数決定処理を詳細に説明する。 Hereinafter, the key conversion function determination process will be described in detail.
 図10は、キー変換関数決定処理のフローを示す。キー変換関数決定処理は、名前空間毎に実施される。以下、1つの名前空間についてのキー変換関数決定処理を例に取る。図10(及び図11)を参照した説明では、その1つの名前空間を、「対象名前空間」と言う。 FIG. 10 shows a flow of key conversion function determination processing. The key conversion function determination process is performed for each name space. Hereinafter, a key conversion function determination process for one name space is taken as an example. In the description with reference to FIG. 10 (and FIG. 11), the one namespace is referred to as “target namespace”.
 S142:関数決定プログラム100は、クエリテーブル302を参照し、対象名前空間に対応した平均スキャン件数を特定する。 S142: The function determination program 100 refers to the query table 302 and identifies the average number of scans corresponding to the target namespace.
 S144:関数決定プログラム100は、データベース16に問合せを出すことにより、データ領域数とシャーディングサイズとを特定する。 S144: The function determination program 100 specifies the number of data areas and the sharding size by issuing a query to the database 16.
 S146:関数決定プログラム100は、アクセス元テーブル300を参照し、対象名前空間に対応したアクセス元数(対象名前空間に対応したアドレス32の数)と、対象名前空間に対応したアクセス頻度(例えば1日当たりの参照クエリ数)とを算出する。 S146: The function determination program 100 refers to the access source table 300, accesses the number of access sources corresponding to the target namespace (the number of addresses 32 corresponding to the target namespace), and the access frequency corresponding to the target namespace (for example, 1 Number of reference queries per day).
 L140:ループ開始である。関数決定プログラム100は、キー変換関数群112に含まれる各キー変換関数について、ループ終端L142までの処理を繰り返す。各ループにおいて、参照されるキー変換関数を「関数F」とする。 L140: Loop start. The function determination program 100 repeats the process up to the loop end L142 for each key conversion function included in the key conversion function group 112. In each loop, the key conversion function referred to is “function F”.
 S150:関数決定プログラム100は、Fについて、S142で特定された平均スキャン件数と、S144で特定されたデータ領域数及びシャーディングサイズとを用いて、データ分散度を算出する。データ分散度の算出方法の詳細は、上述した通りである。
S152:関数決定プログラム100は、キー変換関数決定テーブル306を参照し、S150で算出されたデータ分散度、S146で算出されたアクセス元数及びアクセス頻度に対応するキー変換関数を特定する。ここで特定されたキー変換関数を「関数f」と表記する。
S150: The function determination program 100 calculates the data distribution for F using the average number of scans specified in S142, the number of data areas specified in S144, and the sharding size. The details of the data distribution calculation method are as described above.
S152: The function determination program 100 refers to the key conversion function determination table 306, and specifies a key conversion function corresponding to the data distribution calculated in S150, the number of access sources calculated in S146, and the access frequency. The key conversion function specified here is expressed as “function f”.
 C140:関数決定プログラム100は、関数F=関数fか否かを判断する。
S154:C140の判断結果が真の場合、関数決定プログラム100は、F(Fの名称)を候補リストに登録する。候補リストとは、キー変換関数候補(一時的に決定されたキー変換関数)の名称のリストである。候補リストの中から、対象名前空間について、キー変換関数が決定される。
C140: The function determination program 100 determines whether function F = function f.
S154: When the determination result of C140 is true, the function determination program 100 registers F (the name of F) in the candidate list. The candidate list is a list of names of key conversion function candidates (temporarily determined key conversion functions). A key conversion function is determined for the target namespace from the candidate list.
 L142:ループ終了である。 L142: Loop end.
 C142:関数決定プログラム100は、候補リストを参照し、K(キー変換関数候補の数)を判断する。 C142: The function determination program 100 refers to the candidate list and determines K (number of key conversion function candidates).
 K=0の場合、関数決定プログラム100は、対象名前空間についてのキー変換関数決定処理を終了する。 When K = 0, the function determination program 100 ends the key conversion function determination process for the target namespace.
 K=1の場合、関数決定プログラム100は、キー変換関数テーブル304を更新する(S156)。具体的には、関数決定プログラム100は、候補リストが表すキー変換関数が、対象名前空間についての最新のキー変換関数(キー範囲の末尾キーが「null」に対応したキー変換関数)と異なっていれば、候補リストが表すキー変換関数と対象名前空間及びキー範囲との対応付けをキー変換関数テーブル304に記録する。詳細には、関数決定プログラム100は、対象名前空間についての最新のキー変換関数に対応したキー範囲を確定し(末尾キーが「null」を最大のキーに変更し)、且つ、新たなキー範囲(先頭キー及び末尾キーがそれぞれ「null」)と、候補リストが表すキー変換関数との対応付けをキー変換関数テーブル304に記録する。新たなデータ及びそのデータに紐付けられたキーが対象名前空間に格納された場合に、その新たなキー範囲の先頭キーが、その紐付けられたキーとされる。 When K = 1, the function determination program 100 updates the key conversion function table 304 (S156). Specifically, in the function determination program 100, the key conversion function represented by the candidate list is different from the latest key conversion function for the target namespace (the key conversion function corresponding to the end key of the key range “null”). Then, the association between the key conversion function represented by the candidate list, the target namespace, and the key range is recorded in the key conversion function table 304. Specifically, the function determination program 100 determines a key range corresponding to the latest key conversion function for the target namespace (changes the last key from “null” to the largest key), and a new key range. (The first key and the last key are “null”, respectively) and the key conversion function indicated by the candidate list are recorded in the key conversion function table 304. When new data and a key associated with the data are stored in the target namespace, the first key in the new key range is used as the associated key.
 K=2以上の場合、関数決定プログラム100は、キー変換関数絞込み処理を実施する(P2)。これにより、2以上のキー変換関数候補が1つに絞り込まれる。関数決定プログラム100は、その1つに絞り込まれたキー変換関数について、上述したS156が行われる。 When K = 2 or more, the function determination program 100 performs key conversion function narrowing processing (P2). Thereby, two or more key conversion function candidates are narrowed down to one. The function determination program 100 performs the above-described S156 for the key conversion functions narrowed down to one of them.
 上述したように、候補リストに記録されているキー変換関数(名称)の数が2以上であることもある。具体的には、上述したように、FPについて採用されるデータ分散度算出方法と、Salt(及びHash)について採用されるデータ分散度算出方法は異なる。故に、対象名前空間について異なるデータ分散度が算出されることになる。結果として、アクセス元数及びアクセス頻度のセットが同じであっても、キー変換関数決定テーブル306から異なる複数のキー変換関数(関数f)が特定されることがある。この場合、候補リストに、2以上のキー変換関数候補(名称)が登録され得る。 As described above, the number of key conversion functions (names) recorded in the candidate list may be two or more. Specifically, as described above, the data distribution calculation method employed for FP is different from the data distribution calculation method employed for Salt (and Hash). Therefore, different data distribution degrees are calculated for the target namespace. As a result, a plurality of different key conversion functions (function f) may be identified from the key conversion function determination table 306 even if the access source number and the access frequency set are the same. In this case, two or more key conversion function candidates (names) can be registered in the candidate list.
 関数決定プログラム100は、2以上のキー変換関数候補のうちの任意の1つのキー変換関数を選択してもよいが、本実施形態では、上述したように、キー変換関数絞込み処理を実施することにより、2以上のキー変換関数候補を1つに絞り込む。 The function determination program 100 may select any one of the two or more key conversion function candidates, but in the present embodiment, the key conversion function narrowing process is performed as described above. Thus, two or more key conversion function candidates are narrowed down to one.
 図11は、キー変換関数絞込み処理のフローを示す。 FIG. 11 shows a flow of the key conversion function narrowing process.
 キー変換関数絞込み処理は、データ分散度(S150で算出)、アクセス元数(S146で算出)及びアクセス頻度(S146で算出)のうちの少なくとも1つが該当する範囲(データ分散度61、アドレス数621又はアクセス頻度622)が変化したとしても、選択されるキー変換関数が変わらない可能性が最も高いと判断されたキー変換関数を2以上のキー変換関数候補から選択する処理である。具体的には、下記の通りである。 The key conversion function narrowing-down process is performed in a range (data distribution 61, address 621) corresponding to at least one of the data distribution (calculated in S150), the number of access sources (calculated in S146), and the access frequency (calculated in S146). Alternatively, even if the access frequency 622) is changed, the key conversion function determined to have the highest possibility that the selected key conversion function does not change is selected from two or more key conversion function candidates. Specifically, it is as follows.
 L160:ループ開始である。関数決定プログラム100は、候補リストが表す各キー変換関数候補について、ループ終端L162までの処理を繰り返す。各ループにおいて、参照されるキー変換関数候補を「関数f」とする。ループは、下記の通りである。 L160: Loop start. The function determination program 100 repeats the process up to the loop end L162 for each key conversion function candidate represented by the candidate list. In each loop, a key conversion function candidate to be referred to is “function f”. The loop is as follows.
 S162:関数決定プログラム100は、S150で算出されたデータ分散度に該当するデータ分散度61と異なるデータ分散度61と、S146で算出されたアクセス元数及びS146で算出されたアクセス頻度にそれぞれ該当するアドレス数621及びアクセス頻度622とに対応するキー変換関数を、キー変換関数決定テーブル306から特定する。特定されたキー変換関数を、「関数f1」とする。 S162: The function determination program 100 corresponds to the data distribution 61 different from the data distribution 61 corresponding to the data distribution calculated in S150, the access source number calculated in S146, and the access frequency calculated in S146. The key conversion function corresponding to the address number 621 and the access frequency 622 is specified from the key conversion function determination table 306. The identified key conversion function is defined as “function f1”.
 S164:関数決定プログラム100は、S146で算出されたアクセス元数に該当するアドレス数621と異なるアドレス数621と、S150で算出されたデータ分散度及びS146で算出されたアクセス頻度にそれぞれ該当するデータ分散度61及びアクセス頻度622とに対応するキー変換関数を、キー変換関数決定テーブル306から特定する。特定されたキー変換関数を、「関数f2」とする。 S164: The function determination program 100 sets the address number 621 different from the address number 621 corresponding to the access source number calculated in S146, the data distribution calculated in S150, and the data corresponding to the access frequency calculated in S146. A key conversion function corresponding to the degree of distribution 61 and the access frequency 622 is specified from the key conversion function determination table 306. The identified key conversion function is defined as “function f2.”
 S166:関数決定プログラム100は、S146で算出されたアクセス頻度に該当するアクセス頻度622と異なるアクセス頻度622と、S150で算出されたデータ分散度及びS146で算出されたアクセス元数にそれぞれ該当するデータ分散度61及びアドレス数621とに対応するキー変換関数を、キー変換関数決定テーブル306から特定する。特定されたキー変換関数を、「関数f3」とする。 S166: The function determination program 100 sets the access frequency 622 different from the access frequency 622 corresponding to the access frequency calculated in S146, the data distribution calculated in S150, and the data corresponding to the access source number calculated in S146. A key conversion function corresponding to the degree of distribution 61 and the address number 621 is specified from the key conversion function determination table 306. The identified key conversion function is defined as “function f3”.
 S168:関数決定プログラム100は、関数f1、f2及びf3のうちの幾つが関数fと合致するかを判断し、判断された数(合致数)を、例えば、関数f(名称)と紐付けて所定領域(例えば候補リスト)に登録する。 S168: The function determination program 100 determines how many of the functions f1, f2, and f3 match the function f, and associates the determined number (matching number) with, for example, the function f (name). Register in a predetermined area (for example, candidate list).
 L162:ループ終了である。 L162: Loop end.
 以上のL160-162の具体例は、次の通りである。算出されたデータ分散度=0.3、算出されたアクセス元数=5、及び算出されたアクセス頻度=5アクセス/日であったとする。この場合、図6の例によれば、該当するデータ分散度61=「0.5以下」、アドレス数621=「10以下」、及びアクセス頻度622=「10アクセス/日以下」である。従って、関数f=Saltである。S162では、該当するデータ分散度61、アドレス数621及びアクセス頻度622のうち、データ分散度61のみ「0.5以上」と仮定される。このため、関数f1=Saltが得られる。同様にして、S164では、関数f2=FPが得られ、S166では、関数f3=FPが得られる。関数f=Saltのため、S168で得られる合致数=1である。 Specific examples of the above L160-162 are as follows. Assume that the calculated data distribution degree = 0.3, the calculated number of access sources = 5, and the calculated access frequency = 5 accesses / day. In this case, according to the example of FIG. 6, the corresponding data distribution 61 = “0.5 or less”, the number of addresses 621 = “10 or less”, and the access frequency 622 = “10 accesses / day or less”. Therefore, the function f = Salt. In S162, it is assumed that only the data distribution 61 is “0.5 or more” among the corresponding data distribution 61, the number of addresses 621, and the access frequency 622. Therefore, the function f1 = Salt is obtained. Similarly, in S164, the function f2 = FP is obtained, and in S166, the function f3 = FP is obtained. Since the function f = Salt, the number of matches obtained in S168 = 1.
 S170:関数決定プログラム100は、2以上の関数f(候補リストが表す2以上のキー変換関数候補)のうち、合致数が最も大きい関数fを選択する。合致数が最も大きい関数fが複数存在する場合、その複数の関数fのうちの任意の関数fが選択されてよい。 S170: The function determination program 100 selects the function f having the largest number of matches among the two or more functions f (two or more key conversion function candidates represented by the candidate list). When there are a plurality of functions f having the largest number of matches, an arbitrary function f among the plurality of functions f may be selected.
 以上のキー変換関数絞込み処理により、2以上のキー変換関数候補が1つに絞り込まれる。 By the above key conversion function narrowing process, two or more key conversion function candidates are narrowed down to one.
 つまり、キー変換関数絞込み処理では、関数決定プログラム100は、算出されたデータ分散度、アクセス元数及びアクセス頻度のうちの各々について、該当する範囲が間違っていたと仮定して、キー変換関数決定テーブル306からキー変換関数を特定する。そのようにして特定されたキー変換関数と関数fとの合致率が高いほど、その関数fが、算出されたデータ分散度、アクセス元数及びアクセス頻度に最適なキー変換関数である可能性が高いと考えられる。 That is, in the key conversion function narrowing-down process, the function determination program 100 assumes that the corresponding range is incorrect for each of the calculated data distribution, the number of access sources, and the access frequency. A key conversion function is specified from 306. The higher the matching rate between the key conversion function thus identified and the function f, the more likely that the function f is the key conversion function that is most suitable for the calculated data distribution, the number of access sources, and the access frequency. It is considered high.
 さて、キー変換関数決定テーブル306は、手動と自動のいずれの方法でも調整(更新)できる。つまり、本実施形態では、キー変換関数決定テーブル306の手動調整(設定)と自動調整(更新)のうちの少なくとも1つが行われてよい。例えば、以下の通りである。 The key conversion function determination table 306 can be adjusted (updated) either manually or automatically. That is, in this embodiment, at least one of manual adjustment (setting) and automatic adjustment (update) of the key conversion function determination table 306 may be performed. For example, it is as follows.
 <キー変換関数決定テーブル306の自動調整> <Automatic adjustment of key conversion function determination table 306>
 データ空間159に格納されたデータの状態と及びキー変換関数決定テーブル306の設定値によっては、キー変換関数絞込み処理がキー変換関数決定処理の都度に実施され得る。 Depending on the state of data stored in the data space 159 and the setting value of the key conversion function determination table 306, the key conversion function narrowing-down process can be performed every time the key conversion function determination process is performed.
 そこで、キー変換関数決定処理において、関数決定プログラム100は、S156において、キー変換関数テーブル304の更新に加えて、キー変換関数決定テーブル306を更新してよい。 Therefore, in the key conversion function determination process, the function determination program 100 may update the key conversion function determination table 306 in addition to the update of the key conversion function table 304 in S156.
 具体的には、例えば、キー変換関数絞込み処理において、Saltのデータ分散度が0.6、FPのデータ分散度が0.3であったとする。また、アクセス元数が20、アクセス頻度は5アクセス/日であったとする。 Specifically, for example, in the key conversion function narrowing process, it is assumed that the salt data variance is 0.6 and the FP data variance is 0.3. Also assume that the number of access sources is 20, and the access frequency is 5 accesses / day.
 この仮定に基づけば、C142に投入されるキー関数候補fは、SaltとFPの2つであり、故に、キー変換関数絞込み処理が実施されることになる。 Based on this assumption, there are two key function candidates f input to C142, Salt and FP. Therefore, the key conversion function narrowing-down process is performed.
 そのキー変換関数絞込み処理におけるS162、S164及びS166を、Salt及びFPの各々について当てはめると次の通りである。すなわち、関数f=Saltの場合、関数f1=FP、関数f2=Salt、関数f3=FPとなり、故に合致数=1である。関数f=FPの場合、関数f1=Salt、関数f2=Salt、関数f3=Hashとなり、故に合致数=0である。 When S162, S164, and S166 in the key conversion function narrowing process are applied to each of Salt and FP, they are as follows. That is, when the function f = Salt, the function f1 = FP, the function f2 = Salt, and the function f3 = FP, and therefore the number of matches = 1. In the case of the function f = FP, the function f1 = Salt, the function f2 = Salt, and the function f3 = Hash, so that the number of matches = 0.
 このキー変換関数絞込み処理の結果によれば、FPよりもSaltの方が、ロバスト性の高いアルゴリズムである。 According to the result of this key conversion function narrowing-down process, Salt is a more robust algorithm than FP.
 さて、仮にデータ分散度の境界値が0.3以下であったなら、S152、C140及びS154でFPが選出されることがなく、Saltのみが候補リストに登録されていたはずである。 Now, if the boundary value of the data distribution is 0.3 or less, FP is not selected in S152, C140, and S154, and only Salt should have been registered in the candidate list.
 そこで、関数決定プログラム100は、S156において、キー変換関数絞込み処理の結果に基づき、キー変換関数決定テーブル306を更新する。具体的には、関数決定プログラム100は、データ分散度61、アドレス数621及びアクセス頻度622の少なくとも1つについての境界値を、現在の境界値と、算出された値(データ分散度、アクセス元数又はアクセス頻度)とのうちの少なくとも1つに基づき、追加、変更又は削除する。上述の具体例に基づけば、関数決定プログラム100は、データ分散度の境界値を、「0.5」から、上記算出されたデータ分散度「0.3」に変更する。変更後の境界値は、算出されたデータ分散度「0.3」に代えて、変更前の境界値「0.5」と算出されたデータ分散度「0.3」との平均値「0.4」が採用されてもよい。 Therefore, the function determination program 100 updates the key conversion function determination table 306 in S156 based on the result of the key conversion function narrowing process. Specifically, the function determination program 100 sets the boundary value for at least one of the data distribution 61, the address number 621, and the access frequency 622 as the current boundary value and the calculated value (data distribution, access source Number, access frequency) or the like. Based on the above specific example, the function determination program 100 changes the boundary value of the data dispersion degree from “0.5” to the calculated data dispersion degree “0.3”. The boundary value after the change is an average value “0” of the boundary value “0.5” before the change and the calculated data dispersion degree “0.3” instead of the calculated data dispersion degree “0.3”. .4 "may be employed.
 <キー変換関数決定テーブル306の手動調整> <Manual adjustment of key conversion function determination table 306>
 例えば図12に示す設定画面(例えばGUI(Graphical User Interface))経由で、管理者がキー変換関数決定テーブル306を設定又は調整できる。設定画面は、例えば、データ管理装置1が有する表示デバイス(図示せず)、又は、データ管理装置1にネットワーク4経由で接続されている保守装置(図示せず)が有する表示デバイスに表示されてよい。保守装置は、管理者が使用する計算機の一例である。クライアント装置6が保守装置を兼用してもよい。 For example, the administrator can set or adjust the key conversion function determination table 306 via a setting screen (for example, GUI (Graphical User Interface)) shown in FIG. The setting screen is displayed on, for example, a display device (not shown) included in the data management apparatus 1 or a display device included in a maintenance apparatus (not shown) connected to the data management apparatus 1 via the network 4. Good. The maintenance device is an example of a computer used by an administrator. The client device 6 may also serve as a maintenance device.
 図12の設定画面70は、例えばWebブラウザの画面でよい。設定画面70には、キー変換関数決定テーブル306と同じ内容のテーブル1201と、キー変換関数テーブル304と同じ内容のテーブル1202のうちの少なくともテーブル1201が表示される。設定画面70の情報(表示用の情報)は、関数決定プログラム100により提供されてよい。 12 may be a web browser screen, for example. The setting screen 70 displays at least a table 1201 of a table 1201 having the same contents as the key conversion function determination table 306 and a table 1202 having the same contents as the key conversion function table 304. Information on the setting screen 70 (information for display) may be provided by the function determination program 100.
 テーブル1201には、データ分散度、アドレス数及びアクセス頻度のうちの少なくとも1つの境界値について、上下ボタン72のような、境界値変更用のUI(User Interface)が設けられている。そのUIを使用して、管理者は、境界値を所望の値に変更できる。 The table 1201 is provided with a UI (User Interface) for changing the boundary value, such as the up / down button 72, for at least one boundary value among the data distribution degree, the number of addresses, and the access frequency. Using the UI, the administrator can change the boundary value to a desired value.
 また、テーブル1201には、データ分散度、アドレス数及びアクセス頻度のうちの少なくとも1つの境界値について、ボタン74のような、境界値追加用のUIが設けられている。そのUIを使用して、管理者は、境界値を追加できる。 Also, the table 1201 is provided with a boundary value addition UI such as a button 74 for at least one boundary value among the data distribution degree, the number of addresses, and the access frequency. Using that UI, the administrator can add boundary values.
 設定画面70には、キー変換関数決定処理の開始契機用のUI76が表示される。そのUI76を用いて、キー変換関数決定処理の開始契機として、タイマ20の起動間隔や、格納されたレコード数(キーデータペアの数)を、入力することができる。 The setting screen 70 displays a UI 76 for starting the key conversion function determination process. Using the UI 76, the start interval of the timer 20 and the number of stored records (number of key data pairs) can be input as a trigger for starting the key conversion function determination process.
 テーブル1201及び1202のうちの少なくとも1つに、プルダウンボタン78のような、キー変換関数の変更用のUIが設けられている。そのUIを用いて、管理者は、キー変換関数決定テーブル306又はキー変換関数テーブル304に登録されているキー変換関数を別のキー変換関数に変更できる。所望のキー変換関数がキー変換関数群112に無い場合、そのUIを用いて、新たなキー変換関数がデータ管理装置1にアップロードされ、管理者が指定したキー変換関数が、その新たなキー変換関数に差し替えられてよい。 At least one of the tables 1201 and 1202 is provided with a UI for changing a key conversion function, such as a pull-down button 78. Using the UI, the administrator can change the key conversion function registered in the key conversion function determination table 306 or the key conversion function table 304 to another key conversion function. If the desired key conversion function does not exist in the key conversion function group 112, a new key conversion function is uploaded to the data management apparatus 1 using the UI, and the key conversion function designated by the administrator is the new key conversion function. May be replaced with a function.
 完了ボタン82のような設定完了用のUIが使用されることで、設定画面70に表示されている変更後の境界値やキー変換関数がテーブル306又は304に反映される。 By using a setting completion UI such as the completion button 82, the changed boundary value and key conversion function displayed on the setting screen 70 are reflected in the table 306 or 304.
 以上、一実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実行することが可能である。 As mentioned above, although one embodiment was described, this is an illustration for explaining the present invention, and the scope of the present invention is not limited to this embodiment. The present invention can be implemented in various other forms.
 例えば、本発明が適用されるアーキテクチャは限定されない。具体的には、例えば、本発明は、マスタスレーブ型(例えばHBase)及びP2P(Peer To Peer)(例えば、Cassandra)のいずれにも適用可能である。 For example, the architecture to which the present invention is applied is not limited. Specifically, for example, the present invention can be applied to both a master-slave type (for example, HBase) and a P2P (Peer To Peer) (for example, Cassandra).
 また、本発明は、非構造化データのデータベースに代えて又は加えて、構造化データのデータベースが採用されても、適用可能である。 Further, the present invention can be applied even when a structured data database is employed instead of or in addition to the unstructured data database.
 また、データ基盤(データ管理システム)は、データ管理装置1それ自体(1台のデータ管理装置1)であってもよいし、複数台のデータ管理装置1であってもよい。後者の場合、複数台のデータ管理装置1が有する複数のプロセッサ10が、プロセッサユニットの一例であり、複数台のデータ管理装置1が有する複数のメモリ12が、メモリユニットの一例であり、複数台のデータ管理装置1が有する複数の通信インターフェース14が、インターフェースユニットの一例である。1又は複数のデータベース16が、データベースユニットの一例である。 Also, the data infrastructure (data management system) may be the data management device 1 itself (one data management device 1) or a plurality of data management devices 1. In the latter case, the plurality of processors 10 included in the plurality of data management apparatuses 1 are examples of processor units, and the plurality of memories 12 included in the plurality of data management apparatuses 1 are examples of memory units. The plurality of communication interfaces 14 included in the data management apparatus 1 is an example of an interface unit. One or a plurality of databases 16 is an example of a database unit.
 また、例えば、関数決定プログラム100は、図10のキー変換関数決定処理において対象名前空間に適用されるキー変換関数が変更された場合、対象名前空間についてこれまで適用されていた1以上のキー変換関数に従い変換されているキーを、最新のキー変換関数(変更後のキー変化関数)に従い変換されたキーに統一してよい。例えば図13に示すように、関数決定プログラム100は、対象名前空間「ns1:customer」に適用されるキー変換関数を「Hash」に変更した場合、対象名前空間「ns1:customer」内の全てのキー(これまでのキー変換関数「Salt(5)」及び「FP」に従い変換されたキー)を、最新のキー変換関数「Hash」に従うキーに変更してよい。より具体的には、対象名前空間「ns1:customer」のキー範囲毎に、下記が行われてよい。1つのキー範囲を例に取る(以下、「対象キー範囲」と言う)。
・関数決定プログラム100は、キー逆変換プログラム108を呼び出す。キー逆変換プログラム108が、対象名前空間「ns1:customer」から、対象キー範囲に属する全てのキーを読み出し、各キーを、そのキー範囲に対応したキー変換関数を基に逆変換する。
・関数決定プログラム100は、キー変換プログラム106を呼び出す。キー変換プログラム106が、対象キー範囲に属する全てのキーの各々を、最新のキー変換関数を「Hash」に従い変換し、変換後のキーを、対象名前空間「ns1:customer」又は新たな名前空間に格納する。新たな名前空間は、関数決定プログラム100又は他のプログラムにより作成された名前空間でよい。新たな名前空間が採用された場合、新たな名前空間が対象名前空間「ns1:customer」とされ、既存の対象名前空間「ns1:customer」は退避(バックアップ)されてよい。
Further, for example, when the key conversion function applied to the target namespace is changed in the key conversion function determination process of FIG. 10, the function determination program 100 has one or more key conversions that have been applied to the target namespace so far. The key converted according to the function may be unified with the key converted according to the latest key conversion function (key change function after change). For example, as illustrated in FIG. 13, when the key conversion function applied to the target namespace “ns1: customer” is changed to “Hash”, the function determination program 100 changes all of the target namespace “ns1: customer”. The key (the key converted according to the key conversion functions “Salt (5)” and “FP” so far) may be changed to a key according to the latest key conversion function “Hash”. More specifically, the following may be performed for each key range of the target namespace “ns1: customer”. Take one key range as an example (hereinafter referred to as “target key range”).
The function determination program 100 calls the key reverse conversion program 108. The key reverse conversion program 108 reads all the keys belonging to the target key range from the target namespace “ns1: customer”, and performs reverse conversion of each key based on the key conversion function corresponding to the key range.
The function determination program 100 calls the key conversion program 106. The key conversion program 106 converts all the keys belonging to the target key range according to the latest key conversion function “Hash”, and converts the converted key into the target namespace “ns1: customer” or a new namespace. To store. The new name space may be a name space created by the function determination program 100 or another program. When a new name space is employed, the new name space may be the target namespace “ns1: customer”, and the existing target namespace “ns1: customer” may be saved (backed up).
1:データ管理装置 1: Data management device

Claims (15)

  1.  1以上のインターフェースデバイスであるインターフェースユニットと、
     1以上のメモリ及び1以上の記憶デバイスのうちの少なくとも1つであるメモリユニットと、
     前記インターフェースユニット及び前記メモリユニットに接続され1以上のプロセッサであるプロセッサユニットと
    を備え、
     前記メモリユニットは、データベースユニットにおける複数のアクセス範囲の各々について複数のキー変換方法のうちの適用されたキー変換方法を表す情報であるキー変換方法情報を記憶し、
     前記データベースユニットは、1以上のキーデータペアユニットが格納される複数のデータ領域を有する1以上のデータベースであり、
     前記1以上のキーデータペアユニットの各々は、1以上のキーデータペアであり、
     前記1以上のキーデータペアの各々は、キーとデータとのペアであり、
     前記複数のアクセス範囲の各々は、キーデータペアユニットとそのキーデータペアユニットのキー範囲とのセットに従う範囲であり、
     前記プロセッサユニットは、前記インターフェースユニットを通じてクエリを受信し、前記クエリに応答して前記データベースユニットに対するデータ参照処理又はデータ格納処理を行い、前記インターフェースユニットを通じて前記クエリの結果を返し、
     前記データ参照処理及び前記データ格納処理の各々では、前記プロセッサユニットが、その処理でのアクセス範囲に対応したキー変換方法を前記キー変換方法情報から特定し、特定されたキー変換方法を使用し、
     前記プロセッサユニットは、キー変換方法決定処理を実行し
     前記キー変換方法決定処理において、前記プロセッサユニットは、前記1以上のキーデータペアユニットの各々について、
      (A)そのキーデータペアユニットについてのアクセス状況が属するアクセスパタンに適したキー変換方法を前記複数のキー変換方法から選択し、
      (B)前記選択したキー変換方法と、そのキーデータペアユニットとそのキーデータペアユニットについてのキー範囲とに従うアクセス範囲との対応付けを前記キー変換方法情報に記録する、
    データ管理システム。
    An interface unit that is one or more interface devices;
    A memory unit that is at least one of one or more memories and one or more storage devices;
    A processor unit that is connected to the interface unit and the memory unit and is one or more processors;
    The memory unit stores key conversion method information which is information representing a key conversion method applied among a plurality of key conversion methods for each of a plurality of access ranges in the database unit;
    The database unit is one or more databases having a plurality of data areas in which one or more key data pair units are stored,
    Each of the one or more key data pair units is one or more key data pairs;
    Each of the one or more key data pairs is a key and data pair;
    Each of the plurality of access ranges is a range according to a set of a key data pair unit and a key range of the key data pair unit,
    The processor unit receives a query through the interface unit, performs a data reference process or a data storage process on the database unit in response to the query, and returns a result of the query through the interface unit;
    In each of the data reference process and the data storage process, the processor unit specifies a key conversion method corresponding to an access range in the process from the key conversion method information, and uses the specified key conversion method.
    The processor unit executes a key conversion method determination process. In the key conversion method determination process, the processor unit is configured for each of the one or more key data pair units.
    (A) A key conversion method suitable for the access pattern to which the access status of the key data pair unit belongs is selected from the plurality of key conversion methods,
    (B) The association between the selected key conversion method and the access range according to the key data pair unit and the key range for the key data pair unit is recorded in the key conversion method information.
    Data management system.
  2.  前記1以上のキーデータペアユニットの各々についてのアクセス状況は、
      そのキーデータペアユニットのアクセス元の数であるアクセス元数と、
      そのキーデータペアユニットが参照元とされた参照クエリを受信した頻度である参照頻度と、
      そのキーデータペアユニットが参照元とされたクエリにより参照されたデータの件数である参照データ件数と
    のうちの少なくとも1つである、
    請求項1記載のデータ管理システム。
    The access status for each of the one or more key data pair units is:
    The number of access sources that is the number of access sources of the key data pair unit,
    A reference frequency, which is the frequency with which the key data pair unit has received a reference query that is referred to as a reference source,
    The key data pair unit is at least one of the reference data number that is the number of data referenced by the query that is the reference source,
    The data management system according to claim 1.
  3.  前記1以上のキーデータペアユニットの各々は、名前空間である、
    請求項1記載のデータ管理システム。
    Each of the one or more key data pair units is a namespace.
    The data management system according to claim 1.
  4.  前記プロセッサユニットは、
      前記インターフェースユニットを通じて、前記複数のキー変換方法に対して追加されるキー変換方法のアップロードを受け付け、
      前記受け付けたキー変換方法を前記複数のキー変換方法に追加する、
    請求項1記載のデータ管理システム。
    The processor unit is
    Accepting an upload of a key conversion method added to the plurality of key conversion methods through the interface unit;
    Adding the accepted key conversion method to the plurality of key conversion methods;
    The data management system according to claim 1.
  5.  (A)で選択されたキー変換方法である第1キー変換方法と、キーデータペアユニットについての最新のキー変換方法である第2キー変換方法とが異なっていれば、(B)において、前記プロセッサユニットは、
      (b1)前記第1キー変換方法に対応したキー範囲を確定し、
      (b2)新たなキー範囲と前記第2キー変換方法との対応付けを前記キー変換方法情報に記録する、
    請求項1記載のデータ管理システム。
    If the first key conversion method that is the key conversion method selected in (A) and the second key conversion method that is the latest key conversion method for the key data pair unit are different, in (B), The processor unit
    (B1) Determine a key range corresponding to the first key conversion method,
    (B2) recording a correspondence between the new key range and the second key conversion method in the key conversion method information;
    The data management system according to claim 1.
  6.  前記プロセッサユニットは、定期的に、或いは、前記データベースユニットに一定量又は一定数のキーデータペアが格納される都度に、前記キー変換方法決定処理を実行する、
    請求項1記載のデータ管理システム。
    The processor unit executes the key conversion method determination process periodically or whenever a fixed amount or a fixed number of key data pairs are stored in the database unit.
    The data management system according to claim 1.
  7.  (A)で選択されたキー変換方法である第1キー変換方法と、キーデータペアユニットについての最新のキー変換方法である第2キー変換方法とが異なっていれば、前記プロセッサユニットは、
      そのキーデータペアユニット内の、前記第2キー変換方法で変換されている全てのキーを、前記第1キー変換方法で変換されたキーに変更し、
      そのキーデータペアユニットに対応付けられている前記第2キー変換方法を前記第1キー変換方法に変更する、
    請求項1記載のデータ管理システム。
    If the first key conversion method that is the key conversion method selected in (A) is different from the second key conversion method that is the latest key conversion method for the key data pair unit, the processor unit
    Change all the keys converted by the second key conversion method in the key data pair unit to keys converted by the first key conversion method,
    Changing the second key conversion method associated with the key data pair unit to the first key conversion method;
    The data management system according to claim 1.
  8.  (A)において、そのキーデータペアユニットについてのアクセス状況が属するアクセスパタンに適した2以上のキー変換方法が存在する場合、前記プロセッサユニットは、そのキーデータペアユニットのアクセス状況に属するアクセスパタンのうちの一部が違っていても同じである可能性が最も高いキー変換方法を選択するキー変換方法絞込み処理を実行する、
    請求項1記載のデータ管理システム。
    In (A), when there are two or more key conversion methods suitable for the access pattern to which the access status of the key data pair unit belongs, the processor unit can select an access pattern belonging to the access status of the key data pair unit. Even if some of them are different, select the key conversion method that is most likely to be the same.
    The data management system according to claim 1.
  9.  前記プロセッサユニットは、前記キー変換方法絞込み処理の結果に基づき、複数のアクセスパタンの少なくとも1つを調整する、
    請求項8記載のデータ管理システム。
    The processor unit adjusts at least one of a plurality of access patterns based on a result of the key conversion method narrowing-down process;
    The data management system according to claim 8.
  10.  (A)において、前記プロセッサユニットは、複数のアクセスパタンのうち前記アクセス状況が属するアクセスパタンに適したキー変換方法を選択し、
     前記複数のアクセスパタンの各々は、データ分散度の範囲、アクセス元数の範囲、参照頻度の範囲とのうちの少なくとも1つで構成され、
     前記データ分散度は、データ領域1個あたりに存在する参照キーデータペアユニットの数であり、前記参照データ件数とデータ領域数とに基づく数であり、
     前記参照キーデータペアユニットは、参照されるキーデータペアユニットである、
    請求項2記載のデータ管理システム。
    In (A), the processor unit selects a key conversion method suitable for an access pattern to which the access status belongs among a plurality of access patterns,
    Each of the plurality of access patterns includes at least one of a data distribution range, an access source number range, and a reference frequency range,
    The data distribution is the number of reference key data pair units that exist per data area, and is a number based on the number of reference data and the number of data areas,
    The reference key data pair unit is a key data pair unit to be referred to.
    The data management system according to claim 2.
  11.  (A)において、前記プロセッサユニットは、前記複数のキー変換方法の各々について、そのキー変換方法(F)に対応した算出方法にてデータ分散度を算出し、その算出されたデータ分散度と前記アクセス状況とに属するアクセスパタンに対応したキー変換方法(f)を特定し、且つ、キー変換方法(F)がキー変換方法(f)に合致した場合にそのキー変換方法(F)をキー変換方法候補とし、
     前記キー変換方法候補が1つであれば、(A)において、前記プロセッサユニットは、そのキー変換方法を選択する、
    請求項10記載のデータ管理システム。
    In (A), the processor unit calculates a data distribution degree for each of the plurality of key conversion methods by a calculation method corresponding to the key conversion method (F), and the calculated data distribution degree and the The key conversion method (f) corresponding to the access pattern belonging to the access status is specified, and when the key conversion method (F) matches the key conversion method (f), the key conversion method (F) is converted to the key conversion method. As a method candidate,
    If there is one key conversion method candidate, in (A), the processor unit selects the key conversion method.
    The data management system according to claim 10.
  12.  前記キー変換方法候補が複数であれば、(A)において、前記プロセッサユニットは、キー変換方法絞込み処理を実行し、
     前記キー変換方法絞込み処理において、前記プロセッサユニットは、前記複数のキー変換方法候補(f)の各々について、そのキー変換方法(f)についてのデータ分散度が属する範囲と別の範囲を含んだアクセスパタンに対応するキー変換方法と、前記アクセス状況におけるアクセス元数が属する範囲と別の範囲を含んだアクセスパタンに対応するキー変換方法と、前記アクセス状況における参照頻度が属する範囲と別の範囲を含んだアクセスパタンに対応するキー変換方法とのうちの少なくとも1つを特定し、
     (A)において、前記プロセッサユニットは、前記複数のキー変換方法候補(f)のうち、前記特定されたキー変換関数と最も多く合致したキー変換方法候補(f)を選択する、
    請求項11記載のデータ管理システム。
    If there are a plurality of key conversion method candidates, in (A), the processor unit executes a key conversion method narrowing-down process,
    In the key conversion method narrowing-down process, the processor unit accesses each of the plurality of key conversion method candidates (f) including a range different from a range to which the data distribution degree for the key conversion method (f) belongs. A key conversion method corresponding to a pattern, a key conversion method corresponding to an access pattern including a range different from the range to which the access source number belongs in the access situation, and a range different from the range to which the reference frequency belongs in the access situation. Identifying at least one of the key conversion methods corresponding to the included access pattern;
    In (A), the processor unit selects a key conversion method candidate (f) that most closely matches the identified key conversion function among the plurality of key conversion method candidates (f).
    The data management system according to claim 11.
  13.  前記プロセッサユニットは、前記キー変換方法絞込み処理において参照された下記(x1)~(x3)、
    (x1)前記選択されたキー変換方法候補(f)についてのデータ分散度、
    (x2)前記アクセス状況におけるアクセス元数、及び、
    (x3)前記アクセス状況における参照頻度、
    のうちの少なくとも1つに基づき、データ分散度範囲、アクセス元数範囲及び参照頻度範囲のうちの少なくとも1つについての境界値を変更する、
    請求項12記載のデータ管理システム。
    The processor unit includes the following (x1) to (x3), referred to in the key conversion method narrowing process:
    (X1) Data distribution degree for the selected key conversion method candidate (f),
    (X2) the number of access sources in the access situation, and
    (X3) Reference frequency in the access status,
    Changing the boundary value for at least one of the data distribution range, the access source number range, and the reference frequency range based on at least one of the following:
    The data management system according to claim 12.
  14.  クエリに応答してデータベースユニットに対するデータ参照処理又はデータ格納処理が行われるシステムのデータ管理方法であって、
     1以上のキーデータペアユニットが格納される複数のデータ領域を有する1以上のデータベースであるデータベースユニットにおける1以上のキーデータペアユニットの各々について、
      (A)そのキーデータペアユニットについてのアクセス状況が属するアクセスパタンに適したキー変換方法を前記複数のキー変換方法から選択し、
      (B)前記選択したキー変換方法と、そのキーデータペアユニットとそのキーデータペアユニットについてのキー範囲とに従うアクセス範囲との対応付けを、前記データベースユニットにおける複数のアクセス範囲の各々について複数のキー変換方法のうちの適用されたキー変換方法を表す情報であるキー変換方法情報に記録し、
        前記1以上のキーデータペアユニットの各々は、1以上のキーデータペアであり、
        前記1以上のキーデータペアの各々は、キーとデータとのペアであり、
         前記複数のアクセス範囲の各々は、キーデータペアユニットとそのキーデータペアユニットのキー範囲とのセットに従う範囲であり、
         前記システムは、前記データ参照処理及び前記データ格納処理の各々では、その処理でのアクセス範囲に対応したキー変換方法を前記キー変換方法情報から特定し、特定されたキー変換方法を使用する、
    データ管理方法。
    A data management method for a system in which data reference processing or data storage processing for a database unit is performed in response to a query,
    For each of one or more key data pair units in a database unit that is one or more databases having a plurality of data areas in which one or more key data pair units are stored,
    (A) A key conversion method suitable for the access pattern to which the access status of the key data pair unit belongs is selected from the plurality of key conversion methods,
    (B) Correspondence between the selected key conversion method and an access range according to the key data pair unit and a key range for the key data pair unit, and a plurality of keys for each of the plurality of access ranges in the database unit Record in the key conversion method information, which is information representing the applied key conversion method of the conversion methods,
    Each of the one or more key data pair units is one or more key data pairs;
    Each of the one or more key data pairs is a key and data pair;
    Each of the plurality of access ranges is a range according to a set of a key data pair unit and a key range of the key data pair unit,
    In each of the data reference process and the data storage process, the system specifies a key conversion method corresponding to an access range in the process from the key conversion method information, and uses the specified key conversion method.
    Data management method.
  15.  クエリに応答してデータベースユニットに対するデータ参照処理又はデータ格納処理が行われるコンピュータで実行されるコンピュータプログラムがコンピュータ読取り可能に記録された非一時的なコンピュータ読取り可能な記録媒体であって、
     1以上のキーデータペアユニットが格納される複数のデータ領域を有する1以上のデータベースであるデータベースユニットにおける1以上のキーデータペアユニットの各々について、
      (A)そのキーデータペアユニットについてのアクセス状況が属するアクセスパタンに適したキー変換方法を前記複数のキー変換方法から選択し、
      (B)前記選択したキー変換方法と、そのキーデータペアユニットとそのキーデータペアユニットについてのキー範囲とに従うアクセス範囲との対応付けを、前記データベースユニットにおける複数のアクセス範囲の各々について複数のキー変換方法のうちの適用されたキー変換方法を表す情報であるキー変換方法情報に記録する、
    ことを前記コンピュータに実行させ、
        前記1以上のキーデータペアユニットの各々は、1以上のキーデータペアであり、
        前記1以上のキーデータペアの各々は、キーとデータとのペアであり、
         前記複数のアクセス範囲の各々は、キーデータペアユニットとそのキーデータペアユニットのキー範囲とのセットに従う範囲であり、
         前記コンピュータは、前記データ参照処理及び前記データ格納処理の各々では、その処理でのアクセス範囲に対応したキー変換方法を前記キー変換方法情報から特定し、特定されたキー変換方法を使用する、
    非一時的なコンピュータ読取り可能な記録媒体。
    A non-transitory computer-readable recording medium in which a computer program executed by a computer that performs data reference processing or data storage processing on a database unit in response to a query is recorded in a computer-readable manner,
    For each of one or more key data pair units in a database unit that is one or more databases having a plurality of data areas in which one or more key data pair units are stored,
    (A) A key conversion method suitable for the access pattern to which the access status of the key data pair unit belongs is selected from the plurality of key conversion methods,
    (B) Correspondence between the selected key conversion method and an access range according to the key data pair unit and a key range for the key data pair unit, and a plurality of keys for each of the plurality of access ranges in the database unit Record in key conversion method information, which is information representing the applied key conversion method of the conversion methods,
    Causing the computer to execute
    Each of the one or more key data pair units is one or more key data pairs;
    Each of the one or more key data pairs is a key and data pair;
    Each of the plurality of access ranges is a range according to a set of a key data pair unit and a key range of the key data pair unit,
    In each of the data reference processing and the data storage processing, the computer specifies a key conversion method corresponding to an access range in the processing from the key conversion method information, and uses the specified key conversion method.
    Non-transitory computer-readable recording medium.
PCT/JP2015/085149 2015-12-16 2015-12-16 Data management system and method WO2017104012A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/085149 WO2017104012A1 (en) 2015-12-16 2015-12-16 Data management system and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/085149 WO2017104012A1 (en) 2015-12-16 2015-12-16 Data management system and method

Publications (1)

Publication Number Publication Date
WO2017104012A1 true WO2017104012A1 (en) 2017-06-22

Family

ID=59056198

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/085149 WO2017104012A1 (en) 2015-12-16 2015-12-16 Data management system and method

Country Status (1)

Country Link
WO (1) WO2017104012A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11956223B2 (en) * 2018-12-04 2024-04-09 Journey.ai Securing attestation using a zero-knowledge data management network

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05334153A (en) * 1992-06-01 1993-12-17 Nippon Telegr & Teleph Corp <Ntt> Index management system
JPH07168841A (en) * 1993-12-14 1995-07-04 Shikoku Nippon Denki Software Kk Hash table generating method
JP2009181546A (en) * 2008-02-01 2009-08-13 Toshiba Corp Coordinator server, data allocation method and program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05334153A (en) * 1992-06-01 1993-12-17 Nippon Telegr & Teleph Corp <Ntt> Index management system
JPH07168841A (en) * 1993-12-14 1995-07-04 Shikoku Nippon Denki Software Kk Hash table generating method
JP2009181546A (en) * 2008-02-01 2009-08-13 Toshiba Corp Coordinator server, data allocation method and program

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11956223B2 (en) * 2018-12-04 2024-04-09 Journey.ai Securing attestation using a zero-knowledge data management network

Similar Documents

Publication Publication Date Title
US11288282B2 (en) Distributed database systems and methods with pluggable storage engines
US11860874B2 (en) Multi-partitioning data for combination operations
US11720537B2 (en) Bucket merging for a data intake and query system using size thresholds
US11151137B2 (en) Multi-partition operation in combination operations
US10528599B1 (en) Tiered data processing for distributed data
US11327992B1 (en) Authenticating a user to access a data intake and query system
US20200167315A1 (en) Multi-range and runtime pruning
US11416465B1 (en) Processing data associated with different tenant identifiers
US11275733B1 (en) Mapping search nodes to a search head using a tenant identifier
US11157497B1 (en) Dynamically assigning a search head and search nodes for a query
US11461286B2 (en) Fair sampling in a hierarchical filesystem
JP7046172B2 (en) Computer implementation methods, computer program products, and systems for storing records in shard database shard tables, computer implementation methods, computer program products, and systems for retrieving records from shard database shard tables. System, as well as a system for storing shard databases
JP6107429B2 (en) Database system, search method and program
US10210192B2 (en) Capacity accounting for heterogeneous storage systems
US11675743B2 (en) Web-scale distributed deduplication
CN111782134A (en) Data processing method, device, system and computer readable storage medium
US9898518B2 (en) Computer system, data allocation management method, and program
WO2017104012A1 (en) Data management system and method
Suganya et al. Efficient fragmentation and allocation in distributed databases
US11922222B1 (en) Generating a modified component for a data intake and query system using an isolated execution environment image
GB2602704A (en) Tracking change data capture log history
US20200104389A1 (en) Bijective transformation for compression of guid
WO2020144816A1 (en) History management device, search processing device, history management method, search processing method, and program
US11971856B2 (en) Efficient database query evaluation
WO2017094194A1 (en) Computer system and device management method

Legal Events

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

Ref document number: 15910703

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: 15910703

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP