WO2011095345A1 - Method and system for compressing data records and for processing compressed data records - Google Patents

Method and system for compressing data records and for processing compressed data records Download PDF

Info

Publication number
WO2011095345A1
WO2011095345A1 PCT/EP2011/000519 EP2011000519W WO2011095345A1 WO 2011095345 A1 WO2011095345 A1 WO 2011095345A1 EP 2011000519 W EP2011000519 W EP 2011000519W WO 2011095345 A1 WO2011095345 A1 WO 2011095345A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
partial areas
trivial
data
quasi
Prior art date
Application number
PCT/EP2011/000519
Other languages
French (fr)
Inventor
Jörg BIENERT
Michael Hummel
Norbert Heusser
Original Assignee
Bienert Joerg
Michael Hummel
Norbert Heusser
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 Bienert Joerg, Michael Hummel, Norbert Heusser filed Critical Bienert Joerg
Priority to ES11710114T priority Critical patent/ES2408701T1/en
Priority to US13/576,082 priority patent/US9805045B2/en
Priority to EP11710114.7A priority patent/EP2531939B1/en
Priority to JP2012551553A priority patent/JP5709903B2/en
Priority to CN201180015734.1A priority patent/CN102906740B/en
Priority to EP13005074.3A priority patent/EP2690565B1/en
Publication of WO2011095345A1 publication Critical patent/WO2011095345A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1744Redundancy elimination performed by the file system using compression, e.g. sparse files
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2237Vectors, bitmaps or matrices

