NFR - ContractNegotiationManager - StateMachine delay as config value #1927
Replies: 2 comments 9 replies
-
The iteration should be configurable, but your description brings up another potential issue. You indicated the process of retrieving an asset could take several seconds. The contract negotiation and transfer process are decoupled. Contract negotiation should be done upfront, on an infrequent basis. If a system is performing a contract negotiation for every asset request made by a client, and those requests are frequent, you probably should reconsider that design. In general, contract negotiation latency should not matter (within reason) as long as the system can scale out (which it is designed to do). Similarly, the transfer process was designed with the same principles. If your asset requests are latency sensitive and frequent, you should consider using the synchronous API pattern supported by the data plane or modeling the assets as a single, non-finite transfer. Doing so will avoid introducing unnecessary overhead. |
Beta Was this translation helpful? Give feedback.
-
Actually, you can provide your own custom
I agree that the value should be configurable as well, issue and PR would be appreciated (maybe also for the TransferWaitStrategy) |
Beta Was this translation helpful? Give feedback.
-
Feature Request
We need to decrease the delay introduced by the ContractNegotiationManager StateMachine of EDC.
The org.eclipse.dataspaceconnector.spi.retry.ExponentialWaitStrategy is given 5000 miliseconds as a default, hardcoded value.
As a consequence, the process of retrieving the asset through EDC can take several seconds.
Which Areas Would Be Affected?
ContractServiceExtension
Why Is the Feature Desired?
Huge delay introduced by StateMachine of the ContractServiceExtension
Solution Proposal
Make the value of org.eclipse.dataspaceconnector.contract.ContractServiceExtension#DEFAULT_ITERATION_WAIT configurable as one of the config values, similar to the org.eclipse.dataspaceconnector.contract.ContractServiceExtension#NEGOTIATION_CONSUMER_STATE_MACHINE_BATCH_SIZE.
Or maybe there is some other way to easly introduce the new, custom NegotiationWaitStrategy, that could be used in services like org.eclipse.dataspaceconnector.contract.negotiation.ConsumerContractNegotiationManagerImpl ?
Beta Was this translation helpful? Give feedback.
All reactions