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

View Issue DetailsJump to Notes ] Issue History ] Print ]
ID
0032023
TypeCategorySeverityReproducibilityDate SubmittedLast Update
defect[Openbravo ERP] 04. Warehouse managementmajoralways2016-01-27 13:092016-07-20 11:34
ReporterioritzCiaView Statuspublic 
Assigned Toaferraz 
PriorityhighResolutionfixedFixed in Version3.0PR16Q2
StatusclosedFix in branchFixed in SCM revisionca36991325a4
ProjectionnoneETAnoneTarget Version3.0PR16Q2
OSAnyDatabaseAnyJava version
OS VersionDatabase versionAnt version
Product VersionSCM revision 
Review Assigned Todmiguelez
Web browserGoogle Chrome
ModulesCore
Regression level
Regression date
Regression introduced in release
Regression introduced by commit
Triggers an Emergency PackNo
Summary

0032023: CostingUtils.getCurrentValuedStock method consumes unneeded memory

DescriptiongetCurrentValuedStock method in CostingUtils class consumes more memory than it should. It lists the query results where it should use scrolling technique for it.

It should also be evaluated if all the calculation could be done in one query instead of having to loop.

Also with new fields added in cost adjustment developments, the joins to the MaterialTransaction and ShipmentInOut tables are not necessary, neither is the grouping and a couple of coalesces done in the query.
Steps To ReproduceExecute the costing background process.
TagsPerformance
Attached Files

- Relationships Relation Graph ] Dependency Graph ]
related to defect 00321903.0PR16Q2 closedaferraz Performance problems on the PriceDifferenceBackground process 
related to defect 00334113.0PR17Q1 closeddmiguelez Bad performance Costing Background process using 3 types of adjustments 
related to defect 0035959 closedmarkmm82 Performance problem in Costing Migration Process with high volume of records in m_transaction table 

-  Notes
(0084361)
hgbot (developer)
2016-02-19 12:39

Repository: erp/devel/pi
Changeset: ca36991325a4e9680fbbb9fd36c755ae3f5500de
Author: Alvaro Ferraz <alvaro.ferraz <at> openbravo.com>
Date: Mon Feb 15 19:53:12 2016 +0100
URL: http://code.openbravo.com/erp/devel/pi/rev/ca36991325a4e9680fbbb9fd36c755ae3f5500de [^]

Fixes issue 32023 & Fixes issue 32190: Improve PriceDifference performance

Some improvements have been done in CostingUtils.getCurrentValuedStock, CostAdjustmentUtils.getValuedStockOnMovementDateByAttrAndLocator, CostAdjustmentUtils.getValuedStockOnTransactionDate and CostingMigrationProcess.getCurrentValuedStock methods:
- Use TransactionCost.PROPERTY_ACCOUNTINGDATE field instead of coalesce(ShipmentInOut.PROPERTY_ACCOUNTINGDATE, MaterialTransaction.PROPERTY_MOVEMENTDATE) to avoid join with ShipmentInOutLine and ShipmentInOut tables.
- Use a scroll instead of looping through a list.
- Loop can not be avoid due to the need of calculate conversion rate recursively.
- Clear every 100 loops will not be done as DAL objects will not be loaded in memory and to avoid session cleared errors.
Retrieve only one or two results in some queries where more results were not needed.
Use isEmpty() instead of size().
Retrieve only lineno field instead of full object in CostAdjustmentUtils.getNewLineNo method.
Improve CostAdjustmentUtils.getTrxCost method.
Do a clear every 100 loops in PriceDifferenceProcess.processPriceDifference method to improve performance.

---
M src/org/openbravo/costing/AverageAlgorithm.java
M src/org/openbravo/costing/AverageCostAdjustment.java
M src/org/openbravo/costing/CostAdjustmentUtils.java
M src/org/openbravo/costing/CostingMigrationProcess.java
M src/org/openbravo/costing/CostingUtils.java
M src/org/openbravo/costing/PriceDifferenceProcess.java
---
(0084363)
dmiguelez (developer)
2016-02-19 12:39

Code Review + Testing Ok
(0085155)
hudsonbot (developer)
2016-03-17 10:56

A changeset related to this issue has been promoted main and to the
Central Repository, after passing a series of tests.

Promotion changeset: https://code.openbravo.com/erp/devel/main/rev/b22fb0500156 [^]
Maturity status: Test

- Issue History
Date Modified Username Field Change
2016-01-27 13:09 ioritzCia New Issue
2016-01-27 13:09 ioritzCia Assigned To => Triage Finance
2016-01-27 13:09 ioritzCia Web browser => Google Chrome
2016-01-27 13:09 ioritzCia Modules => Core
2016-01-27 13:09 ioritzCia Triggers an Emergency Pack => No
2016-01-27 13:09 ioritzCia Tag Attached: Performance
2016-01-27 13:43 ioritzCia Web browser Google Chrome => Google Chrome
2016-01-27 13:45 ioritzCia Web browser Google Chrome => Google Chrome
2016-01-28 18:16 ngarcia Issue Monitored: ngarcia
2016-01-28 18:20 ngarcia Web browser Google Chrome => Google Chrome
2016-01-28 18:20 ngarcia Resolution time => 1456873200
2016-02-04 14:08 aferraz Assigned To Triage Finance => aferraz
2016-02-04 14:08 aferraz Status new => scheduled
2016-02-12 13:53 aferraz Relationship added related to 0032190
2016-02-19 12:39 hgbot Checkin
2016-02-19 12:39 hgbot Note Added: 0084361
2016-02-19 12:39 hgbot Status scheduled => resolved
2016-02-19 12:39 hgbot Resolution open => fixed
2016-02-19 12:39 hgbot Fixed in SCM revision => http://code.openbravo.com/erp/devel/pi/rev/ca36991325a4e9680fbbb9fd36c755ae3f5500de [^]
2016-02-19 12:39 dmiguelez Review Assigned To => dmiguelez
2016-02-19 12:39 dmiguelez Note Added: 0084363
2016-02-19 12:39 dmiguelez Status resolved => closed
2016-03-17 10:56 hudsonbot Checkin
2016-03-17 10:56 hudsonbot Note Added: 0085155
2016-07-20 11:31 aferraz Relationship added related to 0033411
2016-07-20 11:32 aferraz Web browser Google Chrome => Google Chrome
2016-07-20 11:32 aferraz Fixed in Version => 3.0PR16Q2
2016-07-20 11:34 aferraz Web browser Google Chrome => Google Chrome
2016-07-20 11:34 aferraz Target Version => 3.0PR16Q2
2017-05-09 12:31 aferraz Relationship added related to 0035959


Copyright © 2000 - 2009 MantisBT Group
Powered by Mantis Bugtracker