Anonymous | Login
Project:
RSS
  
News | My View | View Issues | Roadmap | Summary

View Issue DetailsJump to Notes ] Issue History ] Print ]
ID
0051291
TypeCategorySeverityReproducibilityDate SubmittedLast Update
feature request[Retail Modules] Web POSmajorhave not tried2023-01-05 13:022023-01-05 13:02
ReporterAugustoMauchView Statuspublic 
Assigned ToTriage Platform Base 
PrioritynormalResolutionopenFixed in Version
StatusnewFix in branchFixed in SCM revision
ProjectionnoneETAnoneTarget Version
OSAnyDatabaseAnyJava version
OS VersionDatabase versionAnt version
Product VersionSCM revision 
Review Assigned To
Regression level
Regression date
Regression introduced in release
Regression introduced by commit
Triggers an Emergency PackNo
Summary

0051291: Improving the granularity of PersistenceChangeListenerManager will have a positive performance impact

DescriptionWe use the PersistenceChangeListenerManager to react to certain changes in the application state. For instance, configurations of ConfigurationSets use it to reevaluate the configurations when a given state model is updated, and UserActions do something similar to reevaluate the executability rules when relevant models are updated.

Right now PersistenceChangeListenerManager allows to subscribe to whole models (Ticket, UI, etc). This can be problematic because most of the times someone gets subscribed to that listener, it is only interested on a slice of the model (for instance many executability rules listen to changes in any UI property when the only relevant one for them is UI.currentWindow).

Improving the granularity of the slice of the state being listened to will have a positive performance impact because fewer executability rules and configurations will be reevaluated when a UI state action is executed (and we are executing those VERY often). The price to pay will be to compare the value of the listened state slices before and after each action is executed. We should compare the new cost with the saved cost, but it is probably worth it.

Proposed API:
- Maintain listening to the whole model when needed: addListenedModels(['Ticket'])
- Add a new more granular listener: addListenedModelProperty(['UI.currentWindow'])
Steps To Reproduce-
TagsNo tags attached.
Attached Files

- Relationships Relation Graph ] Dependency Graph ]

-  Notes
There are no notes attached to this issue.

- Issue History
Date Modified Username Field Change
2023-01-05 13:02 AugustoMauch New Issue
2023-01-05 13:02 AugustoMauch Assigned To => Triage Platform Base
2023-01-05 13:02 AugustoMauch Triggers an Emergency Pack => No


Copyright © 2000 - 2009 MantisBT Group
Powered by Mantis Bugtracker