[go: up one dir, main page]

WO2014168199A1 - 論理演算方法および情報処理装置 - Google Patents

論理演算方法および情報処理装置 Download PDF

Info

Publication number
WO2014168199A1
WO2014168199A1 PCT/JP2014/060386 JP2014060386W WO2014168199A1 WO 2014168199 A1 WO2014168199 A1 WO 2014168199A1 JP 2014060386 W JP2014060386 W JP 2014060386W WO 2014168199 A1 WO2014168199 A1 WO 2014168199A1
Authority
WO
WIPO (PCT)
Prior art keywords
logical operation
sets
record
records
basket
Prior art date
Application number
PCT/JP2014/060386
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 JP2015511295A priority Critical patent/JPWO2014168199A1/ja
Priority to US14/784,202 priority patent/US20160070776A1/en
Publication of WO2014168199A1 publication Critical patent/WO2014168199A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations

Definitions

  • the present invention relates to a logical operation technique for large-scale data (Big Data).
  • the present invention has been made in view of the above circumstances, and an object thereof is to provide a technique for efficiently performing a logical operation between a plurality of sets in large-scale data.
  • each set to be logically operated is classified into a common section having a size that can be arranged in a memory, and a logical operation is performed on the memory for each section.
  • the common category is set so that all records in each set can be classified without duplication.
  • the logical operation result is obtained by calculating the direct sum of the logical operation results for each section. Note that the size of the common category is determined so that the classified records can be expanded in the memory.
  • each record constituting the set is classified into predetermined categories for each set, and between records belonging to the same category, Perform a logical operation between the sets, obtain an operation result, calculate a direct sum of the operation results for each of the sections, and the section can uniquely classify all the records belonging to the plurality of sets.
  • a logical operation method between sets is provided.
  • An information processing apparatus that performs a logical operation between a plurality of sets, wherein each record constituting the set belongs to the same category as a classification unit that classifies each record into a predetermined category for each set.
  • a logical operation unit that performs a logical operation between the sets and obtains an operation result between records
  • a direct sum unit that calculates a direct sum of the operation results for each of the sections, and the section includes the plurality of the plurality of records.
  • the computer can classify all records belonging to a plurality of sets into categories that can be uniquely categorized, classifying means for classifying the records for each set, and between records belonging to the same category between the predetermined sets.
  • a program for causing a logical operation means for performing a logical operation and obtaining an operation result, and a direct sum means for calculating a direct sum of the operation results for each of the sections.
  • FIG. 1 It is a block diagram of an information processor of an embodiment of the present invention. It is explanatory drawing for demonstrating the example of an ordered set of embodiment of this invention. It is explanatory drawing for demonstrating the conventional logic operation process. It is explanatory drawing for demonstrating the conventional logic operation process. It is explanatory drawing for demonstrating the outline
  • FIG. 1 is a block diagram of the information processing apparatus 100 of this embodiment.
  • the information processing apparatus 100 of this embodiment includes a CPU 110, a memory 120, a storage device 130, an input device 140, and an output device 150. Further, a network interface (NWIF) 170 and an external storage device 160 may be further provided.
  • NWIF network interface
  • the storage device 130 stores a plurality of ordered sets 131 from which duplicate records are excluded. Each ordered set 131 is obtained by searching records held in one database 300 using predetermined items and extracting the search results.
  • the database 300 is held in the external storage device 160 and other information processing devices 180 and other external storage devices 190 connected to the information processing device 100 via the network 171 or the like.
  • FIG. 2 shows an example of the database 300 and each ordered set 131.
  • three ordered sets 131A, 131B, and 131C extracted from the database 300 having three items are shown.
  • the ordered sets are referred to as 131 when there is no need to distinguish them.
  • the database 300 includes three items of age (Age), region (Area), and possession point (Point), and is composed of one or more records having at least one item value.
  • the items in the database 300 are not limited to these, and can take various item types.
  • the item value may be any numerical value, character string, full text, or the like that can be searched.
  • the number assigned to the left side of each record constituting the database 300 is a record number (recNo.) Uniquely assigned to each record.
  • the record number is information representing a position where each record is stored in the database 300 represented as tabular data. This record number is given, for example, when the database 300 is created. Each record can be accessed by specifying a record number.
  • the record number is an address that does not consume the storage area.
  • the database 300 may not be held in one storage area. It may be distributed and stored in a plurality of storage devices. For example, in the example of the database 300, records with record numbers 0 to 3 are stored in the storage device 130 of the information processing apparatus 100, records 4 to 6 are stored in the external storage device 160, and records 7 to 10 are stored. May be stored in the storage device of the information processing apparatus 180. Alternatively, the age database may be stored in the storage device 130, the regional database may be stored in the external storage device 160, and the possession point database may be stored in the external storage device 190.
  • the ordered set 131 is a set of information for searching records satisfying a predetermined condition using a predetermined item as a key in the database 300 and specifying a record obtained as a result.
  • a record number is used as a set of information for specifying a record.
  • search results are often obtained so that item values are in ascending order or descending order as shown in FIG. For this reason, the record numbers stored in the ordered set 131 are randomly arranged.
  • the order of elements for example, (1, 2, 3) or (3, 2, 1) is not distinguished.
  • the order of the set of this embodiment is not required as a result of the set operation, it often has an order when it is generated.
  • the order of the elements, (1, 2, 3) and (3, 2, 1) are distinguished from each other.
  • the set extracted from the database 300 is a set including an order, and is called an ordered set (Ordered Set).
  • the ordered set 131 ⁇ / b> A is a record in which a record having an item “Age” value of 10 or more is extracted from the database 300 and the record number is stored.
  • the ordered set 131A holds record numbers of 3, 2, 5, 8, 4, and 10 in this order.
  • the ordered set 131B is a record in which the record having the item “area” value “South” or “West” is extracted from the database 300 and the record number is stored.
  • the ordered set 131B holds record numbers 10, 2, 8, and 9 in this order.
  • the ordered set 131C is a record in which a record having a value of “owned point (Point)” of 10 or more is extracted from the database 300 and the record number is stored.
  • the ordered set 131C holds record numbers 7, 1, 4, 3, 0, and 8 in this order.
  • an ID for uniquely identifying each record in the database 300 may be assigned, and the ID may be stored in the ordered set 131 instead of the record number.
  • the ID requires a storage area.
  • the CPU 110 realizes a function as an arithmetic unit 210 (see FIG. 6 described later) that executes a logical operation between the ordered sets 131 according to a program stored in the storage device 130 in advance.
  • the arithmetic unit 210 loads the ordered set 131 into the memory 120 and performs the logical operation. Note that data necessary when the arithmetic unit 210 executes a logical operation, data generated during execution of the logical operation, and the like are stored in the memory 120 and / or the storage device 130.
  • each ordered set 131A, 131B, and 131C will be described only by the ordered set A, B, and C and the last alphabetic character, respectively.
  • the above logical operation expression only English letters are used.
  • the logical operation is described as A ⁇ (B + C). The same applies to other sets.
  • the size of each record constituting the ordered sets A, B, and C is expanded (loaded).
  • the possible size of the memory 120 is 6 (each 2 records of each ordered set A, B, C).
  • each ordered set A, B, and C in which record values are randomly arranged is mechanically divided from the top to generate a divided ordered set 132 of two records. Then, the logical operation is executed between the respective divided order sets 132, the sum of the results is generated, the duplicate value elimination operation for eliminating duplicate values is performed, and the result is output. At this time, the logical operation needs to be performed for all combinations of the respective divided order sets 132.
  • the ordered set A is divided into three divided ordered sets 132 (Aa, Ab, Ac) every two records.
  • the ordered set B is divided into two divided ordered sets 132 (Ba, Bb).
  • the ordered set C is divided into three divided ordered sets 132 (Ca, Cb, Cc).
  • the same division order set 132 is used repeatedly.
  • the partition order set Aa is 6 times
  • the partition order set Ab is 6 times
  • the partition order set Ac is 6 times
  • the partition order set Ba is 9 times
  • the partition order set Bb is 9 times
  • the partition order set Ca is used six times
  • the division order set Cb is used six times
  • the division order set Cc is used six times.
  • the total number of ordered sets is K (K is an integer equal to or greater than 1)
  • the number of records in the kth ordered set is Nk (Nk is an integer equal to or greater than 1)
  • Nk is an integer equal to or greater than 1
  • Mk is an integer equal to or greater than 1
  • the number of readings is the product of the number of records in each divided order set 132 and the number of operations. Therefore, in the above example, 6 ⁇ 18 is 108 times. Further, the number of times of writing is the sum of the number of records of the operation result. Therefore, in the above example, in order, 1, 2, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0 times, Times. As described above, in the conventional method, a total of 120 reading and writing processes are performed only by calculation.
  • the integration of the obtained results is not a direct sum. That is, a total of 18 calculation results is obtained to obtain a set (2,2,3,2,3,2,8,8,8,4,4), and duplicates for eliminating duplicate values from this set A removal process is performed to obtain (2, 3, 4, 8) as the calculation result.
  • FIG. 5 shows an outline of processing by the calculation unit 210 of the present embodiment.
  • the records constituting each ordered set 131 are classified (categorized) into common categories.
  • a classification for classifying each record is referred to as a basket.
  • a logical operation is executed for each basket, and finally a direct sum of the logical operation results of all baskets is calculated.
  • the records of each ordered set 131 are divided into sizes that can be arranged in the memory 120, as in the past. However, at this time, it is not mechanically divided by the number of records, but according to the record value, it is classified and classified into one or more predetermined baskets so that records to be distributed do not overlap.
  • the arithmetic unit 210 distributes and classifies all records belonging to a plurality of ordered sets 131 to each basket 400, and for each basket 400.
  • a logic operation unit 212 that performs a logical operation
  • a direct sum unit 213 that calculates a direct sum of the logical operation results of each basket 400.
  • the basket 400 is provided on the storage device 130.
  • each basket 400 only records satisfying a predetermined condition (sorting condition) are sorted.
  • the distribution condition of each basket 400 is set so that all records in the total ordered set 131 can be uniquely distributed (categorized). That is, it is set so as to cover all the records of the total ordered set 131 and classify them without duplication.
  • the distribution condition for example, a range of record values, a remainder (remainder) obtained by dividing the record value by a predetermined integer of 2 or more, and the like can be used.
  • the distribution conditions and the size and number of baskets 400 are determined in advance. Among them, the size and number of baskets 400 are set according to the values of the records in the total ordered set 131 and the size of the memory 120 used for logical operations. For example, the size of the basket 400 is determined such that the total size of all records classified in the basket 400 does not exceed the size of the memory 120.
  • the size of the basket 400 can be up to M / N, where M is the amount of available memory and N is the number of sets.
  • the width of the range is determined according to the size of the memory 120.
  • the divisor is determined according to the size of the memory 120.
  • the number of baskets 400 is small because the number of I / O switching operations is reduced. Note that the minimum number of baskets 400 is N ⁇ T / M when T is the size of the entire set and T is divided by the size M / N of the basket 400.
  • the classification process by the classification unit 211 of the present embodiment will be described with a specific example using three ordered sets A, B, and C shown in FIG. 2 as shown in FIG.
  • the logical operation executed here is A ⁇ (B + C) as in the conventional method description.
  • the distribution condition of each basket 400 is a range of record values. That is, a record whose record value matches the range of record values specified by the distribution condition is distributed to the basket 400.
  • the distribution condition of the first basket 401 is that the record value is in the range [0.2], that is, the record value is (0, 1, 2).
  • the distribution condition is the same [3..6], that is, the same (3,4,5,6), and the distribution condition of the third basket 403 is the same [7..10], that is, the same (7 , 8, 9, 10).
  • the classification unit 211 classifies the records into the baskets 401, 402, and 403 in order of record numbers for each of the ordered sets A, B, and C.
  • the first basket 401 [0..2] contains a record with record number 1 and a record value of 2 (hereinafter simply referred to as record 2).
  • ..6] include record 3 with record number 0, record 5 with record number 2, and record 4 with record number 5, and third basket 403 [7..10] includes record 8 with record number 3 and The records 10 with the record number 5 are classified.
  • the records are classified into the respective baskets 401, 402, and 403.
  • FIG. 7C shows a partial ordered set 133 of each ordered set 131 after classification.
  • the ordered set A includes a partial ordered set 133 (A401) classified into the first basket 401, a partial ordered set 133 (A402) classified into the second basket 402, and a third Are divided (segmented) into partial order sets 133 (A403) classified into baskets 403.
  • the ordered set B is the partial ordered set 133 (B401) and the partial ordered set 133 (B403)
  • the ordered set C is the partial ordered set 133 (C401), the partial ordered set 133 (C402), and the partial ordered set 133. (C403).
  • the logical operation unit 212 of this embodiment performs a logical operation for each basket. That is, in the example of FIG. 7B, a logical operation is performed between records in the first basket 401, the second basket 402, and the third basket 404.
  • the categories of the baskets 400 (401, 402, 403) do not overlap. For this reason, the result of the logical operation in one basket 400 is always separate and independent from that of the other basket 400. For this reason, the direct sum unit 21 of the present embodiment calculates the direct sum of the logical operation results of the baskets 400 (401, 402, 403), and obtains the operation results. In the above example, ((2) + (3,4) + (8,10)) is calculated, and the operation result (2,3,4,8,10) is obtained.
  • each record is read from the storage device 130 to the memory 120, and it is determined to which basket 400 the assignment is made, and written in the basket area of the storage device 130. For this reason, it is necessary to read from the storage area 130 to the memory 120 and write from the memory 120 to the storage device 130 several times. In the above example, 16 times are required, 32 times in total.
  • the number of times each partial ordered set is used for a logical operation is “proportional” to the size of the total ordered set, and the prior art polynomial order shown in Equation (1) Are fundamentally different, each time.
  • the total number of logical operations is three as described above. In these three operations, the number of reads is the product of the number of records in each partial ordered set and the number of logical operations, and the number of writes is 16, and the number of writes is the sum of the number of records of the operation results. The total of 2 times is 5 times. Therefore, the number of reads and writes during the logical operation is 21.
  • FIG. 8 illustrates a flow of logical operation processing between the ordered sets 131 by the operation unit 210 of the present embodiment.
  • the classification unit 211 scans and classifies the records in each ordered set 131 in order from the top, and distributes them to each basket 400 (step S1101).
  • the calculation unit 212 loads records into the memory 120 in units of baskets 400 and performs logical operations (step S1102).
  • the logical operation result is stored in the storage device 130 or the like.
  • the direct sum unit 213 loads the logical operation result into the memory 120 and calculates the direct sum (step S1103).
  • the information processing apparatus 100 is an information processing apparatus 100 that performs a logical operation between a plurality of ordered sets 131, and records each of the ordered sets 131 as the ordered set 131.
  • the logical operation is performed between records belonging to the same category (basket) 400 of the classification unit 211 that classifies the category (basket) 400 and each ordered set 131, respectively, and obtains an operation result.
  • a logical operation unit 212; and a direct sum unit 213 that calculates a direct sum of the operation results of each of the sections (baskets) 400.
  • the section (basket) 400 includes all records belonging to the plurality of ordered sets 131. Are uniquely categorized.
  • the records of each ordered set 131 are classified in advance into sections that do not overlap with each other, and logical operations are performed between the sections.
  • the size of the section is a size that can be expanded in the memory 120.
  • the writing process to the basket 400 and the reading process from the basket 400 at the time of the logical operation are added, but each arithmetic process can be executed only by loading it once onto the memory 120. .
  • the number of calculations is also the number of baskets 400. For this reason, unlike the prior art, it is not necessary to perform the calculation for every combination for each division unit. Thus, according to this embodiment, the number of calculations can be reduced. Furthermore, since the number of operations is reduced, the number of accesses to the memory 120 for each operation is also reduced. In addition, deduplication calculation when obtaining the final result is not necessary.
  • a logical operation on an ordered set 131 that is created from large-scale data and cannot be expanded on the memory 120 can be efficiently executed at high speed.
  • all the ordered sets 131 are classified into the basket 400, but the present invention is not limited to this.
  • the ordered set 131 having a predetermined size or less (less than a predetermined number of records) may be configured to be operated as it is without being classified.
  • each basket 400 may be constructed on a different information processing apparatus connected by the network 171 or the like.
  • each information processing apparatus in which the basket 400 is constructed includes a logical operation unit 212 and performs logical operation on data in the basket 400.
  • the classification unit 211 may be configured to scan each ordered set 131 and extract a record to be distributed to the logical operation target basket 400 during the logical operation. In this case, the classification unit 211 scans the ordered set 131 by the number of baskets 400.

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

