Allow define Simultaneously process/reports feauture

Description

example issues, use cases:
1. some processes if running multiple times make corrupt data (import bank, import products... etc) - define max 1 instance/client resolve this.
2. some reports are huge e.g run storage details 10 times simultaneously make unstable server, influence other users confort e.g running db approx 1 hour at 80%
3. web service call e.g already generate a shipment, after gui unhandled use case user allowed run it again. max 1 instance/user resolve this auth endpoint

A. Implement Simultaneous Process Feature which allow to define max process/report instance per system/tenant/user

definition: max process instance determine maximally simultaneously entitlement at given definition level.
goal: this allow avoid generic way performance and in many cases data corruption.

note: this generic solution doesn't targeting concurrency handling e.g. in data processing however many conflicts can be this simple way avoided.

LEVELS
1. max instance for installation/system - eg. system wide we allow 10 running instances
2. max instance per tenant - eg. we allow tenant 1 process per tenant
3. max instance per org
4. max instance per role
5. max instance per user - each logged in user allowed to run same process/report instance once.

use case/scenarios
1. user start 1st report then 2nd setup: SimultanousProcessInstancePerTenant = 1 - message: you are not allowed to run more then 1 report, try later
2. there are 20 users running 20 instances in 5 tenants setup: SimultanousProcessSystem = 21th user will be rejected message: you are not allowed to run more then 1 report try later
3. user run process as Run As Job -

requirements
1. implement system, tenant, user level
2. implement for user

changes (need serious definition here...this is only idea now)
AD_Process_SimultanousProcessInstance table
columns:
_ID:
RuleType:
SimultanousProcessInstancePerSystem
SimultanousProcessInstancePerClient
SimultanousProcessInstancePerUser
reachedsiminstances: e.g. 10

table records example
record 1. process 1 SimultanousProcessInstancePerSystem=200 reachedsiminstances=130
record 2. process 1 SimultanousProcessInstancePerClient=5 reachedsiminstances=3
record 1. process 1 SimultanousProcessInstancePerUser=2 reachedsiminstances

setup
allowed values 0 = unlimited 1 and above specify count/limit
we setup for all processes and report 0 to be legacy
installation admin setup for critical process other then 0 this enable count for SimultanousProcessInstancePer%
installation owner - eg. cloud owner setup per client max SimultanousProcessInstancePerClient e.g. based on "licences"
user guide - we prompt our client power user to avoid such cases - and save capacities. so power user able setup for tenant their rules.

statistics/controlling for admin
1. calculate max simultaneously process count - important to know statistically how many user
2. report in system issue - when limit reached

Long Term Goal - implement running strategy

  • max running instances - system message: max running instances reached, try later

  • auto-run-as-job/queueing - system message: "max running instances reached", your request was queued as job

Environment

None

Activity

Show:
Carlos Ruiz
February 9, 2019, 11:40 AM

Closing as Potential Idea

The ticket implemented some of the ideas here.

Assignee

Unassigned

Reporter

Norbert Bede

Labels

Tested By

None

Priority

Major
Configure