Sequential API requests in volume list as a bottleneck

Bug #1660025 reported by Mateusz Kowalski on 2017-01-28
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Dashboard (Horizon)
Oleksiy Petrenko

Bug Description indicates Nova API not allowing to pass list of instance ids in order to receive only data necessary for Horizon and reduce any overhead

As long as Nova is not patched to allow this, from Horizon side _get_attached_instance_ids and _get_instances can be parallelized. Also volume_ids_with_snapshots can be run in parallel with the other ones.

Apart from this, as Nova API calls Glance to map each instance with corresponding image which is definitely not needed for assignment between volume and instance, we can forge to be empty for each instance in Volumes view. This further reduces time required for the whole view to render.

This has significant impact in the following case
* environment with a lot of instances
* environment with instances boot from image which is not available anymore (as in this case Nova calls Glance for each(!) instance separately)

Fix proposed to branch: master

Changed in horizon:
assignee: nobody → Mateusz Kowalski (makowals)
status: New → In Progress
Changed in horizon:
milestone: none → next
importance: Undecided → High
tags: added: performance
Changed in horizon:
importance: High → Wishlist
milestone: next → pike-1
Changed in horizon:
milestone: pike-1 → pike-2
Changed in horizon:
milestone: pike-2 → pike-3
Changed in horizon:
milestone: pike-3 → pike-rc1
Changed in horizon:
milestone: pike-rc1 → queens-1
Ying Zuo (yingzuo) on 2017-10-22
Changed in horizon:
milestone: queens-1 → queens-2
Ying Zuo (yingzuo) on 2017-12-07
Changed in horizon:
milestone: queens-2 → queens-3
Ying Zuo (yingzuo) on 2018-01-27
Changed in horizon:
milestone: queens-3 → next

Change abandoned by Ivan Kolodyazhny (<email address hidden>) on branch: master
Reason: This review is > 4 months without comment, and failed Jenkins the last time it was checked. We are abandoning this for now. Feel free to reactivate the review by pressing the restore button and leaving a 'recheck' comment to get fresh test results.

Ivan Kolodyazhny (e0ne) on 2018-09-11
Changed in horizon:
milestone: next → stein-1
Changed in horizon:
assignee: Mateusz Kowalski (makowals) → Beth Elwell (bethelwell)
Changed in horizon:
assignee: Beth Elwell (bethelwell) → Oleksiy Petrenko (enacero)

Submitter: Zuul
Branch: master

commit 9810711e75723fc6d66772e10dc0a6ffc8e74198
Author: Mateusz Kowalski <email address hidden>
Date: Thu Mar 16 10:55:13 2017 +0100

    Make API calls in Volumes view parallel

    In order to increase rendering speed, make
    api.cinder.volume_list_paged, api.nova.server_list
    and api.cinder.volume_snapshot_list parallel.
    For admin panel also api.keystone.tenant_list is

    Closes-bug: #1660025
    Partial-implements: blueprint fetch-resources-in-parallel

    Change-Id: Ic789ff98a59ba792d77103e7778883562e7977d2

Changed in horizon:
status: In Progress → Fix Released

This issue was fixed in the openstack/horizon development milestone.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Related blueprints