Definitions

  • This invention relates to a method for processing data collections consisting of data records, in particular in database systems. More particularly, this invention relates to the compressing of data records and the processing of compressed data. It further relates to a data structure product containing compressed data records, as well as a database computer system and a computer program. Description of the Related Art
  • data collections can be processed, e.g. by searching them or by evaluating them by combining them with each other.
  • the data collections are pro- vided so that in the data records having a binary structure generated from the data collections, depending upon the used data, in part binary data structures are comprised which only include zero values over wide partial areas.
  • binary data structures are comprised which only include zero values over wide partial areas.
  • the data has to be returned into the original state or decompressed before the processing, only a sequential processing of the data is possible.
  • the reason for this is that due to the type of compression, in most cases the decompression can only be performed sequentially.
  • a very large random access memory is required in which the decompressed can be kept.
  • EP 0 633 537 Bl discloses a method and a sys- tern for searching a compressed document while a plurality of character strings stored in the compressed document are stored in a compressed code.
  • a query request is received, the query request is converted into the com- pressed code, and the converted query request is compared with the compressed codes stored in the compressed document .
  • the invention proposes to divide data records with a binary structure into several bit vectors.
  • the size of each bit vector is reduced by dividing the bit vector first into consecutive partial areas of equal size, each partial area consisting of n bits. These partial areas are then classified as trivial partial areas, quasi-trivial partial areas or as non-trivial partial areas, depending on their content structure.
  • R block One or several consecutive non-trivial partial areas of a bit vector are combined into one so named R block. The trivial partial areas are removed. One or several consecutive quasi-trivial partial areas are combined into one so named 0 block.
  • the size of a data record can be reduced significantly.
  • the absolute bit vector position P R of the first bit of the first non- trivial partial area included in the respective R block and the number m R of the consecutive non-trivial partial areas in the so named R block can be noted in the R block. This provides for a fast determination of the content of the R block and according fast data retrieval.
  • the number m R gives the count or the quantity of consecutive non-trivial partial areas in the R block.
  • the absolute bit vector position P 0 of the first bit of the first quasi-trivial partial area included in the so named 0 block and the number mo of the consecutive quasi-trivial partial areas in the 0 block can be noted on the 0 block. This provides for a fast determination of the content of the R block and according fast data retrieval. The number mo gives the count or the quantity of consecutive quasi- trivial partial areas in the O block.
  • the quasi-trivial partial areas may be removed (deleted) which contributes to an additional reduction of size of the bit vector.
  • each bit vector is reduced in size by this compression.
  • the bit vectors are each segmented into consecutive partial areas of equal size, each partial area consisting of n bits.
  • the partial areas may now contain bits having different values or only bits having the same value.
  • the partial areas can be classified as different partial areas.
  • Trivial partial areas and quasi-trivial partial areas can be partial areas having a regular bit structure, for example.
  • Trivial partial areas can be defined as partial areas which contain only zeroes while quasi-trivial partial areas can be defined as partial areas which contain only ones.
  • Non-trivial partial areas are partial areas which contain both ones and zeroes. It is to be noted that the above definition of the respective names of the partial areas is not to be understood to be limiting but only given by means of example. Of course, the partial areas in which the bits only have the value 1 could also be defined to be trivial partial areas in the context of this invention, and partial areas in which the bits only have the value 0 would be defined to be quasi-trivial partial areas, then.
  • Consecutive non-trivial partial areas and consecutive quasi-trivial partial areas can be combined into blocks.
  • the non-trivial partial areas are combined into R blocks.
  • the position P R of the first bit of the first partial area included in each R block is noted which has the bit in the original state in the bit vector.
  • the quasi-trivial partial areas may be combined substantially "notionally” by finding consecutive quasi-trivial partial areas and noting the absolute position P 0 of the first bit of the first quasi-trivial partial area notionally included in each 0 block having the bit in the original state of the bit vector together with the number mo of the consecutive quasi-trivial partial areas in one 0 block.
  • the data included in each R block can be used without having to return the bit vector into the original state or to decompress it.
  • the 0 blocks include sufficient information in order to be able to use these data in the processing of data records without having to return the bit vector to the original state or to decompress it.
  • the absolute bit vector position P R and the number m R of the consecutive non-trivial partial areas in an R block may be noted at the beginning of each R block. This may be done in a binary form.
  • an information area having n bits can be generated in which the absolute vector position P R and the number m R of the consecutive non-trivial partial areas in an R block are noted, e.g. in binary form.
  • each partial area consists of n bits and each R block always includes an integer number m R of non-trivial partial areas
  • the absolute bit vector position P R is always an integer multiple of n .
  • the absolute bit vector position P 0 may be noted in an 0 block.
  • a first and second information areas each having n bits are generated in which the absolute bit vector position P 0 and the number mo of the quasi- trivial partial areas originally included in an 0 block are noted, e.g. in a binary form.
  • the absolute bit vector position P 0 may be noted in the first information area and the number mo may be noted in the second information area (which of course could also be done vice-versa) .
  • One embodiment of the invention provides that for the number m R the relation m R ⁇ n - 1 is valid. It can be further provided that for the number mo the relation mo ⁇ 2 n is valid. Each bit vector can have a maximum length of 2 n + n - 1.
  • the data records compressed or reduced as described above may be processed without having to be brought back into their original decompressed state by selecting at least two bit vectors and combining the at least two bit vectors to one solution vector, wherein the combination of the bit vectors is carried out by the combination of 0 blocks and/or R blocks of the bit vectors.
  • the invention allows for several combinations of 0 blocks and/or R blocks of the bit vectors being carried out in parallel.
  • Processing of data records may be performed by a computer unit including several SI D processors (SIMD - single instruction multiple data) , wherein the parallel combination is distributed to the several SIMD processors .
  • SI D processors SIMD - single instruction multiple data
  • the invention also covers a computer program with program coding means which are suitable for carrying out a method according to the invention as described above when the computer program is run on a computer.
  • the computer program itself as well as stored on a computer- readable medium is claimed.
  • Figure 1 is a schematic block diagram depiction illustrating the invention.
  • Figure 2 is a schematic view of a computer database system upon which the invention can be implemented .
  • Figure 3 is a more detailed block diagram of the computer system of Figure 2.
  • Figure 4 is an illustration of a parallel processing on SIMD processors according to the invention.
  • the method according to the present invention for processing data records in particular in database systems, can be used in the context of database systems for call data records (CDR) in accounting systems in the telecommunication sector, for example.
  • CDR call data records
  • Data collections of telecommunication services are stored, for example, in database systems.
  • the sets of data may comprise, for example, the telephone number, the duration of the call, the time of the call, etc. Evaluation of these data can be done by means of the database systems.
  • the data sets or records are frequently generated in such manner that only one piece of the information, such as time or duration, is valid. Even if calls are made from one connection in rapid succession to the same phone number, these are regarded as two independent calls, and two different data sets are generated. This leads to a very large number of data. In Germany, for example, the number of such data is several billions.
  • the collection of these data are converted into data records having a binary structure. This can occur in the form of a matrix (bitmap) , for example, where- in the rows denote the respective calls and the columns denote the corresponding conditions such as time, duration etc., for example.
  • the binary value 1 means that the corresponding information is true, and the binary value 0 means that this information is not true. Due to the nature of the data records as described above, the binary structure in the form of a matrix as shown in Figure 1 comprises large areas including bits having the value 0, and there are also areas including a plurality of consecutive bits having the value 1.
  • bit vectors can now be reduced in size without losing any information.
  • the bit vectors are divided into consecutive partial areas having the same size.
  • Each partial area consists of n bits.
  • the corresponding partial areas are schematically illustrated in Figure 1.
  • the partial areas consist of 32 bits each as in many computers today the basic storage unit consists of 32 bits. More recent systems have base storage units comprising 64 bits so that it is of course also possible to provide partial areas having 64 bits.
  • the partial areas are classified.
  • the partial areas which respectively include bits having the values 0 and 1 in an arbitrary sequence are - in the context of this application - so-called non-trivial partial areas.
  • the partial areas exclusively including bits having the value 1 are so-called quasi-trivial partial areas.
  • the partial areas exclusively including bits having the value 0 are so-called trivial partial areas.
  • an information area having the length of n bits is generated at the beginning of the R block.
  • the information area of the R block has the length of 32 bits.
  • the absolute position of the first bit of the consecutive partial areas of the original bit vector combined into this R block is noted.
  • the absolute bit vector positions are designated as offset .
  • the partial areas each have a length of 32 bits, the last five bits of the information area, namely the bits 28 to 32, are always invariant when the absolute bit vector position P R is noted so that they are not required for noting the absolute bit vector position P R . Therefore, the bits 28 to 32 can be used for noting the number m R of the consecutive non-trivial partial areas in the R block.
  • bit number 27 of the information area has the value 0 which means that the bit vector position P R is also 0.
  • Bit 32 has the value 1 which indicates that a non-trivial partial area is included in this block. At most 31 non-trivial partial areas can be included in one R block. If there should be more than 31 consecutive non-trivial partial areas in one bit vector, they are divided into two or more different R blocks, respectively.
  • bit vector having a length of 64 bits the last 6 bits of the information area are free so that the absolute bit vector is noted starting at bit number 58. Accordingly, 63 non-trivial partial areas could be included in one R block.
  • a given R block can include only one non- trivial partial area, for example, as illustrated in the example of the Figure.
  • the quasi-trivial partial areas only including bits having the value 1 are also combined into blocks, designated as so-called 0 blocks. In doing so, these blocks are only "notionally” combined. This means that an 0 block in the context of this application may merely include a first information area and a second information area.
  • the first information area includes an identification that this block is an O block. Further, the absolute bit vector position of the first bit of the first partial area notionally included in the 0 block is noted. In the example of Figure 1, the abso- lute bit vector position P 0 is 64 so that bit number 26 of the first information area has the value 1. The identification is carried out such that in the first information area the bits number 28 to 32 have the value 0. In this way, the 0 block can be distinguished from the R block.
  • the number mo of the quantity of quasi-trivial partial areas notionally included in the 0 block is noted, e.g. in binary form. In the illustrated embodiment, at most 2 32 quasi-trivial partial areas can be notionally included in one 0 block.
  • bit vectors are selected and combined.
  • bit vectors The selection of the bit vectors depends on the particular request. In the combination of the bit vectors, 0 blocks and/or R blocks of the bit vectors are combined.
  • intersection area is then simply combined by the corresponding operation. This can be, for example, an AND or an OR operation. The result is written into a solution vector.
  • the solution can be written into the solution vector in a compressed form.
  • the solution vector can also be output in the uncompressed state. In the latter case, the empty spaces remaining in the solution vector after the combination are then filled with the values 0.
  • the combination of 0 blocks and/or R blocks of the bit vectors can be performed in parallel as in the blocks the absolute bit vector position of the partial areas included in the blocks is known.
  • the bit vectors are returned (brought back) into their original state, i.e. it is not required that they are decompressed.
  • Figure 2 illustrates in very schematical manner a computer system 10 upon which an embodiment of the present invention may be implemented.
  • the computer system 10 comprises a computer 12 with a bus 22 for communicating data, a processing unit 14 and a database storage medium (database) 20 for storing sets of data.
  • the computer system 10 further comprises at least one input/output device 18 which in the depiction of Figure 1 is a client with keyboard 18.2, pointing device 18.3 for cursor control and a monitor 18.1.
  • the at least one input/output device 18 can be connected with the com- puter within an intranet network, for example.
  • FIG. 3 illustrates the computer system 10 of Figure 1 in more detail.
  • the computer system 10 includes a bus 22 or other communication mechanism for communicating information, and a processor 14 coupled with the bus 22 for processing the information.
  • the computer system 10 also includes a main memory 24, such as a random access memory (RAM) or other dynamic storage device (e.g., dynamic RAM (DRAM), static RAM (SRAM) , and synchronous DRAM (SDRAM) ) , coupled to the bus 22 for storing information and instructions to be executed by processor 14.
  • RAM random access memory
  • DRAM dynamic RAM
  • SRAM static RAM
  • SDRAM synchronous DRAM
  • main memory 24 may be used for storing temporary variables or other intermediate information during the execution of instructions by the processor 14.
  • the computer system 10 further includes a read only memory (ROM) 25 or other static storage device (e.g., programmable ROM (PROM), erasable PROM (EPROM) , and electrically erasable PROM (EEPROM) ) coupled to the bus 22 for storing static information and instructions for the processor 14.
  • ROM read only memory
  • PROM programmable ROM
  • EPROM erasable PROM
  • EEPROM electrically erasable PROM
  • the computer system 10 also includes a disk controller 26 coupled to the bus 22 to control one or more storage devices for storing information and instructions, such as a magnetic hard disk 27, and a re- movable media drive 28 (e.g., floppy disk drive, readonly compact disc drive, read/write compact disc drive, compact disc jukebox, tape drive, and removable magneto-optical drive) .
  • a re- movable media drive 28 e.g., floppy disk drive, readonly compact disc drive, read/write compact disc drive, compact disc jukebox, tape drive, and removable magneto-optical drive
  • the storage devices may be added to the computer system 10 using an appropriate device interface (e.g., small computer system interface
  • SCSI small computer interface
  • IDE integrated device electronics
  • E-IDE enhanced- IDE
  • DMA direct memory access
  • ultra- DMA ultra- DMA
  • the computer system 10 may also include a display controller 29 coupled to the bus 22 to control a display or monitor 18.1, such as a cathode ray tube (CRT) or liquid crystal display (LCD) or the like, for displaying information to a computer user.
  • the computer system includes input devices, such as keyboard 18.2 and pointing device 18.3, for interacting with a computer user and providing information to the processor 14.
  • the pointing device 18.3, for example, may be a mouse, a trackball, or a pointing stick for communicating direction information and command selections to the processor 14 and for controlling cursor movement on the display 18.1.
  • a printer may provide printed listings of data stored and/or generated by the computer system 10.
  • the computer system 10 performs a portion or all of the processing steps of the invention in response to the processor 14 executing one or more sequences of one or more instructions contained in a memory, such as the main memory 24. Such instructions may be read into the main memory 24 from another computer readable medium, such as a hard disk 27 or a removable media drive 28.
  • a processor in a multiprocessing arrangement may also be employed to execute the sequences of instructions contained in main memory 24.
  • hard-wired circuitry may be used in place of or in combination with software instructions. Thus, embodiments are not limited to any specific combination of hardware circuitry and software .
  • Telephone call data from a telephone 40 are collected through a data link connection (which might be wireless) in the computer system.
  • the collected data becomes part of the data collection built up in the data storage medium 20 according to the invention .
  • the computer system 10 includes at least one computer readable medium or memory for holding instructions programmed according to the teachings of the invention and for containing data structures, tables, records, or other data described herein.
  • Examples of computer readable media are compact discs, hard disks, floppy disks, tape, magneto- optical disks, PROMs (EPROM, EEPROM, flash EPROM) , DRAM, SRAM, SDRAM, or any other magnetic medium, compact discs (e.g., CD-ROM), or any other optical medium, punch cards, paper tape, or other physical medium with patterns of holes, a carrier wave (described below) , or any other medium from which a computer can read.
  • compact discs e.g., hard disks, floppy disks, tape, magneto- optical disks, PROMs (EPROM, EEPROM, flash EPROM) , DRAM, SRAM, SDRAM, or any other magnetic medium, compact discs (e.g., CD-ROM), or any other optical medium, punch cards, paper tape, or other physical medium with patterns of holes, a carrier wave (described below) , or any other medium from which a computer can read.
  • PROMs EPROM, EEPROM, flash EPROM
  • the present invention includes software for controlling the computer system 10, for driving a device or devices for implementing the invention, and for enabling the computer system 10 to interact with a human user, such as an operator.
  • software may include, but is not limited to, device driv- ers, operating systems, development tools, and applications software.
  • Such computer readable media further includes the computer program product of the present invention for performing all or a portion (if processing is distributed) of the processing performed in im- plementing the invention.
  • the computer code devices of the present invention may be any interpretable or executable code mechanism, including but not limited to scripts, interpretable programs, dynamic link libraries (DLLs) , Java classes, and complete executable programs. Moreover, parts of the processing of the present invention may be distributed for better performance, reliability, and/or cost .
  • Non-volatile media includes, for example, optical, magnetic disks, and magneto-optical disks, such as the hard disk 27 or the removable media drive 28.
  • Volatile media includes dynamic memory, such as the main memory 24.
  • Transmission media includes coaxial cables, copper wire and fiber optics, including the wires that make up the bus 22. Transmission media also may also take the form of acoustic or light waves, such as those generated during radio wave and infrared data communications.
  • the computer system 10 also includes a communication interface 16 coupled to the bus 22.
  • the communication interface 16 provides a two-way data communication coupling to a network link 30 that is connected to, for example, a local area network (LAN) 32, or to another communications network 33 such as the Internet.
  • the communication interface 16 may be a network interface card to attach to any packet switched LAN.
  • the communication interface 16 may be an asymmetrical digital subscriber line (ADSL) card, an integrated services digital network (ISDN) card or a modem to provide a data communication connection to a corresponding type of communica- tions line.
  • Wireless links may also be implemented.
  • the communication interface 16 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
  • the network link 30 typically provides data communication through one or more networks to other data devices.
  • the network link 30 may provide a connection to another computer through a local network 32 (e.g., a LAN) or through equipment operated by a service provider, which provides communication services through a communications network 33.
  • the local network 30 and the communications network 33 use, for example, electrical, electromagnetic, or optical signals that carry digital data streams, and the associated physical layer (e.g., CAT 5 cable, coaxial cable, optical fiber, etc) .
  • the network link 30 may provide a connection through a LAN 32 to a mobile device 34 such as a personal digital assistant (PDA) laptop computer, or cellular telephone.
  • PDA personal digital assistant
  • Figure 4 shows on the left side (for a viewer of the depiction) two bit vectors BV1 and BV2.
  • Each of these bit vectors BV1 and BV2 comprise a number of R blocks and 0 blocks, each of these blocks again consisting of the absolute bit vector position P R or P 0 , respectively, and according numbers m R and mo, respectively.
  • the R blocks also contain the data bit sequences (right hand column in the depiction of the bit vectors in Figure 4).
  • the 0 blocks only contain the absolute bit vector positions and the numbers reflecting the amount/quantity of consecutive quasi-trivial partial areas. According to the invention, the quasi- trivial partial areas themselves were deleted.
  • Processing the bit vectors is done by combining them into a solution or result vector SBV. This may be done by a plurality of processors in parallel, as shown in exemplary manner in Figure 4.
  • Figure 4 illustrates an example with three processors performing an AND operation with the two depicted bite vectors BVl and BV2; however any suitable number of available pro- cessors can be used.
  • SIMD processors available on graphics cards are used for processing the bit vectors. In this case, it can be provided, for example, that several graphics cards are included in one computer unit.
  • SIMD processors are sufficient for the required combination tasks. In addition, they are available in large numbers in normal computer systems. For example, a graphics chip of a powerful graphics card comprises 256 SIMD processors. As a consequence, a large number of combination operations can simultaneously be executed so that the data processing can be carried out very rapidly. [0090] The combination of the bit vectors is carried out by combining 0 blocks and/or R blocks of the bit vectors.
  • the method according to the invention can also be applied in data records different from telecommunications data.
  • the method according to the invention is particularly powerful in the case of data records of the type having a binary structure in which a large number of bit values 0 or of bit values 1 are arranged in consecutive order.
  • bit vector into consecutive partial areas of equal size, each partial area consisting of n bits; classifying the partial areas as trivial partial areas, quasi-trivial partial areas and non-trivial partial areas; combining one non-trivial or several consecutive non-trivial partial areas to a respective R block, respectively, and noting the absolute bit vector position P R of the first bit of the first non-trivial partial area included in each R block and the number m R of the consecutive non-trivial partial areas comprised in one R block;
  • bit vectors selecting at least two bit vectors and combining the at least two bit vectors to one solution vector, wherein the combination of the bit vectors is carried out by the combination of 0 blocks and/or R blocks of the bit vectors.
  • each bit vector has a maximum length of 2 n + n - 1.

Landscapes

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

Abstract

System and method to compress data records by providing data records with a binary structure; dividing the data records into several bit vectors; reducing the size of each bit vector by dividing the bit vector into consecutive partial areas of equal size, each partial area consisting of n bits, classifying the partial areas as trivial partial areas, quasi-trivial partial areas and non-trivial partial areas, combining one non-trivial or several consecutive non-trivial partial areas into one so named R block, and removing the trivial partial areas; as well as combining one quasi-trivial or several consecutive quasi-trivial partial areas into one so named O block.

Description

Method and system for compressing data records and for processing compressed data records
Technical Field
[0001] This invention relates to a method for processing data collections consisting of data records, in particular in database systems. More particularly, this invention relates to the compressing of data records and the processing of compressed data. It further relates to a data structure product containing compressed data records, as well as a database computer system and a computer program. Description of the Related Art
[0002] With the aid of databases, data collections can be processed, e.g. by searching them or by evaluating them by combining them with each other.
[0003] In many cases, the data collections are pro- vided so that in the data records having a binary structure generated from the data collections, depending upon the used data, in part binary data structures are comprised which only include zero values over wide partial areas. When data collections are generated, it can happen that data which are e.g. only slightly different cannot be combined but are generated as two different data records. The amount of data records in a database is therefore frequently very high.
[0004] In order to nevertheless be able to manage the data records well, the tendency has become to decrease the size of the data records without losing infor- mation. This is carried out by a data compression, for example .
[0005] This has the advantage that the amount of data to be stored, e.g. in electronic form, is reduced to a large extent. However, in electronic processing opera- tions such as in the combination of data, the compressed data have each to be completely decompressed and thus returned into the original state in order to be able to carry out a corresponding processing operation. As a consequence of the decompression process to be performed, the processing time is increased.
[0006] Further, the data has to be returned into the original state or decompressed before the processing, only a sequential processing of the data is possible. The reason for this is that due to the type of compression, in most cases the decompression can only be performed sequentially. For storing intermediate results in the electronic processing of the data a very large random access memory is required in which the decompressed can be kept.
[0007] EP 0 633 537 Bl discloses a method and a sys- tern for searching a compressed document while a plurality of character strings stored in the compressed document are stored in a compressed code. A query request is received, the query request is converted into the com- pressed code, and the converted query request is compared with the compressed codes stored in the compressed document .
Summary
[0008] According to the invention, a method comprising the features of claim 1, a data storage medium or data structure product with the features of claims 15 and 16, a method to process compressed data records with the features of claim 22 and a database computer system with the features of claims 25 and 26, respectively, are proposed.
[0009] The invention proposes to divide data records with a binary structure into several bit vectors. The size of each bit vector is reduced by dividing the bit vector first into consecutive partial areas of equal size, each partial area consisting of n bits. These partial areas are then classified as trivial partial areas, quasi-trivial partial areas or as non-trivial partial areas, depending on their content structure.
[0010] One or several consecutive non-trivial partial areas of a bit vector are combined into one so named R block. The trivial partial areas are removed. One or several consecutive quasi-trivial partial areas are combined into one so named 0 block.
[0011] In this manner, the size of a data record can be reduced significantly. [0012] When combining non-trivial partial areas of one bit vector into one so named R block, the absolute bit vector position PR of the first bit of the first non- trivial partial area included in the respective R block and the number mR of the consecutive non-trivial partial areas in the so named R block can be noted in the R block. This provides for a fast determination of the content of the R block and according fast data retrieval. The number mR gives the count or the quantity of consecutive non-trivial partial areas in the R block.
[0013] When combining quasi-trivial partial areas of one bit vector into one so named 0 block, the absolute bit vector position P0 of the first bit of the first quasi-trivial partial area included in the so named 0 block and the number mo of the consecutive quasi-trivial partial areas in the 0 block can be noted on the 0 block. This provides for a fast determination of the content of the R block and according fast data retrieval. The number mo gives the count or the quantity of consecutive quasi- trivial partial areas in the O block.
[0014] Further, the quasi-trivial partial areas may be removed (deleted) which contributes to an additional reduction of size of the bit vector.
[0018] During the reduction as proposed by the invention, no information is lost. The reduction may be carried out by a data compression, for example, in an electronic data processing. Due to the reduction of the size of the bit vector, the amount of data to be processed is substantially reduced. In this context, the invention provides that each bit vector is reduced in size by this compression. To this end, the bit vectors are each segmented into consecutive partial areas of equal size, each partial area consisting of n bits. The partial areas may now contain bits having different values or only bits having the same value.
[0019] On this basis, the partial areas can be classified as different partial areas. Trivial partial areas and quasi-trivial partial areas can be partial areas having a regular bit structure, for example. Trivial partial areas can be defined as partial areas which contain only zeroes while quasi-trivial partial areas can be defined as partial areas which contain only ones. Non-trivial partial areas are partial areas which contain both ones and zeroes. It is to be noted that the above definition of the respective names of the partial areas is not to be understood to be limiting but only given by means of example. Of course, the partial areas in which the bits only have the value 1 could also be defined to be trivial partial areas in the context of this invention, and partial areas in which the bits only have the value 0 would be defined to be quasi-trivial partial areas, then.
[0020] Consecutive non-trivial partial areas and consecutive quasi-trivial partial areas can be combined into blocks. The non-trivial partial areas are combined into R blocks. In each R block, the position PR of the first bit of the first partial area included in each R block is noted which has the bit in the original state in the bit vector. Furthermore, the number mR of the consecutive non-trivial partial areas contained in an R block may be noted. If a quasi-trivial partial area or a trivial partial area immediately follows a non-trivial partial area, the individual non-trivial partial area is put to the R block, and the bit vector position PR and the number mR = 1 may be noted.
[0021] The quasi-trivial partial areas may be combined substantially "notionally" by finding consecutive quasi-trivial partial areas and noting the absolute position P0 of the first bit of the first quasi-trivial partial area notionally included in each 0 block having the bit in the original state of the bit vector together with the number mo of the consecutive quasi-trivial partial areas in one 0 block. The quasi-trivial partial areas are removed so that only the information about the absolute bit vector position P0 and the number mo remain included in the 0 block. If a trivial partial area or a non- trivial partial area immediately follows a quasi-trivial partial area, only the absolute bit vector position P0 of the first bit of this quasi-trivial partial area and the number mo = 1 are noted.
[0022] The trivial partial areas are completely removed.
[0023] By noting the absolute position of the first bit of the first partial area included in each R block and the number mR of the consecutive non-trivial partial areas in a R block, the data included in each R block can be used without having to return the bit vector into the original state or to decompress it.
[0024] By using the absolute bit vector position P0 of the quasi-trivial partial areas originally included in each 0 block and the number mo of the originally consecu- tive quasi-trivial partial areas in an 0 block, the 0 blocks include sufficient information in order to be able to use these data in the processing of data records without having to return the bit vector to the original state or to decompress it.
[0025] The fact that the absolute bit vector positions P0 and PR of the 0 blocks or R blocks, respectively, are known, further allows the data included in these blocks to be used for a parallel data processing. Thus it is possible, for example, that upon combination of at least two bit vectors into a solution or result vector, the combination of individual 0 blocks and/or R blocks of the bit vectors can be carried out in parallel. This enables a particularly rapid processing of the data records. Furthermore, the consecutive information areas having n bits each inside one block of the result bit vector may also be processed in parallel.
[0026] The absolute bit vector position PR and the number mR of the consecutive non-trivial partial areas in an R block may be noted at the beginning of each R block. This may be done in a binary form. In each R block, an information area having n bits can be generated in which the absolute vector position PR and the number mR of the consecutive non-trivial partial areas in an R block are noted, e.g. in binary form. The number m may be noted in the last x bits of the information area, with x = log2 n. This sort of labelling or designation requires a small amount of data. By providing the information area at the origin of each R block, the processing of the data included in the R block is simplified because it is already known at the start of the processing of the given R block how many data is included in the R block and where these data was originally located in the bit vector.
[0027] Due to the fact that each partial area consists of n bits and each R block always includes an integer number mR of non-trivial partial areas, the absolute bit vector position PR is always an integer multiple of n .
[0028] As a consequence, when noting the absolute bit vector position PR, e.g. in a binary form, the last x bits of the information area always remain 0, provided that x = log2 n. The last x bits of the information area are thus not required for noting the absolute bit vector position PR so that the number mR of the consecutive non- trivial partial areas can be noted therein. This reduces the data amount required for the information area.
[0029] Further, exclusively the absolute bit vector position P0, the number mo of the quasi-trivial partial areas originally included in an 0 block and an identification of the 0 block, e.g. in a binary form, may be noted in an 0 block. In this case, it can be provided that in each 0 block a first and second information areas each having n bits are generated in which the absolute bit vector position P0 and the number mo of the quasi- trivial partial areas originally included in an 0 block are noted, e.g. in a binary form. The absolute bit vector position P0 may be noted in the first information area and the number mo may be noted in the second information area (which of course could also be done vice-versa) . The identification may further be noted in the last x bits of the first information area, with x = log2 n. For example, the identification or labelling can be based on the last x bits having the value 0.
[0030] In this manner, based on the information included in the O block concerning the absolute bit vector position P0 and the number mo, an O block requiring a small amount of storage capacity can be generated.
[0031] One embodiment of the invention provides that for the number mR the relation mR ≤ n - 1 is valid. It can be further provided that for the number mo the relation mo ≤ 2n is valid. Each bit vector can have a maximum length of 2n + n - 1.
[0032] The data records compressed or reduced as described above may be processed without having to be brought back into their original decompressed state by selecting at least two bit vectors and combining the at least two bit vectors to one solution vector, wherein the combination of the bit vectors is carried out by the combination of 0 blocks and/or R blocks of the bit vectors.
[0033] Due to the structure of the compressed data records, the invention allows for several combinations of 0 blocks and/or R blocks of the bit vectors being carried out in parallel.
[0034] Processing of data records may be performed by a computer unit including several SI D processors (SIMD - single instruction multiple data) , wherein the parallel combination is distributed to the several SIMD processors . [0035] The invention also covers a computer program with program coding means which are suitable for carrying out a method according to the invention as described above when the computer program is run on a computer. The computer program itself as well as stored on a computer- readable medium is claimed.
[0036] Further features and embodiments of the invention will become apparent from the description and the accompanying drawings.
[0037] It will be understood that the features men- tioned above and those described hereinafter can be used not only in the combination specified but also in other combinations or on their own, without departing from the scope of the present invention.
[0038] The invention is schematically illustrated in the drawings by means of an embodiment by way of example and is hereinafter explained in detail with reference to the drawings. It is understood that the description is in no way limiting on the scope of the present invention and is merely an illustration of a preferred embodiment of the invention.
Brief Description of the Drawings
[0039] Figure 1 is a schematic block diagram depiction illustrating the invention.
[0040] Figure 2 is a schematic view of a computer database system upon which the invention can be implemented . [0041] Figure 3 is a more detailed block diagram of the computer system of Figure 2.
[0042] Figure 4 is an illustration of a parallel processing on SIMD processors according to the invention.
Detailed Description
[0043] The method according to the present invention for processing data records, in particular in database systems, can be used in the context of database systems for call data records (CDR) in accounting systems in the telecommunication sector, for example.
[0044] Data collections of telecommunication services are stored, for example, in database systems. The sets of data may comprise, for example, the telephone number, the duration of the call, the time of the call, etc. Evaluation of these data can be done by means of the database systems.
[0045] However, the data sets or records are frequently generated in such manner that only one piece of the information, such as time or duration, is valid. Even if calls are made from one connection in rapid succession to the same phone number, these are regarded as two independent calls, and two different data sets are generated. This leads to a very large number of data. In Germany, for example, the number of such data is several billions.
[0046] The collection of these data are converted into data records having a binary structure. This can occur in the form of a matrix (bitmap) , for example, where- in the rows denote the respective calls and the columns denote the corresponding conditions such as time, duration etc., for example.
[0047] In such a matrix, the binary value 1 means that the corresponding information is true, and the binary value 0 means that this information is not true. Due to the nature of the data records as described above, the binary structure in the form of a matrix as shown in Figure 1 comprises large areas including bits having the value 0, and there are also areas including a plurality of consecutive bits having the value 1.
[0048] The binary structure can now be divided into several bit vectors, wherein in the depiction of Figure 1 each column represents one bit vector.
[0049] The bit vectors can now be reduced in size without losing any information. To this end, the bit vectors are divided into consecutive partial areas having the same size. Each partial area consists of n bits. The corresponding partial areas are schematically illustrated in Figure 1. For purposes of better depiction, only the first partial area of a bit vector, the third partial area of a bit vector and the fifth partial area of a bit vector are shown in Figure 1. In the illustrated embodiment, the partial areas consist of 32 bits each as in many computers today the basic storage unit consists of 32 bits. More recent systems have base storage units comprising 64 bits so that it is of course also possible to provide partial areas having 64 bits. [0050] The partial areas are classified. The partial areas which respectively include bits having the values 0 and 1 in an arbitrary sequence are - in the context of this application - so-called non-trivial partial areas. The partial areas exclusively including bits having the value 1 are so-called quasi-trivial partial areas. The partial areas exclusively including bits having the value 0 are so-called trivial partial areas.
[0051] Several consecutive non-trivial partial areas are combined into a so-called R block.
[0052] In the R block, an information area having the length of n bits is generated at the beginning of the R block. In the illustrated embodiment, the information area of the R block has the length of 32 bits. In this information area, the absolute position of the first bit of the consecutive partial areas of the original bit vector combined into this R block is noted. In the Figure, the absolute bit vector positions are designated as offset .
[0053] As in the embodiment shown in Figure 1, the partial areas each have a length of 32 bits, the last five bits of the information area, namely the bits 28 to 32, are always invariant when the absolute bit vector position PR is noted so that they are not required for noting the absolute bit vector position PR. Therefore, the bits 28 to 32 can be used for noting the number mR of the consecutive non-trivial partial areas in the R block.
[0054] In the depiction of Figure 1, bit number 27 of the information area has the value 0 which means that the bit vector position PR is also 0. Bit 32 has the value 1 which indicates that a non-trivial partial area is included in this block. At most 31 non-trivial partial areas can be included in one R block. If there should be more than 31 consecutive non-trivial partial areas in one bit vector, they are divided into two or more different R blocks, respectively.
[0055] In the case of the bit vector having a length of 64 bits, the last 6 bits of the information area are free so that the absolute bit vector is noted starting at bit number 58. Accordingly, 63 non-trivial partial areas could be included in one R block.
[0056] For the number mR of the quantity of non- trivial partial areas included in one given R block, the relation mR ≤ n - 1 is therefore valid.
[0057] A given R block can include only one non- trivial partial area, for example, as illustrated in the example of the Figure.
[0058] The quasi-trivial partial areas only including bits having the value 1 are also combined into blocks, designated as so-called 0 blocks. In doing so, these blocks are only "notionally" combined. This means that an 0 block in the context of this application may merely include a first information area and a second information area.
[0059] The first information area includes an identification that this block is an O block. Further, the absolute bit vector position of the first bit of the first partial area notionally included in the 0 block is noted. In the example of Figure 1, the abso- lute bit vector position P0 is 64 so that bit number 26 of the first information area has the value 1. The identification is carried out such that in the first information area the bits number 28 to 32 have the value 0. In this way, the 0 block can be distinguished from the R block.
[0060] In the second information area, the number mo of the quantity of quasi-trivial partial areas notionally included in the 0 block is noted, e.g. in binary form. In the illustrated embodiment, at most 232 quasi-trivial partial areas can be notionally included in one 0 block.
[0061] In a system in which partial areas consist of 64 bits, the identification is noted in the bits number 59 to 64 of the first information area by setting these bits to 0. The number is again noted in the second information area, wherein in this case the number of the notionally consecutive quasi-trivial partial areas in one O block is theoretically at most mo = 264.
[0062] The quasi-trivial partial areas are then removed.
[0063] Furthermore, the trivial partial areas in which the bit values are always 0 are also removed.
[0064] In doing so, the amount of data to be stored can be largely reduced by the described reduction or "compression" of the bit vectors. This is significant particularly in connection with data records of the nature as described above, where large amounts of data including bits having the value 0 or including bits having the value 1 are arranged consecutively. [0065] In the further processing of the compressed data records, e.g. in connection with a data query, at least two bit vectors are selected and combined.
[0066] The selection of the bit vectors depends on the particular request. In the combination of the bit vectors, 0 blocks and/or R blocks of the bit vectors are combined.
[0067] To this end, it is first determined whether the two blocks to be combined have an intersection area. This intersection area is then simply combined by the corresponding operation. This can be, for example, an AND or an OR operation. The result is written into a solution vector.
[0068] The solution can be written into the solution vector in a compressed form. Of course, the solution vector can also be output in the uncompressed state. In the latter case, the empty spaces remaining in the solution vector after the combination are then filled with the values 0.
[0069] The calls satisfying the respective requests (such as a query for calls lasting longer than a given period such as one minute or one hour) can now be retrieved from the solution vector, as for these calls the bit vector is 1 at the corresponding position of the solution vector.
[0070] When combining the bit vectors, the combination of 0 blocks and/or R blocks of the bit vectors can be performed in parallel as in the blocks the absolute bit vector position of the partial areas included in the blocks is known. In particular, it is not required for the combination that the bit vectors are returned (brought back) into their original state, i.e. it is not required that they are decompressed.
[0071] Therefore, an enormous amount of time can be saved in the process of combinion. Furthermore, in the use of computer systems for processing the data records, the storage demand for the combination is held very low.
[0072] Figure 2 illustrates in very schematical manner a computer system 10 upon which an embodiment of the present invention may be implemented. The computer system 10 comprises a computer 12 with a bus 22 for communicating data, a processing unit 14 and a database storage medium (database) 20 for storing sets of data. The computer system 10 further comprises at least one input/output device 18 which in the depiction of Figure 1 is a client with keyboard 18.2, pointing device 18.3 for cursor control and a monitor 18.1. The at least one input/output device 18 can be connected with the com- puter within an intranet network, for example.
[0073] Figure 3 illustrates the computer system 10 of Figure 1 in more detail. The computer system 10 includes a bus 22 or other communication mechanism for communicating information, and a processor 14 coupled with the bus 22 for processing the information. The computer system 10 also includes a main memory 24, such as a random access memory (RAM) or other dynamic storage device (e.g., dynamic RAM (DRAM), static RAM (SRAM) , and synchronous DRAM (SDRAM) ) , coupled to the bus 22 for storing information and instructions to be executed by processor 14.
[0074] In addition, the main memory 24 may be used for storing temporary variables or other intermediate information during the execution of instructions by the processor 14. The computer system 10 further includes a read only memory (ROM) 25 or other static storage device (e.g., programmable ROM (PROM), erasable PROM (EPROM) , and electrically erasable PROM (EEPROM) ) coupled to the bus 22 for storing static information and instructions for the processor 14.
[0075] The computer system 10 also includes a disk controller 26 coupled to the bus 22 to control one or more storage devices for storing information and instructions, such as a magnetic hard disk 27, and a re- movable media drive 28 (e.g., floppy disk drive, readonly compact disc drive, read/write compact disc drive, compact disc jukebox, tape drive, and removable magneto-optical drive) . The storage devices may be added to the computer system 10 using an appropriate device interface (e.g., small computer system interface
(SCSI), integrated device electronics (IDE), enhanced- IDE (E-IDE) , direct memory access (DMA) , or ultra- DMA) ) .
[0076] The computer system 10 may also include a display controller 29 coupled to the bus 22 to control a display or monitor 18.1, such as a cathode ray tube (CRT) or liquid crystal display (LCD) or the like, for displaying information to a computer user. The computer system includes input devices, such as keyboard 18.2 and pointing device 18.3, for interacting with a computer user and providing information to the processor 14. The pointing device 18.3, for example, may be a mouse, a trackball, or a pointing stick for communicating direction information and command selections to the processor 14 and for controlling cursor movement on the display 18.1. In addition, a printer may provide printed listings of data stored and/or generated by the computer system 10.
[0077] The computer system 10 performs a portion or all of the processing steps of the invention in response to the processor 14 executing one or more sequences of one or more instructions contained in a memory, such as the main memory 24. Such instructions may be read into the main memory 24 from another computer readable medium, such as a hard disk 27 or a removable media drive 28. One or more processors in a multiprocessing arrangement may also be employed to execute the sequences of instructions contained in main memory 24. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions. Thus, embodiments are not limited to any specific combination of hardware circuitry and software .
[0078] Telephone call data from a telephone 40 are collected through a data link connection (which might be wireless) in the computer system. The collected data becomes part of the data collection built up in the data storage medium 20 according to the invention . [0079] As stated above, the computer system 10 includes at least one computer readable medium or memory for holding instructions programmed according to the teachings of the invention and for containing data structures, tables, records, or other data described herein. Examples of computer readable media are compact discs, hard disks, floppy disks, tape, magneto- optical disks, PROMs (EPROM, EEPROM, flash EPROM) , DRAM, SRAM, SDRAM, or any other magnetic medium, compact discs (e.g., CD-ROM), or any other optical medium, punch cards, paper tape, or other physical medium with patterns of holes, a carrier wave (described below) , or any other medium from which a computer can read.
[0080] Stored on any one or on a combination of computer readable media, the present invention includes software for controlling the computer system 10, for driving a device or devices for implementing the invention, and for enabling the computer system 10 to interact with a human user, such as an operator. Such software may include, but is not limited to, device driv- ers, operating systems, development tools, and applications software. Such computer readable media further includes the computer program product of the present invention for performing all or a portion (if processing is distributed) of the processing performed in im- plementing the invention.
[0081] The computer code devices of the present invention may be any interpretable or executable code mechanism, including but not limited to scripts, interpretable programs, dynamic link libraries (DLLs) , Java classes, and complete executable programs. Moreover, parts of the processing of the present invention may be distributed for better performance, reliability, and/or cost .
[0082] The term "computer readable medium" as used herein refers to any medium that participates in providing instructions to the processor 14 for execution. A computer readable medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media includes, for example, optical, magnetic disks, and magneto-optical disks, such as the hard disk 27 or the removable media drive 28. Volatile media includes dynamic memory, such as the main memory 24. Transmission media includes coaxial cables, copper wire and fiber optics, including the wires that make up the bus 22. Transmission media also may also take the form of acoustic or light waves, such as those generated during radio wave and infrared data communications.
[0083] The computer system 10 also includes a communication interface 16 coupled to the bus 22. The communication interface 16 provides a two-way data communication coupling to a network link 30 that is connected to, for example, a local area network (LAN) 32, or to another communications network 33 such as the Internet. For example, the communication interface 16 may be a network interface card to attach to any packet switched LAN. As another example, the communication interface 16 may be an asymmetrical digital subscriber line (ADSL) card, an integrated services digital network (ISDN) card or a modem to provide a data communication connection to a corresponding type of communica- tions line. Wireless links may also be implemented. In any such implementation, the communication interface 16 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
[0084] The network link 30 typically provides data communication through one or more networks to other data devices. For example, the network link 30 may provide a connection to another computer through a local network 32 (e.g., a LAN) or through equipment operated by a service provider, which provides communication services through a communications network 33. The local network 30 and the communications network 33 use, for example, electrical, electromagnetic, or optical signals that carry digital data streams, and the associated physical layer (e.g., CAT 5 cable, coaxial cable, optical fiber, etc) . Moreover, the network link 30 may provide a connection through a LAN 32 to a mobile device 34 such as a personal digital assistant (PDA) laptop computer, or cellular telephone.
[0085] According to the invention, it is provided that the combination operations can be executed in parallel on several SIMD (single instruction multiple data) processors which is illustrated in the depiction of Figure 4.
[0086] Figure 4 shows on the left side (for a viewer of the depiction) two bit vectors BV1 and BV2. Each of these bit vectors BV1 and BV2 comprise a number of R blocks and 0 blocks, each of these blocks again consisting of the absolute bit vector position PR or P0, respectively, and according numbers mR and mo, respectively. The R blocks also contain the data bit sequences (right hand column in the depiction of the bit vectors in Figure 4). The 0 blocks only contain the absolute bit vector positions and the numbers reflecting the amount/quantity of consecutive quasi-trivial partial areas. According to the invention, the quasi- trivial partial areas themselves were deleted.
[0087] Processing the bit vectors is done by combining them into a solution or result vector SBV. This may be done by a plurality of processors in parallel, as shown in exemplary manner in Figure 4. Figure 4 illustrates an example with three processors performing an AND operation with the two depicted bite vectors BVl and BV2; however any suitable number of available pro- cessors can be used.
[0088] In the embodiment illustrated in Figure 4, SIMD processors available on graphics cards are used for processing the bit vectors. In this case, it can be provided, for example, that several graphics cards are included in one computer unit.
[0089] SIMD processors are sufficient for the required combination tasks. In addition, they are available in large numbers in normal computer systems. For example, a graphics chip of a powerful graphics card comprises 256 SIMD processors. As a consequence, a large number of combination operations can simultaneously be executed so that the data processing can be carried out very rapidly. [0090] The combination of the bit vectors is carried out by combining 0 blocks and/or R blocks of the bit vectors.
[0091] Of course, the method according to the invention can also be applied in data records different from telecommunications data. The method according to the invention is particularly powerful in the case of data records of the type having a binary structure in which a large number of bit values 0 or of bit values 1 are arranged in consecutive order.
[0092] In the following, various aspects of the invention are recited in a numbered list.
1. A method for processing data collections, in particular in database systems, comprising the follow- ing steps:
generating data collections;
arranging the data collections with a binary structure;
dividing the data records into several bit vec- tors;
reducing the size of each bit vector, comprising the following sub-steps:
dividing the bit vector into consecutive partial areas of equal size, each partial area consisting of n bits; classifying the partial areas as trivial partial areas, quasi-trivial partial areas and non-trivial partial areas; combining one non-trivial or several consecutive non-trivial partial areas to a respective R block, respectively, and noting the absolute bit vector position PR of the first bit of the first non-trivial partial area included in each R block and the number mR of the consecutive non-trivial partial areas comprised in one R block;
removing the trivial partial areas; combining one quasi-trivial or several consecutive quasi-trivial partial areas to a 0 block, respectively, noting the absolute bit vector position P0 of the first bit of the first quasi-trivial partial area included in each 0 block and the number m0 of the consecutive quasi-trivial partial areas comprised in one 0 block, and removing the quasi- trivial partial areas;
selecting at least two bit vectors and combining the at least two bit vectors to one solution vector, wherein the combination of the bit vectors is carried out by the combination of 0 blocks and/or R blocks of the bit vectors.
2. The method according to aspect 1, wherein in the combination of the at least two bit vectors several combinions of 0 blocks and/or R blocks of the bit vectors are carried out in parallel.
3. The method according to aspect 1 or 2, wherein the absolute bit vector position PR and the number mR of the consecutive non-trivial partial areas in one R block are noted at the origin of each R block having non-trivial partial areas, preferably in a binary form.
4. The method according to one of aspects 1 to 3, wherein exclusively the absolute bit vector position P0 , the number mo of the quasi-trivial partial areas originally included in one 0 block and an identification of the 0 block are noted in an 0 block, preferably in a binary form.
5. The method according to one of aspects 1 to 4, wherein for the number mR the relation mR ≤ n - 1 is valid .
6. The method according to one of aspects 1 to 5, wherein for the number IUQ the relation mo - 2n is valid.
7. The method according to any one of aspects 1 to 6, wherein each bit vector has a maximum length of 2n + n - 1. 8. The method according to any one of aspects 3 to 7, wherein in each R block an information area having n bits is generated, in which information area the absolute bit vector position PR and the number mR of the consecutive non-trivial partial areas in one R block are noted in binary form, wherein the number mR is noted in the last x bits of the information area, and x = log2 n.
9. The method according to any one of aspects 4 to 7, wherein in each 0 block a first and a second information area each having n bits are generated in which the absolute bit vector position P0 and the number m0 of the quasi-trivial partial areas originally included in an 0 block are noted in a binary form, wherein the absolute bit vector position P0 is noted in the first information area and the number mo is noted in the second information area, and wherein the identification is noted in the last x bits of the first information area, and x = log2 n.
10. The method according to any one of aspects 2 to 10, wherein the parallel combination is carried out on a computer unit having several SIMD processors.

