In the network of OdysseusNet, OdysseusNodes can define new data sources which can be used by other OdysseusNodes, if possible and needed.
The user only has to activate OdysseusNet. By default, all added sources are distributed in the network automatically without further interactions. If a OdysseusNode receives a new data source from the network, it tries to add the source locally (if possible).
Note that there are currently two limitations for distributing data sources:
- If PQL is used, the names of the source operator (name ::= Operator(...)) and the source parameter (ACCESS({source='name',...)},...) should be different!
- Distributed views (CREATE VIEW in CQL or name := Operator(...) in PQL) can not be used. Use stream definition (CREATE STREAM in CQL or name ::= Operator(...) in PQL) instead
To test if a data source is distributed successfully, the user can examine the DistributedDataView. Since source distribution builds on top of Distribution of (static) data, each source is shown in this view.
The name is always net.data.source
to identify that these distributed data are containing data source information. The JSON-Data contains more detailed information (name, used operators, etc.). By default, a distributed data source is alife as long as the origin OdysseusNode stays in the network.
If the node leaves the network:
- If the source is a view, the distributed data (source) will be immediately removed.
- If the source is a stream, the distributed data (source) will stay for one hour (3600000 seconds). The time can be configured.