public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: linux-kernel@ton.iguana.be (Ton Hospel)
To: linux-kernel@vger.kernel.org
Subject: Re: Is sendfile all that sexy?
Date: Wed, 17 Jan 2001 08:09:35 +0000 (UTC)	[thread overview]
Message-ID: <943jvv$var$1@post.home.lunix> (raw)
In-Reply-To: <UTC200101161350.OAA141869.aeb@ark.cwi.nl> <943fm9$pjq$1@post.home.lunix> <14949.19028.404458.318735@tzadkiel.efn.org>

In article <14949.19028.404458.318735@tzadkiel.efn.org>,
	Steve VanDevender <stevev@efn.org> writes:
> Ton Hospel writes:
> > In article <UTC200101161350.OAA141869.aeb@ark.cwi.nl>,
> > 	Andries.Brouwer@cwi.nl writes:
> > > I am afraid I have missed most earlier messages in this thread.
> > > However, let me remark that the problem of assigning a
> > > file descriptor is the one that is usually described by
> > > "priority queue". The version of Peter van Emde Boas takes
> > > time O(loglog N) for both open() and close().
> > > Of course this is not meant to suggest that we use it.
> > > 
> > Fascinating ! But how is this possible ? What stops me from
> > using this algorithm from entering N values and extracting 
> > them again in order and so end up with a O(N*log log N)
> > sorting algorithm ? (which would be better than log N! ~ N*logN)
> > 
> > (at least the web pages I found about this seem to suggest you
> > can use this on any set with a full order relation)
> 
> How do you know how to extract the items in order, unless you've already
> sorted them independently from placing them in this data structure?

Because "extract max" is a basic operation of a priority queue,
which I just do N times.

> 
> Besides, there are plenty of sorting algorithms that work only on
> specific kinds of data sets that are better than the O(n log n) bound
> for generalized sorting.  For example, there's the O(n) "mailbox sort".
> You have an unordered array u of m integers, each in the range 1..n;
> allocate an array s of n integers initialized to all zeros, and for i in
> 1..m increment s[u[i]].  Then for j in 1..n print j s[j] times.  If n is
> of reasonable size then you can sort that list of integers in O(m) time.

Yes, I know. that's why you see the "any set with a full order relation"
in there. That basically disallows using extra structure of the elements.

Notice that the radix sort you describe basically hides the log N in the
the representation of a number of max n (which has a length that is
basically log n). It just doesn't account for that because we do the 
operation on processors where these bits are basically handled in parallel,
and so do not end up in the O-notation. Any attempt to make radix sort
handle arbitrary width integers on a fixed width processor will make the
log N reappear.

