Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.
Bug 236099 - Merge transactions during createi (open) on gfs2
Summary: Merge transactions during createi (open) on gfs2
Alias: None
Product: Fedora
Classification: Fedora
Component: GFS-kernel
Version: rawhide
Hardware: All
OS: Linux
Target Milestone: ---
Assignee: Steve Whitehouse
QA Contact:
Depends On: 242066
Blocks: 338651
TreeView+ depends on / blocked
Reported: 2007-04-11 22:09 UTC by Steve Whitehouse
Modified: 2014-04-28 11:47 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Enhancement
Doc Text:
Clone Of:
Last Closed:

Attachments (Terms of Use)
GFS2: combine functions alloc_dinode and make_dinode (deleted)
2012-05-30 19:45 UTC, Robert Peterson
no flags Details | Diff

Description Steve Whitehouse 2007-04-11 22:09:50 UTC
Creating a file on gfs2 is broken down into several transactions, at least some
of which should be merged for greater performance.

In addition, it should also be possible to reduce the number of directory
lookups which are required further improving the situation.

Comment 1 Steve Whitehouse 2011-05-10 17:38:21 UTC
Due to recent updated to the upstream code, this task is becoming easier. The ACL/xattr updates were a first part of this, and the currently pending changes to eliminate ops_inode.c are another step towards this goal.

Comment 2 Steve Whitehouse 2011-05-16 10:43:43 UTC
As of today, another set of patches have gone into the -nmw git tree which clean up the inode creation code. We are another step closer to this goal now that it is possible to see the wood for the trees in this area.

Comment 3 Robert Peterson 2012-05-30 19:45:51 UTC
Created attachment 587836 [details]
GFS2: combine functions alloc_dinode and make_dinode

This experimental RHEL6 patch combines two of the transactions by
combining functions alloc_dinode and make_dinode. Getting the
lock ordering was quite tricky. The good news is that it passed
the SAS calibration workload, which is a brutal workout. The bad
news is that it didn't seem to improve GFS2 performance noticeably.
So I don't know if we want to pursue this or not.

Comment 4 Steve Whitehouse 2012-10-31 11:54:16 UTC
An initial patch for this has been posted to cluster-devel today. There is still further work to do, but the initial patch has resolved the ordering issue between creation on the incore inode and the other processes required, so that this should now become much easier to do.

Note You need to log in before you can comment on or make changes to this bug.