Bug 1041251 - [RFE][nova]: Combine tables associated with compute_nodes into it to remove DB join
Summary: [RFE][nova]: Combine tables associated with compute_nodes into it to remove D...
Keywords:
Status: CLOSED UPSTREAM
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: RFEs
Version: unspecified
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
: ---
Assignee: RHOS Maint
QA Contact:
URL: https://blueprints.launchpad.net/nova...
Whiteboard: upstream_milestone_none upstream_stat...
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2013-12-12 14:05 UTC by RHOS Integration
Modified: 2015-03-19 17:06 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Enhancement
Doc Text:
Clone Of:
Environment:
Last Closed: 2015-03-19 17:06:27 UTC
Target Upstream Version:


Attachments (Terms of Use)

Description RHOS Integration 2013-12-12 14:05:23 UTC
Cloned from launchpad blueprint https://blueprints.launchpad.net/nova/+spec/db-compute-node-stats-remove.

Description:

Through the initial test with DB joins, it is found the performance to call compute_node_get_all() is bad.

When we have 10K compute nodes, and each compute node has 20 corresponding records in the table compute_node_stats, the time to read all the compute nodes from DB is about 16.89 seconds.

That significantly affects the scalability of compute node. The bp is try to combine compute_node_stats into compute_nodes, to improve the performance of the above function by removing "joinedload".

We also did some tests. When we have 10K compute nodes, and there doesn't exist compute_node_stats table but a JSON encoded python dictionary (with 20 <key, value> pairs for a dictionary), the time to read all the compute nodes from DB and decode the dictionary is about 1.32 seconds, which is huge difference!


Specification URL (additional information):

None


Note You need to log in before you can comment on or make changes to this bug.