大規模データにおいて、複数の集合間の論理演算を効率的に行う。論理演算対象の各集合を、メモリに配置可能なサイズの、予め定めた共通の区分に分類し、区分毎にメモリ上で論理演算を行う。共通の区分は、各集合の全レコードを重複無く分類できるよう設定する。そして、区分毎の論理演算結果の直和を計算することにより、論理演算結果を得る。なお、共通の区分のサイズは、分類されたレコードがメモリに展開可能なように決定する。

Description

論理演算方法および情報処理装置
 本発明は、大規模データ(Big Data)の論理演算技術に関する。
 ネットワーク、サーバ、ストレージなどのハードウェアの革新と、それらの運用技術の発展に伴い、近年、データ量が爆発的に増加している。このようなデータは、大規模データと呼ばれている。大規模データは、ディスク上には保持できるが、その大きさのため、メモリ上には全てを展開できない。このため、大規模データの論理演算、例えば、大規模データから生成した複数の集合間でAND、ORといった論理演算を行う場合、集合をメモリにロード可能なサイズに機械的に分割した部分集合を生成し、部分集合の全ての組み合わせで論理演算処理を繰り返す必要がある。これを高速化するものとして、並列処理のMapReduce技術がある(例えば、非特許文献1参照)。
"MapReduce"、[online]、2013年3月20日更新、[2013年3月21日検索]、インターネット、<URL:http://en.wikipedia.org/wiki/MapReduce>
 しかしながら、たとえMapReduce技術を適用して並列化したとしても、各集合について分割した単位毎に総当りで論理演算を行うため、全演算回数が増大する。このため、処理自体が、非効率であるだけでなく、メモリへの展開のためにディスクへのアクセス回数が増加し、処理性能が劣化する。
 本発明は、上記事情に鑑みてなされたもので、大規模データにおいて、複数の集合間の論理演算を効率的に行う技術を提供することを目的とする。
 本発明は、論理演算対象の各集合を、メモリに配置可能なサイズの、共通の区分に分類し、区分毎にメモリ上で論理演算を行う。共通の区分は、各集合の全レコードを重複無く分類できるよう設定する。そして、区分毎の論理演算結果の直和を計算することにより、論理演算結果を得る。なお、共通の区分のサイズは、分類されたレコードがメモリに展開可能なように決定する。
 具体的には、複数の集合間の論理演算方法であって、前記集合を構成する各レコードを、前記集合毎に、それぞれ予め定めた区分に分類し、同一の前記区分に属するレコード間で、前記集合間の論理演算を行い、演算結果を得、前記区分毎の前記演算結果の直和を計算し、前記区分は、前記複数の集合に属する全レコードを一意に類別可能なものであることを特徴とする集合間の論理演算方法を、提供する。
 また、複数の集合間の論理演算を行う情報処理装置であって、前記集合を構成する各レコードを、前記集合毎に、それぞれ予め定めた区分に分類する分類部と、同一の前記区分に属するレコード間で、前記集合間の論理演算を行い、演算結果を得る論理演算部と、前記区分毎の前記演算結果の直和を計算する直和部と、を備え、前記区分は、前記複数の集合に属する全レコードを一意に類別可能なものであることを特徴とする集合間の情報処理装置を提供する。
 また、コンピュータを、複数の集合に属する全レコードを一意に類別可能な区分に、当該レコードを前記集合毎に分類する分類手段、同一の前記区分に属するレコード間で、予め定めた前記集合間の論理演算を行い、演算結果を得る論理演算手段、前記区分毎の前記演算結果の直和を計算する直和手段、として機能させるためのプログラムを提供する。
 本発明によれば、大規模データにおいて、複数の集合間の論理演算を効率的に行うことができる。
