Techniques for more efficient usage of memory-to-CPU bandwidth
    42.
    发明授权
    Techniques for more efficient usage of memory-to-CPU bandwidth 有权
    更有效地利用内存到CPU带宽的技术

    公开(公告)号:US08572131B2

    公开(公告)日:2013-10-29

    申请号:US13708054

    申请日:2012-12-07

    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能够对列向量值执行向量处理操作的技术。

    TECHNIQUES FOR MORE EFFICIENT USAGE OF MEMORY-TO-CPU BANDWIDTH
    43.
    发明申请
    TECHNIQUES FOR MORE EFFICIENT USAGE OF MEMORY-TO-CPU BANDWIDTH 有权
    更高效地使用存储器到CPU带宽的技术

    公开(公告)号:US20130151567A1

    公开(公告)日:2013-06-13

    申请号:US13708054

    申请日:2012-12-07

    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能够对列向量值执行向量处理操作的技术。

    Materializing internal computations in-memory to improve query performance

    公开(公告)号:US11238039B2

    公开(公告)日:2022-02-01

    申请号:US16365271

    申请日:2019-03-26

    Abstract: Techniques are described for materializing computations in memory. In an embodiment, responsive to a database server instance receiving a query, the database server instance identifies a set of computations for evaluation during execution of the query. Responsive to identifying the set of computations, the database server instance evaluates at least one computation in the set of computations to obtain a first set of computation results for a first computation in the set of computations. After evaluating the at least one computation, the database server instance stores, within an in-memory unit, the first set of computation results. The database server also stores mapping data that maps a set of metadata values associated with the first computation to the first set of computation results.

    Efficient evaluation of query expressions including grouping clauses

    公开(公告)号:US10853371B2

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

    申请号:US15702659

    申请日:2017-09-12

    Abstract: Techniques related to efficient evaluation of query expressions including grouping clauses are disclosed. Computing device(s) perform a method for aggregating a measure column vector (MCV) according to a plurality of grouping column vectors (GCVs). The MCV and each of the plurality of GCVs may be encoded. The method includes determining a plurality of actual grouping keys (AGKs) and generating a dense identifier (DI) mapping that maps the plurality of AGKs to a plurality of DIs. Each AGK occurs in the plurality of GCVs. Each DI corresponds to a respective workspace. Aggregating the MCV involves aggregating, in each workspace, one or more codes of the MCV that correspond to an AGK mapped to a DI corresponding to the workspace. For a first row of the MCV and the plurality of GCVs, aggregating the one or more codes includes generating a particular grouping key based on codes in the plurality of GCVs.

    In-memory column-level multi-versioned global dictionary for in-memory databases

    公开(公告)号:US10726016B2

    公开(公告)日:2020-07-28

    申请号:US15294460

    申请日:2016-10-14

    Abstract: Techniques are described herein for sharing a dictionary across multiple in-memory compression units (IMCUs). After a dictionary is used to encode a first column vector in a first IMCU, the same dictionary is used to encode a second column vector in a second IMCU. The entries in the dictionary are in sort order to facilitate binary searching when performing value-to-code look-ups. If, during the encoding of the second column vector, values are encountered for which the dictionary does not already have codes, then a “sort-order-boundary” is established after the last entry in the dictionary, and entries for the newly encountered values are added to the dictionary, after the sort-order-boundary. To facilitate value-to-code look-ups, the new entries are also sorted relative to each other, creating a second “sort order set”. A new version of the dictionary may be created when the number of sort order sets in the first version of the dictionary reaches a configurable threshold.

    STORAGE FORMATS FOR IN-MEMORY CACHES
    49.
    发明申请

    公开(公告)号:US20190102391A1

    公开(公告)日:2019-04-04

    申请号:US15943335

    申请日:2018-04-02

    Abstract: Techniques related to cache storage formats are disclosed. In some embodiments, a set of values is stored in a cache as a set of first representations and a set of second representations. For example, the set of first representations may be a set of hardware-level representations, and the set of second representations may be a set of non-hardware-level representations. Responsive to receiving a query to be executed over the set of values, a determination is made as to whether or not it would be more efficient to execute the query over the set of first representations than to execute the query over the set of second representations. If the determination indicates that it would be more efficient to execute the query over the set of first representations than to execute the query over the set of second representations, the query is executed over the set of first representations.

    ON-DEMAND CACHE MANAGEMENT OF DERIVED CACHE
    50.
    发明申请

    公开(公告)号:US20190095346A1

    公开(公告)日:2019-03-28

    申请号:US16144926

    申请日:2018-09-27

    Abstract: Techniques related to automatic cache management are disclosed. In some embodiments, one or more non-transitory storage media store instructions which, when executed by one or more computing devices, cause performance of an automatic cache management method when a determination is made to store a first set of data in a cache. The method involves determining whether an amount of available space in the cache is less than a predetermined threshold. When the amount of available space in the cache is less than the predetermined threshold, a determination is made as to whether a second set of data has a lower ranking than the first set of data by at least a predetermined amount. When the second set of data has a lower ranking than the first set of data by at least the predetermined amount, the second set of data is evicted. Thereafter, the first set of data is cached.

Patent Agency Ranking