Openbravo Issue Tracking System - POS2
View Issue Details
0052052POS2Corepublic2023-04-03 18:182023-09-26 15:03
AugustoMauch 
AugustoMauch 
normalmajorhave not tried
closedfixed 
5
 
 
No
0052052: Reduce the number of times the state is persisted on disk
The state is being persisted way too often, and that might be a cause of some of the performance problems that have an impact on the 'back to the past” state problem.

As part of this issue we will try to reduce the number of times the state is persisted by:

Adding a new property to persisted models if true will trigger a throttled persistence just after the state action takes place

Increasing the length of redux’s default throttle from 100m to a much longer value (i.e. 30s)

This will prevent the state from being persisted on disk every time the user executes any action (log would be generated and TerminalLog is a persisted model state).
-
No tags attached.
related to defect 0050361 closed AugustoMauch Retail Modules Add a check to automatically restart a cashup if current one is already processed 
related to defect 0050925 closed AugustoMauch Retail Modules ERROR WHILE IMPORTING: org.openbravo.mobile.core.process.OutDatedDataChangeException 
related to feature request 0051445 closed javierRodriguez POS2 Create a mechanism to detect that POS is working with a duplicated ticket id 
depends on backport 005224723Q2 closed AugustoMauch POS2 Reduce the number of times the state is persisted on disk 
depends on backport 005224823Q1.3 closed AugustoMauch POS2 Reduce the number of times the state is persisted on disk 
depends on backport 005265622Q3 closed meriem_azaf POS2 Reduce the number of times the state is persisted on disk 
depends on backport 005267522Q4 closed meriem_azaf POS2 Reduce the number of times the state is persisted on disk 
related to feature request 0052092 closed gonzalo_fernandez POS2 Store a single copy of the Terminal in IndexedDB 
diff 52052_mobCore_21Q4.diff (129,079) 2023-09-26 15:03
https://issues.openbravo.com/file_download.php?file_id=18994&type=bug
Issue History
2023-04-03 18:18AugustoMauchNew Issue
2023-04-03 18:18AugustoMauchAssigned To => AugustoMauch
2023-04-03 18:18AugustoMauchTriggers an Emergency Pack => No
2023-04-03 18:20hgbotNote Added: 0148216
2023-04-06 00:28hgbotNote Added: 0148321
2023-04-18 18:18hgbotNote Added: 0148559
2023-04-19 16:02hgbotNote Added: 0148602
2023-04-20 16:00AugustoMauchStatusnew => scheduled
2023-04-20 16:29malsasuaRelationship addedrelated to 0050361
2023-04-20 16:32malsasuaRelationship addedrelated to 0050925
2023-04-20 16:33malsasuaRelationship addedrelated to 0051445
2023-04-20 17:44malsasuaIssue Monitored: malsasua
2023-04-20 17:45PracticsIssue Monitored: Practics
2023-04-21 14:24hgbotResolutionopen => fixed
2023-04-21 14:24hgbotStatusscheduled => closed
2023-04-21 14:24hgbotFixed in Version => RR23Q3
2023-04-21 14:24hgbotNote Added: 0148743
2023-04-21 14:24hgbotNote Added: 0148744
2023-04-21 14:24hgbotNote Added: 0148745
2023-04-21 14:24hgbotNote Added: 0148746
2023-04-26 11:38AugustoMauchStatusclosed => new
2023-04-26 11:38AugustoMauchResolutionfixed => open
2023-04-26 11:38AugustoMauchFixed in VersionRR23Q3 =>
2023-04-26 11:39AugustoMauchStatusnew => scheduled
2023-04-26 11:39AugustoMauchStatusscheduled => resolved
2023-04-26 11:39AugustoMauchResolutionopen => fixed
2023-04-26 11:39AugustoMauchStatusresolved => closed
2023-04-26 16:45hgbotNote Added: 0148950
2023-05-11 14:21rafarodaRelationship addedrelated to 0052092
2023-06-02 12:53meriem_azafStatusclosed => new
2023-06-02 12:53meriem_azafResolutionfixed => open
2023-06-02 12:54meriem_azafStatusnew => scheduled
2023-06-02 12:57meriem_azafRelationship addeddepends on 0052656
2023-06-06 09:07meriem_azafRelationship addeddepends on 0052675
2023-06-07 16:23AugustoMauchStatusscheduled => resolved
2023-06-07 16:23AugustoMauchResolutionopen => fixed
2023-06-07 16:23AugustoMauchStatusresolved => closed
2023-06-20 11:20meriem_azafRelationship addeddepends on 0052786
2023-06-20 11:23meriem_azafRelationship deleteddepends on 0052786
2023-09-26 15:03malsasuaFile Added: 52052_mobCore_21Q4.diff

Notes
(0148216)
hgbot   
2023-04-03 18:20   
Merge Request created: https://gitlab.com/openbravo/product/pmods/org.openbravo.mobile.core/-/merge_requests/492 [^]
(0148321)
hgbot   
2023-04-06 00:28   
Merge Request created: https://gitlab.com/openbravo/product/pmods/org.openbravo.core2/-/merge_requests/1042 [^]
(0148559)
hgbot   
2023-04-18 18:18   
Merge Request created: https://gitlab.com/openbravo/product/pmods/org.openbravo.retail.posterminal/-/merge_requests/1142 [^]
(0148602)
hgbot   
2023-04-19 16:02   
Merge request closed: https://gitlab.com/openbravo/product/pmods/org.openbravo.retail.posterminal/-/merge_requests/1142 [^]
(0148743)
hgbot   
2023-04-21 14:24   
Directly closing issue as related merge request is already approved.