本発明の実施形態の情報処理装置のブロック図である。 本発明の実施形態の順序集合例を説明するための説明図である。 従来の論理演算処理を説明するための説明図である。 従来の論理演算処理を説明するための説明図である。 本発明の実施形態の演算処理の概要を説明するための説明図である。 本発明の実施形態の演算部の機能ブロック図である。 (a)は、本発明の実施形態の順序集合例を、(b)は、本発明の実施形態の区分(バスケット)を、(c)は、区分後の順序集合例を、それぞれ説明するための説明図である。 本発明の実施形態の順序集合間の論理演算処理のフローチャートである。 本発明の実施形態の順序集合間の論理演算手法を説明するための説明図である。
 以下、本発明を適用する実施形態について説明する。以下、本発明の実施形態を説明するための全図において、同一機能を有するものは同一符号を付し、その繰り返しの説明は省略する。
 図1は、本実施形態の情報処理装置100のブロック図である。本図に示すように、本実施形態の情報処理装置100は、CPU110と、メモリ120と、記憶装置130と、入力装置140と、出力装置150と、を備える。また、ネットワークインタフェース(NWIF)170および外部記憶装置160をさらに備えてもよい。
 記憶装置130には、重複したレコードを排除した、複数の順序集合131が格納される。各順序集合131は、それぞれ、1つのデータベース300に保持されるレコードを、所定の項目で検索し、検索結果を抽出したものである。なお、データベース300は、外部記憶装置160、並びに、情報処理装置100にネットワーク171などを介して接続される他の情報処理装置180および他の外部記憶装置190などに保持される。
 図2に、データベース300および各順序集合131の例を示す。ここでは、一例として、3つの項目を有するデータベース300から抽出した3つの順序集合131A、131B、131Cを示す。以後、順序集合は、各々区別する必要がない場合は、131と呼ぶ。
 データベース300は、本図に示すように、年齢(Age)、地域(Area)、保有ポイント(Point)の3つの項目を備え、少なくとも1つの項目値を有する、1以上のレコードから構成される。なお、データベース300の項目は、これらに限られず、様々な項目型を取りえる。また、項目値も、数値、文字列、全文など検索の対象にできるものであればいずれでもかまわない。
 データベース300を構成する各レコードの左横に付与した番号は、各レコードに一意に付与されるレコード番号(recNo.)である。レコード番号は、表形式データとして表されるデータベース300において、各レコードが収容されている位置を表す情報である。このレコード番号は、例えば、データベース300の作成時に付与される。各レコードには、レコード番号を指定することにより、アクセスできる。レコード番号は、記憶域を消費しない番地である。
 なお、データベース300は、1の記憶領域に保持されていなくてもよい。複数の記憶装置に分散して格納されていてもよい。例えば、上記データベース300の例では、レコード番号が0から3までのレコードが、情報処理装置100の記憶装置130に、同4から6のレコードが、外部記憶装置160に、同7から10のレコードが情報処理装置180の記憶装置に格納されていてもよい。あるいは、年齢のデータベースが記憶装置130に、地域のデータベースが外部記憶装置160に、保有ポイントのデータベースが外部記憶装置190に格納されていてもよい。
 順序集合131は、このデータベース300の、所定の項目をキーに、所定の条件を満たすレコードを検索し、その結果得られたレコードを特定する情報の集合である。本実施形態では、レコードを特定する情報の集合として、レコード番号を用いる。
 一般に検索結果はインデックスの仕組み上、図2に示すように、項目値が昇順または降順となるよう得られることが多い。このため、順序集合131に格納されるレコード番号は、ランダムな並びとなる。
 通常の集合は順序のないものであるため、要素の並び順、例えば、(1,2,3)も(3,2,1)も区別されない。本実施形態の集合も集合演算の結果としては順序を要求されないものの、それが生成される時点では順序を持つことが多い。本実施形態では、その場合でも演算が行えることを示すため、ここでは、要素の順序、(1,2,3)と(3,2,1)を区別して話を進める。このため、本実施形態では、データベース300から抽出した上記集合は、順序も含めた集合であるため、順序集合(Ordered Set)と呼ぶ。
 例えば、図2に示すように、順序集合131Aは、データベース300から、項目「年齢(Age)」の値が10以上であるレコードを抽出し、そのレコード番号を格納したものである。本図に示すように、順序集合131Aは、それぞれ、3,2,5,8,4,10というレコード番号を、この順に保持する。
 また、順序集合131Bは、データベース300から、項目「地域(Area)」の値がSouthまたはWestであるレコードを抽出し、そのレコード番号を格納したものである。順序集合131Bは、それぞれ、10,2,8,9というレコード番号を、この順に保持する。
 また、順序集合131Cは、データベース300から、「保有ポイント(Point)」の値が10以上であるレコードを抽出し、そのレコード番号を格納したものである。順序集合131Cは、それぞれ、7,1,4,3,0,8というレコード番号を、この順に保持する。
 なお、レコード番号以外に、データベース300の各レコードを一意に特定するIDなどを付与し、レコード番号の代わりに当該IDを、順序集合131に格納するよう構成してもよい。ただし、IDは、レコード番号と異なり、記憶域が必要となる。
 本実施形態のCPU110は、予め記憶装置130に格納されたプログラムに従って、各順序集合131間の、論理演算を実行する演算部210(後述する図6参照)としての機能を実現する。演算部210は、順序集合131を、メモリ120にロードして上記論理演算を行う。なお、演算部210が論理演算を実行する際必要なデータ、論理演算実行中に生成されるデータ等は、メモリ120および/または記憶装置130に格納される。
 本実施形態の、演算部210が実現する論理演算手法の説明に先立ち、従来の情報処理装置による論理演算手法(従来手法)を説明する。ここでは、図2に示す順序集合131A、131B、131Cを用いて、順序集合131Bおよび順序集合131Cの論理和(OR)と順序集合131Aとの論理積(AND)を演算する場合を例にあげて説明する。
 以後、各順序集合131A、131B、131Cを、それぞれ、順序集合A、B、Cと末尾の英字のみで記載する。また、上記論理演算式内では、英字のみで記載する。例えば、上記論理演算は、A×(B+C)と記載する。他の集合についても、同様とする。
 ここで、順序集合A、B、Cを構成する各レコードのサイズを1、本実施形態の情報処理装置100において、論理演算を行う際、順序集合A、B、Cのレコードを展開(ロード)可能なメモリ120のサイズを、6(各順序集合A、B、Cの各2レコード分)とする。
 従来手法によれば、図3に示すように、レコード値がランダムに並ぶ各順序集合A、B、Cを、先頭から機械的に分割して2レコードずつの分割順序集合132を生成する。そして、各分割順序集合132間で、それぞれ、上記論理演算を実行し、その結果の和を生成し、重複値を排除する重複値排除演算を行い、演算結果として出力する。このとき、論理演算は、各分割順序集合132の全ての組み合わせについて行う必要がある。
 例えば、図3に示すように、順序集合Aは、2レコードずつ、3つの分割順序集合132(Aa,Ab,Ac)に分割される。また、順序集合Bは、2つの分割順序集合132(Ba,Bb)に分割される。また、順序集合Cは、3つの分割順序集合132(Ca、Cb,Cc)に分割される。
 従来手法では、図4に示すように、分割順序集合Aaについて、Aa×(Ba+Ca)と、Aa×(Ba+Cb)と、Aa×(Ba+Cc)と、Aa×(Bb+Ca)と、Aa×(Bb+Cb)と、Aa×(Bb+Cc)の6回演算を行う。分割順序集合Ab、Acについても、それぞれAaをAb、Acに変えて、同様に、それぞれ6回演算を行う。
 従って、以下に示す18回の演算が必要となる。