Claims

Claims
1. A method for compressing data records in a database system, the method comprising the following steps:
providing data records with a binary structure;
dividing the data records into several bit vectors ;
reducing the size of each bit vector by
dividing the bit vector into consecutive partial areas of equal size, each partial area consisting of n bits;
classifying the partial areas as trivial partial areas, quasi-trivial partial areas and non-trivial partial areas;
combining one non-trivial or several consecutive non-trivial partial areas into one respective R block;
removing the trivial partial areas;
- combining one quasi-trivial or several consecutive quasi-trivial partial areas into one respective O block.
2. The method of claim 1, wherein the step of combining one non-trivial or several consecutive non-trivial partial areas to one respective R block further comprises the steps of noting the absolute bit vector position PR of the first bit of the first non-trivial partial area included in each R block and the number mR of the consecutive non-trivial partial areas in one R block.
3. The method of any one of claims 1 or 2, wherein the step of combining one quasi-trivial or several consecutive quasi-trivial partial areas to one respective 0 block further comprises the steps noting the absolute bit vector position P0 of the first bit of the first quasi- trivial partial area included in each 0 block and the number mo of the consecutive quasi-trivial partial areas in one O block.
4. The method of claim 3, further comprising the step of removing the quasi-trivial partial areas.
5. The method of any one of claims 2 to 4, wherein the absolute bit vector position PR and the number mR of the consecutive non-trivial partial areas in one R block are noted at the beginning of each R block.
6. The method of any one of claims 3 to 5, wherein in an 0 block exclusively the absolute bit vector position P0, the number mo of the quasi-trivial partial areas originally included in one 0 block and an identification of the O block are noted.
7. The method of any one of claims 2 to 6, wherein for the number mR the relation mR ≤ n - 1 is valid.
8. The method of any one of Claims 3 to 7, wherein for the number mo the relation mo ≤ 2n is valid.
9. The method of any one of claims 1 to 8, characterized in that each bit vector has a maximum length of 2n + n - 1.
10. The method of any one of claims 5 to 9, further comprising the step of generating, in each R block, an information area having n bits, in which information area the absolute bit vector position PR and the number mR of the consecutive non-trivial partial areas in one R block are noted.
11. The method of claim 10, wherein the number mR is noted in the last x bits of the information area, with x = log2 n.
12. The method of any one of Claims 6 to 11, further comprising the step of generating, in each 0 block, first and second information areas each having n bits, in which first and second information areas the absolute bit vector position P0 and the number m0 of the quasi-trivial partial areas originally included in an 0 block are noted .
13. The method of claim 12, wherein the absolute bit vector position P0 is noted in the first information area and the number m0 is noted in the second information area .
14. The method of claim 12 or 13, wherein the identification is noted in the last x bits of the first information area, with x = log2 n.
15. A data storage medium for storing data collections, comprising a data collection stored thereon, the data collection consisting of a set of data records compressed according to the method of any one of claims 1 to 14.
16. A data storage medium for storing data collections, comprising a data collection stored thereon, the data collection consisting of a set of data records with each of the data records being reduced to at least one R block and/or at least one 0 block, the R block comprising one non-trivial or several consecutive non-trivial partial areas of the respective data record, and the O block comprising one quasi-trivial or several consecutive quasi-trivial partial areas of the respective data record.
17. The data storage medium of claim 16, wherein an R block further comprises the absolute bit vector position PR of the first bit of the first non-trivial partial area included in the respective R block and the number mR of the consecutive non-trivial partial areas in the R block.
18. The data storage medium of claim 16 or 17, wherein an 0 block comprises the absolute bit vector position P0 of the first bit of the first quasi-trivial partial area included in the respective O block and the number mo of the consecutive quasi-trivial partial areas in the O block.
19. The data storage medium of claim 18, wherein the 0 block comprises exclusively the absolute bit vector position P0, the number mo of the quasi-trivial partial areas originally included in the 0 block and an identification of the 0 block.
20. A computer program comprising program code means for performing a method of any one of claims 1 to 14 when said program is executed on a database computer system.
21. A computer program product comprising a computer readable medium on which a computer program of claim 20 is stored.
22. A method to process a data collection consisting of a set of data records compressed according to the method of any one of claims 1 to 14, the method comprising the step of selecting at least two bit vectors and combining the at least two bit vectors to one solution vector, wherein the combination of the bit vectors is carried out by the combination of 0 blocks and/or R blocks of the bit vectors.
23. The method of claim 22, wherein in the combination of the at least two bit vectors, several combinations of 0 blocks and/or R blocks of the bit vectors are carried out in parallel.
24. The method of claim 23, wherein the parallel combination is carried out on a computer unit having several SIMD processors.
25. A computer database system comprising a data storage medium (20) of any one of claims 15 to 19.
26. A computer database system comprising a computer (12) with a bus (22) for communicating data and a processing unit (14), as well as a data storage medium (20) for storing sets of data (data records), wherein the computer (12) is set up in such a manner to compress data records in the database system, according to a method of any one of claims 1 to 14 and to store the compressed data records in the data storage medium (20) .
27. A computer database system comprising a computer (12) with a bus (22) for communicating data and a processing unit (14), as well as a data storage medium (20) for storing sets of data (data records) , wherein the computer (12) is set up in such a manner to process com- pressed data records in the database system, according to a method of any one of claims 22 to 24.
28. A computer program comprising program code means for performing a method of any one of claims 22 to 24 when said program is executed on a database computer sys- tem.
29. A computer program product comprising a computer readable medium on which a computer program of claim 28 is stored.
30. A call data record system comprising a database computer system according to any one of claims 26 or 27.
PCT/EP2011/000519 2010-02-04 2011-02-04 Method and system for compressing data records and for processing compressed data records WO2011095345A1 (en)

