be8e6281f64a7e4950f1af79c175dd28d5115859
This commit improves the performance of reservation by removing the `get_available_quantity` and `update_reserved_quantity` inside `_action_assign` which each does a search on quants with the same domain, both of which are done per move to assign. Instead the quants needed by the moves to reserve are fetched first and are then filtered in memory for each move to reserve from. A new function is provided `get_quants_by_product` which should be used when reserving moves to fetch the relevant quants once and then call `_update_reserved_quantity` on them which will filter them in memory. This avoids searching for quants for every move. The changes in `point_of_sale` and `product_expiry` are all due to the the method signature change and change nothing in the flow. Performance stats: These stats are from the Odoo profiler on the `_action_assign` called on a specific number of moves. For each number of moves the duration was taken multiple times and the average was taken. The 10 moves durations were quite random since the numbers were very small and could be considered an outlier. Before this commit: | No. of Moves | SQL Queries | Duration (s) | | ------------- | ------------- | ------------| | 10 | 70 | 0.044440283 | | 100 | 633 | 0.398992664 | | 1,000 | 4,518 | 6.264924025 | | 10,000 | 46,954 | 79.76809310 | After this commit: | No. of Moves | SQL Queries | Duration (s) | | ------------- | ------------- | ------------| | 10 | 62 | 0.062840558 | | 100 | 540 | 0.323033646 | | 1,000 | 3,893 | 4.062329989 | | 10,000 | 39,259 | 49.92596793 | Besides 10 moves duration, there's a general performance improvement of 20% - 35% closes odoo/odoo#116803 Related: odoo/enterprise#40633 Signed-off-by: Tiffany Chang <tic@odoo.com>
…
…
…
…
…
Odoo
Odoo is a suite of web based open source business apps.
The main Odoo Apps include an Open Source CRM, Website Builder, eCommerce, Warehouse Management, Project Management, Billing & Accounting, Point of Sale, Human Resources, Marketing, Manufacturing, ...
Odoo Apps can be used as stand-alone applications, but they also integrate seamlessly so you get a full-featured Open Source ERP when you install several Apps.
Getting started with Odoo
For a standard installation please follow the Setup instructions from the documentation.
To learn the software, we recommend the Odoo eLearning, or Scale-up, the business game. Developers can start with the developer tutorials
Languages
Python
49.6%
JavaScript
47.8%
SCSS
2%
CSS
0.3%
HTML
0.2%