From owner-freebsd-stable@FreeBSD.ORG Sat Aug 6 06:24:21 2011 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 07030106564A; Sat, 6 Aug 2011 06:24:21 +0000 (UTC) (envelope-from gpalmer@freebsd.org) Received: from noop.in-addr.com (mail.in-addr.com [IPv6:2001:470:8:162::1]) by mx1.freebsd.org (Postfix) with ESMTP id CB79B8FC08; Sat, 6 Aug 2011 06:24:20 +0000 (UTC) Received: from gjp by noop.in-addr.com with local (Exim 4.76 (FreeBSD)) (envelope-from ) id 1QpaIx-000AOp-6x; Sat, 06 Aug 2011 02:24:15 -0400 Date: Sat, 6 Aug 2011 02:24:15 -0400 From: Gary Palmer To: Doug Barton Message-ID: <20110806062415.GB88904@in-addr.com> References: <20110802094226.GA93114@icarus.home.lan> <42039B84-D6CE-4780-AA70-8500B1B32036@gsoft.com.au> <4E37CD13.1070402@digsys.bg> <6E45CE57-491E-4077-B14C-751C73647EFC@gsoft.com.au> <4E3CBB74.9020208@FreeBSD.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4E3CBB74.9020208@FreeBSD.org> X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: gpalmer@freebsd.org X-SA-Exim-Scanned: No (on noop.in-addr.com); SAEximRunCond expanded to false Cc: freebsd-stable@freebsd.org Subject: Re: ZFS directory with a large number of files X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 06 Aug 2011 06:24:21 -0000 On Fri, Aug 05, 2011 at 08:56:36PM -0700, Doug Barton wrote: > On 08/05/2011 20:38, Daniel O'Connor wrote: > > > Ahh, but OP had moved these files away and performance was still poor.. _that_ is the bug. > > I'm no file system expert, but it seems to me the key questions are; how > long does it take the system to recover from this condition, and if it's > more than N $periods is that a problem? We can't stop users from doing > wacky stuff, but the system should be robust in the face of this. Its been quite a while since I worked on the filesystem stuff in any detail but I believe, at least for UFS, it doesn't GC the directory, just truncate it if enough of the entries at the end are deleted to free up at least one fragment or block. If you create N files and then a directory and move the N files into the directory, the directory entry will still be N+1 records into the directory and the only way to "recover" is to recreate the directory that formerly contained the N files. It is theoretically possible to compat the directory but since the code to do that wasn't written when I last worked with UFS I suspect its non trivial. I don't know what ZFS does in this situation Gary