Storing compression units in relational tables

    公开(公告)号:US11520743B2

    公开(公告)日:2022-12-06

    申请号:US14079507

    申请日:2013-11-13

    Abstract: A database server stores compressed units in data blocks of a database. A table (or data from a plurality of rows thereof) is first compressed into a “compression unit” using any of a wide variety of compression techniques. The compression unit is then stored in one or more data block rows across one or more data blocks. As a result, a single data block row may comprise compressed data for a plurality of table rows, as encoded within the compression unit. Storage of compression units in data blocks maintains compatibility with existing data block-based databases, thus allowing the use of compression units in preexisting databases without modification to the underlying format of the database. The compression units may, for example, co-exist with uncompressed tables. Various techniques allow a database server to optimize access to data in the compression unit, so that the compression is virtually transparent to the user.

    Efficient hardware instructions for single instruction multiple data processors
    8.
    发明授权
    Efficient hardware instructions for single instruction multiple data processors 有权
    单指令多数据处理器的高效硬件指令

    公开(公告)号:US09342314B2

    公开(公告)日:2016-05-17

    申请号:US14023265

    申请日:2013-09-10

    Abstract: A method and apparatus for efficiently processing data in various formats in a single instruction multiple data (“SIMD”) architecture is presented. Specifically, a method to unpack a fixed-width bit values in a bit stream to a fixed width byte stream in a SIMD architecture is presented. A method to unpack variable-length byte packed values in a byte stream in a SIMD architecture is presented. A method to decompress a run length encoded compressed bit-vector in a SIMD architecture is presented. A method to return the offset of each bit set to one in a bit-vector in a SIMD architecture is presented. A method to fetch bits from a bit-vector at specified offsets relative to a base in a SIMD architecture is presented. A method to compare values stored in two SIMD registers is presented.

    Abstract translation: 提出了一种在单指令多数据(“SIMD”)结构中有效处理各种格式的数据的方法和装置。 具体地说,提出了一种在SIMD架构中将位流中的固定宽度位值解包为固定宽度字节流的方法。 介绍了一种解码SIMD架构中字节流中可变长度字节打包值的方法。 提出了一种在SIMD架构中解压缩运行长度编码的压缩位向量的方法。 提出了一种在SIMD架构中将位设置为1的偏移量返回到位向量中的方法。 提出了一种从SIMD架构中相对于基址指定的偏移量从位向量获取位的方法。 提出了一种比较存储在两个SIMD寄存器中的值的方法。

    Techniques for maintaining column vectors of relational data within volatile memory
    9.
    发明授权
    Techniques for maintaining column vectors of relational data within volatile memory 有权
    维护易失性存储器中关系数据列向量的技术

    公开(公告)号:US09201944B2

    公开(公告)日:2015-12-01

    申请号:US13916284

    申请日:2013-06-12

    CPC classification number: G06F17/30315 G06F9/3887 G06F17/30339 G06F17/30595

    Abstract: Techniques are provided for more efficiently using the bandwidth of the I/O path between a CPU and volatile memory during the performance of database operation. Relational data from a relational table is stored in volatile memory as column vectors, where each column vector contains values for a particular column of the table. A binary-comparable format may be used to represent each value within a column vector, regardless of the data type associated with the column. The column vectors may be compressed and/or encoded while in volatile memory, and decompressed/decoded on-the-fly within the CPU. Alternatively, the CPU may be designed to perform operations directly on the compressed and/or encoded column vector data. In addition, techniques are described that enable the CPU to perform vector processing operations on the column vector values.

    Abstract translation: 在执行数据库操作期间,提供了技术来更有效地使用CPU和易失性存储器之间的I / O路径的带宽。 来自关系表的关系数据作为列向量存储在易失性存储器中,其中每个列向量包含表的特定列的值。 可以使用二进制可比较的格式来表示列向量中的每个值,而不管与列相关联的数据类型如何。 列向量可以在易失性存储器中被压缩和/或编码,并且在CPU内部实时解压缩/解码。 或者,CPU可以被设计为直接对压缩和/或编码的列向量数据执行操作。 另外,描述使CPU能够对列向量值执行向量处理操作的技术。

Patent Agency Ranking