From owner-freebsd-hackers@FreeBSD.ORG Tue Nov 5 22:02:34 2013 Return-Path: Delivered-To: hackers@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 1F894F26; Tue, 5 Nov 2013 22:02:34 +0000 (UTC) (envelope-from jlh@FreeBSD.org) Received: from caravan.chchile.org (caravan.chchile.org [178.32.125.136]) (using TLSv1 with cipher ADH-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id B83602A8F; Tue, 5 Nov 2013 22:02:33 +0000 (UTC) Received: by caravan.chchile.org (Postfix, from userid 1000) id 4757EC2D26; Tue, 5 Nov 2013 22:02:26 +0000 (UTC) Date: Tue, 5 Nov 2013 23:02:26 +0100 From: Jeremie Le Hen To: Baptiste Daroussin Subject: Re: Importing netbsd cdb Message-ID: <20131105220225.GF37879@caravan.chchile.org> Mail-Followup-To: Baptiste Daroussin , hackers@FreeBSD.org References: <20131027232628.GB74512@ithaqua.etoilebsd.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20131027232628.GB74512@ithaqua.etoilebsd.net> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: hackers@FreeBSD.org X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Nov 2013 22:02:34 -0000 Hi Baptiste, On Mon, Oct 28, 2013 at 12:26:28AM +0100, Baptiste Daroussin wrote: > > Here is a code that imports the cdbrw from netbsd into a new lib/libcdbrw > library, the read part is also added to libc but not exposed. > > As an example of using that library I also got the service_mkdb patches from > netbsd that makes it by default emit a cdb database and add a switch to allow it > to still create the old .db database format. > > in the libc, getservent has been modified to first try to read the .cdb files > and fallback on reading the old .db file. (I'm not sure if it is worth keeping > reading the old db format.) > > http://people.freebsd.org/~bapt/cdbrw.diff > > The plan after that is to get pw_util(3) directly generating a cdb file for > pwd.db and spwd.db and modifiy pwd_mkdb(8) so that by default it uses the API > from pw_util(3) and have a switch to fallback on creating in bdb format. > > I also plan to do the same for cap_mkdb(1) and getcap(3). > > With cdb querying is way faster (I don't have number but I can get some it > needed) > the size of the db is also way smaller: > 64K /var/db/services.cdb > 2,1M /var/db/services.db > > Any objection? What are the benefits of this, beside generating a much smaller database? Do you know about benchmarks that compare it against the current database engine used? It would be unfortunate to notice a regression afterward :). Also, if you go ahead, do you have an idea of the migration procedure we could offer to our users, when they will upgrade to 11.0-RELEASE? Cheers, -- Jeremie Le Hen Scientists say the world is made up of Protons, Neutrons and Electrons. They forgot to mention Morons.