From mboxrd@z Thu Jan 1 00:00:00 1970 From: Benjamin Marzinski Date: Tue, 25 Aug 2015 16:10:21 -0500 Subject: [Cluster-devel] [GFS2 PATCH 0/2 v2] readdir cookie patches Message-ID: <1440537023-17455-1-git-send-email-bmarzins@redhat.com> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit These two patches change the readdir cookies to format that should last a lot longer before there are collisions. Unlike my last version, they store the computed cookie in the gfs2_dirent structure, which keeps their performance on small directories similar to the old code. After that you start reaching the point where hash indexes reach the maximum depth, and the new code stops needing to sort them, and performance of the new code quickly surpasses the old code. For instance, when I contrived a situation where there were 1000 dirents with the same hash index, the new code "ls -f" time was a less than a tenth of the old code, 0.003s vs 0.036s. However, this is a pretty unrealistic size, since with 131072 hash buckets, you shouldn't expect this many dirents per average bucket until you have around 130 million files in a directory. Benjamin Marzinski (2): gfs2: keep offset when splitting dir leaf blocks gfs2: change gfs2 readdir cookie fs/gfs2/dir.c | 160 ++++++++++++++++++++++++++++++--------- fs/gfs2/incore.h | 3 + fs/gfs2/ops_fstype.c | 3 + fs/gfs2/super.c | 12 +++ include/uapi/linux/gfs2_ondisk.h | 9 ++- 5 files changed, 148 insertions(+), 39 deletions(-) -- 1.8.3.1