Scalable Local Cache in Distributed Streaming Platform for Real-Time Applications
Abstract
Software for a distributed streaming platform receives an application. The application is structured as a directed acyclic graph (DAG) with instances of operators as nodes and streams as edges between nodes. Multiple instances of an operator access a shared database. The software receives a pre-defined hint associated with the application. The pre-defined hint sets a maximum period of time for local caching of a result from a query of the database by each of the multiple instances. The software launches the application by assigning the instances of operators to one or more containers provided by the streaming platform and initiating the streams. Each container is associated with a local cache. The software then receives a request from the application to make a dynamic adjustment that increases the maximum period of time for local caching of a result from a query of the database by each of the multiple instances.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A method, comprising the operations of:
receiving an application that runs on a streaming platform, wherein the application is structured as a directed acyclic graph (DAG) with instances of operators as nodes and streams as edges between nodes and wherein multiple instances of an operator access a shared database; setting a maximum period of time for a local caching of a result from a query of the database by each of the multiple instances; launching the application by assigning the instances of operators to one or more containers provided by the streaming platform, wherein each container is a process associated with a local cache that is an allocation of volatile memory created by the streaming platform on an as needed basis and that performs the local caching; receiving a request from the application through an application programming interface (API) to make a dynamic adjustment that increases the maximum period of time for the local caching of a result from a query of the database; and executing the dynamic adjustment and re-launching the application using a recovery policy, wherein each of the operations is executed by one or more processors in real-time or near real-time rather than offline.
2 . The method as in claim 1 , wherein the instances of operators are program instructions and the streams are unbound sequences of streaming windows that are ordered in terms of time.
3 . The method as in claim 2 , wherein each streaming window is an atomic sequence of sequential structured tuples.
4 . The method as in claim 1 , further comprising,
monitoring a performance statistic for accesses to the database by each of the multiple instances and transmitting results of the monitoring to the application through the API exposed by the streaming platform.
5 . The method of claim 1 , wherein the query of the database is processed by each of the multiple instances.
6 . The method of claim 1 , wherein said launching further causes initiation of the streams.
7 . A method as in claim 1 , wherein the performance statistic measures one of throughput, or keys read, or keys written.
8 . Computer readable media having non-transitory programming instructions for processing an application, comprising:
program instructions for receiving the application that runs on a streaming platform, wherein the application is structured as a directed acyclic graph (DAG) with instances of operators as nodes and streams as edges between nodes and wherein multiple instances of an operator access a shared database; program instructions for setting a maximum period of time for a local caching of a result from a query of the database by each of the multiple instances; program instructions for launching the application by assigning the instances of operators to one or more containers provided by the streaming platform, wherein each container is a process associated with a local cache that is an allocation of volatile memory created by the streaming platform on an as needed basis and that performs the local caching; program instructions for receiving a request from the application through an application programming interface (API) to make a dynamic adjustment that increases the maximum period of time for the local caching of a result from a query of the database; and program instructions for executing the dynamic adjustment and re-launching the application using a recovery policy, wherein each of the operations is executed by one or more processors in real-time or near real-time rather than offline.
9 . The computer readable media of claim 8 , wherein the instances of operators are program instructions and the streams are unbound sequences of streaming windows that are ordered in terms of time.
10 . The computer readable media of claim 9 , wherein each streaming window is an atomic sequence of sequential structured tuples.
11 . The computer readable media of claim 8 , further comprising,
program instructions for monitoring a performance statistic for accesses to the database by each of the multiple instances and transmitting results of the monitoring to the application through the API exposed by the streaming platform.
12 . The computer readable media of claim 8 , wherein the query of the database is processed by each of the multiple instances.
13 . The computer readable media of claim 8 , wherein said launching further causes initiation of the streams.
14 . The computer readable media of claim 8 , wherein the performance statistic measures one of throughput, or keys read, or keys written.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.