Bug 1397691

Summary: [scale] UI grids queries all fields while ~10% is actually needed
Product: [oVirt] ovirt-engine Reporter: Roy Golan <rgolan>
Component: Backend.CoreAssignee: Roy Golan <rgolan>
Status: CLOSED WONTFIX QA Contact: meital avital <mavital>
Severity: high Docs Contact:
Priority: unspecified    
Version: 4.1.0CC: bugs, oourfali, rgolan, s.kieske, ykaul
Target Milestone: ---Keywords: Performance
Target Release: ---Flags: sbonazzo: ovirt-4.2-
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-08-21 09:07:47 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: Infra RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Roy Golan 2016-11-23 08:07:18 UTC
Description of problem:
All our UI grids uses under the hood 'select * from VIEW' to populate the grid items.

VMs grid has 14 columns is shows while the column count of the vms view is 161.
i.e it uses than 10% of what the view provides.

Grid name | Grid column count | table(view) column count | 

Vms tab   | 14                | 161
Hosts tab | 11                | 137
Disks     | 9                 | 58

Obviously this is a waste of resources through the entire stack. Working with just the data we need will improve dramatically the system behaviour through all the stack.

This of course is nothing specific to the UI, the dal layer is encouraging us to do get, and getAll on our view entities(vms, vds etc...) all the time for the sake of simplicity and ease of development. We must design the code in a way that it will be compeling to perform more percise queries and compeling to use partial objects to support that.

Version: all
Reproducible: 100%
Expected: Query only the columns we need instead of the whole table.
Effect: Expected to be substantial on io/cpu and overall responsiveness, will publish a comparison
Risk: Since it will require code change and to work with partial data, all code path in the UI that work with that will be affected.

Comment 7 Yaniv Kaul 2017-08-21 08:26:57 UTC
Roy - I think we've decided not to pursue this?

Comment 8 Roy Golan 2017-08-21 09:07:47 UTC
Yes, I'm closing this effort for now.