Hash trie based optimization of database operations

    公开(公告)号:US11556532B2

    公开(公告)日:2023-01-17

    申请号:US16366176

    申请日:2019-03-27

    申请人: SAP SE

    摘要: A method may include inserting, into a hash trie, data records from a database table. The inserting may include traversing the hash trie to identify, for each data record included in the database table, a corresponding node at which to insert the data record. The hash trie may be traversed based on a hash of a key value associated with each data record. The node at which to insert a data record may be identified based on an offset forming a binary representation of the hash of a key value associated with that data record. The offset may include a portion of a plurality of binary digits forming the binary representation. A data record may be inserted at a corresponding node by updating a data structure included at the node. A database operation may be performed based on the hash trie filled with the data records from the database table.

    AGGREGATING DATABASE ENTRIES BY HASHING
    2.
    发明申请
    AGGREGATING DATABASE ENTRIES BY HASHING 审中-公开
    通过洗涤聚合数据库入口

    公开(公告)号:US20160350394A1

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

    申请号:US14726251

    申请日:2015-05-29

    申请人: SAP SE

    IPC分类号: G06F17/30

    摘要: Aggregating input into hashtables using just-in-time compilation of compilable code in response to a database query. Compilable code can be generated that is configured to cause a programmable processor to produce one or more hashmaps based on the input database. The one or more hashmaps can correspond to each individual thread from the input. The compilable code can be configured to cause the one or more processors to insert the hashmaps into a scheduler. Compilable code can be generated that is configured to: aggregate elements from the one or more hashmaps into buckets of elements having the same partition identity; rehash the buckets of elements having the same partition identity to reduce the number of groups within the bucket; facilitate the merger of all non-empty elements from each target-partition into a merged-partition.

    摘要翻译: 使用即时汇编可编译代码来响应数据库查询将输入汇总到散列表中。 可以生成可编译代码,该代码被配置为使可编程处理器基于输入数据库产生一个或多个哈希图。 一个或多个hashmaps可以对应于来自输入的每个单独的线程。 可编译代码可以配置为使一个或多个处理器将hashmaps插入调度程序。 可以生成可编译代码,其被配置为:将元素从一个或多个hashmaps聚合到具有相同分区标识的元素的桶中; 重新分配具有相同分区身份的元素桶以减少桶内的组数; 便于将所有非空元素从每个目标分区合并成合并分区。

    HASH TRIE BASED OPTIMIZATION OF DATABASE OPERATIONS

    公开(公告)号:US20200311075A1

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

    申请号:US16366176

    申请日:2019-03-27

    申请人: SAP SE

    摘要: A method may include inserting, into a hash trie, data records from a database table. The inserting may include traversing the hash trie to identify, for each data record included in the database table, a corresponding node at which to insert the data record. The hash trie may be traversed based on a hash of a key value associated with each data record. The node at which to insert a data record may be identified based on an offset forming a binary representation of the hash of a key value associated with that data record. The offset may include a portion of a plurality of binary digits forming the binary representation. A data record may be inserted at a corresponding node by updating a data structure included at the node. A database operation may be performed based on the hash trie filled with the data records from the database table.

    Accurate test coverage of generated code

    公开(公告)号:US10713150B1

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

    申请号:US16375272

    申请日:2019-04-04

    申请人: SAP SE

    IPC分类号: G06F11/36 G06F8/41 G06F8/30

    摘要: A method for measuring code coverage of runtime generated code is provided that can be used for unit testing. In some implementations, the method may include performing unit testing of one or more lines of code of an application by at least: executing during runtime the one or more lines of code, generating, from the executed one or more lines of code, additional code including generated code including instructions to increment at least one counter in a map, the map mapping one or more frames to the at least one counter, compiling the generated code, incrementing, each time the compiled generated code is executed during runtime, the at least one counter in the map, and providing the at least one counter to enable verification of the unit testing of the generated code. Related methods and articles of manufacture are also described.

    Memory-constrained aggregation using intra-operator pipelining

    公开(公告)号:US10114866B2

    公开(公告)日:2018-10-30

    申请号:US15040501

    申请日:2016-02-10

    申请人: SAP SE

    摘要: Disclosed herein are system, method, and computer program product embodiments for constraining the amount of memory used during data aggregation. An embodiment operates by separating input data into a plurality of partitions. The embodiment then inserts portions of the input data into blocks from a free list at a given level of a pipeline. The embodiment then inserts the blocks into buffers for processing at a subsequent level of the pipeline. The embodiment processes the inserted blocks at the subsequent level of the pipeline and concatenates the intermediate results into a final aggregate result.

    Aggregating database entries by hashing

    公开(公告)号:US10055480B2

    公开(公告)日:2018-08-21

    申请号:US14726251

    申请日:2015-05-29

    申请人: SAP SE

    IPC分类号: G06F17/30

    摘要: Aggregating input into hashtables using just-in-time compilation of compilable code in response to a database query. Compilable code can be generated that is configured to cause a programmable processor to produce one or more hashmaps based on the input database. The one or more hashmaps can correspond to each individual thread from the input. The compilable code can be configured to cause the one or more processors to insert the hashmaps into a scheduler. Compilable code can be generated that is configured to: aggregate elements from the one or more hashmaps into buckets of elements having the same partition identity; rehash the buckets of elements having the same partition identity to reduce the number of groups within the bucket; facilitate the merger of all non-empty elements from each target-partition into a merged-partition.

    Compilation framework for dynamic inlining

    公开(公告)号:US11157491B2

    公开(公告)日:2021-10-26

    申请号:US16164682

    申请日:2018-10-18

    申请人: SAP SE

    IPC分类号: G06F16/242 G06F8/41

    摘要: Disclosed embodiments include generating code from a database query and providing a framework to develop complex data structures and the functions that access those data structures outside of the generated code to access the complex data structures. These data structure functions can be precompiled in order to save compilation time at query runtime, and linked to the generated code in a way that the framework can still inline function calls and apply various optimizations on the linked code.

    Dynamic hash table size estimation during database aggregation processing

    公开(公告)号:US10127281B2

    公开(公告)日:2018-11-13

    申请号:US15016978

    申请日:2016-02-05

    申请人: SAP SE

    摘要: Disclosed herein are system, method, and computer program product embodiments for database aggregation optimization. An embodiment operates by receiving data from a main memory. Within a cache, a first hash table comprising an aggregate hash of a first portion of the data is generated. A second portion of data is partitioned into one or more of partitions. Within the cache, one or more intermediate hash tables are generated. A first hash table is aggregated based on the one or more intermediate hash tables. At least a portion of the data of the final hash table is provided responsive to a query.