summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorMatt Riedemann <mriedem.os@gmail.com>2017-04-18 18:10:06 -0400
committerSean Dague <sean@dague.net>2017-05-27 10:15:25 +0000
commit46ba7e8df5a2d11fbca72f9b8a0b7d8cc1bbe06f (patch)
treedceb22877d6bf5d690de8870cceb0afa4466fe56 /doc
parent0cd67d23bd55a7b6cf273a94bcc4f62134a1dc93 (diff)
downloadnova-46ba7e8df5a2d11fbca72f9b8a0b7d8cc1bbe06f.tar.gz
Deprecate TypeAffinityFilter
This deprecates the TypeAffinityFilter. This filter, which is really an anti-affinity filter for flavors, attempts to ensure that no two flavors show up on the same host. However, to do this it relies on the flavors.id primary key, which is subject to "change" if/when the admin deletes and recreates a flavor (this is how Horizon allows you to 'edit' a flavor). When you do that, you have a new flavor with a new id primary key and the filter will not know the difference. So you could really end up with more than one m1.large instance on the same host, which defeats the purpose of the filter. This filter is also problematic for blueprint put-host-manager-instance-info-on-a-diet because in that blueprint we want to stop sending full instance objects over RPC from all compute services to the scheduler just to track affinity and anti-affinity. All we really need for the ServerGroupAffinityFilter and ServerGroupAntiAffinityFilter is the list of instance uuids on a host, not the full object. If we can get rid of TypeAffinityFilter, we can change the compute<>scheduler RPC calls to just pass the list of instance uuids for update_instance_info rather than sending an InstanceList. Change-Id: I660e0316b11afcad65c0fe7bd167ddcec9239a8b
Diffstat (limited to 'doc')
-rw-r--r--doc/source/filter_scheduler.rst9
1 files changed, 9 insertions, 0 deletions
diff --git a/doc/source/filter_scheduler.rst b/doc/source/filter_scheduler.rst
index 8e41e87039..407f23e7df 100644
--- a/doc/source/filter_scheduler.rst
+++ b/doc/source/filter_scheduler.rst
@@ -164,6 +164,15 @@ There are many standard filter classes which may be used
* |TypeAffinityFilter| - Only passes hosts that are not already running an
instance of the requested type.
+
+ .. warning:: TypeAffinityFilter is deprecated for removal in the
+ 17.0.0 Queens release. There is no replacement planned for this
+ filter. It is fundamentally flawed in that it relies on the
+ ``flavors.id`` primary key and if a flavor "changed", i.e. deleted
+ and re-created with new values, it will result in this filter
+ thinking it is a different flavor, thus breaking the usefulness of
+ this filter.
+
* |AggregateTypeAffinityFilter| - limits instance_type by aggregate.
This filter passes hosts if no instance_type key is set or
the instance_type aggregate metadata value contains the name of the