1)Aa×(Ba+Ca)=(3,2)×(1,2,7,10)=(2)
2)Aa×(Ba+Cb)=(3,2)×(2,3,4,10)=(2,3)
3)Aa×(Ba+Cc)=(3,2)×(0,2,8,10)=(2)
4)Aa×(Bb+Ca)=(3,2)×(1,7,8,9)=()
5)Aa×(Bb+Cb)=(3,2)×(3,4,8,9)=(3)
6)Aa×(Bb+Cc)=(3,2)×(0,8,8,9)=()
7)Ab×(Ba+Ca)=(5,8)×(1,2,7,10)=()
8)Ab×(Ba+Cb)=(5,8)×(2,3,4,10)=(2)
9)Ab×(Ba+Cc)=(5,8)×(0,2,8,10)=(8)
10)Ab×(Bb+Ca)=(5,8)×(1,7,8,9)=(8)
11)Ab×(Bb+Cb)=(5,8)×(3,4,8,9)=(8)
12)Ab×(Bb+Cc)=(5,8)×(0,8,8,9)=(8)
13)Ac×(Ba+Ca)=(4,6)×(1,2,7,10)=()
14)Ac×(Ba+Cb)=(4,6)×(2,3,4,10)=(4)
15)Ac×(Ba+Cc)=(4,6)×(0,2,8,10)=()
16)Ac×(Bb+Ca)=(4,6)×(1,7,8,9)=()
17)Ac×(Bb+Cb)=(4,6)×(3,4,8,9)=(4)
18)Ac×(Bb+Cc)=(4,6)×(0,8,8,9)=()
 また、従来演算では、同じ分割順序集合132が繰り返し演算に使用される。例えば、上記の例では、分割順序集合Aaは6回、分割順序集合Abは6回、分割順序集合Acは6回、分割順序集合Baは9回、分割順序集合Bbは9回、分割順序集合Caは6回、分割順序集合Cbは6回、分割順序集合Ccは6回、それぞれ、演算に使用される。
 一般化すると、全順序集合数をK(Kは1以上の整数)、k番目の順序集合のレコード数をNk(Nkは1以上の整数)、1順序集合あたりの、k番目の順序集合のメモリ上に割り当て可能なレコード数をMk(Mkは1以上の整数)とすると、以下の式(1)で表されるP回、論理演算を行う必要がある。
