Hi all,
I’m trying to optimize a bunch of custom EPL code running with the Cumulocity Connectivity and I want to optimize the inbound/outbound handling. I had a look at the doc but it’s not clear for me what this means:
- Any read request waits for all outstanding update requests before starting.
- Any update request waits for all outstanding read requests before starting.
Is this per-device / MO ? Or is it actually all queries and all updates?
Thanks. What does Update mean here?
Will e.g. creating an Operation (or Event) for a device block any Read request for other devices?
I guess “Read” is anything that uses a “Find**” call?
“Update” means any request that isn’t an HTTP GET — so POST/PUT/DELETE. In EPL: ManagedObject, Alarm, Event, Operation, Measurement, MeasurementFragment, SendSMS, SendEmail, and GenericRequest with a POST/PUT/DELETE method.
“Read” is anything that becomes a GET. Mostly the Find* calls as you guessed, plus GetCurrentUser, RequestAllDevices, and GenericRequest with a GET method.
And yes — creating an Operation or Event is an update, so any read issued while it is still in progress will wait for it, including reads for other devices. The device plays no part in this rule.