EFFICIENT HASH TABLE BASED PROCESSING OF DATABASE QUERIES

    公开(公告)号:US20240264993A1

    公开(公告)日:2024-08-08

    申请号:US18310455

    申请日:2023-05-01

    Inventor: Adam Szymanski

    CPC classification number: G06F16/2255 G06F16/24542 G06F16/2456

    Abstract: A database system uses a hash table for processing database queries. The system stores keys mapped to data values in the hash table. For processing a set of records using the hash table, the system partially sorts the records to match the order of keys of the hash table. The partial storing of the records results in improving the performance of a cache storing the hash table. The hash table may be a multimap that maps a key to multiple data values. The system stores data values mapped to a key in a vector that stores all data values mapped to the key in contiguous memory. The system stores a pointer to the vector in association with the key in the multimap. The system optimizes the multimap to store the data value instead of the pointer if there is a single data value associated with a key.

    EXECUTING DATABASE QUERIES FOR JOINING TABLES USING CHANNEL BASED FLOW CONTROL

    公开(公告)号:US20240037099A1

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

    申请号:US17886383

    申请日:2022-08-11

    Inventor: Adam Szymanski

    CPC classification number: G06F16/24544 G06F16/24537

    Abstract: A database system generates an execution plan including multiple operators for processing a database query, for example, a join query or a group by query. The database system allocates a set of threads. Threads communicate with other threads via blocking channels. A blocking channel includes a buffer of a fixed capacity. The database system processes the database query by streaming data through operators of the execution plan. A thread sends data generated by an operator to another thread via the blocking channel if the buffer of the blocking channel has available capacity to store the data, or else the thread blocks until the buffer has capacity to store the data. Similarly, a thread receives data generated by an operator of another thread via the blocking channel if the buffer of the blocking channel has available data, or else the thread blocks until the buffer has data.

    MULTIMAP OPTIMIZATION FOR PROCESSING DATABASE QUERIES

    公开(公告)号:US20240265018A1

    公开(公告)日:2024-08-08

    申请号:US18310460

    申请日:2023-05-01

    CPC classification number: G06F16/24561 G06F16/2255 G06F16/24552 G06F16/2456

    Abstract: A database system uses a hash table for processing database queries. The system stores keys mapped to data values in the hash table. For processing a set of records using the hash table, the system partially sorts the records to match the order of keys of the hash table. The partial storing of the records results in improving the performance of a cache storing the hash table. The hash table may be a multimap that maps a key to multiple data values. The system stores data values mapped to a key in a vector that stores all data values mapped to the key in contiguous memory. The system stores a pointer to the vector in association with the key in the multimap. The system optimizes the multimap to store the data value instead of the pointer if there is a single data value associated with a key.

    STORAGE EFFICIENT MULTIMAPS FOR PROCESSING DATABASE QUERIES

    公开(公告)号:US20240264994A1

    公开(公告)日:2024-08-08

    申请号:US18310459

    申请日:2023-05-01

    CPC classification number: G06F16/2255 G06F16/2237 G06F16/2455

    Abstract: A database system uses a hash table for processing database queries. The system stores keys mapped to data values in the hash table. For processing a set of records using the hash table, the system partially sorts the records to match the order of keys of the hash table. The partial storing of the records results in improving the performance of a cache storing the hash table. The hash table may be a multimap that maps a key to multiple data values. The system stores data values mapped to a key in a vector that stores all data values mapped to the key in contiguous memory. The system stores a pointer to the vector in association with the key in the multimap. The system optimizes the multimap to store the data value instead of the pointer if there is a single data value associated with a key.

    CHANNEL BASED FLOW CONTROL OF DATA DURING EXECUTION OF DATABASE QUERIES

    公开(公告)号:US20240037151A1

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

    申请号:US17886445

    申请日:2022-08-11

    Inventor: Adam Szymanski

    CPC classification number: G06F16/90335

    Abstract: A database system generates an execution plan including multiple operators for processing a database query, for example, a join query or a group by query. The database system allocates a set of threads. Threads communicate with other threads via blocking channels. A blocking channel includes a buffer of a fixed capacity. The database system processes the database query by streaming data through operators of the execution plan. A thread sends data generated by an operator to another thread via the blocking channel if the buffer of the blocking channel has available capacity to store the data, or else the thread blocks until the buffer has capacity to store the data. Similarly, a thread receives data generated by an operator of another thread via the blocking channel if the buffer of the blocking channel has available data, or else the thread blocks until the buffer has data.

    EXECUTING DATABASE QUERIES FOR GROUPING DATA USING CHANNEL BASED FLOW CONTROL

    公开(公告)号:US20240037098A1

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

    申请号:US17886250

    申请日:2022-08-11

    Inventor: Adam Szymanski

    CPC classification number: G06F16/24537 G06F16/24542

    Abstract: A database system generates an execution plan including multiple operators for processing a database query, for example, a join query or a group by query. The database system allocates a set of threads. Threads communicate with other threads via blocking channels. A blocking channel includes a buffer of a fixed capacity. The database system processes the database query by streaming data through operators of the execution plan. A thread sends data generated by an operator to another thread via the blocking channel if the buffer of the blocking channel has available capacity to store the data, or else the thread blocks until the buffer has capacity to store the data. Similarly, a thread receives data generated by an operator of another thread via the blocking channel if the buffer of the blocking channel has available data, or else the thread blocks until the buffer has data.

Patent Agency Ranking