Figure JPOXMLDOC01-appb-M000001
このため、記憶装置130からメモリ120への読み出し、メモリ120から記憶装置130への書き込みといった、メモリへのアクセス回数が膨大なものとなる。
 上記18回の演算において、読み出し回数は、それぞれの分割順序集合132のレコード数と演算回数の積である。従って、上記の例では、6×18で108回となる。また、書き込み回数は、演算結果のレコード数の和である。従って、上記の例では、順に、1,2,1,0,1,0,0,1,1,1,1,1,0,1,0,0,1,0回の合計で、12回である。このように、従来手法では、演算だけで、合計120回の読み出し、書き込み処理が行われる。
 さらに、従来手法によれば、得られた結果の統合が、直和ではない。すなわち、18回の演算結果を合計し、集合(2,2,3,2,3,2,8,8,8,8,4,4)を得、この集合から重複する値を消去する重複除去処理を行い、演算結果として(2,3,4,8)を得る。
 次に、本実施形態の演算部210による、処理を説明する。本実施形態の演算部210による処理の概要を図5に示す。本図に示すように、本実施形態では、まず、各順序集合131を構成する各レコードを、共通の区分に分類(類別)する。以後、各レコードを類別する区分を、バスケットと呼ぶ。そして、バスケット毎に、論理演算を実行し、最後に、全バスケットの論理演算結果の直和を計算する。
 本実施形態では、従来同様、メモリ120に配置可能なサイズに各順序集合131のレコードを分割する。しかしながら、このとき、機械的にレコード数で分割するのではなく、レコード値に応じて、振り分けられるレコードが重複しないよう予め定められた1以上のバスケットに分類、類別する。
 これを実現するため、本実施形態の演算部210は、図6に示すように、複数の順序集合131に属する全レコードを、各バスケット400に振り分け、分類する分類部211と、バスケット400毎に、論理演算を行う論理演算部212と、各バスケット400の論理演算結果の直和を計算する直和部213と、を備える。なお、バスケット400は、記憶装置130上に設けられる。
 各バスケット400には、予め定めた条件(振分条件)を満たすレコードのみが振り分けられる。各バスケット400の振分条件は、上述のように、全順序集合131の全レコードを一意に振り分け(類別)可能なように設定される。すなわち、全順序集合131の全レコードを網羅するとともに、重複無く分類できるよう、設定される。
 振分条件には、例えば、レコード値の範囲、レコード値を予め定めた2以上の整数で除算した際の余り(剰余)、等を用いることができる。
 振分条件、バスケット400のサイズおよび数は、予め定められる。この中で、バスケット400のサイズおよび数は、全順序集合131のレコードの値、論理演算に用いるメモリ120のサイズに応じて設定される。例えば、バスケット400のサイズは、当該バスケット400に分類される全レコードの総サイズが、メモリ120のサイズを超えないよう決定される。
 論理演算において、一般的に用いられるビットマップを使用すると和も積も追加の作業変数(作業領域)を必要としない。ビットマップは大きい集合でも小さい集合でも使用領域のサイズは同じであり、ただビット1が多いか少ないかだけである。従って、バスケット400のサイズは、使用可能なメモリ量をMとし、集合の数をNとすると、最大で、M/Nまでとることができる。
 例えば、振分条件がレコード値の範囲の場合は、範囲の幅を、メモリ120のサイズに応じて決定する。振分条件が、剰余の場合は、メモリ120のサイズに応じて、除数を決定する。
 なお、バスケット数は、多いと1回に行う演算の量が減少し、少ないと1回の演算の量が増加する。従って、結局、演算量はバスケット数とは関係ないが、バスケット400の数が少ないほうがI/O切り替え回数が減少するため、一般には有利である。なお、最少のバスケット400の数は、集合全体のサイズをTとすると、Tを、バスケット400のサイズM/Nで除して、N×T/M個となる。
 本実施形態の分類部211による、分類処理を、図7(a)に示すように、図2に示す3つの順序集合A、B、Cを用い、具体例で説明する。ここで実行する論理演算は、従来手法説明時と同様に、A×(B+C)とする。
 ここでは、図7(b)に示すように、各バスケット400の振分条件は、レコード値の範囲とする。すなわち、レコード値が、振分条件で指定されたレコード値の範囲に合致するレコードが、当該バスケット400に振分られる。
 ここでは、一例として、3つのバスケット401、402、403を用意する。第一のバスケット401の振分条件は、レコードの値が範囲[0..2]にあるもの、すなわち、レコード値が(0,1,2)であるものとし、第二のバスケット402の振分条件は、同[3..6]、すなわち、同(3,4,5,6)とし、第三のバスケット403の振分条件は、同[7..10]、すなわち、同(7,8,9,10)とする。
 図7(b)に示すように、本実施形態の分類部211は、順序集合A、B、C毎に、レコード番号順に、各レコードを、各バスケット401、402、403に分類する。順序集合Aについては、第一のバスケット401[0..2]には、レコード番号1の、レコード値が2のレコード(以後、単にレコード2と呼ぶ。)が、第二のバスケット402[3..6]には、レコード番号0のレコード3、レコード番号2のレコード5およびレコード番号5のレコード4が、第三のバスケット403[7..10]には、レコード番号3のレコード8およびレコード番号5のレコード10が、それぞれ分類される。
 順序集合Bおよび順序集合Cも同様に、図7(b)に示すように、それぞれのバスケット401、402、403に、各レコードが分類される。
 分類後の、各順序集合131の部分順序集合133を図7(c)に示す。本図に示すように、順序集合Aは、第一のバスケット401に分類される部分順序集合133(A401)と、第二のバスケット402に分類される部分順序集合133(A402)と、第三のバスケット403に分類される部分順序集合133(A403)とに分割(区分)される。同様に、順序集合Bは、部分順序集合133(B401)、部分順序集合133(B403)に、順序集合Cは、部分順序集合133(C401)、部分順序集合133(C402)、部分順序集合133(C403)に分割される。
 本実施形態の論理演算部212は、バスケット毎に論理演算を行う。すなわち、図7(b)の例では、第一のバスケット401、第二のバスケット402、第三のバスケット404内のレコード間で論理演算を行う。ここでは、以下に示す、3回の演算を行う。
