EP0458698A2

Method and apparatus for pointer compression in structured databases.

Abstract

A method and apparatus for addressing compressed nodes in a database structure is disclosed in which each compressed node is associated with a particular mapping function and each element in the node is assigned a particular identification code. The character to be searched is converted into a physical address having a first portion which is used to index to a particular element in a compressed node, and a second portion which is used to verify that the selected element corresponds to the search character.

EP0458698A2, drawing sheet 1
Sheet 1 of 29

Term

Term ended

Projected expiry passed 22 May 2011, 15.3 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

20 claims: 9 independent, 11 dependent

  1. 1
    A method for addressing a compressed node having more than one element in a database structure; the addressing index being a search character comprising the steps of:assigning a first identification code to the compressed node;and    assigning a second identification code to each element in the node;assigning a third identification code to the search character;and    comparing the first, second, and third identification codes to see if an address match is found.
  2. 2
    A method of storing data obtained from a TRIE-node having sixteen pointer elements of which less than five are non-NIL pointer elements, which comprises :(a) associating each pointer element with a unique character ;(b) assigning a separate unique 4-bit code to the character associated with each non-NIL pointer element, the 4-bit code comprising a first two bits and a second two bits, where the first two bits in each such code is also a unique combination of bits ;(c) storing the non-NIL pointer elements and the related second two bits of the 4-bit codes in a stored program processor.
  3. 4
    A method of compressing a TRIE-node having sixteen pointer elements of which less than five are non-NIL pointer elements said method comprising the steps of :(a) associating each non-NIL pointer element with one of a sixteen hexadecimal characters ;(b) assigning a unique 4-bit code to each associated character such that no two 4-bit codes share the same first two bit combination ;(c) ordering the non-NIL pointer elements according to the binary values of the first two bits of their respective 4-bit codes ;(d) combining each non-NIL pointer element with the second two bits of the 4-bit code assigned to its associated hexadecimal character to yield a compressed pointer element ;and(e) storing the compressed pointer elements in a compressed node in the order established in step (c).
  4. 10
    A memory system containing a compressed TRIE-node which includes :(a) four pointer elements, each pointer element uniquely corresponding to one of sixteen unique characters ;and(b) four pointer-IDs each assigned to one of the four pointer elements.
  5. 14
    Apparatus for performing computerized database operations comprising :(a) memory means for generating a pointer bit field in response to an address bit field, the pointer bit field comprising a first portion indicating the address of the next node to be searched, a second portion indicating the type of node to be searched next, and a third portion comprising a pointer-identifier ;(b) logic means coupled to the memory means for generating a translated address in response to the second portion of the pointer bit field and the search character bit field, the translated address having a first and second part ;(c) comparison means logically coupled to the memory means and the logic means for comparing the third portion of the pointer bit field and the second part of the translated address.
  6. 15
    Apparatus for searching a compressed node in a TRIE-structured database given an input search character and a bit field having a value representating the node to be searched using the search character ; the compressed node containing node elements having both a pointer and a pointer identifier, comprising :(a) first logic means responsive to the bit field representing the node to be searched for generating a translation bit-field for that node ;(b) second logic means logically connected to the first logic means responsive to both the translation bit-field and the input search character for generating a translated address ;the translated address comprising a first part indicating the address of an element in the node to be searched and a second part corresponding to the search character ;(c) addressing means logically connected to the second logic means for receiving the translated address and addressing the node element indicated by the first part of the translated address ;and(d) comparison means logically connected to the second logic means and the addressing means for comparing the second part of the translated address with the pointer identifier portion of the node element addressed by the addressing means.
  7. 16
    A method for searching a computerized dabatase having compressed TRIE-nodes with one or more elements, each element including an element identifier, given a search character and a node address, where each TRIE-node may be one of several node types comprising the steps of :(a) receiving the node address, where the node address indicates the node to be searched and the node type of the node to be searched ;(b) receiving the search character to be searched at the node referenced by the node address ;(c) generating a hashed value in response to the search character and the node type of the node to be searched, where the hashed value comprises a first portion and a second portion ;(d) generating a element address on the basis of the address of the node to be searched and the first portion of the hashed value ;(e) selecting a pointer element in response to the element address ;(f) comparing the element identifier of the selected element with the second portion of the hashed value.
  8. 18
    A compressed node in a TRIE-structured database having one or more elements, each element associated with a particular search character, the compressed node comprising :(a) a first element positioned in the compressed node such that its position partially defines the search character associated with that element ;(b) a binary code associated with the first element such that in combination with the element's position the binary code completely defines the search character associated with the first element.
  9. 20
    A method of compressing a TRIE-node having sixteen pointer elements of which less than five are non-NIL pointer elements said method comprising the steps of :(a) associating each non-NIL pointer element with one of sixteen hexadecimal characters ;(b) generating fifteen linear translation matrices such that each translation matrix is a four-by-four matrix whose elements include all of the sixteen hexadecimal characters ;(c) selecting one of the generated translation matrices such that each hexadecimal character assigned to a non-NIL pointer element is in a distinct row ;(d) assigning a 4-bit code to each hexadecimal character assigned to a non-NIL pointer element such that the first two bits represent the binary value of the row, and the second two bits represent the binary value of the column, of the position in the selected translation matrix where the hexadecimal character is found ;(e) ordering the non-NIL pointer elements according to the binary values of the first two bits of their respective 4-bit codes ;(f) combining each non-NIL pointer element with the second two bits of the 4-bit code assigned to its associated hexadecimal character to yield a compressed pointer element ;and(g) storing the compressed pointer elements in a compressed node in the order established in step (e) ;and(h) assigning a unique identifier is to each of the generated translation matrices and associating the compressed node with the identifier assigned to the selected translation matrix.