upgle commented on code in PR #5236:
URL: https://github.com/apache/openwhisk/pull/5236#discussion_r880057987


##########
proposals/POEM-3-action-limit-for-namespace.md:
##########
@@ -0,0 +1,283 @@
+<!--
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+-->
+
+# Title
+Providing action limits for each namespace
+
+## Status
+* Current state: In-progress
+* Author(s): @upgle
+
+## Summary and Motivation
+
+This POEM proposes a new feature that allows administrators to set action 
limits (memory, timeout, log, and concurrency) for each namespace.
+
+Sometimes some users want to make an action with more memory and longer 
duration. But, Openwhisk only has a system limit for action shared by all 
namespaces.
+There is no way to adjust the action limit for a few users, and changing the 
action limit setting will affect all users.
+
+In some private environments, you can operate Openwhisk more flexibly by 
providing different action limits.
+(For example, providing high memory only to some users.)
+
+```
+          256M                               512M
+
+            │     namespace default limit      │
+            ▼                                  ▼
+ 
┌──────────┬──────────────────────────────────┬────────────┬────────────────────────┐
+ │          │┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼│----------► │                  
      │
+ 
└──────────┴──────────────────────────────────┴────────────┴────────────────────────┘
+ ▲                                                          ▲                  
      ▲
+ │ system limit                                             │ namespace limit  
      │ system limit
+
+128M                                                      1024M                
    2048M
+```
+
+## Proposed changes
+
+### 3 types of action limits
+
+There was only a system limit shared by all namespaces, but two more concepts 
for namespace limits are added.
+
+- (1) system limit: It can never be exceeded under any circumstances.
+- (2) namespace default limit: It can be used if a limit has not been set for 
a namespace.
+- (3) namespace limit: It can be set by a system administrator for a namespace 
and cannot exceed the range of the system limit.
+
+### Limit configs for namespace
+
+- The maxParameterSize, maxPayloadSize and truncationSize values are treated 
as `ByteSize` string. (e.g. 1 MB, 512 KB...)
+
+The following settings are new:
+
+config key             | Type                         | description
+---------------------- | ---------------------------- | ---------------
+minActionMemory        | integer (unit: MB)           | minimum action memory 
size for namespace
+maxActionMemory        | integer (unit: MB)           | maximum action memory 
size for namespace
+minActionLogs          | integer (unit: MB)           | minimum activation log 
size for namespace
+maxActionLogs          | integer (unit: MB)           | maximum activation log 
size for namespace
+minActionTimeout       | integer (unit: milliseconds) | minimum action time 
limit for namespace
+maxActionTimeout       | integer (unit: milliseconds) | maximum action time 
limit for namespace
+minActionConcurrency   | integer                      | minimum action 
concurrency limit for namespace
+maxActionConcurrency   | integer                      | maximum action 
concurrency limit for namespace
+maxParameterSize       | string  (format: ByteSize)   | maximum parameter size 
for namespace
+maxPayloadSize         | string  (format: ByteSize)   | maximum payload size 
for namespace
+truncationSize         | string  (format: ByteSize)   | activation truncation 
size for namespace
+
+
+### Limit document for CouchDB
+
+You can set namespace limits with `{namespace}/limits` document just like any 
other existing settings (invocationsPerMinute, concurrentInvocations..).
+
+```json
+{
+  "concurrentInvocations": 100,
+  "invocationsPerMinute": 100,
+  "firesPerMinute": 100,
+  "maxActionMemory": 1024,
+  "minActionMemory": 128,
+  "maxActionConcurrency": 400,
+  "minActionConcurrency": 1,
+  "maxActionLogs": 128,
+  "minActionLogs": 0,
+  "maxParameterSize": "1048576 B"
+}
+```
+
+#### Using wskadmin command (tool)
+- In general, it is recommended to use a wskadmin rather than modify the DB 
directly.
+- There is plan to provide the feauture to change namespace limits in wskadmin.
+
+### Namespace Limit API

Review Comment:
   @rabbah Yes right. 
   
   The the limits document is described here:
   
