US 11,841,860 B2
Multi-tenant system for providing arbitrary query support
Henning Schmiedehausen, Los Altos, CA (US); and Alexander Vasilevskiy, Palo Alto, CA (US)
Assigned to Zuora, Inc., Redwood City, CA (US)
Filed by Zuora, Inc., Redwood City, CA (US)
Filed on Feb. 28, 2023, as Appl. No. 18/115,569.
Application 18/115,569 is a continuation of application No. 17/521,122, filed on Nov. 8, 2021, granted, now 11,593,378.
Application 17/521,122 is a continuation of application No. 16/431,663, filed on Jun. 4, 2019, granted, now 11,169,998, issued on Nov. 9, 2021.
Claims priority of provisional application 62/680,575, filed on Jun. 4, 2018.
Prior Publication US 2023/0205773 A1, Jun. 29, 2023
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 16/2455 (2019.01); G06F 9/54 (2006.01); G06F 16/2458 (2019.01); G06F 16/25 (2019.01)
CPC G06F 16/24554 (2019.01) [G06F 9/547 (2013.01); G06F 16/2471 (2019.01); G06F 16/258 (2019.01)] 17 Claims
OG exemplary drawing
 
9. A method being implemented by a computing system including one or more physical processors and storage media storing machine-readable instructions, the method comprising:
receiving, by an arbitrary query user interface, a user request to perform a query associated with user data, the user data including first data and second data;
partitioning, by a coordinator node of an arbitrary query engine, the query into at least a first sub-query and a second sub-query;
assigning, by the coordinator node of the arbitrary query engine, the first sub-query to a first query node of the arbitrary query engine;
providing, by a first service connector associated with the first query node of the arbitrary query engine, the first sub-query to a first service provider interface (SPI) integrated into a first service, the first service being capable of processing the first sub-query, the first SPI being configured to operate on the first data in a first datastore associated with the first service, the first SPI including a common interface component configured based on a uniform access specification to facilitate external communication between the arbitrary query engine and the first SPI, and the first SPI including a first service interface component configured to transform between the uniform access specification and a first service data specification and to facilitate internal data management of the first service using the first service data specification;
obtaining, by the first service using the first SPI, at least a portion of the first data from the first datastore associated with the first service, the at least a portion of the first data being formatted according to the first service data specification;
generating first results based on the at least a portion of the first data;
transforming, by the first SPI, the first results according to the uniform access specification;
providing, by the first service using the first SPI, the first results to the arbitrary query engine;
assigning, by the coordinator node of the arbitrary query engine, the second sub-query to a second query node of the arbitrary query engine;
providing, by a second service connector associated with the second query node of the arbitrary query engine, the second sub-query to a second service provider interface (SPI) integrated into a second service, the second service being capable of processing the second sub-query, the second SPI being configured to operate on the second data in a second datastore associated with the second service, the second SPI including a common interface component configured based on the uniform access specification to facilitate external communication between the arbitrary query engine and the second SPI, and the second SPI including a second service interface component configured to transform between the uniform access specification and a second service data specification and to facilitate internal data management of the second service using the second service data specification;
obtaining, by the second service using the second SPI, at least a portion of the second data from the second datastore associated with the second service, the at least a portion of the second data being formatted according to the second service data specification;
generating second results based on the at least a portion of the second data;
transforming, by the second SPI, the second results according to the uniform access specification; and
providing, by the second service using the second SPI, the second results to the arbitrary query engine.