WO2011099114A1 - ハイブリッド型データベースシステム及びその動作方法 - Google Patents

ハイブリッド型データベースシステム及びその動作方法 Download PDF

Info

Publication number
WO2011099114A1
WO2011099114A1 PCT/JP2010/051855 JP2010051855W WO2011099114A1 WO 2011099114 A1 WO2011099114 A1 WO 2011099114A1 JP 2010051855 W JP2010051855 W JP 2010051855W WO 2011099114 A1 WO2011099114 A1 WO 2011099114A1
Authority
WO
WIPO (PCT)
Prior art keywords
array
data
item
data model
record
Prior art date
Application number
PCT/JP2010/051855
Other languages
English (en)
French (fr)
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/JP2010/051855 priority Critical patent/WO2011099114A1/ja
Priority to JP2011553670A priority patent/JPWO2011099114A1/ja
Publication of WO2011099114A1 publication Critical patent/WO2011099114A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data

Definitions

  • the present disclosure relates to a database system, and more particularly, to a hybrid database system that processes data expressed by two types of data models suitable for processing purposes and an operation method of the hybrid data system.
  • Patent Document 1 by the present applicant proposes a data structure, a data processing device, and a data processing method suitable for high-speed in-memory processing.
  • Patent Document 1 discloses a data management mechanism suitable for high-speed retrieval, aggregation, and sorting of large-scale tabular data.
  • This data management mechanism has an information block for representing each item value of an item of tabular data.
  • the item values belonging to the items of the tabular data are represented by the item value numbers assigned to the item values and the value array of actual item values arranged in the order of the item value numbers.
  • a pointer array is prepared in which the field value numbers corresponding to the field values of each record are arranged in the order of the record numbers.
  • the field value of each record is obtained by finding the value corresponding to the field value number of the record from the field value value array. Identified. Therefore, for the given record number, the item value number stored in correspondence with the given record number is extracted from the pointer array for the predetermined item, and then the extracted item value number is extracted from the value array. It is possible to obtain the item value from a given record number by taking out the item value stored corresponding to.
  • tabular data is composed of rows corresponding to records and columns corresponding to items.
  • data management mechanism described in Patent Document 1
  • for each column of tabular data that is, items. Every data is completely separated. Therefore, according to this data management mechanism, only data related to items necessary for search / aggregation among tabular data can be taken into a storage device that can be accessed at high speed, such as a memory. Access time is shortened.
  • a memory database more precisely a database called an in-memory database
  • persistence issues due to memory volatility
  • a storage medium such as a hard disk can easily realize permanence and large capacity.
  • data stored in the file format on the hard disk can be shared by a plurality of processes in the file format. Therefore, a database system that combines the high speed of an in-memory database system due to memory access performance with disk persistence, large capacity, low bit cost, and sharability, that is, a hybrid database system is proposed. Has been.
  • Patent Document 2 a method and mechanism for performing transaction logging in a database system described in Patent Document 2 is a combination of an in-memory database and an on-disk database, and the undo of transactions, that is, the persistence related to cancellation.
  • Patent Document 3 discloses a system that shortens the lag time of data transfer from an in-memory database to an on-disk database such as a relational database, and synchronizes the in-memory database with the relational database management system. Is disclosed.
  • the hybrid database system that has been proposed in the past has been constructed from the viewpoint of combining the high speed of the memory with the persistence, large capacity, low bit cost, and sharability of the hard disk as described above. Yes.
  • memory and hard disk in terms of high speed i.e., access speed
  • memory is higher performance than hard disk under the same conditions, but between sequential access to hard disk and random access to memory,
  • a memory is not always advantageous.
  • Another option is to use flash memory instead of a hard disk from the perspective of persistence.
  • the large capacity may depend on the bit cost.
  • the conventional hybrid database system is constructed based on a specific evaluation of memory vs. hard disk at a certain point in time, so the system is not flexible and may not be adaptable to available hardware resources. is there.
  • the conventional data structure itself relies on a single data structure designed to fit either an in-memory database system or an on-disk database system. Therefore, the performance of a hybrid database system that fuses an in-memory database with an on-disk database will be compatible with either the in-memory database system or the on-disk database system, and the advantages of both will be sufficient. There is a problem that cannot be pulled out.
  • a hybrid database system having a data structure that can further improve the performance of the database system can be provided.
  • a method for operating a hybrid database system having a data structure that can further improve the performance of the database system in a database system that fuses an in-memory database and an on-disk database.
  • a program, a computer program product, and a computer for operating a hybrid database system having a data structure that can further improve the performance of the database system It is preferable that a recording medium in which the program is recorded can be provided.
  • the hybrid database system utilizes two data models that can be interconverted to represent tabular data to be processed.
  • tabular data refers to an array of one or more records (rows) including item values corresponding to one or more data items (columns).
  • the first data model uses this tabular data as a first array (also referred to as a record number array) for storing record numbers of records in the tabular data, and for each item, a unique item value belonging to the item.
  • a predetermined order also referred to as a value list
  • item values belonging to the items of each record are stored in the second array (also referred to as item value numbers).
  • the first data model is a data model proposed by the applicant for an in-memory database system that processes large-scale data at high speed.
  • the second data model converts the tabular data into the first array, the second array for each item, and the order of the item values stored in the second array for each item.
  • This is a data model expressed by a fourth array (also called a record number classification array) that stores record numbers of records that hold item values.
  • the fourth array is an array in which record numbers are classified and stored for each item value, search and sort of record numbers using item values as keys are the first. This is faster than using the data model.
  • the fourth array is configured so that the record number corresponding to the item value can be extracted by sequential access, the second data model is a data model suitable for the on-disk database system.
  • the conversion from the first data model to the second data model is performed.
  • This transformation uses the second array and the third array to generate a fourth array. Therefore, this conversion first counts the number of times the item value number appears in the third array for each item value number. Next, this conversion determines the range of the area for each item value number in which the record numbers are classified and stored in the fourth array based on the counted number of times. Finally, this conversion reads the item value number from the third array, and sequentially positions the position where this item value number is stored in the third array in the area for each item value number in the fourth array. To store. Thus, this conversion generates a fourth array that stores the record numbers of the records that hold the item values in the order of the item values stored in the second array.
  • a conversion from the second data model to the first data model is performed.
  • This transformation uses the second array and the fourth array to generate a third array. Therefore, in this conversion, the record number stored in the field of each item value number is read from the fourth array, and the item value number corresponding to the read record number corresponds to the read record number. Store in a third array by position. Thereby, this conversion produces
  • a tabular data including an array of one or more records including item values corresponding to one or more data items.
  • a first array for storing record numbers of records in the format data; a second array in which unique item values belonging to the items are arranged in a predetermined order for each item; and for each item, The item value position in which the item value belonging to the item is stored in the second array is described as a first data model represented by a third array that stores the item value position in the order of the record number.
  • a database system is provided for processing the described data. This database system The data described by the first data model is stored in the order of the first array, the second array for each item, and the item value stored in the second array for each item.
  • the first data model converter first counts the number of times the item value number appears in the third array for each item value number, and then counts Based on the number of times of determination, the range of the area for each item value number in which the record number is classified and stored in the fourth array is determined, and finally the item value number is read from the third array, In the region for each item value number in the array, the position where the item value number is stored in the third array is sequentially stored, thereby generating the fourth array, The second data model conversion unit reads the record number stored in the field of each item value number from the fourth array, and reads the item value number corresponding to the read record number.
  • the third array is generated by storing in the third array at the position corresponding to.
  • the data processing unit stores at least a part of the data according to the second data model in the hard disk and stores the remaining part in the memory.
  • the data processing unit writes the data described by the second data model stored in the memory to the hard disk.
  • the data processor reads data described by the second data model stored in the hard disk into the memory.
  • the data processing unit searches for a record in which the item value belonging to the predetermined item satisfies the predetermined condition, and therefore the item value satisfying the predetermined condition in the second array. If there is an item value satisfying the predetermined condition, the record number stored in the field of the item value number corresponding to the item value satisfying the predetermined condition is extracted from the fourth array and extracted. Write the record number to the search result array in memory.
  • the data processing unit sorts the records by the item values belonging to the predetermined item, so that the sorting order is the predetermined order of the item values in the second array of the predetermined item.
  • the fourth array is directly written into the sort result array in the memory, and if the sort order is opposite to the predetermined order of the item values in the second array of the predetermined item, the fourth array
  • the field of the item value number corresponding to this item value is specified in the order opposite to the predetermined order of the item value in the second array from the array of the record number, and the record number stored in this area is stored. Are written in the order in which they are stored and written to the sort result array in memory.
  • a tabular data including an array of one or more records including item values corresponding to one or more data items.
  • a first array for storing record numbers of records in the format data; a second array in which unique item values belonging to the items are arranged in a predetermined order for each item; and for each item, The item value position in which the item value belonging to the item is stored in the second array is described as a first data model represented by a third array that stores the item value position in the order of the record number.
  • the way to operate this database system is:
  • the data described by the first data model is converted into a first array, a second array for each item, and a second for each item.
  • a computer for each item value number counting the number of times the item value number appears in the third array;
  • the computer reads the item value number from the third array, and sequentially stores the position where the item value number is stored in the third array in the area for each item value number in the fourth array.
  • a method of operating a database system comprises: The computer determines whether the data to be processed is to be described by a first data model or a second data model according to predetermined rules or according to external instructions And steps to If the data model of the data to be processed and the data model to be described do not match, the computer converts the data model of the data to be processed to a data model to be described; A computer processing data converted from the data model; Is further provided.
  • a method of operating a database system includes: a computer processing data described by a second data model after tabular data is described by the second data model; Further comprising the step of:
  • the computer stores at least a portion of the data according to the second data model in the hard disk and stores the remaining portion in the memory.
  • the computer writes the data described by the second data model stored in the memory to the hard disk.
  • the computer reads data described by the second data model stored on the hard disk into the memory.
  • a method for operating a database system searches for a record in which an item value belonging to a predetermined item satisfies a predetermined condition, A computer searching for an item value satisfying a predetermined condition in the second array; If there is an item value satisfying the predetermined condition, the computer retrieves the record number stored in the field of the item value number corresponding to the item value satisfying the predetermined condition from the fourth array Writing a record number to a search result array in memory; Is further provided.
  • a method for operating a database system sorts records by item values belonging to a predetermined item, If the sort order is the same as the predetermined order of the item values in the second array of predetermined items, the computer writes the first array directly into the sort result array in memory; If the sort order is reverse to the predetermined order of the item values in the second array of predetermined items, the computer reverses the predetermined order of the item values in the second array from the fourth array. Identifying the field of the field value number corresponding to the field value in order, The computer retrieves the record numbers stored in this area in the order in which they are stored and writes them to the sort result array in memory; Is further provided.
  • tabular data comprising an array of one or more records loaded into a computer including a processor, a memory, and a hard disk and including item values corresponding to one or more data items,
  • a first array for storing record numbers of records in tabular data, a second array in which unique item values belonging to the items are arranged in a predetermined order for each item, and each record for each item
  • the first data model is described as a first data model expressed by a third array that stores the item value positions in which the item values belonging to the item are stored in the second array in the order of the record numbers.
  • a computer readable program is provided that causes a computer to execute a method of operating a database system for processing data described by.
  • This program When the tabular data is described by the first data model, the data described by the first data model is converted into a first array, a second array for each item, and a second for each item.
  • a computer for each item value number In order to convert the data into the data described by the second data model representing the tabular data by the fourth array storing the record numbers of the records holding the item values in the order of the item values stored in the array, A computer for each item value number, a code for counting the number of times the item value number appears in the third array; A code for determining a range of an area for each item value number in which the record number is classified and stored in the fourth array based on the counted number; A code in which the computer reads the item value number from the third array and sequentially stores the position where the item value number is stored in the third array in the area for each item value number in the fourth array When, With When tabular data is described by the second data model, to convert the data described by the second data model into data described by the first data model, A computer reads a
  • tabular data comprising an array of one or more records loaded into a computer including a processor, a memory and a hard disk and including item values corresponding to one or more data items.
  • a second array in which the unique item values belonging to the items are arranged in a predetermined order for each item, and for each item, The item values belonging to the items of each record are described as a first data model represented by a third array that stores the item value positions stored in the second array in the order of record numbers
  • a computer program product for causing a computer to execute a method for operating a database system for processing data described by a data model. .
  • tabular data comprising an array of one or more records loaded into a computer including a processor, a memory and a hard disk and including item values corresponding to one or more data items.
  • a second array in which the unique item values belonging to the items are arranged in a predetermined order for each item, and for each item, The item values belonging to the items of each record are described as a first data model represented by a third array that stores the item value positions stored in the second array in the order of record numbers, Recording medium on which a computer program for causing a computer to execute a method of operating a database system for processing data described by a data model is recorded It is provided.
  • two interchangeable data models are utilized to achieve inter-process sharing, data persistence, high capacity, and high speed. Therefore, it is possible to realize a hybrid database system that can give flexibility to the division of roles between the memory and the hard disk.
  • FIG. 1 is a schematic diagram of a computer system according to one embodiment of the invention.
  • FIG. It is a figure showing an example of the tabular data for demonstrating the data management mechanism used as the foundation of the hybrid type database system by one embodiment of this invention.
  • FIG. 1 is a functional block diagram of a database system according to one embodiment of the present invention.
  • FIG. 1 is a schematic diagram of one embodiment of a computer system that implements an information processing method in a database system that processes large-scale data.
  • the computer system 10 includes at least one CPU 12-1, 12-2,... That controls the entire system and individual components by executing a program. . .
  • a memory 14 such as a RAM that can be accessed at high speed
  • a ROM 16 for storing programs, etc.
  • a hard disk for storing programs, etc.
  • a non-volatile memory for storing programs, etc.
  • a hard disk for storing programs, etc.
  • a non-volatile memory for storing programs, etc.
  • a hard disk for storing programs, etc.
  • a non-volatile memory for storing programs, etc.
  • a hard disk for storing programs, etc.
  • a non-volatile memory for storing programs, etc.
  • a hard disk for storing programs, etc.
  • a hard disk for storing programs, etc.
  • a non-volatile memory for storing programs, etc.
  • a hard disk for storing programs, etc.
  • a non-volatile memory for storing programs, etc.
  • a hard disk for storing programs, etc.
  • a non-volatile memory for storing programs, etc.
  • the CPU 12, the memory 14, the ROM 16, the nonvolatile storage device 18, the interface 22, the input device 24, and the display device 226, represented as a whole by the reference numeral 12, are mutually connected via a bus 28. It is connected. Although not shown, each CPU may have its own local memory.
  • the program to be executed by the CPU 12 of the computer system 10 may be stored in the CD-ROM 19 and read by the CD-ROM driver 20 or stored in advance in the ROM 16. Further, what is once read from the CD-ROM 19 may be stored in a predetermined area of the nonvolatile storage device 18. Alternatively, the program may be supplied from the outside via a network (not shown), an external terminal, and the interface 22. CD-ROM 19 and CD-ROM driver 20 may be replaced by USB memory and USB memory driver in alternative embodiments.
  • hybrid database system is realized by causing the computer system 10 to execute a program for operating the hybrid data system.
  • FIG. 2 is a diagram showing an example of tabular data for explaining the data management mechanism (that is, the first data model) that is the basis of the hybrid data system according to the embodiment of the present invention.
  • FIG. 3 is an explanatory diagram of a first data model for in-memory in the hybrid database system according to one embodiment of the present invention.
  • the tabular data shown in FIG. 2 is composed of nine records (rows) from record number 0 to record number 9, and each record has 2 items (column) of age and item (column) of weight. Contains items. For example, the item value of the item: age of the record with the record number 0 is 18, and the item value of the item: weight is 55.
  • This tabular data is stored as a data structure as shown in FIG. 3 in the computer system by using the data management mechanism proposed in the above-mentioned International Publication No. WO00 / 10103.
  • This data structure has been proposed to realize retrieval, sorting, aggregation, etc. of large-scale tabular data using hardware resources of commercially available computers, for example, personal computers, in particular, processors and memories.
  • the data structure of tabular data is suitable for an in-memory database system, which is placed on the memory of a computer.
  • one of the two data models is realized by this data structure.
  • the record number includes “information indicating the position where the record is stored in the original tabular data (ie, the original record position number)” and “information indicating the order of the records (ie, the record order number)” May be used in both senses. Care should be taken in this document to use the terms source record position number and record sequence number when they should be clearly distinguished. Every record has a source record position number associated with it. This primitive record position number is virtual information used for specifying individual records including item values corresponding to data items. In general, in the tabular data, records are not always arranged in the order of the original record position numbers.
  • the order of the tabular data record obtained is different from the order of the original tabular data record.
  • the records in the original tabular data may be arranged in the order of the source record position numbers. In this case, the source record position number and the record sequence number are initially matched. Yes.
  • the order number (record order number) of each record of the tabular data and the original record position number are abbreviated as a record number array 301 (hereinafter, this array is abbreviated as “OrdSet”). ).
  • the record number array 301 stores source record position numbers in the order of record order numbers. In the example of FIG. 3, the records are arranged in the order of the original record position numbers.
  • an array element A can be expressed as A [i], where i is a subscript.
  • an array element A [i] is within a region surrounded by a solid line.
  • the boundary between the element A [i] and the element A [i + 1] is indicated by a dotted line.
  • the subscript i of element A [i] is shown on the left side of element A [i]. Further, the subscript i of the array is represented by an integer starting from 0.
  • the actual age value relating to the record whose source record position number is “0” is an item value array 303 (hereinafter, item value) that is a value list in which the actual values are sorted according to a predetermined order (for example, ascending or descending order).
  • the item value number array 302 (hereinafter, the item value number array, ie, the pointer array is abbreviated as “VNo”), which is a pointer array to the array, ie, the value list as “VL”. ) Can be obtained by referring to.
  • the item value number array 302 stores pointers that point to elements in the actual value list 303 in the order of the source record position numbers stored in the array OrdSet 301.
  • Item values can be obtained for other records as well as weight. Therefore, when performing processing such as taking out an item value for each record and performing an operation on the item value, for example, processing such as aggregation, join, data update, and data conversion, it is preferable to select the first data model. .
  • the tabular data is expressed by a combination of the value list VL and the item value number array VNo, and this combination is particularly referred to as an “information block”.
  • information blocks relating to age and weight are shown as information blocks 306 and 307, respectively.
  • the first data model is a data structure that can utilize random accessibility.
  • FIG. 4 is an explanatory diagram of a second data model suitable for on-disk in a hybrid database system according to one embodiment of the present invention.
  • the tabular data shown in FIG. 2 is stored as a data structure as shown in FIG. 4 in the computer system when the second data model for on-disk is used.
  • This data structure has been proposed to realize retrieval, sorting, aggregation, etc. of large-scale tabular data using hardware resources of commercially available computers, for example, personal computers, in particular, processors and memories.
  • the data structure is a tabular data structure suitable for an on-disk database system, and may be placed in a non-volatile storage device, for example, a hard disk. You should be careful.
  • the other of the two data models is realized by this data structure.
  • the second data model uses the table format data shown in FIG. 2 as a record number array 401 for storing record numbers of records in the table format data, and a unique item value belonging to the item for each item.
  • Value list 402 and 404 arranged in this order, and a record number classification array 403 for storing the record number of the record that holds the item value in the order of the item value stored in the value list 402 and 404 for each item.
  • 405 represents a data model.
  • the tabular data is expressed by a combination of the value list VL and the record number classification array RecNo, and this combination is particularly referred to as an “information block”.
  • information blocks relating to age and weight are shown as information blocks 406 and 407, respectively.
  • FIG. 5 is an explanatory diagram of an entry array Entry that associates a value list with a record number classification array according to one embodiment of the present invention.
  • the entry array 501 relating to the item: age has the same size as the value list 402.
  • Entry [i] represents the head position where the record number of the record that holds the item value matching VL [i] as an attribute is stored in the record classification array 403. Therefore, the range in which the record number of the record that holds the item value matching VL [i] as an attribute is generally stored from the record number classification array RecNo [VL [i]] to the record number classification array RecNo [VL [VL [ i + 1] -1]. Of course, when i takes the maximum value, this range is from the record number classification array RecNo [VL [i]] to the end of the record number classification array RecNo.
  • the association between the value list and the record number can be realized by providing a pointer for referring to the record number classification array for each item value number.
  • the record number classification arrays 403 and 405 are arrays in which record numbers are classified and stored for each item value, search and sort of record numbers using the item value as a key are performed. Is faster than using the first data model. Therefore, it is preferable to select the second data model when searching and sorting record numbers using item values as keys. Further, since the record number classification array is configured so that the record number corresponding to the item value can be extracted by sequential access, the second data model is a data model suitable for the on-disk database system. Therefore, when data persistence or sharing between users is required, it is preferable to select the second data model.
  • the second data model is a data structure in which performance is extracted as the frequency of sequential access increases.
  • a hybrid database system includes a first data model that can utilize random accessibility, and a second data model that can exhibit performance by increasing sequential access. Yes.
  • the first data model and the second data model are preferably selected according to the characteristics of the storage medium. Therefore, it is preferable that the first data model is used for database processing such as search, aggregation, sort, join, data update, and data conversion. Therefore, in the recording medium suitable for sequential access, the second data model is preferably used for database processing such as search and sorting. This is because retrieval and sorting can be realized at high speed even on a storage medium suitable for sequential access such as a hard disk by using the second data model.
  • the recording medium for sequential access is also used for data persistence and data sharing between users.
  • cost reduction is realized by combining a storage medium for random access and a storage medium for sequential access. That is, processing target data is stored in a random access storage medium, and other data is stored in a cheaper sequential access storage medium, thereby increasing the capacity of the expensive random access storage medium. You do n’t have to.
  • a high-frequency search can be processed by a storage medium suitable for sequential access.
  • UNDO can be realized by abandoning data in a memory that is a storage medium for random access and rereading data on a disk that is a storage medium for sequential access.
  • the first data model and the second data model can be converted to each other at high speed. Therefore, the storage medium for random access and the direction for sequential access can be used. The data can be exchanged with each other at high speed.
  • the data described in the first data model is preferably stored in a memory that is a storage medium suitable for random access.
  • the data described in the second data model is data persistence and between users. For data sharing, a non-volatile storage medium such as a hard disk is stored. Otherwise, the data described in the second data model is stored in a random access storage medium such as a memory. May be stored.
  • the computer system 10 describes tabular data described by the first data model and stored in the memory 14 as tabular data described by the second data model. And stored in the nonvolatile storage device 18 or the memory 14.
  • the age information block 306 described by the first data model described in FIG. 3 is replaced with the age information block 306 described by the second data model described in FIG. 4 or 5.
  • a first data model conversion process for converting to 406 will be described.
  • FIG. 6 is an explanatory diagram of the data described by the first data model and the data described by the second data model for explaining the first data model conversion processing according to one embodiment of the present invention. is there.
  • a record number classification array 403 is generated from the item value number array 302 and the value list 303 stored in the memory 14, and the generated record number classification array 403 is stored in the nonvolatile storage device 18. Or it writes in the memory 14.
  • the computer system 10 scans the item value number array 302 stored in the memory 14, and for each item value number stored in the item value number array 302, the item value number is changed to the item value number array 302. The number of occurrences is counted, and a count array Count is generated in the memory 14.
  • the computer system 10 generates a cumulative number array Aggr in the memory 14 by accumulating the count values stored in the count array.
  • the computer system 10 can determine the range of the area in which the record number of the record holding the item value corresponding to the item value number i as the item attribute is stored in the record number classification array. If the range of the area corresponding to the item value number i is Range (i), the beginning of Range (i) is Aggr [i], and the end of Range (i) is Aggr [i + 1] -1. Of course, when i takes the maximum value, this range is from Aggr [i] to the end of the record number classification array RecNo.
  • the computer system 10 generates a copy of the cumulative number array Aggr at this time as the entry array 501 in the nonvolatile storage device 18 or the memory 14.
  • the computer system 10 sets the value of the element Aggr [i] of the cumulative number array Aggr as the pointer value of the pointer indicating the head position of the item value number i in the record number classification array. May be.
  • the first data model conversion process can be performed in parallel.
  • the first data model conversion processing can be realized by parallel processing by applying the parallel sorting technique in the shared memory multiprocessor system described in International Publication No. WO2006 / 126467 by the present applicant.
  • this parallel sorting method when this parallel sorting method is applied, first, the computer system 10 divides the processing target item value number array 302 and assigns it to a plurality of processors. Next, each processor counts the number of local occurrences of the item value number in the item value number array to be processed.
  • the computer system 10 determines the local number of occurrences of the item value number counted by each processor as the global cumulative number of occurrences of the item value number, that is, the cumulative number used in common among a plurality of processors. Convert to number. Finally, each processor stores the record number in the record number classification array 403 by using the global cumulative number as a pointer.
  • the computer system 10 describes the tabular data described by the second data model and stored in the memory 14 or the nonvolatile storage device 18 by the first data model.
  • the data is converted into the described tabular data and stored in the memory 14.
  • the age information block 406 described by the second data model described in FIG. 4 or FIG. 5 is replaced with the age information block 406 described by the first data model described in FIG.
  • a second data model conversion process for converting to 306 will be described.
  • FIG. 7 is an explanatory diagram of data described by the second data model and data described by the first data model, for explaining the second data model conversion processing according to one embodiment of the present invention. is there.
  • the item value number array 302 is generated from the value list 402 and the record number classification array 403 stored in the memory 14 or the nonvolatile storage device 18, and the generated item value number array 302 is generated. Is written into the memory 14.
  • the computer system 10 reads the entry Entry [i] of the entry array Entry corresponding to the item value number i stored in the memory 14 or the nonvolatile storage device 18 and the entry array Entry corresponding to the next item value number i + 1.
  • Element Entry [i + 1] is read, and an area in the record classification number array RecNo in which the record number of the record holding the item value corresponding to the item value number i is stored is specified. More specifically, in this area, if the range of the area corresponding to the item value number i is Range (i), the beginning of Range (i) is Entry [i], and the end of Range (i) is Entry [i + 1] -1.
  • this range is from Entry [i] to the end of the record number classification array RecNo.
  • the computer system 10 sequentially reads the element j within the range from RecNo [Entry [i]] to RecNo [Entry [i + 1] -1] of the record number classification array RecNo with respect to the item value number i, and secures it in the memory 14
  • the item value number i is set in the element VNo [j] of the item value number array VNo.
  • the processor 12 sequentially accesses the value list VL, the entry array Entry, and the record number classification array RecNo. Therefore, the value list VL, the entry array Entry, and the record number classification array It can be seen that RecNo may be placed in the memory 14 or in the nonvolatile storage device 18 such as a hard disk.
  • RecNo may be placed in the memory 14 or in the nonvolatile storage device 18 such as a hard disk.
  • the element setting to the item value number array VNo is random access, but since the item value number array VNo is secured in the memory 14, high speed access is possible.
  • the second data model conversion process can be performed in parallel as with the first data model conversion process.
  • FIG. 8 is an explanatory diagram of search processing based on the second data model in the database system according to one embodiment of the present invention.
  • the computer system 10 searches for a record in which the item values belonging to a predetermined item satisfy a predetermined condition, so that the value list 404 stored in the memory 14 or the nonvolatile storage device 18 is retrieved.
  • the item value satisfying the predetermined condition is searched for, and if the item value satisfying the predetermined condition exists, the item satisfying the predetermined condition is retrieved from the record number classification array 405 stored in the memory or the nonvolatile storage device 18.
  • the record number stored in the field of the item value number corresponding to the value is extracted, and the extracted record number is written in the search result array OrdSet 802 in the memory.
  • the computer system 10 specifies a range in which item values satisfying the search condition are stored from the value list 404. Therefore, the computer system 10 specifies a range in which the item values 54, 55, and 56 are stored in the value list 404 using a well-known technique such as a bisection method.
  • the two-partition method performs random access to the value list 404, but the value list 404 may be stored in the hard disk as long as the access amount is small.
  • the specified range corresponds to item value numbers 1, 2, and 3.
  • the computer system 10 takes out the record numbers stored in the areas corresponding to the item value numbers 1, 2 and 3 from the record number classification array 405. As described above, the computer system 10 specifies the area of the record number classification array 405 corresponding to the item value number by referring to the entry array 502. Further, since the area in which the record number corresponding to a certain item value number is stored is a continuous area, the computer system 10 can read out the record number satisfying the condition from the record number classification array 405 by sequential access. .
  • this search process can be performed in parallel as in the first data model conversion process.
  • [Sort processing based on second data model] 9 and 10 are explanatory diagrams of the sorting process based on the second data model in the database system according to one embodiment of the present invention.
  • the sort order is the same as the predetermined order of the item values in the value list 404 of the predetermined item. If so, the record number classification array 405 is directly written into the sort result array 902 in the memory 14 (FIG. 9), and the sort order is reverse to the predetermined order of the item values in the value list 404 of the predetermined item.
  • the field of the item value number corresponding to this item value is specified from the record number classification array 405 in the reverse order to the predetermined order of the item value in the value list 404, and the record number stored in this area Are extracted in the order in which they are stored, and written into the sort result array 1002 in the memory 14.
  • this search process can be performed in parallel as in the first data model conversion process.
  • FIG. 11 is a functional block diagram of a database system according to one embodiment of the present invention.
  • a database system 1100 includes a computer 10 including a processor 12, a memory 14, and a hard disk 18, and includes tabular data including an array of one or more records including item values corresponding to one or more data items.
  • a first array for storing record numbers of records in the data, a second array in which unique item values belonging to the items are arranged in a predetermined order for each item, and an item of each record for each item Are described as a first data model 1101 expressed by a third array that stores the item value positions in which the item values belonging to are stored in the second array in the order of record numbers, and the first data model 1101 Includes a first data processing unit 1102 for processing the data described by.
  • the first data processing unit includes search / aggregation / sort as described in WO 00/10103, join as described in WO 00/73939, and WO 01. Data update as described in Japanese Patent Application No. 09/96464, data aggregation as described in Japanese Patent Application Laid-Open No. 2001-291848, compilation as described in International Publication No. WO02 / 10976, and international publication It is configured to execute a join or the like as described in WO03 / 040960.
  • the database system 1100 converts the data described by the first data model 1101 into the first array, the second array for each item, and the order of the item values stored in the second array for each item. Includes a first data model conversion unit 1104 that converts the data described by the second data model 1103 expressing the tabular data by a fourth array that stores the record numbers of the records that hold the item values. .
  • the database system 1100 includes a second data processing unit 1105 that processes data described by the second data model 1103, and data described by the second data model 1103 described by the first data model 1101. A second data model conversion unit 1106 for converting data is further included.
  • the second data processing unit 1105 is configured to execute search based on the second data model, sorting based on the second data model, and the like as described above.
  • the database system 1100 describes data suitable for random access by the first data model 1101 according to a predetermined rule or according to an instruction from an operator of the database system, and stores data suitable for sequential access. It can be described by a second data model 1103. Further, the database system 1100 describes target data to be processed using random access according to a predetermined rule or according to an instruction from an operator of the database system using a first data model 1101, and a first data processing unit Data to be processed by 1102 and processing using sequential access can be described by the second data model 1103 and processed by the second data processing unit 1105.
  • the database system 1100 may further include a control unit 1107 that operates the database system 1100 so that the first data model 1101 and the second data model 1103 that can be converted to each other can be selectively used.
  • the control unit 1107 determines a data model to describe data to be processed and a data processing unit to process data to be processed according to a predetermined rule or an external instruction. More specifically, the control unit 1107 determines that the data to be processed is either the first data model 1101 or the second data model 1103 according to a predetermined rule or according to an instruction from the outside.
  • the first data conversion unit 1104 or the second data conversion unit 1106 The data model of the data to be processed is converted into the data model to be described, and the first data processing unit 1102 or the second data processing unit 1105 is caused to process the data with the converted data model.
  • the database system 1100 is configured to selectively use the first data model 1101 and the second data model 1103 that can be converted to each other.

Landscapes

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

Abstract

 相互変換可能である第1のデータモデル及び第2のデータモデルを選択的に利用できるハイブリッド型データベースシステムである。ハイブリッド型データベースシステムは、第1のデータモデルを処理する第1のデータ処理部と、第2のデータモデルを処理する第2のデータ処理部と、第1のデータモデルを第2のデータモデルに変換する第1のデータモデル変換部と、第2のデータモデルを第1のデータモデルに変換する第2のデータモデル変換部とを備え、ランダムアクセスに適したデータを第1のデータモデルによって記述し、シーケンシャルアクセスに適したデータを第2のデータモデルによって記述するように構成されている。

Description

ハイブリッド型データベースシステム及びその動作方法
 本願開示は、データベースシステムに係わり、特に、処理目的に適した2種類のデータモデルによって表現されたデータを処理するハイブリッド型データベースシステムとこのハイブリッド型データシステムの動作方法に関係する。
 近年、一般的なリレーショナル・データベースシステムのようなオンディスク・データベースシステムと比較して、大規模データをより高速に処理することができるインメモリ・データベースシステムが提案されている。たとえば、本出願人による特許文献1には、高速インメモリ処理に適したデータ構造とデータ処理装置及びデータ処理方法が提案されている。特に、特許文献1には、大規模な表形式データを高速に検索、集計、ソートするために適したデータ管理機構が開示されている。このデータ管理機構は、表形式データの項目の各項目値を表すための情報ブロックを有する。この情報ブロックでは、表形式データの項目に属する項目値は、各項目値に付与された項目値番号と、項目値番号の順番に並べられた実際の項目値の値配列とによって表される。各レコードの項目値に対応した項目値番号をレコード番号順に並べたポインタ配列が準備され、各レコードの項目値は、当該レコードの項目値番号に対応した値を項目値の値配列から見つけることによって特定される。よって、所与のレコード番号に対し、所定の項目に関するポインタ配列からこの所与のレコード番号に対応して格納された項目値番号を取り出し、次に、値配列から、この取り出された項目値番号に対応して格納されている項目値を取り出すことにより、所与のレコード番号から項目値を得ることが可能である。
 一般に、表形式データは、レコードに対応した行と、項目に対応した列とによって構成されるが、この特許文献1に記載されたデータ管理機構では、表形式データの列毎に、即ち、項目毎にデータが完全に分離されている。したがって、このデータ管理機構によれば、表形式データのうち、検索・集計等に必要な項目に関するデータのみをメモリ等の高速にアクセスできる記憶装置に取り込むことができ、その結果として、データへのアクセス時間が短縮される。
 しかし、一般に、メモリデータベース、より厳密には、インメモリ・データベースと呼ばれるデータベースは、一方で、上記のように高速性能を実現するが、他方で、メモリの揮発性に起因した永続性の問題、及び、ビットコストに関連した大容量性の問題がある。これに対し、ハードディスクのような記憶媒体は永続性及び大容量性を容易に実現できる。さらに、ハードディスク上にファイルの形式で保存されたデータは、複数のプロセスがファイルの形式で共有することも可能である。そこで、メモリのアクセス性能に起因したインメモリ・データベースシステムの高速性と、ディスクの永続性、大容量性、低ビットコスト性及び共有性とを組み合わせたデータベースシステム、すなわち、ハイブリッド型データベースシステムが提案されている。
 たとえば、特許文献2に記載されたデータベースシステムにおけるトランザクション・ロギングを実施する方法及び仕組みは、インメモリ・データベースとオンディスク・データベースとを組み合わせて、トランザクションのundo、すなわち、取消に関連した永続性の問題を解決している。また、特許文献3は、インメモリ・データベースからリレーショナル・データベースのようなオンディスク・データベースへのデータ転送のラグタイムを短縮し、インメモリ・データベースとリレーショナル・データベース・マネージメント・システムとを同期させるシステムを開示している。
国際公開第WO00/10103号公報 米国特許第6,981,004号明細書 米国特許第7,113,953号明細書
 従来提案されているハイブリッド型データベースシステムは、上述のようにメモリのもつ高速性と、ハードディスクのもつ永続性、大容量性、低ビットコスト性、及び、共有性とを組み合わせるという観点から構築されている。しかし、高速性、すなわち、アクセス速度に関して、メモリとハードディスクとを比較すると、同一条件では、メモリの方がハードディスクより高性能であるが、ハードディスクに対するシーケンシャルアクセスと、メモリに対するランダムアクセスとの間では、必ずしもメモリが有利であるとは限らない。また、永続性という観点から、ハードディスクの代わりにフラッシュメモリを採用するという選択肢もある。さらに、大容量性は、ビットコストによって左右されることがある。
 このように従来のハイブリッド型データベースシステムは、メモリ対ハードディスクのある時点での特定の評価に基づいて構築されているため、システムの柔軟性に乏しく、利用可能なハードウェア資源に適応できない可能性がある。その上、従来のデータ構造自体は、インメモリ・データベースシステム又はオンディスク・データベースシステムの何れかに適合するように設計された単一のデータ構造に依存している。そのため、インメモリ・データベースとオンディスク・データベースとを融合するハイブリッド型データベースシステムの性能が、インメモリ・データベースシステムとオンディスク・データベースシステムのいずれか一方に適合したものになり、両方の利点を十分に引き出せないという問題点がある。
 したがって、インメモリ・データベースとオンディスク・データベースとを融合するデータベースシステムにおいて、このデータベースシステムの性能をより高めることができるデータ構造をもつハイブリッド型データベースシステムを提供できることが好ましい。
 また、インメモリ・データベースとオンディスク・データベースとを融合するデータベースシステムにおいて、このデータベースシステムの性能をより高めることができるデータ構造をもつハイブリッド型データベースシステムを動作させる方法を提供できることが好ましい。
 さらに、インメモリ・データベースとオンディスク・データベースとを融合するデータベースシステムにおいて、このデータベースシステムの性能をより高めることができるデータ構造をもつハイブリッド型データベースシステムを動作させるプログラム、コンピュータプログラムプロダクト、及び、コンピュータプログラムが記録された記録媒体を提供できることが好ましい。
 本発明の少なくとも1つの実施例によれば、ハイブリッド型データベースシステムは、処理対象である表形式データを表現するために相互変換可能である2つのデータモデルを利用する。以下では、表形式データは、1つ以上のデータ項目(列)に対応した項目値を含む1つ以上のレコード(行)の配列を指す。第1のデータモデルは、この表形式データを、表形式データ中でのレコードのレコード番号を格納する第1の配列(レコード番号配列とも呼ばれる)と、項目毎に、項目に属する一意の項目値が所定の順序に並べられた第2の配列(値リストとも呼ばれる)と、項目毎に、各レコードの項目に属する項目値が第2の配列に格納されている位置(項目値番号とも呼ばれる)をレコード番号の順番に格納する第3の配列(項目値番号配列とも呼ばれる)とによって表現するデータモデルである。この第1のデータモデルは、本出願人が大規模データを高速に処理するインメモリ・データベースシステムのために提案したデータモデルである。
 これに対し、第2のデータモデルは、この表形式データを、第1の配列と、項目毎の第2の配列と、項目毎に、第2の配列に格納された項目値の順番にこの項目値を保持するレコードのレコード番号を格納する第4の配列(レコード番号分類配列とも呼ばれる)とによって表現するデータモデルである。この第2のデータモデルによれば、第4の配列は、項目値毎にレコード番号が分類されて格納されている配列であるので、項目値をキーとして用いるレコード番号の検索及びソートが第1のデータモデルを用いる場合より高速化される。また、第4の配列は、項目値に対応するレコード番号をシーケンシャルアクセスで取り出すことができるように構成されているので、第2のデータモデルはオンディスク・データベースシステムに適したデータモデルである。
 なお、第1の配列に表形式データ中のすべてのレコードのレコード番号が格納されている場合、第1のデータモデル及び第2のデータモデルは表形式データと等価である。
 本発明の少なくとも1つの実施例によれば、第1のデータモデルから第2のデータモデルへの変換が行われる。この変換は第2の配列と第3の配列を使って第4の配列を生成する。そのため、この変換は、最初に、項目値番号毎にその項目値番号が第3の配列において出現する回数をカウントする。次に、この変換は、カウントされた回数に基づいて、第4の配列中でレコード番号が分類されて格納される項目値番号毎の領域の範囲を決定する。最後に、この変換は、第3の配列から項目値番号を読み出し、第4の配列中の項目値番号毎の領域に、この項目値番号が第3の配列中に格納されている位置を順番に格納する。これによって、この変換は、第2の配列に格納された項目値の順番にこの項目値を保持するレコードのレコード番号を格納する第4の配列を生成する。
 本発明の少なくとも1つの実施例によれば、第2のデータモデルから第1のデータモデルへの変換が行われる。この変換は第2の配列と第4の配列を使って第3の配列を生成する。そのため、この変換は、第4の配列から各項目値番号の領域に格納されているレコード番号を読み出し、読み出されたレコード番号に対応する項目値番号を、読み出されたレコード番号に対応する位置で第3の配列に格納する。これにより、この変換は、項目毎に、各レコードの項目に属する項目値が第2の配列に格納されている位置をレコード番号の順番に格納する第3の配列を生成する。
 本発明の一実施例によれば、プロセッサとメモリとハードディスクとを含むコンピュータを備え、1つ以上のデータ項目に対応した項目値を含む1つ以上のレコードの配列からなる表形式データを、表形式データ中でのレコードのレコード番号を格納する第1の配列と、項目毎に、項目に属する一意の項目値が所定の順序に並べられた第2の配列と、項目毎に、各レコードの項目に属する項目値が第2の配列に格納されている項目値位置をレコード番号の順番に格納する第3の配列とによって表現される第1のデータモデルとして記述し、第1のデータモデルによって記述されたデータを処理するデータベースシステムが提供される。このデータベースシステムは、
 第1のデータモデルによって記述されたデータを、第1の配列と、項目毎の第2の配列と、項目毎に、第2の配列に格納された項目値の順番にこの項目値を保持するレコードのレコード番号を格納する第4の配列とによって表形式データを表現する第2のデータモデルによって記述されたデータに変換する第1のデータモデル変換部と、
 第2のデータモデルによって記述されたデータを処理するデータ処理部と、
 第2のデータモデルによって記述されたデータを第1のデータモデルによって記述されたデータに変換する第2のデータモデル変換部と、
を備え、
 相互変換可能である第1のデータモデル及び第2のデータモデルを選択的に利用できるように構成されている。
 本発明の少なくとも1つの実施例によれば、第1のデータモデル変換部は、最初に、項目値番号毎にその項目値番号が第3の配列において出現する回数をカウントし、次に、カウントされた回数に基づいて、第4の配列中でレコード番号が分類されて格納される項目値番号毎の領域の範囲を決定し、最後に、第3の配列から項目値番号を読み出し、第4の配列中の項目値番号毎の領域に、この項目値番号が第3の配列中に格納されている位置を順番に格納することにより、第4の配列を生成し、
 第2のデータモデル変換部は、第4の配列から各項目値番号の領域に格納されているレコード番号を読み出し、読み出されたレコード番号に対応する項目値番号を、読み出されたレコード番号に対応する位置で第3の配列に格納することにより、第3の配列を生成する。
 本発明の少なくとも1つの実施例によれば、データ処理部は第2のデータモデルによるデータのうちの少なくとも一部分をハードディスクに保存し、残りの部分をメモリに保存する。
 本発明の少なくとも1つの実施例によれば、データ処理部はメモリ中に保存されている第2のデータモデルによって記述されたデータをハードディスクに書き込む。
 本発明の少なくとも1つの実施例によれば、データ処理部はハードディスクに保存されている第2のデータモデルによって記述されたデータをメモリに読み込む。
 本発明の少なくとも1つの実施例によれば、データ処理部は、所定の項目に属する項目値が所定の条件を満たすレコードを検索するため、第2の配列の中で所定の条件を満たす項目値を探し、所定の条件を満たす項目値が存在するならば、第4の配列から、所定の条件を満たす項目値に対応する項目値番号の領域に格納されているレコード番号を取り出し、取り出されたレコード番号をメモリ内の検索結果配列に書き込む。
 本発明の少なくとも1つの実施例によれば、データ処理部は、所定の項目に属する項目値によってレコードをソートするため、ソート順が所定の項目の第2の配列中の項目値の所定の順序と同じであるならば、第4の配列をそのままメモリ内のソート結果配列に書き込み、ソート順が所定の項目の第2の配列中の項目値の所定の順序と逆であるならば、第4の配列から、第2の配列中の項目値の所定の順序と逆の順序に、この項目値に対応する項目値番号の領域を特定し、この領域に格納されているレコード番号を格納されている順序で取り出し、メモリ内のソート結果配列に書き込む。
 本発明の一実施例によれば、プロセッサとメモリとハードディスクとを含むコンピュータを備え、1つ以上のデータ項目に対応した項目値を含む1つ以上のレコードの配列からなる表形式データを、表形式データ中でのレコードのレコード番号を格納する第1の配列と、項目毎に、項目に属する一意の項目値が所定の順序に並べられた第2の配列と、項目毎に、各レコードの項目に属する項目値が第2の配列に格納されている項目値位置をレコード番号の順番に格納する第3の配列とによって表現される第1のデータモデルとして記述し、第1のデータモデルによって記述されたデータを処理するデータベースシステムを動作させる方法が提供される。このデータベースシステムを動作させる方法は、
 表形式データが第1のデータモデルによって記述されているとき、第1のデータモデルによって記述されたデータを、第1の配列と、項目毎の第2の配列と、項目毎に、第2の配列に格納された項目値の順番にこの項目値を保持するレコードのレコード番号を格納する第4の配列とによって表形式データを表現する第2のデータモデルによって記述されたデータに変換するため、
 コンピュータが、項目値番号毎にその項目値番号が第3の配列において出現する回数をカウントするステップと、
 コンピュータが、カウントされた回数に基づいて、第4の配列中でレコード番号が分類されて格納される項目値番号毎の領域の範囲を決定するステップと、
 コンピュータが、第3の配列から項目値番号を読み出し、第4の配列中の項目値番号毎の領域に、この項目値番号が第3の配列中に格納されている位置を順番に格納するステップと、
を備え、
 表形式データが第2のデータモデルによって記述されているとき、第2のデータモデルによって記述されたデータを第1のデータモデルによって記述されたデータに変換するため、
 コンピュータが、第4の配列から各項目値番号の領域に格納されているレコード番号を読み出すステップと、
 コンピュータが、読み出されたレコード番号に対応する項目値番号を、読み出されたレコード番号に対応する位置で第3の配列に格納するステップと、
を備える。
 本発明の少なくとも1つの実施例によれば、データベースシステムを動作させる方法は、
 コンピュータが、予め定められたルールに従って、又は、外部からの指示に従って、処理されるべきデータが第1のデータモデルと第2のデータモデルのいずれのデータモデルによって記述されるべきであるかを決定するステップと、
 処理されるべきデータのデータモデルと記述されるべきデータモデルとが一致しない場合に、コンピュータが、処理されるべきデータのデータモデルを記述されるべきデータモデルに変換するステップと、
 コンピュータが、データモデルが変換されたデータを処理するステップと、
をさらに備える。
 本発明の少なくとも1つの実施例によれば、データベースシステムを動作させる方法は、表形式データが第2のデータモデルによって記述された後に、コンピュータが、第2のデータモデルによって記述されたデータを処理するステップをさらに備える。
 本発明の少なくとも1つの実施例によれば、コンピュータは、第2のデータモデルによるデータのうちの少なくとも一部分をハードディスクに保存し、残りの部分をメモリに保存する。
 本発明の少なくとも1つの実施例によれば、コンピュータはメモリ中に保存されている第2のデータモデルによって記述されたデータをハードディスクに書き込む。
 本発明の少なくとも1つの実施例によれば、コンピュータはハードディスクに保存されている第2のデータモデルによって記述されたデータをメモリに読み込む。
 本発明の少なくとも1つの実施例によれば、データベースシステムを動作させる方法は、所定の項目に属する項目値が所定の条件を満たすレコードを検索するため、
 コンピュータが、第2の配列の中で所定の条件を満たす項目値を探すステップと、
 所定の条件を満たす項目値が存在するならば、コンピュータが、第4の配列から、所定の条件を満たす項目値に対応する項目値番号の領域に格納されているレコード番号を取り出し、取り出されたレコード番号をメモリ内の検索結果配列に書き込むステップと、
をさらに備える。
 本発明の少なくとも1つの実施例によれば、データベースシステムを動作させる方法は、所定の項目に属する項目値によってレコードをソートするため、
 ソート順が所定の項目の第2の配列中の項目値の所定の順序と同じであるならば、コンピュータが、第1の配列をそのままメモリ内のソート結果配列に書き込むステップと、
 ソート順が所定の項目の第2の配列中の項目値の所定の順序と逆であるならば、コンピュータが、第4の配列から、第2の配列中の項目値の所定の順序と逆の順序に、この項目値に対応する項目値番号の領域を特定するステップと、
 コンピュータが、この領域に格納されているレコード番号を格納されている順序で取り出し、メモリ内のソート結果配列に書き込むステップと、
をさらに備える。
 本発明の一実施例によれば、プロセッサとメモリとハードディスクとを含むコンピュータにロードされ、1つ以上のデータ項目に対応した項目値を含む1つ以上のレコードの配列からなる表形式データを、表形式データ中でのレコードのレコード番号を格納する第1の配列と、項目毎に、項目に属する一意の項目値が所定の順序に並べられた第2の配列と、項目毎に、各レコードの項目に属する項目値が第2の配列に格納されている項目値位置をレコード番号の順番に格納する第3の配列とによって表現される第1のデータモデルとして記述し、第1のデータモデルによって記述されたデータを処理するデータベースシステムを動作させる方法を上記コンピュータに実行させるコンピュータ読み取り可能なプログラムが提供される。このプログラムは、
 表形式データが第1のデータモデルによって記述されているとき、第1のデータモデルによって記述されたデータを、第1の配列と、項目毎の第2の配列と、項目毎に、第2の配列に格納された項目値の順番にこの項目値を保持するレコードのレコード番号を格納する第4の配列とによって表形式データを表現する第2のデータモデルによって記述されたデータに変換するため、
 コンピュータが、項目値番号毎にその項目値番号が第3の配列において出現する回数をカウントするコードと、
 コンピュータが、カウントされた回数に基づいて、第4の配列中でレコード番号が分類されて格納される項目値番号毎の領域の範囲を決定するコードと、
 コンピュータが、第3の配列から項目値番号を読み出し、第4の配列中の項目値番号毎の領域に、この項目値番号が第3の配列中に格納されている位置を順番に格納するコードと、
を備え、
 表形式データが第2のデータモデルによって記述されているとき、第2のデータモデルによって記述されたデータを第1のデータモデルによって記述されたデータに変換するため、
 コンピュータが、第4の配列から各項目値番号の領域に格納されているレコード番号を読み出すコードと、
 コンピュータが、読み出されたレコード番号に対応する項目値番号を、読み出されたレコード番号に対応する位置で第3の配列に格納するコードと、
を備える。
 さらに、本発明の一実施例によれば、プロセッサとメモリとハードディスクとを含むコンピュータにロードされ、1つ以上のデータ項目に対応した項目値を含む1つ以上のレコードの配列からなる表形式データを、表形式データ中でのレコードのレコード番号を格納する第1の配列と、項目毎に、項目に属する一意の項目値が所定の順序に並べられた第2の配列と、項目毎に、各レコードの項目に属する項目値が第2の配列に格納されている項目値位置をレコード番号の順番に格納する第3の配列とによって表現される第1のデータモデルとして記述し、第1のデータモデルによって記述されたデータを処理するデータベースシステムを動作させる方法を上記コンピュータに実行させるためのコンピュータプログラムプロダクトが提供される。
 さらに、本発明の一実施例によれば、プロセッサとメモリとハードディスクとを含むコンピュータにロードされ、1つ以上のデータ項目に対応した項目値を含む1つ以上のレコードの配列からなる表形式データを、表形式データ中でのレコードのレコード番号を格納する第1の配列と、項目毎に、項目に属する一意の項目値が所定の順序に並べられた第2の配列と、項目毎に、各レコードの項目に属する項目値が第2の配列に格納されている項目値位置をレコード番号の順番に格納する第3の配列とによって表現される第1のデータモデルとして記述し、第1のデータモデルによって記述されたデータを処理するデータベースシステムを動作させる方法を上記コンピュータに実行させるためのコンピュータプログラムが記録された記録媒体が提供される。
 本発明の少なくとも1つの実施例によれば、相互変換可能な2つのデータモデルが利用されるので、プロセス間での共有性、データの永続性、大容量性、及び、高速性を達成すると共に、メモリとハードディスクの役割分担に柔軟性を持たせることができる、ハイブリッド型データベースシステムを実現することが可能になる。
本発明の1つの実施形態によるコンピュータシステムの概略図である。 本発明の1つの実施形態によるハイブリッド型データベースシステムの基礎となるデータ管理機構を説明するための表形式データの一例を表す図である。 本発明の1つの実施形態によるハイブリッド型データベースシステムにおけるインメモリ向きの第1のデータモデルの説明図である。 本発明の1つの実施形態によるハイブリッド型データベースシステムにおけるオンディスク向きの第2のデータモデルの説明図である。 本発明の1つの実施形態による値リストとレコード番号分類配列とを関連付けるエントリ配列の説明図である。 本発明の1つの実施形態による第1のデータモデル変換処理を説明するための概略図である。 本発明の1つの実施形態による第2のデータモデル変換処理を説明するための概略図である。 本発明の1つの実施形態によるデータベースシステムにおける第2のデータモデルに基づく検索処理の説明図である。 本発明の1つの実施形態によるデータベースシステムにおける第2のデータモデルに基づくソート処理の説明図である。 本発明の1つの実施形態によるデータベースシステムにおける第2のデータモデルに基づくソート処理の説明図である。 本発明の1つの実施形態によるデータベースシステムの機能ブロック図である。
 以下、本発明を実施するための種々の形態を図面と共に詳細に説明する。
 [コンピュータシステム構成]
 図1は大規模データを処理するデータベースシステムを情報処理方法を実施するコンピュータシステムの1つの実施形態の概略図である。図1に示すように、このコンピュータシステム10は、プログラムを実行することによりシステム全体および個々の構成部分を制御する少なくとも1台のCPU 12-1、12-2、...、12-pと、ワークデータ等を記憶する、たとえば、高速アクセス可能なRAMのようなメモリ14と、プログラム等を記憶するROM 16と、ハードディスク、不揮発性メモリ、ハードディスクと不揮発性メモリとの組み合わせ等の不揮発性記憶装置18と、CD-ROM 19をアクセスするためのCD-ROMドライバ20と、CD-ROMドライバ22及び外部ネットワーク等(図示せず)へ繋がれた外部端子に接続されているインタフェース(I/F)22と、キーボード及びマウス等のような入力装置24と、コンピュータモニターのような表示装置26とを備えている。全体として参照符号12によって表されるCPU 12と、メモリ14と、ROM 16と、不揮発性記憶装置18と、インタフェース22と、入力装置24と、表示装置226とは、バス28を介して相互に接続されている。図示されていないが、各CPUは固有のローカルメモリを備えていてもよい。
 コンピュータシステム10のCPU 12に実行させるプログラムは、CD-ROM 19に収容され、CD-ROMドライバ20に読取られても良いし、ROM 16に予め記憶されていても良い。また、いったんCD-ROM 19から読み出したものを、不揮発性記憶装置18の所定の領域に記憶しておいても良い。或いは、上記プログラムは、ネットワーク(図示せず)、外部端子、及び、インタフェース22を介して、外部から供給されるものであっても良い。CD-ROM 19及びCD-ROMドライバ20は、代替的な実施形態では、USBメモリ及びUSBメモリドライバによって置き換えられてもよい。
 また、本発明の1つの実施形態によるハイブリッド型データベースシステムは、コンピュータシステム10にハイブリッド型データシステムを動作させるプログラムを実行させることにより実現される。
 [ハイブリッド型データシステムのための第1のデータモデル]
 図2は本発明の1つの実施形態によるハイブリッド型データシステムの基礎となるデータ管理機構(すなわち、第1のデータモデル)を説明するための表形式データの一例を表す図である。図3は本発明の1つの実施形態によるハイブリッド型データベースシステムにおけるインメモリ向きの第1のデータモデルの説明図である。図2に示された表形式データは、レコード番号0からレコード番号9までの9個のレコード(行)により構成され、各レコードは、年齢という項目(列)及び体重という項目(列)の2個の項目を含んでいる。たとえば、レコード番号0のレコードの項目:年齢の項目値は18であり、項目:体重の項目値は55である。この表形式データは、上述の国際公開第WO00/10103号に提案したデータ管理機構を用いることにより、コンピュータシステム内では図3に示されるようなデータ構造として記憶される。このデータ構造は、市販されているコンピュータ、たとえば、パーソナルコンピュータのハードウェア資源、特に、プロセッサ及びメモリを使用して大規模な表形式データの検索、ソート、集計等を実現するために提案された、コンピュータのメモリ上に置かれる、インメモリ・データベースシステムに適した表形式データのデータ構造であることに注意すべきである。本発明の少なくとも1つの実施形態において、2つのデータモデルのうちの一方は、このデータ構造によって実現される。
 なお、レコード番号は、「元の表形式データ中でレコードが収容されている位置を表す情報(すなわち、原始レコード位置番号)」と「レコードの並び順を表す情報(すなわち、レコード順序番号)」の両方の意味で用いられることがある。本文書中では、両者を明確に区別すべき場合に、原始レコード位置番号と、レコード順序番号という用語を用いることに注意を要する。すべてのレコードには原始レコード位置番号が関連付けられている。この原始レコード位置番号は、データ項目に対応した項目値を含む個々のレコードを特定するために利用される仮想的な情報である。一般に、表形式データは、レコードが常に原始レコード位置番号の順番に配列されているとは限らない。たとえば、元の表形式データをある項目の項目値に関して昇順にソートすると、得られる表形式データのレコードの並び順は元の表形式データのレコードの並び順とは異なる。但し、元々の表形式データ中のレコードは、レコードが原始レコード位置番号の順番に並べられていることがあり、この場合には、原始レコード位置番号とレコード順序番号とが初期的に一致している。
 図3に示すように、表形式データの各レコードの並び順の番号(レコード順序番号)と、原始レコード位置番号は、レコード番号配列301(以下、この配列を「OrdSet」のように略記する。)によって対応付けられる。レコード番号配列301は、レコード順序番号の順に原始レコード位置番号を格納している。図3の例では、レコードは原始レコード位置番号の順番に並べられている。
 ここで、本明細書中での配列の記法について説明する。一般に、配列Aは、添字をiとすると、配列の要素がA[i]のように表記できるが、図面中では、配列は、配列の要素A[i]は、実線で囲まれた領域内に示され、要素A[i]と要素A[i+1]の境界は点線で示されている。また、要素A[i]の添字iが要素A[i]の左側に示されている。また、配列の添字iは0から始まる整数で表されている。
 もう一度図3に戻ると、年齢に関しては、表形式データのレコード順序番号=0に対応する原始レコード位置番号は、配列OrdSet[0]から「0」であることがわかる。原始レコード位置番号が「0」であるレコードに関する実際の年齢の値は、実際の値が所定の順序(たとえば、昇順又は降順)に従ってソートされた値リストである項目値配列303(以下、項目値配列、すなわち、値リストを「VL」のように略記する。)へのポインタ配列である項目値番号配列302(以下、項目値番号配列、すなわち、ポインタ配列を「VNo」のように略記する。)を参照することによって取得できる。項目値番号配列302は、配列OrdSet301に格納されている原始レコード位置番号の順番に従って、実際の値リスト303中の要素を指し示すポインタを格納している。これにより、表形式データのレコード「0」に対応する年齢の項目値は、(1)配列OrdSet301からレコード順序番号=0に対応する原始レコード位置番号=0を取り出し、(2)値リストへのポインタ配列302から原始レコード位置番号=0に対応する要素「1」を取り出し、(3)値リスト303から、項目値番号配列302から取り出された要素「1」によって指し示される要素「18」を取り出すことにより取得できる。
 他のレコードに対しても、また、体重に関しても同様に項目値を取得することができる。よって、レコード毎に項目値を取り出して、項目値に対する操作を行うような処理、たとえば、集計、ジョイン、データ更新、データ変換などの処理を行う場合、第1のデータモデルを選択することが好ましい。
 このように表形式データは、値リストVLと、項目値番号配列VNoの組合せにより表現され、この組合せを、特に、「情報ブロック」と称する。図3には、年齢及び体重に関する情報ブロックがそれぞれ情報ブロック306及び307として示されている。
 以上の説明からわかるように、第1のデータモデルはランダムアクセス性を活用できるデータ構造である。
 [ハイブリッド型データベースシステムのための第2のデータモデル]
 図4は本発明の1つの実施形態によるハイブリッド型データベースシステムにおけるオンディスク向きの第2のデータモデルの説明図である。図2に示された表形式データは、オンディスク向きの第2のデータモデルを利用すると、コンピュータシステム内では図4に示されるようなデータ構造として記憶される。このデータ構造は、市販されているコンピュータ、たとえば、パーソナルコンピュータのハードウェア資源、特に、プロセッサ及びメモリを使用して大規模な表形式データの検索、ソート、集計等を実現するために提案された、コンピュータのメモリに置かれてもよいが、このデータ構造はオンディスク・データベースシステムに適した表形式データのデータ構造であるため、不揮発性記憶装置、たとえば、ハードディスクに置かれてもよいことに注意すべきである。本発明の1つの実施形態において、2つのデータモデルのうちのもう一方は、このデータ構造によって実現される。
 図4を参照して、第2のデータモデルについて説明する。第2のデータモデルは、図2に示された表形式データを、表形式データ中でのレコードのレコード番号を格納するレコード番号配列401と、項目毎に、項目に属する一意の項目値が所定の順序に並べられた値リスト402及び404と、項目毎に、値リスト402及び404に格納された項目値の順番にこの項目値を保持するレコードのレコード番号を格納するレコード番号分類配列403及び405とによって表現するデータモデルである。このように表形式データは、値リストVLと、レコード番号分類配列RecNoの組合せにより表現され、この組合せを、特に、「情報ブロック」と称する。図4には、年齢及び体重に関する情報ブロックがそれぞれ情報ブロック406及び407として示されている。
 レコード番号分類配列RecNoには、所定の順序、たとえば、昇順に並べられた値リストVL中の要素である項目値を項目の属性値として保持しているレコードのレコード番号が、値リストVLの添え字である項目値番号を参照して取り出せるように格納されている。すなわち、値リストVLとレコード番号分類配列RecNoとは、項目値番号を指定すると、この項目値番号に対応するレコード番号が格納されているレコード番号分類配列の範囲が特定できるように関連付けられている。図5は、本発明の1つの実施形態による値リストとレコード番号分類配列とを関連付けるエントリ配列Entryの説明図である。たとえば、項目:年齢に関するエントリ配列501は、値リスト402と同じサイズをもつ。そして、Entry[i]は、VL[i]と一致する項目値を属性として保持するレコードのレコード番号がレコード分類配列403に格納されている先頭位置を表している。よって、VL[i]と一致する項目値を属性として保持するレコードのレコード番号が格納されている範囲は、一般に、レコード番号分類配列RecNo[VL[i]]からレコード番号分類配列RecNo[VL[i+1]-1]までである。勿論、iが最大値をとるとき、この範囲は、レコード番号分類配列RecNo[VL[i]]からレコード番号分類配列RecNoの末尾までである。
 或いは、値リストとレコード番号との関連付けは、項目値番号毎にレコード番号分類配列を参照するポインタを設けることによっても実現できる。
 この第2のデータモデルによれば、レコード番号分類配列403及び405は、項目値毎にレコード番号が分類されて格納されている配列であるので、項目値をキーとして用いるレコード番号の検索及びソートが第1のデータモデルを用いる場合より高速化される。したがって、項目値をキーとしてレコード番号を検索・ソートするとき、第2のデータモデルを選択することが好ましい。また、レコード番号分類配列は、項目値に対応するレコード番号をシーケンシャルアクセスで取り出すことができるように構成されているので、第2のデータモデルはオンディスク・データベースシステムに適したデータモデルである。したがって、データの永続性やユーザ間での共有が要求されるとき、第2のデータモデルを選択することが好ましい。
 以上の説明からわかるように、第2のデータモデルはシーケンシャルアクセスの頻度が高くなるほどに性能が引き出されるデータ構造である。
 [ハイブリッド型データベースシステム]
 本発明の1つの実施形態によるハイブリッド型データベースシステムは、ランダムアクセス性を活用できる第1のデータモデルと、シーケンシャルアクセスを増加させることによって性能を発揮させることができる第2のデータモデルとを備えている。第1のデータモデルと第2のデータモデルは、記憶媒体の特性に応じて選択されることが好ましい。ランダムアクセス向きの記憶媒体は、したがって、第1のデータモデルは、検索、集計、ソート、ジョイン、データ更新、データ変換などのデータベース処理に用いられることが好ましい。シーケンシャルアクセス向きの記録媒体は、したがって、第2のデータモデルは、検索やソートなどのデータベース処理に用いられることが好ましい。なぜならば、検索やソートは、第2のデータモデルを用いることによって、ハードディスクのようなシーケンシャルアクセス向きの記憶媒体においても高速に実現できるからである。勿論、シーケンシャルアクセス向きの記録媒体は、データの永続化、及び、ユーザ間のデータ共有のためにも用いられる。
 さらに、ランダムアクセス向きの記憶媒体とシーケンシャルアクセス向きの記憶媒体とを組み合わせることにより、コスト削減が実現される。すなわち、処理対象のデータはランダムアクセス向きの記憶媒体に保存し、そうでないデータは、より安価なシーケンシャルアクセス向きの記憶媒体に保存することにより、高価なランダムアクセス向きの記憶媒体の容量を増加させずに済む。勿論、上述の通り、第2のデータモデルを利用することによって、頻度の高い検索を、シーケンシャルアクセス向きの記憶媒体で処理することが可能になる。
 また、UNDOは、ランダムアクセス向きの記憶媒体であるメモリ内のデータを放棄し、シーケンシャルアクセス向きの記憶媒体であるディスク上のデータを再読み込みすることによって実現することが可能になる。
 その上、本発明の1つの実施形態によるデータベースシステムによれば、第1のデータモデルと第2のデータモデルを相互に高速に変換可能であり、したがって、ランダムアクセス向きの記憶媒体とシーケンシャルアクセス向きの記憶媒体との間でデータを相互に高速に交換可能である。
 なお、第1のデータモデルで記述されたデータはランダムアクセス向きの記憶媒体であるメモリに記憶されることが好ましいが、第2のデータモデルで記述されたデータは、データの永続化及びユーザ間のデータの共有のためには、不揮発性の記憶媒体、たとえば、ハードディスクに記憶されるが、そうではない場合、第2のデータモデルで記述されたデータがランダムアクセス向きの記憶媒体、たとえば、メモリに保存されることがある。
 [第1のデータモデル変換処理]
 本発明の1つの実施形態によるデータベースシステムにおいて、コンピュータシステム10は、第1のデータモデルによって記述され、メモリ14に格納されている表形式データを、第2のデータモデルによって記述された表形式データに変換し、不揮発性記憶装置18又はメモリ14に格納する。以下では、一例として、図3に記載された第1のデータモデルによって記述された年齢の情報ブロック306を、図4又は図5に記載された第2のデータモデルによって記述された年齢の情報ブロック406に変換する第1のデータモデル変換処理を説明する。図6は、本発明の1つの実施形態による第1のデータモデル変換処理を説明するための、第1のデータモデルによって記述されたデータ及び第2のデータモデルによって記述されたデータの説明図である。この第1のデータモデル変換処理は、メモリ14に格納された項目値番号配列302及び値リスト303から、レコード番号分類配列403を生成し、生成されたレコード番号分類配列403を不揮発性記憶装置18又はメモリ14に書き込む。
 最初に、コンピュータシステム10は、メモリ14に格納されている項目値番号配列302を走査し、項目値番号配列302に格納されている項目値番号毎に、この項目値番号が項目値番号配列302中に出現する回数をカウントし、メモリ14にカウント配列Countを生成する。本例では、カウント配列Countは、
Count[0]=3
Count[1]=3
Count[2]=4
となる。
 次に、コンピュータシステム10は、カウント配列に格納されたカウント値を累計数化することにより、累計数配列Aggrをメモリ14に生成する。本例では、累計数配列Aggrは、
Aggr[0]=0
Aggr[1]=Aggr[0]+Count[0]=0+3=3
Aggr[2]=Aggr[1]+Count[1]=3+3=6
となる。
 これにより、コンピュータシステム10は、レコード番号分類配列において、項目値番号iに対応する項目値を項目の属性として保持するレコードのレコード番号が格納されるべき領域の範囲を決定することができる。項目値番号iに対応する領域の範囲をRange(i)とすると、Range(i)の先頭は、Aggr[i]であり、Range(i)の末尾は、Aggr[i+1]-1である。勿論、iが最大値をとるとき、この範囲は、Aggr[i]からレコード番号分類配列RecNoの末尾までである。
 本実施例によれば、コンピュータシステム10は、この時点での累計数配列Aggrの複製をエントリ配列501として不揮発性記憶装置18又はメモリ14に生成する。或いは、コンピュータシステム10は、エントリ配列を生成する代わりに、レコード番号分類配列における項目値番号iの先頭の位置を示すポインタのポインタ値として累計数配列Aggrの要素Aggr[i]の値を設定してもよい。
 次に、コンピュータシステム10は、レコード番号分類配列の領域を不揮発性記憶装置18又はメモリ14に確保し、或いは、予め確保されている領域を利用して、レコード番号分類配列403にレコード番号を設定する。より具体的には、コンピュータシステム10は、レコード番号iに対応する項目値番号配列302の値VNo[i]を読み出し、次に、累計数配列Aggrの要素Aggr[VNo[i]]を読み出し、レコード番号分類配列403のうちのAggr[VNo[i]]によって指示される位置にレコード番号iを格納する。この処理は、
RecNo[Aggr[VNo[i]]]=i
によって表すことができる。
 コンピュータシステム10が複数台のプロセッサを有する場合、この第1のデータモデル変換処理は並列処理可能である。特に、本出願人による国際公開第WO2006/126467号公報に記載された共有メモリ型マルチプロセッサシステムにおける並列ソートの手法を適用することによって、第1のデータモデル変換処理を並列処理で実現できる。具体的には、この並列ソートの手法を適用すると、最初に、コンピュータシステム10は、処理対象の項目値番号配列302を分割して複数台のプロセッサへ割り当てる。次に、各プロセッサが処理対象の項目値番号配列中の項目値番号のローカルな出現回数をカウントする。次に、コンピュータシステム10は、各プロセッサでカウントされた項目値番号のローカルな出現回数を、この項目値番号の出現回数のグローバルな累計数、すなわち、複数台のプロセッサ間で共通に用いられる累計数に変換する。最後に、各プロセッサは、このグローバルな累計数をポインタとして利用することにより、レコード番号分類配列403にレコード番号を格納する。
 [第2のデータモデル変換処理]
 本発明の1つの実施形態によるデータベースシステムにおいて、コンピュータシステム10は、第2のデータモデルによって記述され、メモリ14又は不揮発性記憶装置18に格納されている表形式データを、第1のデータモデルによって記述された表形式データに変換し、メモリ14に格納する。以下では、一例として、図4又は図5に記載された第2のデータモデルによって記述された年齢の情報ブロック406を、図3に記載された第1のデータモデルによって記述された年齢の情報ブロック306に変換する第2のデータモデル変換処理を説明する。図7は、本発明の1つの実施形態による第2のデータモデル変換処理を説明するための、第2のデータモデルによって記述されたデータ及び第1のデータモデルによって記述されたデータの説明図である。この第2のデータモデル変換処理は、メモリ14又は不揮発性記憶装置18に格納された値リスト402及びレコード番号分類配列403から、項目値番号配列302を生成し、生成された項目値番号配列302をメモリ14に書き込む。
 最初に、コンピュータシステム10は、メモリ14又は不揮発性記憶装置18に格納されている項目値番号iに対応するエントリ配列Entryの要素Entry[i]及び次の項目値番号i+1に対応するエントリ配列Entryの要素Entry[i+1]を読み出し、項目値番号iに対応する項目値を属性として保持しているレコードのレコード番号が格納されているレコード分類番号配列RecNo中の領域を特定する。より詳細には、この領域は、項目値番号iに対応する領域の範囲をRange(i)とすると、Range(i)の先頭は、Entry[i]であり、Range(i)の末尾は、Entry[i+1]-1である。勿論、iが最大値をとるとき、この範囲は、Entry[i]からレコード番号分類配列RecNoの末尾までである。コンピュータシステム10は、項目値番号iに関して、レコード番号分類配列RecNoのRecNo[Entry[i]]からRecNo[Entry[i+1]-1]までの範囲内の要素jを順次に読み出し、メモリ14に確保された項目値番号配列VNoの要素VNo[j]に項目値番号iを設定する。
 この第2のデータモデル変換処理では、プロセッサ12は、値リストVL、エントリ配列Entry、及び、レコード番号分類配列RecNoをシーケンシャルにアクセスするので、値リストVL、エントリ配列Entry、及び、レコード番号分類配列RecNoは、メモリ14に置かれていても、ハードディスクのような不揮発性記憶装置18に置かれていても構わないことがわかる。これに対し、項目値番号配列VNoへの要素の設定は、ランダムアクセスになるが、項目値番号配列VNoはメモリ14に確保されているので、高速なアクセスが可能である。
 コンピュータシステム10が複数台のプロセッサを有する場合、この第2のデータモデル変換処理は第1のデータモデル変換処理と同様に並列処理可能である。
 [第2のデータモデルに基づく検索処理]
 図8は本発明の1つの実施形態によるデータベースシステムにおける第2のデータモデルに基づく検索処理の説明図である。本発明の1つの実施例によれば、コンピュータシステム10は、所定の項目に属する項目値が所定の条件を満たすレコードを検索するため、メモリ14又は不揮発性記憶装置18に格納された値リスト404の中で所定の条件を満たす項目値を探し、所定の条件を満たす項目値が存在するならば、メモリ又は不揮発性記憶装置18に格納されたレコード番号分類配列405から、所定の条件を満たす項目値に対応する項目値番号の領域に格納されているレコード番号を取り出し、取り出されたレコード番号をメモリ内の検索結果配列OrdSet 802に書き込む。
 たとえば、図8に示された例において、体重が53kgから57kgという検索条件が与えられたとする。コンピュータシステム10は、最初に、値リスト404から、検索条件を満たす項目値が格納されている範囲を特定する。そのため、コンピュータシステム10は、二分割法のような周知の技術を使って、値リスト404の中で、項目値54、55及び56が格納されている範囲を特定する。二分割法は値リスト404に対しランダムアクセスを行うが、アクセス量が少ない限り、値リスト404はハードディスクに格納されていても構わない。同図の例では、特定された範囲は、項目値番号1、2及び3に対応している。
 次に、コンピュータシステム10は、レコード番号分類配列405から項目値番号1、2及び3に対応する領域に格納されているレコード番号を取り出す。コンピュータシステム10は、上述のように、項目値番号に対応するレコード番号分類配列405の領域を、エントリ配列502を参照することによって特定する。また、ある項目値番号に対応するレコード番号が格納されている領域は連続領域であるため、コンピュータシステム10は、レコード番号分類配列405から条件を満たすレコード番号をシーケンシャルアクセスで読み出すことが可能である。
 コンピュータシステム10が複数台のプロセッサを有する場合、この検索処理は第1のデータモデル変換処理と同様に並列処理可能である。
 [第2のデータモデルに基づくソート処理]
 図9及び図10は本発明の1つの実施形態によるデータベースシステムにおける第2のデータモデルに基づくソート処理の説明図である。本発明の1つの実施例によれば、コンピュータシステム10は、所定の項目に属する項目値によってレコードをソートするため、ソート順が所定の項目の値リスト404中の項目値の所定の順序と同じであるならば、レコード番号分類配列405をそのままメモリ14内のソート結果配列902に書き込み(図9)、ソート順が所定の項目の値リスト404中の項目値の所定の順序と逆であるならば、レコード番号分類配列405から、値リスト404中の項目値の所定の順序と逆の順序に、この項目値に対応する項目値番号の領域を特定し、この領域に格納されているレコード番号を格納されている順序で取り出し、メモリ14内のソート結果配列1002に書き込む。
 コンピュータシステム10が複数台のプロセッサを有する場合、この検索処理は第1のデータモデル変換処理と同様に並列処理可能である。
 [データベースシステムの機能ブロック]
 図11は、本発明の1つの実施形態によるデータベースシステムの機能ブロック図である。データベースシステム1100は、プロセッサ12とメモリ14とハードディスク18とを含むコンピュータ10を備え、1つ以上のデータ項目に対応した項目値を含む1つ以上のレコードの配列からなる表形式データを、表形式データ中でのレコードのレコード番号を格納する第1の配列と、項目毎に、項目に属する一意の項目値が所定の順序に並べられた第2の配列と、項目毎に、各レコードの項目に属する項目値が第2の配列に格納されている項目値位置をレコード番号の順番に格納する第3の配列とによって表現される第1のデータモデル1101として記述し、第1のデータモデル1101によって記述されたデータを処理する第1のデータ処理部1102を含む。第1のデータ処理部は、国際公開第00/10103号公報に記載されているような検索・集計・ソート、国際公開第00/73939号公報に記載されているようなジョイン、国際公開第01/09764号公報に記載されているようなデータ更新、特開2001-291048号公報に記載されているようなデータ集計、国際公開第WO02/10976号公報に記載されているようなコンパイル、国際公開第WO03/040960号公報に記載されているようなジョインなどを実行するように構成されている。
 このデータベースシステム1100は、第1のデータモデル1101によって記述されたデータを、第1の配列と、項目毎の第2の配列と、項目毎に、第2の配列に格納された項目値の順番にこの項目値を保持するレコードのレコード番号を格納する第4の配列とによって表形式データを表現する第2のデータモデル1103によって記述されたデータに変換する第1のデータモデル変換部1104を含む。データベースシステム1100は、第2のデータモデル1103によって記述されたデータを処理する第2のデータ処理部1105と、第2のデータモデル1103によって記述されたデータを第1のデータモデル1101によって記述されたデータに変換する第2のデータモデル変換部1106をさらに含む。
 第2のデータ処理部1105は、上述されているような第2のデータモデルに基づく検索、第2のデータモデルに基づくソートなどを実行するように構成されている。
 これにより、データベースシステム1100は、予め定められたルールに従って、又は、データベースシステムのオペレータからの指示に従って、ランダムアクセスに適したデータを第1のデータモデル1101によって記述し、シーケンシャルアクセスに適したデータを第2のデータモデル1103によって記述することが可能である。さらに、データベースシステム1100は、予め定められたルールに従って、又は、データベースシステムのオペレータからの指示に従って、ランダムアクセスを用いる処理の対象データを第1のデータモデル1101によって記述し、第1のデータ処理部1102によって処理し、シーケンシャルアクセスを用いる処理の対象データを第2のデータモデル1103によって記述し、第2のデータ処理部1105によって処理することが可能である。
 このため、データベースシステム1100は、相互変換可能である第1のデータモデル1101及び第2のデータモデル1103を選択的に利用できるようにデータベースシステム1100を動作させる制御部1107をさらに備えることがある。制御部1107は、予め定められたルール、又は、外部からの指示に従って、処理されるべきデータを記述すべきデータモデルと、処理されるべきデータを処理すべきデータ処理部とを決定する。より具体的には、制御部1107は、予め定められたルールに従って、又は、外部からの指示に従って、処理されるべきデータが第1のデータモデル1101と第2のデータモデル1103のいずれのデータモデルによって記述されるべきであるかを決定し、処理されるべきデータのデータモデルと記述されるべきデータモデルとが一致しない場合に、第1のデータ変換部1104又は第2のデータ変換部1106に、処理されるべきデータのデータモデルを記述されるべきデータモデルに変換させ、第1のデータ処理部1102又は第2のデータ処理部1105にデータモデルが変換されたデータを処理させる。
 このように、データベースシステム1100は、相互変換可能である第1のデータモデル1101及び第2のデータモデル1103を選択的に利用できるように構成されている。
 本発明は、以上の実施の形態に限定されることなく、特許請求の範囲に記載された発明の範囲内で、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
 10    コンピュータシステム
 12-1,12-2,・・・,12-p    CPU
 14    メモリ
 16    ROM
 18    不揮発性記憶装置
 20    CD-ROMドライバ
 22    I/F
 24    入力装置
 26    表示装置
 28    バス
 301,401   レコード番号配列
 302,304   項目値番号配列
 303,305,402,404   値リスト
 306,307,406,407   情報ブロック
 403,405   レコード番号分類配列
 1100  データベースシステム
 1101  第1のデータモデル
 1102  第1のデータ処理部
 1103  第2のデータモデル
 1104  第1のデータ変換部
 1105  第2のデータ処理部
 1106  第2のデータ変換部
 1107  制御部

Claims (18)

  1.  プロセッサとメモリとハードディスクとを含むコンピュータを備え、1つ以上のデータ項目に対応した項目値を含む1つ以上のレコードの配列からなる表形式データを、表形式データ中でのレコードのレコード番号を格納する第1の配列と、項目毎に、項目に属する一意の項目値が所定の順序に並べられた第2の配列と、項目毎に、各レコードの項目に属する項目値が第2の配列に格納されている項目値位置をレコード番号の順番に格納する第3の配列とによって表現される第1のデータモデルとして記述し、第1のデータモデルによって記述されたデータを処理するデータベースシステムであって、
     第1のデータモデルによって記述されたデータを、第1の配列と、項目毎の第2の配列と、項目毎に、第2の配列に格納された項目値の順番にこの項目値を保持するレコードのレコード番号を格納する第4の配列とによって表形式データを表現する第2のデータモデルによって記述されたデータに変換する第1のデータモデル変換部と、
     第2のデータモデルによって記述されたデータを処理するデータ処理部と、
     第2のデータモデルによって記述されたデータを第1のデータモデルによって記述されたデータに変換する第2のデータモデル変換部と、
    を備え、
     相互変換可能である第1のデータモデル及び第2のデータモデルを選択的に利用できるように構成されている、データベースシステム。
  2.  第1のデータモデル変換部が、最初に、項目値番号毎にその項目値番号が第3の配列において出現する回数をカウントし、次に、カウントされた回数に基づいて、第4の配列中でレコード番号が分類されて格納される項目値番号毎の領域の範囲を決定し、最後に、第3の配列から項目値番号を読み出し、第4の配列中の項目値番号毎の領域に、この項目値番号が第3の配列中に格納されている位置を順番に格納することにより、第4の配列を生成し、
     第2のデータモデル変換部が、第4の配列から各項目値番号の領域に格納されているレコード番号を読み出し、読み出されたレコード番号に対応する項目値番号を、読み出されたレコード番号に対応する位置で第3の配列に格納することにより、第3の配列を生成する、
    請求項1に記載のデータベースシステム。
  3.  データ処理部が第2のデータモデルによって記述されたデータのうちの少なくとも一部分をハードディスクに保存し、残りの部分をメモリに保存する、請求項1又は2に記載のデータベースシステム。
  4.  データ処理部がメモリ中に保存されている第2のデータモデルによって記述されたデータをハードディスクに書き込む、請求項1又は2に記載のデータベースシステム。
  5.  データ処理部がハードディスクに保存されている第2のデータモデルによって記述されたデータをメモリに読み込む、請求項1又は2に記載のデータベースシステム。
  6.  データ処理部が、所定の項目に属する項目値が所定の条件を満たすレコードを検索するため、第2の配列の中で所定の条件を満たす項目値を探し、所定の条件を満たす項目値が存在するならば、第4の配列から、所定の条件を満たす項目値に対応する項目値番号の領域に格納されているレコード番号を取り出し、取り出されたレコード番号をメモリ内の検索結果配列に書き込む、請求項1又は2に記載のデータベースシステム。
  7.  データ処理部が、所定の項目に属する項目値によってレコードをソートするため、ソート順が所定の項目の第2の配列中の項目値の所定の順序と同じであるならば、第4の配列をそのままメモリ内のソート結果配列に書き込み、ソート順が所定の項目の第2の配列中の項目値の所定の順序と逆であるならば、第4の配列から、第2の配列中の項目値の所定の順序と逆の順序に、この項目値に対応する項目値番号の領域を特定し、この領域に格納されているレコード番号を格納されている順序で取り出し、メモリ内のソート結果配列に書き込む、請求項1又は2に記載のデータベースシステム。
  8.  プロセッサとメモリとハードディスクとを含むコンピュータを備え、1つ以上のデータ項目に対応した項目値を含む1つ以上のレコードの配列からなる表形式データを、表形式データ中でのレコードのレコード番号を格納する第1の配列と、項目毎に、項目に属する一意の項目値が所定の順序に並べられた第2の配列と、項目毎に、各レコードの項目に属する項目値が第2の配列に格納されている項目値位置をレコード番号の順番に格納する第3の配列とによって表現される第1のデータモデルとして記述し、第1のデータモデルによって記述されたデータを処理するデータベースシステムを動作させる方法であって、
     表形式データが第1のデータモデルによって記述されているとき、第1のデータモデルによって記述されたデータを、第1の配列と、項目毎の第2の配列と、項目毎に、第2の配列に格納された項目値の順番にこの項目値を保持するレコードのレコード番号を格納する第4の配列とによって表形式データを表現する第2のデータモデルによって記述されたデータに変換するため、
     コンピュータが、項目値番号毎にその項目値番号が第3の配列において出現する回数をカウントするステップと、
     コンピュータが、カウントされた回数に基づいて、第4の配列中でレコード番号が分類されて格納される項目値番号毎の領域の範囲を決定するステップと、
     コンピュータが、第3の配列から項目値番号を読み出し、第4の配列中の項目値番号毎の領域に、この項目値番号が第3の配列中に格納されている位置を順番に格納するステップと、
    を備え、
     表形式データが第2のデータモデルによって記述されているとき、第2のデータモデルによって記述されたデータを第1のデータモデルによって記述されたデータに変換するため、
     コンピュータが、第4の配列から各項目値番号の領域に格納されているレコード番号を読み出すステップと、
     コンピュータが、読み出されたレコード番号に対応する項目値番号を、読み出されたレコード番号に対応する位置で第3の配列に格納するステップと、
    を備える、
    データベースシステムを動作させる方法。
  9.  コンピュータが、予め定められたルールに従って、又は、外部からの指示に従って、処理されるべきデータが第1のデータモデルと第2のデータモデルのいずれのデータモデルによって記述されるべきであるかを決定し、
     処理されるべきデータのデータモデルと記述されるべきデータモデルとが一致しない場合に、コンピュータが、処理されるべきデータのデータモデルを記述されるべきデータモデルに変換するステップと、
     コンピュータが、データモデルが変換されたデータを処理するステップと、
    をさらに備える、請求項8に記載のデータベースシステムを動作させる方法。
  10.  表形式データが第2のデータモデルによって記述された後に、コンピュータが、第2のデータモデルによって記述されたデータを処理するステップをさらに備える、請求項8又は9に記載のデータベースシステムを動作させる方法。
  11.  コンピュータが、第2のデータモデルによって記述されたデータのうちの少なくとも一部分をハードディスクに保存し、残りの部分をメモリに保存する、請求項8又は9に記載のデータベースシステムを動作させる方法。
  12.  コンピュータが、メモリ中に保存されている第2のデータモデルによって記述されたデータをハードディスクに書き込む、請求項8又は9に記載のデータベースシステムを動作させる方法。
  13.  コンピュータがハードディスクに保存されている第2のデータモデルによって記述されたデータをメモリに読み込む、請求項8又は9に記載のデータベースシステムを動作させる方法。
  14.  所定の項目に属する項目値が所定の条件を満たすレコードを検索するため、
     コンピュータが、第2の配列の中で所定の条件を満たす項目値を探すステップと、
     所定の条件を満たす項目値が存在するならば、コンピュータが、第4の配列から、所定の条件を満たす項目値に対応する項目値番号の領域に格納されているレコード番号を取り出し、取り出されたレコード番号をメモリ内の検索結果配列に書き込むステップと、
    をさらに備える、請求項8又は9に記載のデータベースシステムを動作させる方法。
  15.  所定の項目に属する項目値によってレコードをソートするため、
     ソート順が所定の項目の第2の配列中の項目値の所定の順序と同じであるならば、コンピュータが、第1の配列をそのままメモリ内のソート結果配列に書き込むステップと、
     ソート順が所定の項目の第2の配列中の項目値の所定の順序と逆であるならば、コンピュータが、第4の配列から、第2の配列中の項目値の所定の順序と逆の順序に、この項目値に対応する項目値番号の領域を特定するステップと、
     コンピュータが、この領域に格納されているレコード番号を格納されている順序で取り出し、メモリ内のソート結果配列に書き込むステップと、
    をさらに備える、請求項8又は9に記載のデータベースシステムを動作させる方法。
  16.  プロセッサとメモリとハードディスクとを含むコンピュータにロードされ、1つ以上のデータ項目に対応した項目値を含む1つ以上のレコードの配列からなる表形式データを、表形式データ中でのレコードのレコード番号を格納する第1の配列と、項目毎に、項目に属する一意の項目値が所定の順序に並べられた第2の配列と、項目毎に、各レコードの項目に属する項目値が第2の配列に格納されている項目値位置をレコード番号の順番に格納する第3の配列とによって表現される第1のデータモデルとして記述し、第1のデータモデルによって記述されたデータを処理するデータベースシステムを動作させる方法をコンピュータに実行させるコンピュータ読み取り可能なプログラムであって、
     表形式データが第1のデータモデルによって記述されているとき、第1のデータモデルによって記述されたデータを、第1の配列と、項目毎の第2の配列と、項目毎に、第2の配列に格納された項目値の順番にこの項目値を保持するレコードのレコード番号を格納する第4の配列とによって表形式データを表現する第2のデータモデルによって記述されたデータに変換するため、
     コンピュータが、項目値番号毎にその項目値番号が第3の配列において出現する回数をカウントするコードと、
     コンピュータが、カウントされた回数に基づいて、第4の配列中でレコード番号が分類されて格納される項目値番号毎の領域の範囲を決定するコードと、
     コンピュータが、第3の配列から項目値番号を読み出し、第4の配列中の項目値番号毎の領域に、この項目値番号が第3の配列中に格納されている位置を順番に格納するコードと、
    を備え、
     表形式データが第2のデータモデルによって記述されているとき、第2のデータモデルによって記述されたデータを第1のデータモデルによって記述されたデータに変換するため、
     コンピュータが、第4の配列から各項目値番号の領域に格納されているレコード番号を読み出すコードと、
     コンピュータが、読み出されたレコード番号に対応する項目値番号を、読み出されたレコード番号に対応する位置で第3の配列に格納するコードと、
    を備える、コンピュータ読み取り可能なプログラム。
  17.  プロセッサとメモリとハードディスクとを含むコンピュータにロードされ、1つ以上のデータ項目に対応した項目値を含む1つ以上のレコードの配列からなる表形式データを、表形式データ中でのレコードのレコード番号を格納する第1の配列と、項目毎に、項目に属する一意の項目値が所定の順序に並べられた第2の配列と、項目毎に、各レコードの項目に属する項目値が第2の配列に格納されている項目値位置をレコード番号の順番に格納する第3の配列とによって表現される第1のデータモデルとして記述し、第1のデータモデルによって記述されたデータを処理する、請求項8又は9に記載のデータベースシステムを動作させる方法をコンピュータに実行させるためのコンピュータプログラムプロダクト。
  18.  プロセッサとメモリとハードディスクとを含むコンピュータにロードされ、1つ以上のデータ項目に対応した項目値を含む1つ以上のレコードの配列からなる表形式データを、表形式データ中でのレコードのレコード番号を格納する第1の配列と、項目毎に、項目に属する一意の項目値が所定の順序に並べられた第2の配列と、項目毎に、各レコードの項目に属する項目値が第2の配列に格納されている項目値位置をレコード番号の順番に格納する第3の配列とによって表現される第1のデータモデルとして記述し、第1のデータモデルによって記述されたデータを処理する、請求項8又は9に記載のデータベースシステムを動作させる方法をコンピュータに実行させるためのコンピュータプログラムが記録された記録媒体。
PCT/JP2010/051855 2010-02-09 2010-02-09 ハイブリッド型データベースシステム及びその動作方法 WO2011099114A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2010/051855 WO2011099114A1 (ja) 2010-02-09 2010-02-09 ハイブリッド型データベースシステム及びその動作方法
JP2011553670A JPWO2011099114A1 (ja) 2010-02-09 2010-02-09 ハイブリッド型データベースシステム及びその動作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/051855 WO2011099114A1 (ja) 2010-02-09 2010-02-09 ハイブリッド型データベースシステム及びその動作方法

Publications (1)

Publication Number Publication Date
WO2011099114A1 true WO2011099114A1 (ja) 2011-08-18

Family

ID=44367425

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/051855 WO2011099114A1 (ja) 2010-02-09 2010-02-09 ハイブリッド型データベースシステム及びその動作方法

Country Status (2)

Country Link
JP (1) JPWO2011099114A1 (ja)
WO (1) WO2011099114A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013097389A (ja) * 2011-10-27 2013-05-20 Toshiba Corp データベース装置およびデータベース装置の制御方法
WO2015029188A1 (ja) * 2013-08-29 2015-03-05 株式会社日立製作所 計算機及びデータ読み出し方法
WO2015170517A1 (ja) * 2014-05-07 2015-11-12 ウイングアーク1st株式会社 インメモリ管理システムおよびインメモリ管理用プログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000339390A (ja) * 1999-05-31 2000-12-08 Taabo Data Laboratory Kk 表形式データの結合方法、結合された表形式データの提示方法、上記方法を実現するプログラムを記憶した記憶媒体、および、表形式データ提示システム
JP2006059372A (ja) * 2005-09-12 2006-03-02 Toyota Motor Corp サーバ
JP2007034878A (ja) * 2005-07-29 2007-02-08 Turbo Data Laboratory:Kk 情報処理方法、情報処理装置および情報処理プログラム
WO2010013320A1 (ja) * 2008-07-30 2010-02-04 株式会社ターボデータラボラトリー 表形式データを操作する方法、分散メモリ型マルチプロセッサ、及び、プログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000339390A (ja) * 1999-05-31 2000-12-08 Taabo Data Laboratory Kk 表形式データの結合方法、結合された表形式データの提示方法、上記方法を実現するプログラムを記憶した記憶媒体、および、表形式データ提示システム
JP2007034878A (ja) * 2005-07-29 2007-02-08 Turbo Data Laboratory:Kk 情報処理方法、情報処理装置および情報処理プログラム
JP2006059372A (ja) * 2005-09-12 2006-03-02 Toyota Motor Corp サーバ
WO2010013320A1 (ja) * 2008-07-30 2010-02-04 株式会社ターボデータラボラトリー 表形式データを操作する方法、分散メモリ型マルチプロセッサ、及び、プログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013097389A (ja) * 2011-10-27 2013-05-20 Toshiba Corp データベース装置およびデータベース装置の制御方法
WO2015029188A1 (ja) * 2013-08-29 2015-03-05 株式会社日立製作所 計算機及びデータ読み出し方法
JP5999536B2 (ja) * 2013-08-29 2016-09-28 株式会社日立製作所 計算機及びデータ読み出し方法
WO2015170517A1 (ja) * 2014-05-07 2015-11-12 ウイングアーク1st株式会社 インメモリ管理システムおよびインメモリ管理用プログラム
JP2015212913A (ja) * 2014-05-07 2015-11-26 ウイングアーク1st株式会社 インメモリ管理システムおよびインメモリ管理用プログラム

Also Published As

Publication number Publication date
JPWO2011099114A1 (ja) 2013-06-13

Similar Documents

Publication Publication Date Title
KR101938953B1 (ko) 빅 데이터 질의 엔진을 위한 플래시 최적화된 열 데이터 배치 및 데이터 액세스 처리 알고리즘
US7689574B2 (en) Index and method for extending and querying index
US8037035B2 (en) Apparatus for searching and managing compressed files
US7158996B2 (en) Method, system, and program for managing database operations with respect to a database table
AU2005200166B2 (en) Searchable archive
CN104765731B (zh) 数据库查询优化方法和设备
JP5460486B2 (ja) データをソートする装置及び方法
JP2000187668A (ja) グループ化方法と重複排除方法
CN103914483B (zh) 文件存储方法、装置及文件读取方法、装置
US10599652B2 (en) Database query time estimator
KR20120085731A (ko) 전자적 문서 집합으로부터 질의의 결과를 산출하는 방법, 시스템 및 장치
US20140067853A1 (en) Data search method, information system, and recording medium storing data search program
US20140280283A1 (en) Database System with Data Organization Providing Improved Bit Parallel Processing
WO2011099114A1 (ja) ハイブリッド型データベースシステム及びその動作方法
JP4511469B2 (ja) 情報処理方法及び情報処理システム
JP4136594B2 (ja) データ処理方法およびデータ処理プログラム
JP4886266B2 (ja) 文献調査方法、文献調査システムおよび文献調査プログラム
JP3515810B2 (ja) ソート処理方法および装置
WO2005043409A1 (ja) 表形式データの結合方法、結合装置およびプログラム
JP6006740B2 (ja) インデックス管理装置
JP5208117B2 (ja) 表形式データを操作するマルチコア対応データ処理方法、マルチコア型処理装置、及び、プログラム
JPWO2009044486A1 (ja) 表形式データをソートする方法、マルチコア型装置、及び、プログラム
JP4772506B2 (ja) 情報処理方法、情報処理システムおよびプログラム
WO2013069149A1 (ja) データ検索装置、データの検索方法及びプログラム
Polyntsov et al. Implementing the comparison-based external sort

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

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2011553670

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10845717

Country of ref document: EP

Kind code of ref document: A1