From: Larry McVoy <lm@bitmover.com>
To: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Larry McVoy <lm@bitmover.com>, Keith Owens <kaos@ocs.com.au>,
"Eric S. Raymond" <esr@thyrsus.com>, Dave Jones <davej@suse.de>,
"Eric S. Raymond" <esr@snark.thyrsus.com>,
Linus Torvalds <torvalds@transmeta.com>,
Marcelo Tosatti <marcelo@conectiva.com.br>,
linux-kernel@vger.kernel.org, kbuild-devel@lists.sourceforge.net
Subject: Re: State of the new config & build system
Date: Fri, 28 Dec 2001 09:43:19 -0800 [thread overview]
Message-ID: <20011228094318.B3727@work.bitmover.com> (raw)
In-Reply-To: <20011227180148.A3727@work.bitmover.com> <E16JxmP-0000Yo-00@the-village.bc.nu>
In-Reply-To: <E16JxmP-0000Yo-00@the-village.bc.nu>; from alan@lxorguk.ukuu.org.uk on Fri, Dec 28, 2001 at 02:14:37PM +0000
On Fri, Dec 28, 2001 at 02:14:37PM +0000, Alan Cox wrote:
> > Ah, OK, I get it. Hey, would it help to have a dbm interface compat
> > library which uses mmap instead of building the db in brk() space?
>
> mmap for db file seems to be slower.
I'll need to see some numbers to back up that statement, please. If you
look at the graphs produced by LMbench, they tell you exactly what
you need to know. It's true that for very small files, 8K and under,
using read() to access them is faster than using mmap, due to the extra
work of setting up and tearing down the mapping. To quantify this, a
4KB open/read/close is 500MB/sec, but an open/mmap/access/unmap/close
is 425MB/sec. By the time we hit 16K, mmap wins by 15% and just gets
better from there.
And that all assumes you are doing large reads, which in db code you
are not. So mmap will look better even on the small files if you
are doing little DB style accesses.
> For basic db hash usage and raw speed
> nothing seems to touch tdb (Tridge's db hack).
Taking nothing away from Tridge, I like Tridge, I'd like to see numbers.
I'm sure that Tridge's stuff is great, but we were very motivated to
go well beyond the normal effort when we wrote this code.
A multithreaded version of the code that I sent to Keith was doing 455,000
lookups/second on an 8way 200Mhz R4400 SGI box in 1996. Each lookup
was locked. If you assume perfect scaling (it was) and you assume the
locks took 0 time (they didn't), that's 1.75 usecs for each lookup.
On a machine with horrible memory latency and a large dataset.
We designed the MDBM code to be scalable (its 64bit clean), portable
(runs on 20+ platforms today), multiplatform (metadata is stored in
network byte order on disk), and fast (we knew exactly what the
instruction and data cache footprint was for hot cache, and we made
sure that you did at most 2 disk accesses, 1 was typical, to get at
any item in a cold cache).
SGI uses this code for their name server, every process mmaps the
name server cache.
We use this code all over BitKeeper.
> Its also portable code which
> is important since the tool has to be built on the compiling host.
The code works on Windows, MacOS X, and basically all Unix platforms.
Yeah, yeah, I pounding my chest and I'm sorry, but I get beat up all the
time that the BK license doesn't let you reuse code and this code is part
of BK that we broke out and licensed under the GPL. The point being
that if there is reusable code in BK, we're willing to let people use
it under whatever license they want. It would be nice if that actually
happened after all the yelling and screaming.
--
---
Larry McVoy lm at bitmover.com http://www.bitmover.com/lm
next prev parent reply other threads:[~2001-12-28 17:43 UTC|newest]
Thread overview: 140+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-12-28 0:24 State of the new config & build system Eric S. Raymond
2001-12-28 0:54 ` Dave Jones
2001-12-28 0:57 ` Eric S. Raymond
2001-12-28 1:15 ` Larry McVoy
2001-12-28 1:35 ` Keith Owens
2001-12-28 1:37 ` Larry McVoy
2001-12-28 1:41 ` Keith Owens
2001-12-28 1:47 ` Larry McVoy
2001-12-28 1:57 ` Keith Owens
2001-12-28 2:01 ` Larry McVoy
2001-12-28 14:14 ` Alan Cox
2001-12-28 14:16 ` Keith Owens
2001-12-28 17:14 ` Christer Weinigel
2001-12-28 17:39 ` Alan Cox
2001-12-29 1:44 ` Keith Owens
2001-12-29 4:09 ` Legacy Fishtank
2001-12-30 3:34 ` Viktor Rosenfeld
2001-12-30 4:24 ` Dave Jones
2001-12-30 14:37 ` Viktor Rosenfeld
2001-12-29 17:11 ` Christer Weinigel
2001-12-28 17:43 ` Larry McVoy [this message]
2001-12-28 18:17 ` Alan Cox
2001-12-28 20:54 ` Larry McVoy
2001-12-29 9:24 ` Anton Blanchard
2001-12-29 16:28 ` Larry McVoy
2002-01-01 4:03 ` Mike Touloumtzis
2002-01-01 8:26 ` Keith Owens
2002-01-06 8:55 ` [kbuild-devel] " Martin Mares
2002-01-06 22:19 ` Keith Owens
2002-01-09 17:16 ` Martin Mares
2002-01-01 8:55 ` Peter Samuelson
2001-12-28 22:31 ` Martin Dalecki
2001-12-28 23:02 ` Eric S. Raymond
2001-12-28 14:24 ` Alan Cox
2001-12-28 20:56 ` Kai Germaschewski
2001-12-28 21:16 ` Legacy Fishtank
2001-12-28 22:17 ` Linus Torvalds
2001-12-28 23:44 ` Kai Germaschewski
2001-12-30 12:05 ` [kbuild-devel] " Christoph Hellwig
2001-12-29 1:27 ` Keith Owens
2001-12-29 1:53 ` Alan Cox
2001-12-29 1:57 ` Keith Owens
2001-12-29 2:10 ` Alan Cox
2001-12-29 4:06 ` Legacy Fishtank
2001-12-29 13:32 ` Rik van Riel
2001-12-29 20:23 ` Linus Torvalds
2001-12-29 1:26 ` Keith Owens
2001-12-29 3:58 ` Legacy Fishtank
2001-12-29 4:21 ` Mike Castle
2001-12-29 4:44 ` Keith Owens
2001-12-29 4:52 ` Arnaldo Carvalho de Melo
2001-12-29 11:10 ` PORTUGUês EM?? Astinus
2001-12-29 6:59 ` State of the new config & build system Nicholas Knight
2001-12-29 7:42 ` Miles Lane
2001-12-29 8:02 ` Nicholas Knight
2001-12-29 8:11 ` Mike Castle
2001-12-29 7:41 ` Legacy Fishtank
2001-12-29 8:13 ` Andrew Morton
2001-12-29 9:40 ` Daniel Phillips
2002-01-03 10:46 ` Pavel Machek
2002-01-03 20:29 ` Dave Jones
2002-01-03 20:35 ` Alexander Viro
2002-01-03 20:46 ` Keith Owens
2002-01-03 21:30 ` Alexander Viro
2002-01-03 21:50 ` Keith Owens
2002-01-03 22:11 ` Alexander Viro
2002-01-03 22:44 ` Keith Owens
2002-01-04 1:49 ` Andreas Bombe
2002-01-04 2:31 ` Keith Owens
2002-01-04 21:40 ` Andreas Bombe
2001-12-28 22:51 ` Larry McVoy
2001-12-29 2:54 ` Keith Owens
2001-12-29 12:43 ` Kai Germaschewski
2001-12-28 1:22 ` Dave Jones
2001-12-28 1:36 ` [kbuild-devel] " Tom Rini
2001-12-28 1:36 ` Eric S. Raymond
2001-12-28 1:38 ` Keith Owens
2001-12-28 1:30 ` [kbuild-devel] " Keith Owens
2001-12-28 9:26 ` Legacy Fishtank
2001-12-28 9:42 ` Keith Owens
2001-12-28 16:34 ` Alan Cox
2001-12-28 20:01 ` Larry McVoy
2001-12-28 20:38 ` Richard Gooch
2001-12-29 0:50 ` Keith Owens
2001-12-29 0:55 ` Larry McVoy
2001-12-28 18:02 ` Linus Torvalds
2001-12-28 18:24 ` Alan Cox
2001-12-28 22:06 ` Linus Torvalds
2001-12-28 22:08 ` [kbuild-devel] " Eric S. Raymond
2001-12-28 22:29 ` Larry McVoy
2001-12-28 22:29 ` Linus Torvalds
2001-12-28 22:58 ` Eric S. Raymond
2001-12-29 9:18 ` Giacomo A. Catenazzi
2001-12-31 22:51 ` Horst von Brand
2001-12-31 22:55 ` Arnaldo Carvalho de Melo
2002-01-01 1:21 ` Peter Samuelson
2001-12-28 19:08 ` Riley Williams
2001-12-28 19:12 ` Eric S. Raymond
2001-12-28 20:26 ` Alexander Viro
2001-12-28 20:39 ` Eric S. Raymond
2001-12-30 13:58 ` [kbuild-devel] " Christoph Hellwig
2001-12-30 17:50 ` Jeff Garzik
2001-12-30 20:53 ` Hartmut Holz
2001-12-30 20:15 ` Adrian Bunk
2002-01-01 4:29 ` Horst von Brand
2001-12-31 23:32 ` Horst von Brand
2001-12-28 23:20 ` Alan Cox
2001-12-30 11:42 ` [kbuild-devel] " Kai Henningsen
2001-12-31 8:24 ` GOTO Masanori
2001-12-31 6:50 ` GOTO Masanori
2001-12-28 22:11 ` Linus Torvalds
2001-12-28 22:31 ` Eric S. Raymond
2001-12-29 21:24 ` [kbuild-devel] " Tom Rini
2001-12-29 22:43 ` Eric S. Raymond
2001-12-29 23:12 ` Tom Rini
2001-12-30 0:22 ` Russell King
2001-12-30 0:11 ` Eric S. Raymond
2001-12-30 5:39 ` Rob Landley
2001-12-30 13:59 ` Alan Cox
2001-12-30 17:14 ` David Woodhouse
2001-12-30 17:32 ` Tom Rini
2001-12-30 17:44 ` Russell King
2001-12-28 20:39 ` Legacy Fishtank
2001-12-28 20:41 ` Legacy Fishtank
2001-12-28 20:45 ` Eric S. Raymond
2001-12-28 21:19 ` Legacy Fishtank
2001-12-28 21:12 ` Eric S. Raymond
2001-12-28 22:27 ` Linus Torvalds
2001-12-28 23:05 ` Benjamin LaHaise
2001-12-29 0:59 ` Legacy Fishtank
2001-12-29 19:12 ` Linus Torvalds
2001-12-29 3:21 ` [kbuild-devel] " Keith Owens
2001-12-28 23:13 ` Alan Cox
2001-12-28 23:04 ` Eric S. Raymond
2001-12-28 23:10 ` Linus Torvalds
2001-12-28 23:12 ` Martin Dalecki
2001-12-29 13:01 ` Rik van Riel
2001-12-28 22:47 ` Martin Dalecki
-- strict thread matches above, loose matches on Subject: below --
2001-12-28 23:25 Stewart Smith
2001-12-29 12:01 Wayne.Brown
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20011228094318.B3727@work.bitmover.com \
--to=lm@bitmover.com \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=davej@suse.de \
--cc=esr@snark.thyrsus.com \
--cc=esr@thyrsus.com \
--cc=kaos@ocs.com.au \
--cc=kbuild-devel@lists.sourceforge.net \
--cc=linux-kernel@vger.kernel.org \
--cc=marcelo@conectiva.com.br \
--cc=torvalds@transmeta.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox