US 11,893,026 B2
Advanced multiprovider optimization
Julian Schwing, Mannheim (DE); Christoph Weyerhaeuser, Heidelberg (DE); Johannes Merx, Heidelberg (DE); Davide Corradi, Heidelberg (DE); and Timo Hochberger, Heidelberg (DE)
Assigned to SAP SE, Walldorf (DE)
Filed by SAP SE, Walldorf (DE)
Filed on Apr. 2, 2019, as Appl. No. 16/372,951.
Prior Publication US 2020/0320082 A1, Oct. 8, 2020
Int. Cl. G06F 16/2453 (2019.01); G06F 16/2455 (2019.01); G06F 16/22 (2019.01); G06F 16/25 (2019.01); G06F 16/21 (2019.01)
CPC G06F 16/24561 (2019.01) [G06F 16/217 (2019.01); G06F 16/2282 (2019.01); G06F 16/24544 (2019.01); G06F 16/256 (2019.01)] 12 Claims
OG exemplary drawing
 
1. A system comprising:
at least one hardware data processor; and
at least one memory storing instructions which, when executed by the at least one hardware data processor, result in operations comprising:
determining, by a calculation engine of a database management system, an incompatibility caused by a calculation scenario including operations on a multiprovider, the multiprovider including a first data source having at least one operation that is incompatible with a second data source, such that incompatibility causes the first data source and the second data source to use, at least in part, different approaches for optimization of the calculation scenario, wherein a first node corresponding to a first operation includes a filter and a hierarchy join that are incompatible with the second data source, and wherein the least one operation comprises the first operation;
in response to the determining of the incompatibility, splitting, by the calculation engine, the multiprovider into at least the first node and a second node, the first node corresponding to the first operation performable using a first optimization strategy compatible with the first data source but not compatible with the second, and the second node corresponding to a second operation performable using a second optimization strategy compatible with the second data source;
performing, by the calculation engine, the first operation at the first data source to produce a first result;
performing, by the calculation engine, the second operation at the second data source to produce a second result;
merging, by the calculation engine, the first result and the second result into a third operation; and
performing the third operation at the first data source.