US 12,147,434 B2
Ranking filter algorithms
Michael Ludwig, Leimen (DE); and Johannes Merx, Heidelberg (DE)
Assigned to SAP SE, Walldorf (DE)
Filed by SAP SE, Walldorf (DE)
Filed on Mar. 27, 2020, as Appl. No. 16/832,419.
Prior Publication US 2021/0303583 A1, Sep. 30, 2021
Int. Cl. G06F 16/2457 (2019.01); G06F 16/22 (2019.01)
CPC G06F 16/24578 (2019.01) [G06F 16/2228 (2019.01)] 16 Claims
OG exemplary drawing
 
1. A computer-implemented method, comprising:
receiving, by a database server from an application server, a query associated with a calculation scenario defining a data flow model that comprises one or more calculation nodes, each of the one or more calculation nodes corresponding to an operation being performed on one or more database tables stored at a database, the one or more calculation nodes comprising a first calculation node corresponding to a ranking filter operation;
executing, by a calculation engine, the calculation scenario by performing the ranking filter operation to generate a data structure storing a plurality of rows of the one or more database tables responsive to the query, wherein the data structure comprises a mapping of each row in the plurality of rows to partitions of the one or more database tables processed by the calculation engine during execution of the calculation scenario including the ranking filter operation, wherein the ranking filter operation comprises an aggregation operation and a filter operation being performed together and configured to implement dynamic ordering and partitioning;
generating, based on the executing of the calculation scenario and using the data structure, a result data set comprising at least one row from the plurality of rows, wherein generating the result data set comprises:
splitting the one or more database tables into parts,
generating, for each of the parts, separate data structures storing partial data results, and
combining the partial data results from each of the parts,
detecting, by a persistence layer, a restart of the application server associated with a crash of a network-attached storage system of the application server;
determining a portion of the result data set associated with unfinished transactions; and
providing, by the database server to the application server, the result data set excluding the portion of the result data set associated with the unfinished transactions that are identified using log buffers reordered from inconsecutive log segments of the partitions during a recovery process executed after the crash of the network-attached storage system of the application server.