bdoyle0182 commented on code in PR #5287:
URL: https://github.com/apache/openwhisk/pull/5287#discussion_r1110465226
##########
core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/queue/MemoryQueue.scala:
##########
@@ -930,8 +930,16 @@ class MemoryQueue(private val etcdClient: EtcdClient,
if (averageDurationBuffer.nonEmpty) {
averageDuration = Some(averageDurationBuffer.average)
}
+
getUserLimit(invocationNamespace).andThen {
- case Success(limit) =>
+ case Success(namespaceLimit) =>
+ // extra safeguard to use namespace limit if action limit exceeds
due to namespace limit being lowered
+ // by operator after action is deployed
+ val actionLimit = actionMetaData.limits.containerConcurrency
+ .map(limit =>
+ if (limit.maxConcurrentContainers > namespaceLimit)
ContainerConcurrencyLimit(namespaceLimit) else limit)
+ .getOrElse(ContainerConcurrencyLimit(namespaceLimit))
Review Comment:
@style95 so I went a little different. I changed the api fields and db
fields to be:
```
concurrency
instances
```
I think this is sufficient in distinguishing the two mechanisms and they
follow the same kind of verbiage for the api fields and keeps us from having to
go through a whole api change process which I think can be avoided. I updated
the code and documentation to refer to `concurrency` as intra concurrency
including the swagger as well as the additions of this mr to
`InstanceConcurrency` in code.
The `concurrency` and `instances` field go into the `limits` section of the
actions document / api so it should be self explanatory that they represent a
max and is explained in the documentation.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]