-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Raw Rx back pressure triggers excessive amount of logs #43
Comments
Alex, Thank you for bringing this issue to our attention. We will be adding logic to suppress these type of repetitive error messages and provide a resource allocation error to the application using the existing user-registered callback function ( Since the SDK was designed for streaming data in real-time applications, it does not communicate back-pressure (ie. from receiver to a transmitter). If downstream applications generate back-pressure, there is going to be a backup somewhere and payloads will need to be discarded. An application could detect back-pressure conditions and use out-of-band communication to notify upstream components to reduce the frequency and/or size of payloads. The changes noted above will provide the application with a mechanism it can use to determine if back pressure is occurring. |
Than you very much for your reply.
The question here is why the error would be added to the Rx callback functions only ? According to my understanding this error should be provided to the Tx callback as well (
This means that this core_cb_data should share status of the payload between the Tx and the Rx. In this case the Rx is in trouble (back pressure) and dropping packages and I think the Rx should inform the Tx that the packages being dropped by CDI. Regards |
Alex, The error would be only added to the Rx callback function, since there is currently no method to communicate back-pressure from the receiver to the transmitter. The socket-based probe interface could be extended to provide this mechanism, but it was designed to manage connections not network packets. If this condition occurs in a real-time application, it seems that out-of-band mechanisms would need to be implemented that might require signification changes to the workflow in order to eliminate the problem (ie. reduce frame-rate or frame size). This could require changes to components that don't support CDI. |
Mike, Alex. Please consider my thoughts below: "If this condition occurs in a real-time application, it seems that out-of-band mechanisms would need to be implemented". This is reasonable when the Raw interface of the CDI SDK is used. However, interoperability is an important driver behind the use of the AVM interface. The implementation of an out of band mechanism would be vendor specific (at best a few vendors could band together to agree on a common mechanism). The lack of standardization of this out-of-band mechanism when the AVM interface is used is contradictory to the goal of achieving interoperability. |
Please find below the description of the test:
Can the CDI somehow filter these "Failed to get Rx Payload State entry from pool." and not log these in such a huge amount ?
May be create more descriptive message and not to log all these ? May be let the Rx know about the back-pressure condition ?
What is the expected behavior of the Rx during the back-pressure period ? Is it right that all the packages are just lost and the Tx even does not get informed about it ?
Regards
Alex
The text was updated successfully, but these errors were encountered: