dfa34aa3feee109916a24bf9817f97cd1fbaa4a4
modified.
For non-stored computed fields, `_modified_triggers` will traverse the tree (at the cost of extra queries) only to know which record to invalidate in cache. But in most cases, these fields have no data in cache, so they can be ignored from the start, which allows us to prune entire subtrees from the merged tree. By example: With simple write on `show_operations` of one `stock.picking.type`, the `_modified_triggers` will fetch every ids (from database) of `stock.picking` and `stock.move` related to this `stock.picking.type` (For `stock.move`, it is because of the `show_operations = fields.Boolean(related='picking_id.picking_type_id.show_operations'`)) In that case, there isn't any data of `show_operations` (`stock.move`) in cache, then there are nothing to invalidate and the `_modified_triggers` cost is high (extra queries/processing) for nothing. Then we cut parts of the tree when we know that they won't invalidate anything (=> if the cache is empty for the field). Also refactor the way to merge trees to be more efficient. Performance improvements: - For all tests at-install done by the runbot, we gain -+ 3.5% of queries. - In the example above, we reduce the number of queries (potentially bottleneck queries in large DB) from 7 to 4. - In term of CPU (without counting time in SQL), the new version is -+ 20 % faster (on install of stock,purchase,mrp and with --test-tags=/stock,/purchase). closes odoo/odoo#76322 task-2780812 closes odoo/odoo#99274 Related: odoo/enterprise#30951 Signed-off-by: Raphael Collet <rco@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%