3f35fe6a88
The performance of filtering instance by IP is poor, due to the fact that the IP address is part of a JSON-encoded filed and we need to unpack the field and do a search on the field for each record in instances table, we have to iterate one by one to find the instance that matches the request. As discussed in Queens PTG[1], one possible solution is to get filtered ports from Neutron and retrieve the instance uuid from the port.device_id and then merge to the other filters. As Nova provides regex matching manner filtering for IP filter, so this depend on Neutron changes that add substring matching functionality to the GET /ports API[2] The performance test results of the POC are presented in[3]. [1]http://lists.openstack.org/pipermail/openstack-dev/2017-September/122258.html [2]https://bugs.launchpad.net/neutron/+bug/1718605 [3]http://lists.openstack.org/pipermail/openstack-dev/2018-January/125990.html Depends-On: I9549b2ba676e1bad0812682c3f3f3c97de15f5f6 Co-Authored-By: Matt Riedemann <mriedem.os@gmail.com> Implements: blueprint improve-filter-instances-by-ip-performance Change-Id: I06aabfdce4aaefde080c7e122552ce4f36da5804
7 lines
204 B
YAML
7 lines
204 B
YAML
---
|
|
features:
|
|
- When ``IP address substring filtering`` extension
|
|
is available in Neutron, Nova will proxy the instance
|
|
list with ``ip`` or ``ip6`` filter to Neutron for
|
|
better performance.
|