Priority Applications (6)

Application Number Priority Date Filing Date Title
ES11710114T ES2408701T1 (en) 2010-02-04 2011-02-04 Procedure and system for compressing data records and for processing compressed data records
US13/576,082 US9805045B2 (en) 2010-02-04 2011-02-04 Method and system for compressing data records and for processing compressed data records
EP11710114.7A EP2531939B1 (en) 2010-02-04 2011-02-04 Method and system for compressing data records and for processing compressed data records
JP2012551553A JP5709903B2 (en) 2010-02-04 2011-02-04 METHOD, SYSTEM, COMPUTER PROGRAM, RECORDING MEDIUM, DATA STORAGE MEDIUM STORING DATA COLLECTION, AND CALL DATA RECORDING SYSTEM FOR COMPRESSING DATA RECORD AND PROCESSING COMPRESSED DATA RECORD
CN201180015734.1A CN102906740B (en) 2010-02-04 2011-02-04 The method and system of packed data record and process packed data record
EP13005074.3A EP2690565B1 (en) 2010-02-04 2011-02-04 Method and system for compressing data records and for processing compressed data records

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102010006931A DE102010006931A1 (en) 2010-02-04 2010-02-04 Method for processing data collections, in particular in database systems
DE102010006931.0 2010-02-04

