Let's be clear here: this is a major performance *regression*. To the point that it's effectively unusable with a large number of rules.
I've got comparisons from two production clouds, one liberty, one pike.
The use case is a security group with 2000 rules, added 50 at a time. The final chunk of 50 takes about 12 seconds liberty, and over 5 minutes on pike (the job doing this times out).
With this change, using a vanilla devstack, and two use cases:
1. Adding 1000 rules in one shot, to an empty SG, and
2. Adding 2000 rules to an SG, 50 at a time,
I get these numbers. On stock master:
1. over 30 minutes
2. Hours and hours... didn't let it finish.
After this change:
1. 1m20s
2. 127 seconds
Still not great, but back on par with liberty.
Is there already a rally job testing API responses? If so, I can add to that. If not, we should really consider making a comprehensive api performance regression job, not just one-offing, IMO.
The fix above doesn't address single rule creates, which are likely just as hosed, too. But I'm not out to boil the ocean here, just make things a little better.
Let's be clear here: this is a major performance *regression*. To the point that it's effectively unusable with a large number of rules.
I've got comparisons from two production clouds, one liberty, one pike.
The use case is a security group with 2000 rules, added 50 at a time. The final chunk of 50 takes about 12 seconds liberty, and over 5 minutes on pike (the job doing this times out).
With this change, using a vanilla devstack, and two use cases:
1. Adding 1000 rules in one shot, to an empty SG, and
2. Adding 2000 rules to an SG, 50 at a time,
I get these numbers. On stock master:
1. over 30 minutes
2. Hours and hours... didn't let it finish.
After this change:
1. 1m20s
2. 127 seconds
Still not great, but back on par with liberty.
Is there already a rally job testing API responses? If so, I can add to that. If not, we should really consider making a comprehensive api performance regression job, not just one-offing, IMO.
The fix above doesn't address single rule creates, which are likely just as hosed, too. But I'm not out to boil the ocean here, just make things a little better.