WO2009090697A1 - ビット列検索装置、検索方法及びプログラム - Google Patents

ビット列検索装置、検索方法及びプログラム Download PDF

Info

Publication number
WO2009090697A1
WO2009090697A1 PCT/JP2008/003264 JP2008003264W WO2009090697A1 WO 2009090697 A1 WO2009090697 A1 WO 2009090697A1 JP 2008003264 W JP2008003264 W JP 2008003264W WO 2009090697 A1 WO2009090697 A1 WO 2009090697A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
key
search
tree
string
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
PCT/JP2008/003264
Other languages
English (en)
French (fr)
Japanese (ja)
Inventor
Toshio Shinjo
Mitsuhiro Kokubun
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
S Grants Co Ltd
Original Assignee
S Grants Co Ltd
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 S Grants Co Ltd filed Critical S Grants Co Ltd
Priority to EP08871045.4A priority Critical patent/EP2249257B1/en
Priority to CN200880124936.8A priority patent/CN101911068B/zh
Publication of WO2009090697A1 publication Critical patent/WO2009090697A1/ja
Priority to US12/805,183 priority patent/US8195667B2/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/322Trees

Definitions

  • the present invention relates to a search device, a search method, and a program for searching for a desired bit string from a set of bit strings, and particularly to a technical field for improving search speed and the like by devising a data structure for storing bit strings. is there.
  • FIG. 1 shows an example of a Patricia tree used in the above-described conventional search process.
  • the Patricia tree node includes an index key, a check bit position of the search key, and left and right link pointers. Although not explicitly shown, it goes without saying that the node includes information for accessing the record corresponding to the index key.
  • the node 1750a holding the index key “100010” is the root node, and the check bit position is 0.
  • a node 1750b is connected to the left link 1740a of the node 1750a, and a node 1750f is connected to the right link 1741a.
  • the index key held by the node 1750b is “010011”, and the check bit position 2030b is 1.
  • a node 1750c is connected to the left link 1740b of the node 1750b, and a node 1750d is connected to the right link 1741b.
  • the index key held by the node 1750c is “000111”, and the check bit position is 3.
  • the index key held by the node 1750d is “011010”, and the check bit position is 2.
  • the portion connected by a solid line from the node 1750c indicates the left and right link pointers of the node 1750c, and the left pointer 1740c not connected by the dotted line indicates that the column is blank.
  • the connection destination of the dotted line of the right pointer 1741c connected to the dotted line represents the address indicated by the pointer, and in this case indicates that the right pointer designates the node 1750c.
  • the right pointer 1741d of the node 1750d points to the node 1750d itself, and the node 1750e is connected to the left link 1740d.
  • the index key held by the node 1750e is “010010”, and the check bit position is 5.
  • the left pointer 1740e of the node 1750e points to the node 1750b, and the right pointer 1741e points to the node 1750e.
  • the index key held by the node 1750f is “101011”, and the check bit position 1730f is 2.
  • a node 1750g is connected to the left link 1740f of the node 1750f, and a node 1750h is connected to the right link 1741f.
  • the index key held by the node 1750g is “1000011”, and the check bit position 1730g is 5.
  • the left pointer 1740g of the node 1750g points to the node 1750a, and the right pointer 1741g points to the node 1750g.
  • the index key held by the node 1750h is “101100”, and the check bit position 1730h is 3.
  • the left pointer 1740h of the node 1750h points to the node 1750f, and the right pointer 1741h points to the node 1750h.
  • the check bit position of each node is configured to increase as the tree descends from the root node 1750a.
  • the check bit position of the search key held in each node is sequentially checked from the root node, and it is determined whether the bit value of the check bit position is 1 or 0, If it is 1, follow the right link, if it is 0, follow the left link. If the check bit position of the link destination node is not larger than the check bit position of the link source node, that is, if the link destination returns upward rather than downward (the reverse link indicated by the dotted line in FIG.
  • the index key of the link destination node and the search key are compared. As a result of the comparison, it is guaranteed that the search is successful if they are equal and the search is unsuccessful if they are not equal.
  • search processing using the Patricia tree has advantages such as being able to search only by checking the necessary bits and comparing the entire key only once, but there are always two links from each node. Increase in storage capacity due to the presence of the data, complicating judgment processing due to the presence of a back link, difficulty in data maintenance such as search processing delay and addition / deletion by comparing with an index key for the first time by returning by a back link, etc. There are disadvantages.
  • Patent Document 1 there is a technique disclosed in Patent Document 1 below as an attempt to eliminate the disadvantages of these Patricia trees.
  • the lower left and right nodes are stored in a continuous area, thereby reducing the storage capacity of the pointer, and a bit indicating whether or not the next link is a back link Is provided at each node to reduce the back link determination process.
  • the search can be performed using not only the value of an item corresponding to the record of the database as an index key but also the value of any item constituting the record as a search key. Usually done. Since the value of this item is not necessarily unique depending on the record, a search using duplicate keys in a plurality of records is performed. An example of handling such a duplicate key is described in Patent Document 2 below. JP 2001-357070 A JP-A-11-96058
  • the problem to be solved by the present invention is to search for a bit string having a data structure that can be searched with duplicate keys, requires a small storage capacity, has a high search speed, and is easy to maintain.
  • An apparatus and a search method are provided.
  • the present applicant has disclosed in Japanese Patent Application No. 2006-187827 that the root node, the branch node arranged in the adjacent storage area, the leaf node, the branch nodes, or the leaf.
  • a tree used for bit string search consisting of node pairs between nodes, where the root node is a node representing the starting point of the tree, and when there is one node in the tree, it is a leaf node, and when there are two or more nodes in the tree Is a branch node
  • the branch node includes a discrimination bit position of a search key for performing a bit string search and position information indicating a position of a representative node which is one node of a link destination node pair, and the leaf node is a search Using a coupled node tree that includes an index key consisting of the target bit string Proposed Tsu door string search.
  • a basic method using a coupled node tree such as a method for generating a coupled node tree from a given set of index keys and a method for retrieving a single index key from the coupled node tree.
  • a search technique is shown.
  • the present applicant arranges the index key in an area different from the coupled node tree, and the leaf node indicates the position of the storage area where the index key is arranged instead of the index key.
  • a coupled node tree storing information and various search processes using it were proposed.
  • An object of the present invention is to enable handling of duplicate keys in a high-speed search technique using this coupled node tree.
  • an index key composed of a plurality of key strings is obtained as a unique key.
  • the second position information indicating the position of the storage area where the unique key is arranged is stored in the leaf node of the above-mentioned coupled node tree.
  • the search key is a combination of a plurality of keys as a key string, and the last key of the key string is a unique search key string.
  • the branch node has a first discrimination position indicating the position information of the key to be compared in the search key string for performing the bit string search and a second discrimination position indicating the discrimination bit position of the key.
  • the branch node includes first position information indicating the position of a representative node that is one node of the link destination node pair.
  • the key of the first discrimination position of the branch node is extracted from the search key string, and the bit value of the second discrimination position (discrimination bit position) of the key
  • linking to any node of the linked note pairs is performed up to the leaf node, and the information indicating the position of the storage area stored in the leaf node is arranged in the storage area.
  • a search using the search key string is performed.
  • bit string data it is possible to handle duplicate keys and to search bit string data at higher speed.
  • addition and deletion of bit string data can be easily performed.
  • the position of the representative node of the link destination held by the branch node can be the address information of the storage device, but an array that can store the larger storage capacity of the area occupied by the branch node or leaf node
  • the position of the node can be represented by an array number, and the amount of information of position information indicating the position of the representative node can be reduced.
  • FIG. 2A is a diagram illustrating a configuration example of a coupled node tree stored in an array according to an embodiment of the present invention.
  • the node 101 is arranged in the array element of array number 10 in the array 100.
  • the node 101 includes a node type 102, a first discrimination position 103a, a second discrimination position 103, and a representative node number 104.
  • the node type 102 is 0, indicating that the node 101 is a branch node.
  • 0 is stored in the first discrimination position 103a, which indicates that bit string comparison is performed for the key at the 0th position in the search key string.
  • 1 is stored in the second discrimination position 103.
  • the representative node number 104 stores the array element number 20 of the representative node of the link destination node pair.
  • the array element number stored in the representative node number may be referred to as a representative node number.
  • the array element number stored in the representative node number may be represented by a code attached to the node or a code attached to the node pair.
  • the value stored in the first discrimination position or the second discrimination position may be simply referred to as the first discrimination position or the second discrimination position.
  • the node [0] 112 that is the representative node of the node pair 111 is stored in the array element of the array element number 20. Then, node [1] 113 paired with the representative node is stored in the next adjacent array element (array number 20 + 1).
  • the node [0] 112 is a branch node like the node 101. 0 is stored in the node type 114 of the node [0] 112, 1 is stored in the first discrimination position 115a, 3 is stored in the second discrimination position 115, and 30 is stored in the representative node number 116.
  • the node [1] 113 includes a node type 117 and a reference pointer 118a.
  • the node type 117 stores 1 and indicates that the node [1] 113 is a leaf node.
  • the reference pointer 118a stores a pointer for referring to the index key storage area.
  • the data stored in the reference pointer 118a is a specific example of the second position information. In the following, for simplicity of description, data stored in the reference pointer is also referred to as a reference pointer.
  • access destination information for accessing the record corresponding to the index key is naturally necessary.
  • the association between the index key and the access destination information may be performed, for example, by storing the access destination information corresponding to the index key in a storage area adjacent to the storage area storing the index key.
  • the access destination information is omitted.
  • a representative node may be represented by a node [0] and a node paired therewith may be represented by a node [1].
  • a node stored in an array element having a certain array number may be referred to as a node having the array number
  • an array number of the array element in which the node is stored may be referred to as a node array number.
  • the contents of the node pair 121 composed of the node 122 and the node 123 stored in the array elements of the array element numbers 30 and 31 are omitted.
  • the 0 or 1 added to the array elements stored in the node [0] 112, the node [1] 113, the node 122, and the node 123, respectively, is assigned to which node of the node pair when searching with the search key string. Indicates whether to link.
  • the value 0 or 1 is linked to the node of the array element number added to the representative node number.
  • the array element storing the link destination node is added.
  • the sequence number can be determined.
  • the representative node number is the smaller one of the array numbers in which the node pairs are arranged, but it is obvious that the larger one can be adopted.
  • FIG. 2B is a diagram conceptually showing a tree structure of a coupled node tree and a storage area of a search key string (hereinafter sometimes referred to as an index key) according to the present embodiment.
  • FIG. 2B (1) shows a tree structure of a coupled node tree.
  • a reference numeral 210a indicates a root node.
  • the root node 210a is a representative node of the node pair 201a arranged at the array element number 220.
  • a node pair 201b is arranged below the root node 210a, a node pair 201c and a node pair 201f are arranged below it, and a node pair 201h and a node pair 201g are arranged below the node pair 201f.
  • a node pair 201d is disposed below the node pair 201c, and a node pair 201e is disposed below the node pair 201d.
  • the code 0 or 1 added before each node is the same as the code assigned before the array element described in FIG. 2A.
  • the tree is traced according to the bit value of the discrimination bit position of the search key, and the leaf node corresponding to the index key to be searched is found.
  • the node type 260a of the root node 210a is 0, indicating that it is a branch node, the first discrimination position 240a is 0, and the discrimination bit position 230a is 0.
  • the representative node number is 220a, which is the array element number of the array element stored in the representative node 210b of the node pair 201b.
  • the node pair 201b is composed of nodes 210b and 211b, and their node types 260b and 261b are both 0, indicating that they are branch nodes. 0 is stored in the first discrimination position 240b of the node 210b, 1 is stored in the discrimination bit position 230b, and the array element number 220b of the array element stored in the representative node 210c of the node pair 201c is stored in the link destination representative node number. Is stored.
  • this node is a leaf node and therefore includes a reference pointer 250c.
  • the reference pointer 250c stores a pointer that refers to a storage area in which an index key including a first key 290c and a second key 290c 'is stored.
  • Data stored in the reference pointer 250c is also referred to as a reference pointer and is represented by reference numeral 280c.
  • the reference pointer and the data stored in the reference pointer are represented by the same reference pointer.
  • FIG. 2B (2) shows an example in which a plurality of index key storage areas are continuously provided, and the entire continuous storage area is shown as an index key storage area 311.
  • the index key is a continuous area. Need not be stored in Also, the relationship between the leaf nodes in the tree structure and the order of index key arrangement in the index key storage area 311 may be irrelevant.
  • the node type 261c of the other node 211c paired with the representative node 210c is 0, the first discrimination position 241c is 1, and the discrimination bit position 231c is 0.
  • the node type 260d of the node 210d is 0, the first discrimination position 240d is 1, the discrimination bit position 230d is 2, and the representative node number is the array element number 220d of the array element stored in the representative node 210e of the node pair 201e.
  • the node type 261d of the node 211d that is paired with the node 210d is 1, and the reference pointer 251d stores the reference pointer 281d indicating the storage area storing the key strings 291d and 291d ′ of “011010” and “1000”. ing.
  • the node types 260e and 261e of the nodes 210e and 211e of the node pair 201e are both 1, indicating that both are leaf nodes.
  • the reference pointers 250e and 251e of the nodes 210e and 211e are respectively stored in storage areas storing key sequences 290e and 290e '"011010" and "0101" and key sequences 291e and 291e' "011010" and "0110".
  • Reference pointers 280e and 281e are stored.
  • 0 is stored in the first discrimination position 241b of the node 211b which is the other node of the node pair 201b, 2 is stored in the discrimination bit position 231b, and the representative node number of the link destination is the representative node 210f of the node pair 201f.
  • the array element number 221b of the stored array element is stored.
  • the node types 260f and 261f of the nodes 210f and 211f of the node pair 201f are both 0, and both are branch nodes. 0 and 1 are stored in the first discrimination positions 240f and 241f, and 5 and 2 are stored in the discrimination bit positions 230f and 231f.
  • the representative node number of the node 210f stores the array element number 220f of the array element in which the representative node 210g of the node pair 201g is stored, and the representative node number of the node 211f contains the node [0] 210h that is the representative node of the node pair 201h.
  • the array element number 221f of the stored array element is stored.
  • the node types 260g and 261g of the nodes 210g and 211g of the node pair 201g are both 1, indicating that both are leaf nodes.
  • the key sequences 290g and 290g 'of "100010" and "0100” and the key sequences 291g and 291g' of "100011” and "0011" are stored.
  • Reference pointers 280g and 281g are stored.
  • the node types 260h and 261h of the node [0] 210h which is the representative node of the node pair 201h, and the node [1] 211h paired therewith are both 1, indicating that both are leaf nodes.
  • the reference pointers 250h and 251h of the nodes 210h and 211h include “101100” and “0001”, respectively.
  • Reference pointers 280h and 281h to the storage area storing the key strings 291h and 291h ′ are stored.
  • the index key is the first key “101100” And the second key “0010”.
  • the first discrimination position and the second discrimination position are 0, 1, 2,... From the left.
  • processing is started from the root node 210a using the bit string “1011000010” as a search key string. Since the first discrimination position 240a of the root node 210a is 0 and the discrimination bit position 230a is 0, the bit value where the discrimination bit position of the first key “101100” in the search key string is 0 is 1 is there. Therefore, the node 211b stored in the array element having the array element number obtained by adding 1 to the array element number 220a storing the representative node number is linked. Since 0 is stored in the first discrimination position 241b of the node 211b and 2 is stored in the discrimination bit position 231b, it is 1 when the bit value of the discrimination bit position of the first key “101100” is 2. The node 211f stored in the array element of the array element number 221b in which the representative node number is stored is linked.
  • the storage area indicated by the reference pointer 281h is referred to, and the key strings 291h and 291h ′ which are index keys stored therein are read out. . In this way, a search using a coupled node tree is performed. When the read key string is compared with the search key, it can be seen that the above example matches.
  • the first discrimination position for identifying the position of the key in the search key string is the key position corresponding to the order of the key arrangement such as 0, 1, 2,.
  • the number is not limited to this, for example, an offset value from the first bit of the entire search key string, or by indicating that the key position has been switched by using 0 and 1 alternately, Identification can be possible.
  • the configuration of a coupled node tree is defined by a set of index keys.
  • the first discrimination position 240a of the root node is 0 because the first key of the index key is different, that is, all the first keys are duplicated. This is not the case.
  • the reason why the discrimination bit position 230a of the root node 210a is 0 is that the first key, which is the first key of the index key, includes one having a 0th bit of 0 and one.
  • the group of index keys whose 0th bit of the first key is 0 is classified under the node 210b, and the group of index keys whose 0th bit is 1 is classified under the node 211b.
  • the reason why the discrimination bit position 231b of the node 211b is 2 is that the first bit of the first key of the index key corresponding to the lower leaf nodes 211h, 210h, 211g, and 210g is all equal to 0. Reflects the nature of the set of index keys, something different for the first time.
  • the first discrimination position of the node 211f of the node pair 201f immediately below the node 211b is 1 because the first keys 290h and 291h of the index key corresponding to the leaf nodes 211h and 210h below the node 211f overlap. This indicates that the position of the node on the couple node tree is determined by the bit strings of the second keys 290h ′ and 291h ′.
  • the reason why the discrimination bit position 231f of the node 211f is 2 is that the second keys 290h ′ and 291h ′ have different values in the second bit from the top, and reflect the bit values.
  • Leaf nodes 211h and 210h are arranged at positions corresponding to the index keys.
  • the third bit and the fourth bit are equal and the fifth bit is different, so 5 is stored in the discrimination bit position 230f of the node 210f. Since there is only one index key in which the fifth bit of the first key is 1 and 0, each of the nodes 210g and 211g linked to the node 210f becomes a leaf node, and the reference pointers 250g and 251g Stores reference pointers 280g and 281g indicating the storage areas storing the key strings 290g and 290g 'and the key strings 291g and 291g', respectively.
  • the coupled node tree structure is determined by the bit value of each bit position of each index key included in the set of index keys. Furthermore, since the node branches to a node having a bit value “1” and a node having a bit value “0” for each bit position having a different bit value, the node [1] side and the depth of the tree If the leaf nodes are traced with priority given to the direction, the index keys stored in them correspond to the index key “1011000010” corresponding to the node 211h, the index key “1011000001” corresponding to the node 210h,. The index key becomes “0001110111” and is sorted in descending order. That is, in the coupled node tree, the index keys are sorted and arranged on the tree.
  • the index key When searching with the search key string, the index key follows the route arranged on the coupled node tree. For example, if the search key string is “1011000001”, the node 210h can be reached. Further, as can be imagined from the above description, even when “1011000000” is used as a search key string, the node 210h is reached, and the index key stored in the storage area indicated by the reference pointer 280h is obtained as the search result key string. .
  • the third and fourth bits of the first key in the search key column are not used in the link paths of the nodes 210a, 211b, and 210f. Since the fifth bit of “100100” is 0, the node 210g is reached in the same manner as when searching for “1000100100”. In this way, branching is performed using the first discrimination position and the second discrimination position (discrimination bit position) corresponding to the bit configuration of the index key stored in the coupled node tree.
  • FIG. 3 is a diagram for explaining a hardware configuration example for carrying out the present invention.
  • Search processing and data maintenance by the search device of the present invention are performed by the data processing device 301 including at least the central processing unit 302 and the cache memory 303 using the data storage device 308.
  • the array 100 in FIG. 2A is an example of the array 309. As in FIG.
  • the index key storage area 311 is illustrated as a continuous area, but may be a discontinuous area.
  • the search path stack 310 stores the array element number of the array element in which the node to be traced during the search is stored. The information indicating the position of the node such as the address of the storage area in which is stored is stored.
  • the main storage device 305, the external storage device 306, and the communication device 307 are connected to the data processing device 301 by a single bus 304, but the connection method is not limited to this.
  • the main storage device 305 can be in the data processing device 301
  • the search path stack 310 can be realized as hardware in the central processing unit 302.
  • the array 309 has an external storage device 306, a search path stack 310 in the main storage device 305, etc. It is clear that the hardware configuration can be appropriately selected according to the usable hardware environment, the size of the index key set, etc. It is.
  • a temporary storage area corresponding to each process is used in order to use various values obtained during the process in a later process.
  • the value stored or set in the temporary storage area may be referred to by the name of the temporary storage area, as in the case of the first discrimination position described above.
  • the array 309 including array elements storing the nodes of the coupled node tree and the index key storage area 311 are different areas. Therefore, compared with the case where the index key is included in the array element storing the leaf node, the configuration of FIG. 3 generally requires less storage area for one array element. That is, by separating the index key storage area 311 from the array 309 storing the coupled node tree, the number of nodes stored per cache block can be increased in reading the coupled node tree into the cache memory 303. It becomes possible. As a result, the frequency of cache misses is reduced in search processing, which will be described later, and processing is performed at higher speed.
  • FIG. 4 is a flowchart showing bit string search processing according to an embodiment. It is.
  • step S401a the array element number of the search start node is acquired.
  • the array corresponding to the acquired array element number stores arbitrary nodes constituting a coupled node tree.
  • the designation of the search start node is performed in various application searches described later.
  • the obtained array number of the search start node is set in a search start node setting area (not shown).
  • This search start node setting area is used to set various values obtained in the middle of processing as described later. This is one of the “temporary storage areas corresponding to each process for use in the process”.
  • “set in a search start node setting area (not shown)” “get the search start node array number”, “set as search start node” or simply “start search” It may also be described as “set to node”.
  • step S401b an initial value is set to the retraction discrimination position which is a temporary storage area where the value of the first discrimination position is retreated later. Since the first discrimination position of the first key row of the index key is set to 0, a negative value is set as the initial value.
  • step S402 the obtained array element number is stored in the search path stack, and in step S403, the array element corresponding to the array element number is read out as a node to be referred to.
  • step S404 the node type is extracted from the read node, and in step S405, it is determined whether or not the node type is a branch node.
  • step S405 If it is determined in step S405 that the read node is a branch node, the process proceeds to step S406a.
  • step S406a the first discrimination position is extracted from the node, and in the next step S406b, it is determined whether or not the first discrimination position extracted in step S406a matches the retraction discrimination position.
  • step S406 If the first discrimination position matches the retraction discrimination position, the process proceeds to step S406. If not, the process proceeds to step S406c, and the key indicated by the first discrimination position extracted in step S406a is extracted from the search key string. Set to search key.
  • step S406d the first discrimination position extracted in step S406a is set as the retraction discrimination position, and the process proceeds to step S406.
  • the second discrimination position discrimination bit position
  • step S407 the bit value corresponding to the extracted discrimination bit position is extracted from the search key.
  • step S408 the representative node number is extracted from the node read in step S403.
  • step S409 the bit value extracted from the search key and the representative node number are added, and the process returns to step S402 as a new array number.
  • step S410a the reference pointer is extracted from the leaf node, and the search ends.
  • FIGS. 5 to 8A illustrate normal insertion processing
  • FIG. 8A illustrates root node insertion processing. Since the coupled node tree is generated by the root node insertion process and the normal insertion process, the description of the node insertion process is also the description of the coupled node tree generation process.
  • FIG. 5 is a diagram showing the processing flow of the search process, which is the first stage of the insert process, and corresponds to the search process shown in FIG. 4 with the insert key string as the search key string and the search start node as the root node. .
  • step S501a the root node array number is set in the search start node
  • step S501b the insertion key string is set in the search key string.
  • the insertion key string is stored in the storage area as a precondition for the insertion process by obtaining a pointer of the index key storage area in advance.
  • the last key of the insertion key string has a unique value for the entire index key.
  • step S510a the search process shown in FIG. 4 is performed from the search start node by using the search key string to obtain the reference pointer, and in step S510b, the key string pointed to by the reference pointer is extracted and set as the comparison key string.
  • step S510c the key of the insertion key string and the key of the comparison key string are sequentially compared. As a result of the comparison, information on whether or not the comparison key string completely matches the insertion key string is output. If they do not match completely, the position of the first mismatched key is set as the first discrimination position, and the key at the first discrimination position in the insertion key string is set as the insertion key, and the comparison key string The key at the first discrimination position is set as a comparison key. Details of step S510c will be described later with reference to FIG. 8B.
  • step S511a it is determined as a result of the comparison in step S510c whether the keys of the insertion key string and the comparison key string are all equal. If they are equal, the insertion key string is already stored in the storage area pointed to by the reference pointer of the coupled node tree. Therefore, the insertion fails and the process ends. If not equal, the process proceeds to the next process, that is, the process from step S512 onward in FIG.
  • FIG. 6 is a process flow diagram illustrating a process for preparing an array element for a node pair to be inserted.
  • step S512 an empty node pair is obtained from the array, and the array element number of the array element to be the representative node is acquired from the node pair.
  • step S513a the insertion key obtained at step S510c is compared with the comparison key, and a value 1 is obtained when the insertion key is large, and a Boolean value 0 is obtained when the insertion key is small. Proceeding to step S514, an array element number is obtained by adding the Boolean value obtained at step S513 to the array element number of the representative node obtained at step S512.
  • an array element number is obtained by adding the logical negation value of the Boolean value obtained at step S513 to the array element number of the representative node obtained at step S512.
  • the array element number obtained in step S514 is the array element array element number in which the leaf node having the reference pointer to the storage area storing the insertion key string as the index key is stored.
  • the array element number obtained in step S515 is This is an array element in which a node forming a node pair with a leaf node is stored.
  • the leaf node that holds the reference pointer to the insertion key string is located in either node of the inserted node pair. It is determined whether it is stored.
  • the index key of the search result is the key string “0110101000” corresponding to the node 211d.
  • the first key does not match, and a Boolean value is obtained by comparing the magnitudes of the first keys.
  • the first key of the insertion key string is obtained. Therefore, a Boolean value 1 is obtained, and a leaf node holding a reference pointer to the insertion key string is stored in an array element obtained by adding 1 to the representative node number of the node pair to be inserted.
  • the reference pointer 281d to the index key “0110101000” is stored in the array element of the array number obtained by adding the logical inversion of the Boolean value obtained by the magnitude comparison to the representative node number.
  • the node 211d sets the discrimination bit position to 5, It becomes a branch node having the representative node number as the array number of the representative node of the inserted node pair.
  • the search result becomes an index key having a value of “0110101000” corresponding to the node 211d.
  • the first key of the inserted key string and the key string of the search result do not match, and in this case, the first key of the inserted key string is smaller, so a Boolean value 0 is obtained and inserted.
  • a leaf node holding a reference pointer to the insertion key string is stored in an array element obtained by adding 0 to the representative node number of the node pair.
  • the node 211d sets the discrimination bit position to 4, and sets the representative node number to The branch node is the array element number of the representative node of the inserted node pair.
  • step S516 the bit string comparison of the insertion key and the comparison key obtained in step S510c is performed by, for example, exclusive OR, to obtain a difference bit string.
  • step S517 the bit position of the first non-matching bit viewed from the higher-order 0th bit (hereinafter also referred to as the difference bit position) is obtained from the difference bit string obtained in step S516.
  • a CPU having a priority encoder can input a difference bit string to obtain a mismatched bit position. It is also possible to obtain the bit position of the first non-matching bit by performing processing equivalent to that of the priority encoder in software.
  • FIG. 7 is a diagram showing a processing flow for storing a node in the array element prepared in FIG. 6, obtaining its insertion position, changing the contents of the existing node, and completing the insertion process.
  • step S518 to step S523 is processing for obtaining the position of the node pair to be inserted on the coupled node tree, and the processing after step S524 is processing for setting the data in each node and completing the insertion processing. .
  • step S5128 it is determined whether the stack pointer of the search path stack points to the array number of the root node. If so, the process proceeds to step S524, and if not, the process proceeds to step S519.
  • step S519 the stack pointer of the search path stack is returned by 1, and the array element number stacked there is taken out. Proceeding to step S520, the array element having the array element number extracted at step S519 is read from the array as a node.
  • step S520a the first discrimination position is extracted from the node read out in step S520, and in step S520b, the first discrimination position “A” extracted in step S520a and the first discrimination position “obtained in step S510c” are extracted. Compare the size of B ′′.
  • step S521 the second discrimination position (discrimination bit position) is extracted from the node read in step S520, and the process proceeds to step S522.
  • the discrimination bit position extracted in step S521 is higher than the difference bit position obtained in step S517. Judge whether it is positional relationship.
  • the upper positional relationship is a position on the left side of the bit string, that is, a position where the value of the bit position is small.
  • step S522 If the determination result in step S522 is negative, the process returns to step S518 and is repeated until the determination in step S518 is affirmed, A ⁇ B is determined in step S520b, or the determination in step S522 is affirmative. . If the determination in step S522 is affirmative, the process proceeds to step S523.
  • step S523 the stack pointer of the search path stack is incremented by 1, and the process proceeds to step S524 and subsequent steps.
  • the processing described in steps S518 to S523 above is obtained in step S510c and the first discrimination position (A) of the branch node stored in the search path stack to determine the insertion position of the node pair to be inserted.
  • the link destination of the root node becomes the insertion position.
  • the index key of the search result is “1011000001” corresponding to the node 210h.
  • the difference bit position between the insertion key “111000” and the comparison key “101100” is 1 and the discrimination bit position 231b is 2, the process further goes back to the root node 210a.
  • the insertion position is the link destination of the node 211b.
  • the discrimination bit position of the branch node 211b becomes the difference bit position value 1 as described later.
  • a ⁇ B is a case where, for example, an insertion key string including a duplicated first key is inserted into an index key in which the first key is not duplicated.
  • the first discrimination position (A) is the first discrimination position 240f and the value is 0, and the value of the first discrimination position (B) is 1.
  • a ⁇ B is established, and the node 210g becomes the insertion position, and becomes the branch node immediately above the node pair to be inserted.
  • step S524 the array element number pointed to by the stack pointer is extracted from the search path stack.
  • step S525d the leaf of the node type of the array element indicated by the array element number obtained at step S514 is written, and the pointer of the insertion key string is written to the reference pointer. Proceeding to step S526, the array element having the array element number obtained at step S524 is read from the array.
  • step S527 the contents read in step S526 are written in the array element having the array element number obtained in step S515.
  • step S528a the branch is set as the node type of the array element indicated by the array element number obtained in step S524, the first discrimination position obtained in step S510c is set as the first discrimination position, and the step S517 is set as the second discrimination position.
  • the array position obtained in step S512 is written in the representative node number for the bit position obtained in step S5, and the process ends.
  • step S525d the contents of the node 211b are written in the node [0].
  • step S528a 0 is stored in the node type of the node 211b, 0 is stored in the first discrimination position, and the differential bit position 1 obtained by the bit string comparison is stored in the discrimination bit position.
  • the array element number of the array element storing the representative node is stored.
  • FIG. 8A is a diagram for explaining the processing flow of the entire leaf node insertion process including the root node insertion process in one embodiment of the present invention.
  • step S551 it is determined whether the array element number of the root node of the coupled node tree requested to be acquired has been registered. If registered, the normal insertion process described with reference to FIGS. 5 to 7 is performed.
  • step S551 If the determination in step S551 has not been registered, registration and generation of a completely new coupled node tree will start. Also in this case, it is assumed that the insertion key string is acquired in advance as a precondition for the insertion process, by acquiring a pointer to the index key storage area.
  • step S552 an empty node pair is obtained from the array, and the array element number of the array element to be the representative node of the node pair is acquired.
  • step S553 an array element number obtained by adding 0 to the array element number obtained in step S552 is obtained. (In practice, it is equal to the array element number acquired in step S552.)
  • step S554d the array element of the array element number acquired in step S553, that is, the array element corresponding to the root node to be inserted, leaves for the node type, Write the insertion key string pointer to the reference pointer.
  • step S556 the array element number of the root node acquired in step S553 is registered, and the process ends.
  • the index keys are sequentially extracted from the set, and the processing of FIGS. 8A and 5 to 7 is repeated, so that the couple of the present invention corresponding to the set of index keys is performed.
  • a node tree can be constructed.
  • step S101 a value “0” is set as an initial value in the discrimination position.
  • step S102 it is determined whether or not all keys in the column have been processed. If processed, complete matching information is output and the process ends. If not, the process proceeds to step S103.
  • step S103 the key indicated by the discrimination position is extracted from the insertion key row and set as the insertion key.
  • step S104 the key pointed to by the discrimination position is extracted from the comparison key string set at step S510b shown in FIG. 5, and set as a comparison key.
  • step S105 it is determined whether the insertion key matches the comparison key. If they match, the value set in the discrimination position in step S106 is updated and the process returns to step S102. If they do not match, the process proceeds to step S107 to set the discrimination position as the first discrimination position and output incomplete match To finish the process.
  • FIG. 9 is a diagram showing the processing flow of the search process that is the first stage of the delete process, and corresponds to the search process shown in FIG. 4 with the delete key string as the search key string and the search start node as the root node. To do.
  • step S901a the root node array element number is set as the search start node, and in step S901b, the deletion key string is set as the search key string.
  • step S910a the search process shown in FIG. 4 is performed from the search start node by using the search key string to obtain the reference pointer, and in step S910b, the key string pointed to by the reference pointer is extracted and set as the comparison key string.
  • step S910c the last key of the deletion key string is set as the deletion key
  • step S910d the last key of the comparison key string is set as the index key
  • step S911 the deletion key set in step S910c is compared with the index key set in step S910d. If they are not equal, the deletion does not exist in the coupled node tree, so the deletion fails and the process ends. . If they are equal, the process proceeds to the next process, the process of step S912 and subsequent steps in FIG.
  • the reason for comparing the last key in the key sequence is that the last key is a unique key without duplication.
  • FIG. 10 is a diagram for explaining the processing flow at the latter stage of the deletion processing.
  • step S912 it is determined whether two or more array element numbers are stored in the search path stack. The fact that two or more array numbers are not stored is, in other words, only one, and the array number is that of the array element in which the root node is stored. In that case, the process proceeds to step S918, the node pair related to the array element number of the root node obtained in step S901a is deleted, and the process ends.
  • step S912 If it is determined in step S912 that two or more array element numbers are stored in the search path stack, the process proceeds to step S913a, and the representative node number obtained in step S408 of the search process shown in FIG. 4 executed in step S910a is set. Similarly, the array element number obtained by adding the values obtained by inverting the bit values obtained in step S407 of the search process shown in FIG. 4 executed in step S910a is obtained. In this process, the array element number in which the node paired with the leaf node to be deleted is arranged is obtained.
  • step S914 the contents of the array element having the array element number obtained in step S913 are read, and in step S915, the stack pointer of the search path stack is returned by 1 to extract the array element number.
  • step S916 the contents of the array element read in step S914 are overwritten on the array element of the array element number obtained in step S915.
  • a branch node that is a link source to the leaf node to be deleted is replaced with a node that is paired with the leaf node.
  • step S917 the node pair related to the representative node number obtained in step S408 of the search process shown in FIG. 4 executed in step S910a is deleted, and the process ends.
  • 11A and 11B are diagrams illustrating an example in which deletion processing is performed using “0110101000” as a deletion key string in the coupled node tree illustrated in FIG. 2B.
  • the deletion key string “0110101000” is a key string composed of the first key “011010” and the second key “1000”, and is stored in the deletion key 270 which is a temporary storage area.
  • the search path stack 310 stores an array number, and the stack pointer points to the array number 221c + 1.
  • nodes surrounded by a thick frame are nodes traced by the search process, and their array numbers are stacked on the search path stack 310 from the root node 210a to the leaf node 211d.
  • the array element number 220 of the root node 210 a is acquired and stored in the search path stack 310. Since the first discrimination position 240a of the root node 210a is 0, the first key “011010” of the deletion key string is extracted and set as the search key, the discrimination bit position 230a is 0, and the bit of the search key Since the bit value at position 0 is 0, the array element number 220a obtained by adding the bit value 0 to the representative node number 220a is stored in the search path stack 310.
  • the node 210b pointed to by the array element number 220a is read out and determined to be a branch node. Since the first discrimination position 240b is 0 and is not different from the first discrimination position 240a, the bit value 1 of the bit position corresponding to the value 1 of the discrimination bit position 230b is obtained from the previously set search key, In addition to the representative node number 220b, an array element number 220b + 1 is obtained and stored in the search path stack 310.
  • the second key “1000” in the deletion key string is set as the search key. Since the discrimination bit position 231c is 0 and the bit value of the search key bit position 0 is 1, the array element number 221c + 1 obtained by adding 1 to the representative node number 221c is stored in the search path stack 310 as shown in the figure. .
  • the node type 261d of the node 211d stored in the array element with the array element number 221c + 1 is 1, indicating that it is a leaf node.
  • the index keys (key strings 291d and 291d ') corresponding to the leaf nodes are stored in the storage area indicated by the reference pointer 281d.
  • the storage area is a part of the index key storage area 311. Therefore, when the second key 291d ', which is the last key of the index key referred to by the reference pointer 281d, is taken out, the value is "1000", which matches the second key stored in the delete key 270.
  • the contents of the node 210d paired with the node 211d to be deleted are read out, and the contents are stored in the array number stored when the stack pointer of the search path stack 310 is returned by one. It is written in the array element (node 211c) of 220b + 1. Thereafter, the node pair 201d is deleted. The array element from which the node pair is deleted becomes empty and can be reused.
  • the coupled node tree shown in FIG. 11B is after the deletion process is completed.
  • the values stored in the node 210d are stored as they are as shown in parentheses.
  • the stack pointer of the search path stack 310 points to the array element number 220b + 1.
  • FIG. 12A shows a coupled node tree having reference pointers 1281b, 1281c, and 1280c that refer to bit strings “01000001”, “00010010”, and “00000011” as index keys.
  • a key string composed of the first key 1291b “0100” and the second key 1291b ′ “0001” is stored.
  • the storage area pointed to by the reference pointer 1281c stores a key string composed of the first key 1291c “0001” and the second key 1291c ′ “0010”.
  • the storage area pointed to by the reference pointer 1280c Stored is a key string consisting of a first key 1290c “0000” and a second key 1290c ′ “0011”.
  • the insertion key string to be inserted is “00000100” in the illustrated example.
  • the insertion key string is obtained by acquiring the pointer 1281d of the index key storage area and stored in the area pointed to by the pointer 1281d, and the second key which is the last key of the insertion key string.
  • the key “0100” is premised on taking a unique value for the entire index key.
  • the illustrated tree is composed of node pairs 1201a, 1201b, and 1201c.
  • the representative node of the node pair 1201a is the root node 1210a, and 0 is held in the first discrimination position and 1 is held in the discrimination bit position.
  • the representative node 1210b of the node pair 1201b lower than the node pair 1201a is a branch node, and 0 is held in the first discrimination position, 3 is held in the discrimination bit position, and the node 1211b paired with the representative node 1210b is a leaf node.
  • the reference pointer 1281b to the key strings 1291b and 1291b ′ is held.
  • the node 1210b which is a branch node is linked to the node pair 1201c.
  • the nodes 1210c and 1211c constituting the node pair 1201c are both leaf nodes, and store reference pointers 1280c and 1281c to the key strings 1290c and 1290c 'and the key strings 1291c and 1291c', respectively.
  • the first key 1291d in the insertion key string overlaps with the first key in the key string stored in the storage area pointed to by the reference pointer 1280c. Therefore, in the example shown in the figure, when the search is performed with the insertion key string, the leaf node 1210c storing the reference pointer 1280c is reached, the second key 1290c ′ is set as the comparison key, and the second key of the insertion key string is set. Using 1290d ′ as an insertion key, the magnitude relationship determination and bit string comparison are performed. Then, the insertion key is larger than the comparison key, and the position of the first mismatch bit is 1.
  • FIG. 12B is a diagram showing a coupled node tree in which the insertion key string “00000100” is inserted.
  • a new node pair 1201d is inserted below the node pair 1201c.
  • the node [1] 1211d of the node pair 1201d is generated as a leaf node including the insertion key string pointer as the reference pointer 1281d, and the contents of the node 1210 shown in FIG. 12A are written in the node [0] 1210d.
  • 1 indicating that the first discrimination position of the branch node 1210c shown in FIG. 12B is the second key is the position of the first mismatch bit of the insertion key and the comparison key in the second discrimination position. 1 is stored, and the representative node number stores the array element number of the array element in which the representative node 1210d of the node pair 1201 is arranged.
  • the leaf node can include the index key itself instead of the information indicating the position of the storage area storing the index key.
  • the first discrimination position for identifying the position of the key in the search key string is the key position number corresponding to the order of the key arrangement such as 0, 1, 2,.
  • the key position can be identified by using an offset value from the first bit of the entire search key string or by indicating that the key position has been switched by alternately using 0 and 1 for example. This is obvious to those skilled in the art.
  • the apparatus for executing the bit string search method of the present invention can be constructed on a computer by a storage means for storing a coupled node tree and a program for causing the computer to execute the processing shown in FIG.
  • the insertion method of the present invention can be realized by a program that causes a computer to execute the insertion process shown in FIGS. 5 to 7, FIG. 8A, and FIG. 8B and its equivalent, and the deletion shown in FIG. 9 and FIG. It is also clear that the deletion method of the present invention can be realized by a program that causes a computer to execute processing and its equivalents.
  • a means for identifying a branch node and a leaf node, a means for linking to one of a pair of linked nodes according to the discrimination bit position of the branch node, and the like are realized on the computer.
  • the program and a computer-readable storage medium storing the program are included in the embodiment of the present invention. Furthermore, the data structure of the coupled node tree of the present invention is also included in the embodiment of the present invention.
  • the coupled node tree which is a new data structure provided by the present invention described in detail above, it is possible to handle duplicate keys and to search for bit string data at a higher speed. In addition, addition and deletion of bit string data can be easily performed.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
PCT/JP2008/003264 2008-01-17 2008-11-11 ビット列検索装置、検索方法及びプログラム Ceased WO2009090697A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP08871045.4A EP2249257B1 (en) 2008-01-17 2008-11-11 Bit string retrieval device, retrieval method and program
CN200880124936.8A CN101911068B (zh) 2008-01-17 2008-11-11 比特序列检索装置、检索方法
US12/805,183 US8195667B2 (en) 2008-01-17 2010-07-16 Bit string search apparatus, search method, and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2008007690A JP4567754B2 (ja) 2008-01-17 2008-01-17 ビット列検索装置、検索方法及びプログラム
JP2008-007690 2008-01-17

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US12/805,183 Continuation US8195667B2 (en) 2008-01-17 2010-07-16 Bit string search apparatus, search method, and program

Publications (1)

Publication Number Publication Date
WO2009090697A1 true WO2009090697A1 (ja) 2009-07-23

Family

ID=40885108

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2008/003264 Ceased WO2009090697A1 (ja) 2008-01-17 2008-11-11 ビット列検索装置、検索方法及びプログラム

Country Status (5)

Country Link
US (1) US8195667B2 (enExample)
EP (1) EP2249257B1 (enExample)
JP (1) JP4567754B2 (enExample)
CN (1) CN101911068B (enExample)
WO (1) WO2009090697A1 (enExample)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230185967A1 (en) * 2021-12-10 2023-06-15 Royi Cohen Checksum generator and verification system

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9400817B2 (en) * 2013-12-31 2016-07-26 Sybase, Inc. In-place index repair
JP5960863B1 (ja) * 2015-03-11 2016-08-02 エヌ・ティ・ティ・コミュニケーションズ株式会社 検索装置、検索方法、プログラム、及び記録媒体

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05265821A (ja) * 1992-03-17 1993-10-15 Hitachi Ltd データベースのインデックス管理方式
JPH1196058A (ja) 1997-09-22 1999-04-09 Nippon Telegr & Teleph Corp <Ntt> T木インデックス構築方法及び装置及びt木インデックス構築プログラムを格納した記憶媒体
JP2001357070A (ja) 2000-06-13 2001-12-26 Nec Corp 情報検索方法及び装置
JP2006187827A (ja) 2005-01-05 2006-07-20 Toyo Tire & Rubber Co Ltd 研磨パッド
JP2006293619A (ja) 2005-04-08 2006-10-26 Toshiba Tec Corp コンピュータ装置及びログ出力プログラム
JP2007114915A (ja) 2005-10-19 2007-05-10 Kazumi Sonomoto 自己診断チェックシステムを活用したユーザー側に設置されている通報装置からの情報送出による自動メンテチェックシステム。
WO2008004335A1 (en) * 2006-07-07 2008-01-10 S.Grants Co., Ltd. Bit sequence search device, search method, and program

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01239632A (ja) * 1988-03-19 1989-09-25 Hitachi Ltd 情報検索方式
JP3184008B2 (ja) * 1993-06-28 2001-07-09 エヌイーシーソフト株式会社 索引ファイルの入出力方法
JP2957703B2 (ja) * 1994-06-06 1999-10-06 ノキア テレコミュニカシオンス オサケ ユキチュア データを記憶し検索する方法及びメモリ構成体
SE510000C2 (sv) * 1997-07-21 1999-03-29 Ericsson Telefon Ab L M Struktur vid databas
US6675163B1 (en) * 2000-04-06 2004-01-06 International Business Machines Corporation Full match (FM) search algorithm implementation for a network processor
US7096235B2 (en) * 2003-03-27 2006-08-22 Sand Technology Systems International, Inc. Computer implemented compact 0-complete tree dynamic storage structure and method of processing stored data
US8150856B2 (en) * 2006-07-07 2012-04-03 S. Grants Co., Ltd. Bit string searching apparatus, searching method, and program
JP4271227B2 (ja) 2006-10-30 2009-06-03 株式会社エスグランツ ビット列検索装置、検索方法及びプログラム
JP4439013B2 (ja) 2007-04-25 2010-03-24 株式会社エスグランツ ビット列検索方法及び検索プログラム

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05265821A (ja) * 1992-03-17 1993-10-15 Hitachi Ltd データベースのインデックス管理方式
JPH1196058A (ja) 1997-09-22 1999-04-09 Nippon Telegr & Teleph Corp <Ntt> T木インデックス構築方法及び装置及びt木インデックス構築プログラムを格納した記憶媒体
JP2001357070A (ja) 2000-06-13 2001-12-26 Nec Corp 情報検索方法及び装置
JP2006187827A (ja) 2005-01-05 2006-07-20 Toyo Tire & Rubber Co Ltd 研磨パッド
JP2006293619A (ja) 2005-04-08 2006-10-26 Toshiba Tec Corp コンピュータ装置及びログ出力プログラム
JP2007114915A (ja) 2005-10-19 2007-05-10 Kazumi Sonomoto 自己診断チェックシステムを活用したユーザー側に設置されている通報装置からの情報送出による自動メンテチェックシステム。
WO2008004335A1 (en) * 2006-07-07 2008-01-10 S.Grants Co., Ltd. Bit sequence search device, search method, and program

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2249257A4

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230185967A1 (en) * 2021-12-10 2023-06-15 Royi Cohen Checksum generator and verification system

Also Published As

Publication number Publication date
US8195667B2 (en) 2012-06-05
EP2249257A4 (en) 2011-09-14
US20100287193A1 (en) 2010-11-11
EP2249257B1 (en) 2013-04-24
CN101911068B (zh) 2012-07-25
EP2249257A1 (en) 2010-11-10
JP2009169715A (ja) 2009-07-30
JP4567754B2 (ja) 2010-10-20
CN101911068A (zh) 2010-12-08

Similar Documents

Publication Publication Date Title
JP4271214B2 (ja) ビット列検索装置、検索方法及びプログラム
JP4514771B2 (ja) カップルドノードツリーの最長一致/最短一致検索装置、検索方法及びプログラム
US8224861B2 (en) Coupled node tree splitting/conjoining method and program
US8332410B2 (en) Bit string merge sort device, method, and program
CN101535993B (zh) 比特序列检索装置及检索方法
JP4402120B2 (ja) ビット列検索装置、検索方法及びプログラム
JP4439013B2 (ja) ビット列検索方法及び検索プログラム
CN101911060A (zh) 数据库的索引关键字更新方法以及程序
US8250089B2 (en) Bit string search apparatus, search method, and program
JP4567754B2 (ja) ビット列検索装置、検索方法及びプログラム
US8166043B2 (en) Bit strings search apparatus, search method, and program
JP2009251840A (ja) ビット列検索装置、検索方法及びプログラム
JP2011018296A (ja) カップルドノードツリーのインデックスキー挿入/削除方法
JP4813575B2 (ja) ビット列検索装置
JP4417431B2 (ja) カップルドノードツリーの分割/結合方法及びプログラム
JP2009199577A (ja) ビット列検索装置、検索方法及びプログラム

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200880124936.8

Country of ref document: CN

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

Ref document number: 08871045

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2008871045

Country of ref document: EP