Only invalidate syncState after read stage
This is in order to reduce the number of commit iterations especially during the initial discovery of the data model.
This commit is contained in:
1 parent
14bf276112
commit
ed873cdd4a
1 file changed
+7
-4
+7
-4
@@ -573,10 +573,6 @@ rpcRequest = (sessionContext, _declarations, callback) ->
|
|||||||
if sessionContext.rpcRequest?
|
if sessionContext.rpcRequest?
|
||||||
return callback(null, null, generateRpcId(sessionContext), sessionContext.rpcRequest)
|
return callback(null, null, generateRpcId(sessionContext), sessionContext.rpcRequest)
|
||||||
|
|
||||||
if sessionContext.deviceData.changes.has('prerequisite')
|
|
||||||
delete sessionContext.syncState
|
|
||||||
device.clearTrackers(sessionContext.deviceData, 'prerequisite')
|
|
||||||
|
|
||||||
if sessionContext.virtualParameters.length == 0 and
|
if sessionContext.virtualParameters.length == 0 and
|
||||||
sessionContext.declarations.length == 0 and
|
sessionContext.declarations.length == 0 and
|
||||||
not _declarations?.length and
|
not _declarations?.length and
|
||||||
@@ -715,6 +711,13 @@ rpcRequest = (sessionContext, _declarations, callback) ->
|
|||||||
if not provisions
|
if not provisions
|
||||||
sessionContext.rpcRequest = generateGetRpcRequest(sessionContext)
|
sessionContext.rpcRequest = generateGetRpcRequest(sessionContext)
|
||||||
if not sessionContext.rpcRequest
|
if not sessionContext.rpcRequest
|
||||||
|
# Only check after read stage is complete to minimize reprocessing of
|
||||||
|
# declarations especially during initial discovery of data model
|
||||||
|
if sessionContext.deviceData.changes.has('prerequisite')
|
||||||
|
delete sessionContext.syncState
|
||||||
|
device.clearTrackers(sessionContext.deviceData, 'prerequisite')
|
||||||
|
return rpcRequest(sessionContext, null, callback)
|
||||||
|
|
||||||
toClear = null
|
toClear = null
|
||||||
timestamp = sessionContext.timestamp + sessionContext.iteration + 1
|
timestamp = sessionContext.timestamp + sessionContext.iteration + 1
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user