1)A401×(B401+C401)=(2)×(2,1,0)=(2)
2)A402×(B402+C402)=(3,5,4)×(3,4)=(3,4)
3)A403×(B403+C403)=(8,10)×(7,8,9,10)
                  =(8,10)
 本実施形態では、上述のように、各バスケット400(401、402、403)のカテゴリは、重複していない。このため、1のバスケット400内の論理演算の結果は、他のバスケット400のそれと常に分離独立である。このため、本実施形態の直和部21は、各バスケット400(401、402、403)の論理演算結果の直和を計算し、演算結果を得る。上記の例では、((2)+(3,4)+(8,10))を計算し、演算結果(2,3,4,8,10)を得る。
 なお、本実施形態では、バスケット400に振り分ける際、各レコードを記憶装置130からメモリ120へ読み出し、いずれのバスケット400に振り分けるか判別し、記憶装置130のバスケット領域に書き込む。このため、レコード数回、記憶領域130からメモリ120への読み出し、および、メモリ120から記憶装置130への書き込みが必要となる。上記の例では、それぞれ16回、計32回必要となる。
 しかしながら、上記演算例で、各部分順序集合が、論理演算に使用される回数は、全順序集合のサイズに「比例的」なのは明らかで、式(1)に示される従来の技術の多項式オーダーとは根本的に異なり、それぞれ1回である。また、論理演算の総回数は、上述のように、3回である。この3回の演算において、読出し回数は、それぞれの部分順序集合のレコード数と論理演算回数の積であり、16回、書き込み回数は、演算結果のレコード数の和であり、順に、1、2、2回の合計で、5回である。従って、論理演算中の読み出し、書き込み回数は、21回である。
 従って、本実施形態の手法によれば、図2に示す順序集合A、B,C間で、論理演算A×(B+C)を実行する場合、振分時の32回と論理演算時の21回の合計で、53回の読み出し、書き込み処理で済む。従来手法が、同条件で120回であったことと比較すると飛躍的にメモリへのアクセス回数が低減する。
 さらに、本実施形態によれば、各部分順序集合133間で論理演算を実行後、結果集合の統合時に、大きなメモリを消費し時間もかかる重複値排除演算を行う必要が無く、直和を計算するだけで結果を作成できるため、効率的である。
 図8に、本実施形態の演算部210による、順序集合131間の論理演算処理の流れを説明する。まず、分類部211が、各順序集合131内のレコードを、先頭から順に、それぞれスキャンして分類し、各バスケット400に振り分ける(ステップS1101)。次に、演算部212が、バスケット400単位で、レコードをメモリ120にロードし、論理演算を行う(ステップS1102)。論理演算結果は、記憶装置130などに格納する。最後に、直和部213が、論理演算結果をメモリ120にロードし、その直和を計算する(ステップS1103)。
 以上説明したように、本実施形態の情報処理装置100は、複数の順序集合131間の論理演算を行う情報処理装置100であって、前記順序集合131を構成する各レコードを、前記順序集合131毎に、それぞれ予め定めた区分(バスケット)400に分類する分類部211と、各順序集合131の、同一の前記区分(バスケット)400に属するレコード間で、前記論理演算を行い、演算結果を得る論理演算部212と、各前記区分(バスケット)400の前記演算結果の直和を計算する直和部213と、を備え、前記区分(バスケット)400は、前記複数の順序集合131に属する全レコードを一意に類別可能なものであることを特徴とする。
 このように、本実施形態によれば、予め、各順序集合131のレコードを、互いに重複しない区分に分類しておき、区分間で論理演算を行う。このとき、区分のサイズは、メモリ120に展開可能なサイズとする。
 このため、本実施形態によれば、バスケット400への書き出し処理、論理演算時のバスケット400からの読み込み処理は追加となるが、各演算処理は、メモリ120上に1回ロードするだけで実行できる。演算回数も、バスケット400の数で済む。このため、従来のように、分割単位毎に、全ての組み合わせで演算を行う必要がない。このように、本実施形態によれば、演算回数を減らすことができる。さらに、演算回数が減ることにより、演算毎の、メモリ120へのアクセス回数も低減する。また、最終結果を得る際の重複除去演算も不要となる。
 従って、本実施形態によれば、大規模データから作成された、メモリ120上に展開できないほど大きな順序集合131に対する論理演算を、高速に、効率的に実行できる。
 なお、上記実施形態では、各順序集合131を、全てバスケット400に類別しているが、これに限られない。例えば、所定サイズ以下(所定のレコード数以下)の順序集合131は、類別せず、そのまま演算するよう構成してもよい。
 上記の例では、例えば、順序集合AおよびCのみ、類別し、順序集合Bは類別せずに、論理演算を行う。この場合、第一のバスケット401において、A×(B+C)として、2×((10,2,8,9)+(1,0))を計算し、演算結果として(2)を得る。また、第二のバスケット402では、(3,5,4)×((10,2,8,9)+(4,3))を計算し、演算結果として、(3,4)を得る。第三のバスケット403では、(8,10)×((10,2,8,9)+(7,8))を計算し、演算結果として、(8,10)を得る。
 なお、上記実施形態において、各論理演算は、図9に示すように、メモリ120上でビットマップに展開して演算するのが効果的である。すなわち、本図に示すように、論理演算対象の部分順序集合133を、それぞれ、ビットマップ134に展開し、本図に示すように、演算を行う。
 また、上記実施形態では、論理積(AND)と論理和(OR)のみを用いる場合を例にあげて説明したが、論理演算は、これに限られない。例えば、否定(NOT)も用いてもよい。NOT演算は、ビットマップを反転することで容易に実現できる。例えば、順序集合A=(4,2,0,3)なら、バスケット400の範囲からこれらを取り除き、~A=(1,5,6,7)を得る。なお、「~」は、否定(NOT)を表す。これを用いて、各種の集合演算を処理できることは明らかである。
 また、各バスケット400は、ネットワーク171などで接続される、異なる情報処理装置上に構築されてもよい。この場合、バスケット400が構築される各情報処理装置は、論理演算部212を備え、当該バスケット400内のデータの論理演算を行う。
 また、上記実施形態では、実際にバスケット400と呼ばれる記憶領域を設け、各レコードを振り分けているが、これに限られない。分類部211が、論理演算時に、各順序集合131を走査し、論理演算対象のバスケット400に振り分けられるべきレコードを抽出するよう構成してもよい。この場合、分類部211は、バスケット400の数だけ、順序集合131を走査する。
 100:情報処理装置、110:CPU、120:メモリ、130:記憶装置、131:順序集合、132:分割順序集合、133:部分順序集合、134:ビットマップ、140:入力装置、150:出力装置、160:外部記憶装置、170:ネットワークインタフェース、171:ネットワーク、180:情報処理装置、190:外部記憶装置、210:演算部、211:分類部、212:演算部、212:論理演算部、213:直和部、300:データベース、400:バスケット、401:第一のバスケット、402:第二のバスケット、403:第三のバスケット、A401:部分順序集合、A402:部分順序集合、A403:部分順序集合、B401:部分順序集合、B402:部分順序集合、B403:部分順序集合、C401:部分順序集合、C402:部分順序集合、C403:部分順序集合

