Context
While reviewing the recceiver/cfstore implementation, inefficiencies in the ChannelFinder Service API were identified, especially when handling bulk channel queries.
Current Limitation
The current API supports name queries like:
/ChannelFinder/resources/channels?~name=somePV1,otherPV2,anotherPV3,...
However, this approach is limited by the maximum URL length (~600 characters), making it cumbersome and inefficient to retrieve a large number of channels whose names cannot be easily combined using a single regex. This leads to a significant increase in the number of REST calls required for bulk lookups.
Suggestion
To address this, follow the approach used by Olog and Elastic by supporting a query body for search operations. This would enable bulk searches and more advanced queries, avoiding the URL length limitation and optimizing performance for clients needing channel data in batches.
Proposal
- Extend the search/query API to accept a request body (e.g., JSON array of channel names or filters).
- Maintain backward compatibility with existing query parameters.
Context
While reviewing the recceiver/cfstore implementation, inefficiencies in the ChannelFinder Service API were identified, especially when handling bulk channel queries.
Current Limitation
The current API supports name queries like:
However, this approach is limited by the maximum URL length (~600 characters), making it cumbersome and inefficient to retrieve a large number of channels whose names cannot be easily combined using a single regex. This leads to a significant increase in the number of REST calls required for bulk lookups.
Suggestion
To address this, follow the approach used by Olog and Elastic by supporting a query body for search operations. This would enable bulk searches and more advanced queries, avoiding the URL length limitation and optimizing performance for clients needing channel data in batches.
Proposal