-
公开(公告)号:US12153965B2
公开(公告)日:2024-11-26
申请号:US17688212
申请日:2022-03-07
Applicant: SAP SE
Inventor: Christina Teflioudi , Paul Willems
Abstract: A method for allocating worker threads may include receiving a first fetch call for a query accessing a dataset stored at a database. The first fetch call may require a first portion of a result for the query. A first quantity of worker threads may be allocated to generate the first portion of the result for the query in response to the first fetch call. In response to a second fetch call for the query by determining a threshold corresponding to the first quantity of worker threads, a second quantity of data required for the second fetch call, and a third quantity of data buffered from the first fetch call. A second quantity of worker threads to generate a second portion of the result for the query may be allocated based on the threshold. Related systems and computer program products are also provided.
-
公开(公告)号:US20240378201A1
公开(公告)日:2024-11-14
申请号:US18779922
申请日:2024-07-22
Applicant: SAP SE
Inventor: Christina Teflioudi , Paul Willems , Till Merker
IPC: G06F16/2453 , G06F8/41 , G06F9/30 , G06F9/50 , G06F16/2455
Abstract: A method for executing a dynamically generated operation in a parallel processing framework may include executing the dynamically generated operation sequentially for a threshold quantity of times before initiating a compilation operation to generate precompiled code for the dynamically generated operation. Upon generating the precompiled code, execution of the precompiled code may be parallelized by determining, based on a quantity of time required to execute the precompiled code on a portion of a dataset, a task size. The execution of the precompiled code may be divided, based on the task size, into one or more tasks. Moreover, a corresponding quantity of worker threads may be allocated to perform the one or more tasks in parallel. Related methods and computer program products are also provided.
-
公开(公告)号:US12118003B2
公开(公告)日:2024-10-15
申请号:US17684770
申请日:2022-03-02
Applicant: SAP SE
Inventor: Till Merker , Paul Willems , Manuel Mayr
IPC: G06F16/24 , G06F16/23 , G06F16/2453 , G06F16/2455
CPC classification number: G06F16/24554 , G06F16/2343 , G06F16/24544
Abstract: A method for on-demand access to table partitions may include receiving, at a data execution engine, a query accessing a database table divided into a first partition and a second partition stored at different nodes of the database. The data execution engine may respond to the query by acquiring a lock on the database table and instantiating data structures to support the execution of the query without loading any of the partitions of the database table into a main memory. Instead, the loading of the individual partitions of the database table may be delegated to the operators tasked with performing the operations included in the execution plan for the query. Each operator may refrain from loading those partitions of the database table that are determined to be unnecessary for performing the individual operations. Related systems and computer program products are also provided.
-
公开(公告)号:US12072879B2
公开(公告)日:2024-08-27
申请号:US17735493
申请日:2022-05-03
Applicant: SAP SE
Inventor: Christina Teflioudi , Paul Willems , Till Merker
IPC: G06F16/2453 , G06F8/41 , G06F9/30 , G06F9/50 , G06F16/2455
CPC classification number: G06F16/24542 , G06F8/48 , G06F9/3009 , G06F9/5044 , G06F16/24539 , G06F16/24554
Abstract: A method for executing a dynamically generated operation in a parallel processing framework may include executing the dynamically generated operation sequentially for a threshold quantity of times before initiating a compilation operation to generate precompiled code for the dynamically generated operation. Upon generating the precompiled code, execution of the precompiled code may be parallelized by determining, based on a quantity of time required to execute the precompiled code on a portion of a dataset, a task size. The execution of the precompiled code may be divided, based on the task size, into one or more tasks. Moreover, a corresponding quantity of worker threads may be allocated to perform the one or more tasks in parallel. Related methods and computer program products are also provided.
-
公开(公告)号:US20240256514A1
公开(公告)日:2024-08-01
申请号:US18591568
申请日:2024-02-29
Applicant: SAP SE
Inventor: Andreas Amler , Paul Willems , Till Merker
IPC: G06F16/22 , G06F16/2455
CPC classification number: G06F16/2282 , G06F16/221 , G06F16/2228 , G06F16/24556
Abstract: A method for performing a multi-fragment index scan operation included in a query pipeline of a query accessing a database table may include performing an index scan on a first chunk of a first fragment of the database table and a second chunk of a second fragment of the database table. A first output of the index scan on the first chunk of the first fragment of the database table and a second output of the index scan on the second chunk of the second fragment of the database table may be merged to generate a partial result set for ingestion by a next operation in the query pipeline. The multi-fragment index scan operation may continue with index scans on subsequent chunks of the first fragment and second fragment of the database table. Related systems and computer program products are also provided.
-
公开(公告)号:US20230376485A1
公开(公告)日:2023-11-23
申请号:US17746601
申请日:2022-05-17
Applicant: SAP SE
Inventor: Faming Qu , Paul Willems , Yuncong Qiao , Zhen Tian
IPC: G06F16/2453
CPC classification number: G06F16/24542 , G06F16/24535
Abstract: A method, a system, and a computer program product for generating an executable query plan. A query requiring access to data stored in a database system is received. Based on the received query, a query execution plan having a plurality of query execution pipelines is generated. Each query execution pipeline in the plurality of query execution pipelines is configured to execute a plurality of operations in a predetermined order associated with each query execution pipeline. The generated query execution plan is fragmented into a plurality of fragments. Each fragment has one or more query execution pipelines in the plurality of query execution pipelines. Each fragment of the generated query execution plan is transmitted to one or more execution locations in a plurality of execution locations for execution. Each fragment of the generated query execution plan is executed at one or more execution locations. One or more results of executions are combined to generate a response to the received query.
-
公开(公告)号:US20230350867A1
公开(公告)日:2023-11-02
申请号:US17733507
申请日:2022-04-29
Applicant: SAP SE
Inventor: Stefan Noll , Paul Willems
IPC: G06F16/22 , G06F16/28 , G06F16/2455 , G06F16/2453 , G06F16/23
CPC classification number: G06F16/2282 , G06F16/285 , G06F16/288 , G06F16/24564 , G06F16/24532 , G06F16/2322 , G06F16/2329
Abstract: A method for processing non-standardized data in a relational database may include identifying, within a sequence of operations forming a query pipeline for executing a query, a first operation ingesting a non-standardized data. In response to identifying the first operation ingesting the non-standardized data, a second operation may be inserted before the first operation. The non-standardized data may be output by a third operation preceding the first operation or a source external to the query pipeline. The second operation may serialize the non-standardized data for ingestion by the first operation, for example, by generating a relational table populated by the non-standardized data. The query may be executed by performing the sequence of operations included in the query pipeline. Related systems and computer program products are also provided.
-
公开(公告)号:US11775543B1
公开(公告)日:2023-10-03
申请号:US17723949
申请日:2022-04-19
Applicant: SAP SE
Inventor: Alexander Gellner , Paul Willems
IPC: G06F16/248 , G06F16/23
CPC classification number: G06F16/248 , G06F16/23
Abstract: A method for performing a parallelized heapsort operation may include updating, by a first worker thread, a first buffer while a second worker thread updates a second buffer in parallel. The first worker thread may update the first buffer by adding, to the first buffer, elements from a first partition of a dataset. The second worker thread may update the second buffer by adding, to the second buffer, elements from a second partition of the dataset. Upon the first buffer reaching a threshold size, the first worker thread may acquire a lock for the first worker thread to update a heap based on the first buffer while the second worker thread is prevented from updating the heap based on the second buffer. A result of a top k query comprising a k quantity of smallest elements from the dataset may be generated based on the heap.
-
公开(公告)号:US11429610B2
公开(公告)日:2022-08-30
申请号:US16837843
申请日:2020-04-01
Applicant: SAP SE
Inventor: Xun Cheng , Zhen Tian , Yuncong Qiao , Faming Qu , Paul Willems , Hongyong Lu , Yanxin Luo , Nitesh Maheshwari
IPC: G06F16/2453
Abstract: A method, a system, and a computer program product for generating a query executable plan. A query requiring access to data stored in a database system is received. Based on the received query, a query execution plan having a plurality of query execution pipelines is generated. Each query execution pipeline in the plurality of query execution pipelines is configured to execute a plurality of operations in a predetermined order associated with each query execution pipeline. The generated query execution plan is fragmented into a plurality of fragments. Each fragment has one or more query execution pipelines in the plurality of query execution pipelines. The received query is executed by executing each fragment in the plurality of fragments.
-
公开(公告)号:US11386102B2
公开(公告)日:2022-07-12
申请号:US16371609
申请日:2019-04-01
Applicant: SAP SE
Inventor: Christina Teflioudi , Paul Willems , Till Merker
IPC: G06F16/20 , G06F16/2458 , G06F9/52 , G06F9/54
Abstract: A query is received at a database execution engine. The query is executed by the database execution engine, the executing including executing one or more threads that operate on versions of data of the delta fragment; acquiring and releasing, by a first thread, a latch on a first version of the data of the delta fragment, the releasing is performed prior to the first thread entering a wait state; and reclaiming the first version of the data of the delta fragment from memory and during execution of the query. Related systems, methods, and articles of manufacture are also described.
-
-
-
-
-
-
-
-
-