Claims (7)

  1.  複数の集合間の論理演算方法であって、
     前記集合を構成する各レコードを、前記集合毎に、それぞれ予め定めた区分に分類し、
     同一の前記区分に属するレコード間で、前記集合間の論理演算を行い、演算結果を得、
     前記区分毎の前記演算結果の直和を計算し、
     前記区分は、前記複数の集合に属する全レコードを一意に類別可能なものであること
     を特徴とする集合間の論理演算方法。
  2.  請求項1記載の論理演算方法であって、
     前記区分のサイズは、前記論理演算を行う際、展開するメモリのサイズに応じて決定されること
     を特徴とする論理演算方法。
  3.  請求項2記載の論理演算方法であって、
     前記区分のサイズは、当該区分に分類される全レコードの総サイズが、前記メモリのサイズを超えないよう決定されること
     を特徴とする論理演算方法。
  4.  請求項1から3いずれか1項記載の論理演算方法であって、
     前記区分は、前記レコードの値の範囲で定められること
     を特徴とする論理演算方法。
  5.  請求項1から3いずれか1項記載の論理演算方法であって、
     前記区分は、予め定めた2以上の整数の剰余で定められること
     を特徴とする論理演算方法。
  6.  複数の集合間の論理演算を行う情報処理装置であって、
     前記集合を構成する各レコードを、前記集合毎に、それぞれ予め定めた区分に分類する分類部と、
     同一の前記区分に属するレコード間で、前記集合間の論理演算を行い、演算結果を得る論理演算部と、
     前記区分毎の前記演算結果の直和を計算する直和部と、を備え、
     前記区分は、前記複数の集合に属する全レコードを一意に類別可能なものであること
     を特徴とする集合間の情報処理装置。
  7.  コンピュータを、
     複数の集合に属する全レコードを一意に類別可能な区分に、当該レコードを前記集合毎に分類する分類手段、
     同一の前記区分に属するレコード間で、予め定めた前記集合間の論理演算を行い、演算結果を得る論理演算手段、
     前記区分毎の前記演算結果の直和を計算する直和手段、として機能させるためのプログラム。