https://github.com/apache/openwhisk/pull/5236/files#diff-bf63bbe4a2d067875e015af1374ab7ad40416cdb02d0f23b2c739f063e402848R82



##########
proposals/POEM-3-action-limit-for-namespace.md:
##########
@@ -0,0 +1,283 @@
+<!--
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+-->
+
+# Title
+Providing action limits for each namespace
+
+## Status
+* Current state: In-progress
+* Author(s): @upgle
+
+## Summary and Motivation
+
+This POEM proposes a new feature that allows administrators to set action 
limits (memory, timeout, log, and concurrency) for each namespace.
+
+Sometimes some users want to make an action with more memory and longer 
duration. But, Openwhisk only has a system limit for action shared by all 
namespaces.
+There is no way to adjust the action limit for a few users, and changing the 
action limit setting will affect all users.
+
+In some private environments, you can operate Openwhisk more flexibly by 
providing different action limits.
+(For example, providing high memory only to some users.)
+
+```
+          256M                               512M
+
+            │     namespace default limit      │
+            ▼                                  ▼
+ 
┌──────────┬──────────────────────────────────┬────────────┬────────────────────────┐
+ │          │┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼│----------► │                  
      │
+ 
└──────────┴──────────────────────────────────┴────────────┴────────────────────────┘
+ ▲                                                          ▲                  
      ▲
+ │ system limit                                             │ namespace limit  
      │ system limit
+
+128M                                                      1024M                
    2048M
+```
+
+## Proposed changes
+
+### 3 types of action limits
+
+There was only a system limit shared by all namespaces, but two more concepts 
for namespace limits are added.
+
+- (1) system limit: It can never be exceeded under any circumstances.
+- (2) namespace default limit: It can be used if a limit has not been set for 
a namespace.
+- (3) namespace limit: It can be set by a system administrator for a namespace 
and cannot exceed the range of the system limit.
+
+### Limit configs for namespace
+
+- The maxParameterSize, maxPayloadSize and truncationSize values are treated 
as `ByteSize` string. (e.g. 1 MB, 512 KB...)
+
+The following settings are new:
+
+config key             | Type                         | description
+---------------------- | ---------------------------- | ---------------
+minActionMemory        | integer (unit: MB)           | minimum action memory 
size for namespace
+maxActionMemory        | integer (unit: MB)           | maximum action memory 
size for namespace
+minActionLogs          | integer (unit: MB)           | minimum activation log 
size for namespace
+maxActionLogs          | integer (unit: MB)           | maximum activation log 
size for namespace
+minActionTimeout       | integer (unit: milliseconds) | minimum action time 
limit for namespace
+maxActionTimeout       | integer (unit: milliseconds) | maximum action time 
limit for namespace
+minActionConcurrency   | integer                      | minimum action 
concurrency limit for namespace
+maxActionConcurrency   | integer                      | maximum action 
concurrency limit for namespace
+maxParameterSize       | string  (format: ByteSize)   | maximum parameter size 
for namespace
+maxPayloadSize         | string  (format: ByteSize)   | maximum payload size 
for namespace
+truncationSize         | string  (format: ByteSize)   | activation truncation 
size for namespace
+
+
+### Limit document for CouchDB
+
+You can set namespace limits with `{namespace}/limits` document just like any 
other existing settings (invocationsPerMinute, concurrentInvocations..).
+
+```json
+{
+  "concurrentInvocations": 100,
+  "invocationsPerMinute": 100,
+  "firesPerMinute": 100,
+  "maxActionMemory": 1024,
+  "minActionMemory": 128,
+  "maxActionConcurrency": 400,
+  "minActionConcurrency": 1,
+  "maxActionLogs": 128,
+  "minActionLogs": 0,
+  "maxParameterSize": "1048576 B"
+}
+```
+
+#### Using wskadmin command (tool)
+- In general, it is recommended to use a wskadmin rather than modify the DB 
directly.

Review Comment:
   Using the wskadmin tool is the same as modifying the db directly, so I will 
delete the ambiguous phrase.



-- 
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]

Reply via email to