Optimization: Don't prune events on every get

Bug #1287757 reported by Adam Young
14
This bug affects 4 people
Affects Status Importance Assigned to Milestone
OpenStack Identity (keystone)
Fix Released
High
Morgan Fainberg
Kilo
Fix Released
High
Morgan Fainberg

Bug Description

_prune_expired_events_and_get always locks the backend. Store the time of the oldest event so that the prune process can be skipped if none of the events have timed out.

(decided at keystone midcycle - 2015/07/17) -- MorganFainberg
The easiest solution is to do the prune on issuance of new revocation event instead on the get.

Tags: performance
Dolph Mathews (dolph)
description: updated
Changed in keystone:
status: New → Triaged
tags: added: performance
Xurong Yang (idopra)
Changed in keystone:
assignee: nobody → Xurong Yang (idopra)
Changed in keystone:
importance: Wishlist → High
summary: - Optimization: Skip Prune process in revocation backends
+ Optimization: Don't prune events on every get
description: updated
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to keystone (master)

Fix proposed to branch: master
Review: https://review.openstack.org/203085

Changed in keystone:
assignee: Xurong Yang (idopra) → Morgan Fainberg (mdrnstm)
status: Triaged → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to keystone (stable/kilo)

Fix proposed to branch: stable/kilo
Review: https://review.openstack.org/203104

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to keystone (master)

Reviewed: https://review.openstack.org/203085
Committed: https://git.openstack.org/cgit/openstack/keystone/commit/?id=d7e529911c496c71effa1d51e1ecf2399ef359f1
Submitter: Jenkins
Branch: master

commit d7e529911c496c71effa1d51e1ecf2399ef359f1
Author: Morgan Fainberg <email address hidden>
Date: Fri Jul 17 08:28:30 2015 -0700

    Do not remove expired revocation events on "get"

    Revocation event pruning should only occur on new revocations. This
    will limit the volume of churn to the DB/KVS store for revocation
    events (and impact to performance).

    Change-Id: I1ad7491c54023915c74610287a5095589f12d5c1
    Closes-Bug: #1287757

Changed in keystone:
status: In Progress → Fix Committed
Changed in keystone:
milestone: none → liberty-2
status: Fix Committed → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to keystone (stable/kilo)

Reviewed: https://review.openstack.org/203104
Committed: https://git.openstack.org/cgit/openstack/keystone/commit/?id=0fe2b70d495563892bfd6459588bd6d0ac694ee7
Submitter: Jenkins
Branch: stable/kilo

commit 0fe2b70d495563892bfd6459588bd6d0ac694ee7
Author: Morgan Fainberg <email address hidden>
Date: Fri Jul 17 08:28:30 2015 -0700

    Do not remove expired revocation events on "get"

    Revocation event pruning should only occur on new revocations. This
    will limit the volume of churn to the DB/KVS store for revocation
    events (and impact to performance).

    Change-Id: I1ad7491c54023915c74610287a5095589f12d5c1
    Closes-Bug: #1287757
    (cherry picked from commit d7e529911c496c71effa1d51e1ecf2399ef359f1)

Thierry Carrez (ttx)
Changed in keystone:
milestone: liberty-2 → 8.0.0
no longer affects: keystone/liberty
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.