PCT/JP2014/060386 2013-04-12 2014-04-10 論理演算方法および情報処理装置 WO2014168199A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015511295A JPWO2014168199A1 (ja) 2013-04-12 2014-04-10 論理演算方法および情報処理装置
US14/784,202 US20160070776A1 (en) 2013-04-12 2014-04-10 Logical operation method and information processing device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2013083879 2013-04-12
JP2013-083879 2013-04-12

Publications (1)

Publication Number Publication Date
WO2014168199A1 true WO2014168199A1 (ja) 2014-10-16

Family

ID=51689603

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/060386 WO2014168199A1 (ja) 2013-04-12 2014-04-10 論理演算方法および情報処理装置

Country Status (3)

Country Link
US (1) US20160070776A1 (ja)
JP (1) JPWO2014168199A1 (ja)
WO (1) WO2014168199A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108256054A (zh) * 2018-01-15 2018-07-06 腾讯科技(深圳)有限公司 确定目标号码集合的方法和装置
WO2020235015A1 (ja) * 2019-05-21 2020-11-26 日本電信電話株式会社 情報処理装置、情報処理方法及びプログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0462668A (ja) * 1990-06-29 1992-02-27 Casio Comput Co Ltd レコード検索方法
JP2003036269A (ja) * 2001-07-23 2003-02-07 Sony Corp 情報処理装置および情報処理方法並びにこの情報処理のプログラムが記録された記録媒体
JP2012108635A (ja) * 2010-11-16 2012-06-07 Nec Corp 分散メモリデータベースシステム、フロントデータベースサーバ、データ処理方法およびプログラム
WO2012164738A1 (ja) * 2011-06-03 2012-12-06 株式会社日立製作所 データベース管理システム、装置及び方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9087055B2 (en) * 2013-01-28 2015-07-21 International Business Machines Corporation Segmenting documents within a full text index

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0462668A (ja) * 1990-06-29 1992-02-27 Casio Comput Co Ltd レコード検索方法
JP2003036269A (ja) * 2001-07-23 2003-02-07 Sony Corp 情報処理装置および情報処理方法並びにこの情報処理のプログラムが記録された記録媒体
JP2012108635A (ja) * 2010-11-16 2012-06-07 Nec Corp 分散メモリデータベースシステム、フロントデータベースサーバ、データ処理方法およびプログラム
WO2012164738A1 (ja) * 2011-06-03 2012-12-06 株式会社日立製作所 データベース管理システム、装置及び方法

Also Published As

Publication number Publication date
JPWO2014168199A1 (ja) 2017-02-16
US20160070776A1 (en) 2016-03-10

Similar Documents

Publication Publication Date Title
US12056583B2 (en) Target variable distribution-based acceptance of machine learning test data sets
JP6605573B2 (ja) 並列ディシジョン・ツリー・プロセッサー・アーキテクチャ
JP6051212B2 (ja) 反復データの処理
US10831747B2 (en) Multi stage aggregation using digest order after a first stage of aggregation
CN111258966A (zh) 一种数据去重方法、装置、设备及存储介质
US11288266B2 (en) Candidate projection enumeration based query response generation
US20070239663A1 (en) Parallel processing of count distinct values
US20240152498A1 (en) Data storage using vectors of vectors
JP2019057082A (ja) データ検索システム、データ検索方法、及びプログラム
US9639073B2 (en) Information processing apparatus for discriminating between combined results of plurality of elements, program product and method for same
CN105830160A (zh) 用于将经屏蔽数据写入到缓冲器的设备及方法
WO2014168199A1 (ja) 論理演算方法および情報処理装置
Yin et al. Content‐Based Image Retrial Based on Hadoop
US11734244B2 (en) Search method and search device
US20220066988A1 (en) Hash suppression
CN105205058A (zh) 数据处理系统和方法
WO2015143708A1 (zh) 后缀数组的构造方法及装置
Song et al. Nslpa: A node similarity based label propagation algorithm for real-time community detection
JP6577922B2 (ja) 検索装置、方法、及びプログラム
JP6631139B2 (ja) 検索制御プログラム、検索制御方法および検索サーバ装置
KR101441000B1 (ko) 병렬처리 기반 트리플 데이터에 대한 변경 탐지 방법
Khan et al. Scalable compression of a weighted graph
US8819086B2 (en) Naming methodologies for a hierarchical system
JP4870732B2 (ja) 情報処理装置、名寄せ方法及びプログラム
JP7106924B2 (ja) クラスタ分析システム、クラスタ分析方法およびクラスタ分析プログラム

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2015511295

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 14784202

Country of ref document: US

122 Ep: pct application non-entry in european phase

Ref document number: 14783131

Country of ref document: EP

Kind code of ref document: A1