Publications (1)

Publication Number Publication Date
WO2011095345A1 true WO2011095345A1 (en) 2011-08-11

Family

ID=43952834

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2011/000519 WO2011095345A1 (en) 2010-02-04 2011-02-04 Method and system for compressing data records and for processing compressed data records

Country Status (7)

Country Link
US (1) US9805045B2 (en)
EP (2) EP2690565B1 (en)
JP (1) JP5709903B2 (en)
CN (1) CN102906740B (en)
DE (2) DE102010006931A1 (en)
ES (1) ES2408701T1 (en)
WO (1) WO2011095345A1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2720376A1 (en) * 2012-10-09 2014-04-16 Alcatel Lucent Secure and lossless data compression
US9094537B2 (en) * 2013-03-22 2015-07-28 Jdsu Uk Limited Method and apparatus for managing call data
KR101656750B1 (en) * 2016-02-26 2016-09-23 주식회사 아미크 Method and apparatus for archiving and searching database with index information
US10725911B2 (en) * 2018-12-10 2020-07-28 Sap Se Non-Uniform pagination of columnar data

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5907297A (en) * 1997-02-28 1999-05-25 Oracle Corporation Bitmap index compression
EP0633537B1 (en) 1993-06-30 1999-12-08 Microsoft Corporation Method and system for searching compressed data

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04340866A (en) * 1991-05-16 1992-11-27 Mutoh Ind Ltd Bit map run-length conversion device
JP2790594B2 (en) * 1993-05-28 1998-08-27 株式会社日立製作所 How to compress and decompress database records
JP3218226B2 (en) * 1996-03-19 2001-10-15 三菱電機株式会社 Encoding device and decoding device, their methods and image processing device
JP3860910B2 (en) * 1998-04-30 2006-12-20 株式会社アドバンテスト Data compression apparatus and data compression method
JP3368883B2 (en) * 2000-02-04 2003-01-20 インターナショナル・ビジネス・マシーンズ・コーポレーション Data compression device, database system, data communication system, data compression method, storage medium, and program transmission device
KR100390672B1 (en) 2000-12-01 2003-07-07 (주)아이디스 Image compression device and method
US7293150B2 (en) * 2002-06-28 2007-11-06 Microsoft Corporation Method and system for creating and restoring an image file
US6831575B2 (en) * 2002-11-04 2004-12-14 The Regents Of The University Of California Word aligned bitmap compression method, data structure, and apparatus
US7961960B2 (en) * 2006-08-24 2011-06-14 Dell Products L.P. Methods and apparatus for reducing storage size
WO2008118789A2 (en) * 2007-03-23 2008-10-02 D. E. Shaw Research, Llc Computation of multiple body interactions
US7769729B2 (en) * 2007-05-21 2010-08-03 Sap Ag Block compression of tables with repeated values
CA2770348A1 (en) * 2009-08-07 2011-02-10 Algorhyme A/S Compression of bitmaps and values

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0633537B1 (en) 1993-06-30 1999-12-08 Microsoft Corporation Method and system for searching compressed data
US5907297A (en) * 1997-02-28 1999-05-25 Oracle Corporation Bitmap index compression

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
FUSCO F ET AL: "NET-FLi: On-the-fly Compression, Archiving and Indexing of Streaming Network Traffic", PROC. OF THE 36TH INTERNATIONAL CONFERENCE ON VERY LARGE DATABASES (VLDB 2010), SINGAPORE, 13 September 2010 (2010-09-13) - 18 September 2010 (2010-09-18), pages 1382 - 1393, XP002639821, Retrieved from the Internet <URL:http://www.comp.nus.edu.sg/~vldb2010/proceedings/files/papers/I01.pdf> [retrieved on 20110531] *
WU K ET AL: "Optimizing bitmap indices with efficient compression", ACM TRANSACTIONS ON DATABASE SYSTEMS, vol. 31, no. 1, 1 March 2006 (2006-03-01), ACM, NEW YORK, NY, US, pages 1 - 38, XP002485263, ISSN: 0362-5915, DOI: DOI:10.1145/1132863.1132864 *