Repository: https://gitlab.com/openbravo/product/pmods/org.openbravo.mobile.core [^]
Changeset: b13853bdbd3df4e89ba982b185b593c5c38259a2
Author: Augusto Mauch <augusto.mauch@openbravo.com>
Date: 21-04-2023 12:24:12
URL: https://gitlab.com/openbravo/product/pmods/org.openbravo.mobile.core/-/commit/b13853bdbd3df4e89ba982b185b593c5c38259a2 [^]

Fixes ISSUE-52052: Reduce the number of times the state will be persisted

This fix means to reduce the number of times the application state is persisted (in localStorage, as of now).
Previous behaviour:
* state actions that generate entries in the Messages model are persisted immediately
* other state actions that belong to persisted models are persisted withing a 100ms throttle
* a persistence is forced when logging out

New behaviour:
* state actions that generate entries in the Messages model are persisted immediately (same as before)
* other state actions that belong to persisted models: a) If they its triggerPersistence is set, they are persisted within a 200ms throttle a) If they its triggerPersistence is not set, they are persisted within a 60s throttle (or persisted when any other persistence with higher priority is triggered)
* a persistence is forced when logging out (same as before)
* a persistence is forced when the window is about to be closed/refreshed when the user is logged in

---
M src/org/openbravo/mobile/core/login/MobileCoreLoginUtilsServlet.java
M web-test/model/application-state/State.test.js
M web/org.openbravo.mobile.core/app/model/application-state/State.js
M web/org.openbravo.mobile.core/app/model/application-state/StateAPI.js
M web/org.openbravo.mobile.core/app/model/application-state/StatePersistence.js
M web/org.openbravo.mobile.core/app/model/business-object/remote-server/RemoteServer.js
M web/org.openbravo.mobile.core/app/model/business-object/terminal-log/TerminalLog.js
M web/org.openbravo.mobile.core/source/model/ob-terminal-model.js
---
(0148744)
hgbot   
2023-04-21 14:24   
Merge request merged: https://gitlab.com/openbravo/product/pmods/org.openbravo.mobile.core/-/merge_requests/492 [^]
(0148745)
hgbot   
2023-04-21 14:24   
Repository: https://gitlab.com/openbravo/product/pmods/org.openbravo.core2 [^]
Changeset: e98c725846817e2155b02d9419a650beb94a30a9
Author: Augusto Mauch <augusto.mauch@openbravo.com>
Date: 21-04-2023 12:24:33
URL: https://gitlab.com/openbravo/product/pmods/org.openbravo.core2/-/commit/e98c725846817e2155b02d9419a650beb94a30a9 [^]

Related to ISSUE-52052: Force the state to be flushed on browser close/refresh if user is logged in

This MR makes sure state is flushed before the user closes/refreshes the POS tab while being logged in. A popup will be displayed asking for conformation, and while the user clicks on it the state will be flushed.

Changes summary:
* `web-jspack/org.openbravo.core2/src/authentication/loginInitActions.js`: Registers the beforeUnload listener when logging in
* `web-jspack/org.openbravo.core2/src/model/session/user-actions/Logout.js`: Unregisters the beforeUnload listener when logging out
* `web-jspack/org.openbravo.core2/src/model/session/__test__/Logout.test.js`: Adapts test

---
M web-jspack/org.openbravo.core2/src/authentication/loginInitActions.js
M web-jspack/org.openbravo.core2/src/model/session/__test__/Logout.test.js
M web-jspack/org.openbravo.core2/src/model/session/user-actions/Logout.js
---
(0148746)
hgbot   
2023-04-21 14:24   
Merge request merged: https://gitlab.com/openbravo/product/pmods/org.openbravo.core2/-/merge_requests/1042 [^]
(0148950)
hgbot   
2023-04-26 16:45   
Repository: https://gitlab.com/openbravo/product/pmods/org.openbravo.core2 [^]
Changeset: 6a667d00eba17ca3ed4a23a57c74432ec8785204
Author: Augusto Mauch <augusto.mauch@openbravo.com>
Date: 26-04-2023 16:27:16
URL: https://gitlab.com/openbravo/product/pmods/org.openbravo.core2/-/commit/6a667d00eba17ca3ed4a23a57c74432ec8785204 [^]

Related to ISSUE-52052: Force the state to be flushed on browser close/refresh if user is logged in

This MR makes sure state is flushed before the user closes/refreshes the POS tab while being logged in. A popup will be displayed asking for conformation, and while the user clicks on it the state will be flushed.

Changes summary:
* `web-jspack/org.openbravo.core2/src/authentication/loginInitActions.js`: Registers the beforeUnload listener when logging in
* `web-jspack/org.openbravo.core2/src/model/session/user-actions/Logout.js`: Unregisters the beforeUnload listener when logging out
* `web-jspack/org.openbravo.core2/src/model/session/__test__/Logout.test.js`: Adapts test

---
M web-jspack/org.openbravo.core2/src/authentication/loginInitActions.js
M web-jspack/org.openbravo.core2/src/model/session/__test__/Logout.test.js
M web-jspack/org.openbravo.core2/src/model/session/user-actions/Logout.js
---