×

System, method and data structure for fast loading, storing and access to huge data sets in real time

  • US 9,251,197 B2
  • Filed: 06/27/2012
  • Issued: 02/02/2016
  • Est. Priority Date: 06/27/2011
  • Status: Active Grant
First Claim
Patent Images

1. A computerized system comprising:

  • a processor; and

    a computer-readable non-transient memory in communication with the processor, the memory storing instructions that when executed manage a Super Hierarchiel Bitmaps (SHB) data structure representing a set of integers that includes;

    (a) at least one word, wherein each said word contains a predefined number of, bits, wherein each said bit is selected from the group including 1-bits and 0-bits;

    (b) a plurality of bit vectors, each said bit vector containing at least one word, wherein said at least one word is selected from the group including an empty word containing only said 0-bits and a non-empty word containing at least one said 1-bit;

    (c) one or more compressed layers representing corresponding one or more non-compressed layers, wherein;

    (i) each said non-compressed layer includes one said bit vector, wherein said one or more non-compressed layers are organized sequentially, such that each of said one or more non-compressed layers except for a last non-compressed layer has a subsequent non-compressed layer related thereto;

    (ii) the set of integers containing a plurality of positive integer members, wherein each member is represented by a 1-bit in the last non-compressed layer and wherein the position of each said 1-bit in said last non-compressed layer is equal to a value of said positive integer member;

    (iii) each said non-empty word is represented by a respective 1-bit in a previous non-compressed layer such that a number of said 1-bits in said previous non-compressed layer is equivalent to a number of said non-empty words in a subsequent non-compressed layer and a position of each of said 1-bit in said previous non-compressed layer represents a corresponding position of each said non-empty word in said subsequent non-compressed layer;

    wherein said compressed layers other than a first compressed layer include only said non-empty words, and each position of said empty words in said non-compressed layer is represented by a position of each said 0-bit in said previous non-compressed layer, said empty words in any non-compressed layer being representative of removed empty words in any corresponding compressed layer, and each position of said removed empty words in a second compressed layer is represented by a position of each said 0-bit in said first compressed layer, so that said second compressed layer is decompressed into a second decompressed layer by calculating said positions of said removed empty words in said second compressed layer according to said positions of said 0-bits in said first compressed layer, and each said compressed layer other than said first and second compressed layers is decompressed sequentially by calculating said positions of said removed empty words in each said compressed layer according to said positions of said 0-bits in a previous decompressed layer; and

    (d) one or more counter vectors, each of said counter vectors related to each of said one or more compressed layers, wherein for each said word in each of said compressed layers there exists a related counter member and wherein each said counter member holds a counter value which equals a cumulative number of 1-bits, said cumulative number calculated from a first position in each of said bit vectors to each respective said word in said bit vector related to said counter member.

View all claims
  • 2 Assignments
Timeline View
Assignment View
    ×
    ×