Having said that, in the particular case of fd allocation, we DO have
additional structure (in fact, it's indeed integers in 0..n). So I can
very well imagine the existance of a priority queue for this where the
basic operators are better than O(log N). I just don't understand how
it can exist for a generic priority queue algorithm (which the
Peter van Emde Boas method seems to be. Unfortunately I have found no
full description of the algorithm that's used to do the insert/extract
in the queue nodes yet).
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

  reply	other threads:[~2001-01-17  8:10 UTC|newest]

Thread overview: 109+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-01-16 13:50 Is sendfile all that sexy? Andries.Brouwer
2001-01-17  6:56 ` Ton Hospel
2001-01-17  7:31   ` Steve VanDevender
2001-01-17  8:09     ` Ton Hospel [this message]
  -- strict thread matches above, loose matches on Subject: below --
2001-01-24 15:12 Sasi Peter
2001-01-24 15:29 ` James Sutherland
2001-01-25  1:11 ` Alan Cox
2001-01-25  9:06   ` James Sutherland
2001-01-25 10:42     ` bert hubert
2001-01-25 12:14       ` James Sutherland
     [not found] <Pine.LNX.4.10.10101190911130.10218-100000@penguin.transmeta.com>
2001-01-19 17:23 ` Rogier Wolff
2001-01-17 15:02 Ben Mansell
2000-01-01  2:10 ` Pavel Machek
2001-01-17 19:32 ` Linus Torvalds
2001-01-18  2:34   ` Olivier Galibert
2001-01-21 21:22     ` LA Walsh
2001-01-18  8:23   ` Rogier Wolff
2001-01-18 10:01     ` Andreas Dilger
2001-01-18 11:04       ` Russell Leighton
2001-01-18 16:36         ` Larry McVoy
2001-01-19  1:53         ` Linus Torvalds
2001-01-18 16:24       ` Linus Torvalds
2001-01-18 18:46         ` Kai Henningsen
2001-01-18 18:58         ` Roman Zippel
2001-01-18 19:42           ` Linus Torvalds
2001-01-19  0:18             ` Roman Zippel
2001-01-19  1:14               ` Linus Torvalds
2001-01-19  6:57                 ` Alan Cox
2001-01-19 10:13                 ` Roman Zippel
2001-01-19 10:55                   ` Andre Hedrick
2001-01-19 20:18                   ` kuznet
2001-01-19 21:45                     ` Linus Torvalds
2001-01-20 18:53                       ` kuznet
2001-01-20 19:26                         ` Linus Torvalds
2001-01-20 21:20                           ` Roman Zippel
2001-01-21  0:25                             ` Linus Torvalds
2001-01-21  2:03                               ` Roman Zippel
2001-01-21 18:00                               ` kuznet
2001-01-21 23:21                           ` David Woodhouse
2001-01-20 15:36             ` Kai Henningsen
2001-01-20 21:01               ` Linus Torvalds
2001-01-20 21:10                 ` Mo McKinlay
2001-01-20 22:24                 ` Roman Zippel
2001-01-21  0:33                   ` Linus Torvalds
2001-01-21  1:29                     ` David Schwartz
2001-01-21  2:42                     ` Roman Zippel
2001-01-21  9:52                     ` James Sutherland
2001-01-21 10:02                       ` Ingo Molnar
2001-01-22  9:52                       ` Helge Hafting
2001-01-22 13:00                         ` James Sutherland
2001-01-23  9:01                           ` Helge Hafting
2001-01-23  9:37                             ` James Sutherland
2001-01-18 19:51           ` Rick Jones
2001-01-18 12:17     ` Peter Samuelson
2001-01-22 18:13   ` Val Henson
2001-01-22 18:27     ` David Lang
2001-01-22 19:37       ` Val Henson
2001-01-22 20:01         ` David Lang
2001-01-22 22:04           ` Ion Badulescu
2001-01-22 18:54     ` Linus Torvalds
2001-01-14 18:29 jamal
2001-01-14 18:50 ` Ingo Molnar
2001-01-14 19:02   ` jamal
2001-01-14 19:09     ` Ingo Molnar
2001-01-14 19:18       ` jamal
2001-01-14 20:22 ` Linus Torvalds
2001-01-14 20:38   ` Ingo Molnar
2001-01-14 21:44     ` Linus Torvalds
2001-01-14 21:49       ` Ingo Molnar
2001-01-14 21:54     ` Gerhard Mack
2001-01-14 22:40       ` Linus Torvalds
2001-01-14 22:45         ` J Sloan
2001-01-15 20:15           ` H. Peter Anvin
2001-01-15  3:43         ` Michael Peddemors
2001-01-15 13:02       ` Florian Weimer
2001-01-15 13:45         ` Tristan Greaves
2001-01-15  1:14   ` Dan Hollis
2001-01-15 15:24   ` Jonathan Thackray
2001-01-15 15:36     ` Matti Aarnio
2001-01-15 20:17       ` H. Peter Anvin
2001-01-15 16:05     ` dean gaudet
2001-01-15 18:34       ` Jonathan Thackray
2001-01-15 18:46         ` Linus Torvalds
2001-01-15 18:58         ` dean gaudet
2001-01-15 19:41     ` Ingo Molnar
2001-01-15 20:33       ` Albert D. Cahalan
2001-01-15 21:00         ` Linus Torvalds
2001-01-16 10:40         ` Felix von Leitner
2001-01-16 11:56           ` Peter Samuelson
2001-01-16 12:37           ` Ingo Molnar
2001-01-16 12:42           ` Ingo Molnar
2001-01-16 12:47             ` Felix von Leitner
2001-01-16 13:48               ` Jamie Lokier
2001-01-16 14:20                 ` Felix von Leitner
2001-01-16 15:05                   ` David L. Parsley
2001-01-16 15:05                     ` Jakub Jelinek
2001-01-16 15:46                       ` David L. Parsley
2001-01-18 14:00                         ` Laramie Leavitt
2001-01-17 19:27                     ` dean gaudet
2001-01-24  0:58   ` Sasi Peter
2001-01-24  8:44     ` James Sutherland
2001-01-25 10:20     ` Anton Blanchard
2001-01-25 10:58       ` Sasi Peter
2001-01-26  6:10         ` Anton Blanchard
2001-01-26 11:46           ` David S. Miller
2001-01-26 14:12             ` Anton Blanchard
2001-01-15 23:16 ` Pavel Machek
2001-01-16 13:47   ` jamal
2001-01-16 14:41     ` Pavel Machek

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='943jvv$var$1@post.home.lunix' \
    --to=linux-kernel@ton.iguana.be \
    --cc=linux-kernel@vger.kernel.org \
    /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