Bug 1041602

Summary: [RFE][swift]: Reduce pending update flush contention for container listings
Product: Red Hat OpenStack Reporter: RHOS Integration <rhos-integ>
Component: RFEsAssignee: RHOS Maint <rhos-maint>
Status: CLOSED UPSTREAM QA Contact:
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: unspecifiedCC: markmc, yeylon
Target Milestone: ---Keywords: FutureFeature
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
URL: https://blueprints.launchpad.net/swift/+spec/reduce-container-contention
Whiteboard: upstream_milestone_none upstream_status_unknown upstream_definition_new
Fixed In Version: Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-03-19 16:51:06 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description RHOS Integration 2013-12-12 18:11:53 UTC
Cloned from launchpad blueprint https://blueprints.launchpad.net/swift/+spec/reduce-container-contention.

Description:

Instead of always flushing the pending update log in list_objects_iter(),  check if there is a prefix parameter, and if so, only flush if:
(a) The log file reached a size threshhold (similar to the PUT logic) or an age threshhold
(b) The log file has an entry where 'obj'=<some value with the prefix> (a flush is required for correctness)
I think this could reduce the contention/frequency of flushing (and cause less fsync())  when listings are frequent.

Specification URL (additional information):

None