CORDA-3662: Use an INNER JOIN for network map cache queries, (#6062)

- rename add or update function for clarity
- put removal of old nodes after retrieval of new ones to avoid gaps in the map
- plus add a test
This commit is contained in:
Ryan Fowler
2020-03-17 17:02:08 +00:00
committed by GitHub
parent 2c10b6c3b9
commit 349bd5a511
10 changed files with 148 additions and 68 deletions

View File

@ -352,8 +352,8 @@ open class InternalMockNetwork(cordappPackages: List<String> = emptyList(),
mockNet.nodes
.mapNotNull { it.started }
.forEach { existingNode ->
newNode.services.networkMapCache.addNode(existingNode.info)
existingNode.services.networkMapCache.addNode(newNode.info)
newNode.services.networkMapCache.addOrUpdateNode(existingNode.info)
existingNode.services.networkMapCache.addOrUpdateNode(newNode.info)
}
}

View File

@ -147,7 +147,7 @@ constructor(private val cordappPackages: List<String> = emptyList(), private val
val runningNodesInfo = runningNodes.map { it.info }
for (node in runningNodes)
for (nodeInfo in runningNodesInfo) {
node.services.networkMapCache.addNode(nodeInfo)
node.services.networkMapCache.addOrUpdateNode(nodeInfo)
}
}
}