Also Published As

Publication number Publication date
EP2531939A1 (en) 2012-12-12
DE11710114T1 (en) 2013-07-25
US9805045B2 (en) 2017-10-31
EP2690565A1 (en) 2014-01-29
JP5709903B2 (en) 2015-04-30
EP2690565B1 (en) 2020-06-17
DE102010006931A1 (en) 2011-08-04
US20130204850A1 (en) 2013-08-08
JP2013519141A (en) 2013-05-23
CN102906740A (en) 2013-01-30
EP2531939B1 (en) 2014-04-09
ES2408701T1 (en) 2013-06-21
CN102906740B (en) 2015-10-21

Similar Documents

Publication Publication Date Title
AU2005200166B2 (en) Searchable archive
US8392382B2 (en) On-line transaction processing (OLTP) compression and re-compression of database data
JP2001504971A (en) Memory management to compress data blocks
US5870756A (en) Interchangeable storage medium containing program for processing data files thereupon to match a data file format to a computer system
US6804761B1 (en) Memory allocation system and method
US6717534B2 (en) Data encoding device and data decoding device
CN1139030C (en) Computer system and method which sort array elements to optimize array modifications
US20180300250A1 (en) Method and apparatus for storing data
EP2531939B1 (en) Method and system for compressing data records and for processing compressed data records
CN111414362A (en) Data reading method, device, equipment and storage medium
CN100535889C (en) File processing method, data processing device and storing medium
US6510499B1 (en) Method, apparatus, and article of manufacture for providing access to data stored in compressed files
US6654867B2 (en) Method and system to pre-fetch compressed memory blocks using pointers
US6697813B1 (en) Data structures and methods for imaging computer readable media
JP2003337822A (en) Compression retrieval archive processing method, compression retrieval archive processing program and recording medium with its program recorded
CN112506651B (en) Method and equipment for data operation in large-data-volume environment
JP4451722B2 (en) Database server and database system
CN111444155A (en) Log text processing method and device, electronic equipment and computer storage medium
JPS63305439A (en) Compressive storing method for similar data file and its restoring method
JP3559571B2 (en) Data processing device and data processing method
JP3191857B2 (en) Simulation execution device and data compression method thereof
JP3190855B2 (en) Decompression method of compressed data
CN112988685A (en) Data compression and decompression method and device
CN115080605A (en) Data processing method, device, equipment and storage medium
KR20010065763A (en) Apparatus and Method for Compressing and Releasing a Transmission Information using Floating Multi-Channel and Variable Stream on Internet

Legal Events

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

Ref document number: 201180015734.1

Country of ref document: CN

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

Ref document number: 11710114

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2011710114

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2012551553

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 13576082

Country of ref document: US