From: Werner Almesberger <wa@almesberger.net>
To: linux-fsdevel@vger.kernel.org
Subject: Re: barriers vs. reads
Date: Thu, 24 Jun 2004 00:39:44 -0300 [thread overview]
Message-ID: <20040624003944.B21586@almesberger.net> (raw)
In-Reply-To: <20040623214845.A21586@almesberger.net>; from wa@almesberger.net on Wed, Jun 23, 2004 at 09:48:45PM -0300
I wrote:
> BTW, regarding overlapping requests, I wonder if there's a data
> structure that gives O(log requests) or such lookups for ranges.
Seem that I've found one that is maybe 2-4 times as expensive as a
single tree. It works as follows: if we have a set of ranges (a,b)
and want to see if any of them overlap with a range (x,y), we
compare the indices of the matches (or almost-matches).
num_overlaps = |{a : a < y}| - |{b : b <= x}|
"{a : a < y}" is "the set of all a where a < y". "|...|" is the
number of elements in a set.
We could obtain such indices by counting the number of nodes in
each branch of the tree. That's O(1) for all regular tree
operations, and O(log n) for the sum. The index is the size of
all the trees under left branches we haven't taken, plus the
number of nodes we've left through the right branch. If there are
multiple equal entries, we must find the first one.
One problem: I did this mostly by instinct. It seems to work
perfectly, but I can't quite explain why :-(
I put a dirty little program to simulate this on
http://abiss.sourceforge.net/t.tar.gz
- Werner
--
_________________________________________________________________________
/ Werner Almesberger, Buenos Aires, Argentina wa@almesberger.net /
/_http://www.almesberger.net/____________________________________________/
next prev parent reply other threads:[~2004-06-24 3:39 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-06-24 0:48 barriers vs. reads Werner Almesberger
2004-06-24 3:39 ` Werner Almesberger [this message]
2004-06-24 8:00 ` Herbert Poetzl
2004-06-24 12:16 ` Werner Almesberger
2004-06-24 13:36 ` Jamie Lokier
2004-06-24 17:02 ` Werner Almesberger
2004-06-24 16:39 ` Steve Lord
2004-06-24 17:00 ` barriers vs. reads - O_DIRECT Bryan Henderson
2004-06-24 17:46 ` Werner Almesberger
2004-06-24 18:50 ` Jamie Lokier
2004-06-24 20:55 ` Werner Almesberger
2004-06-24 22:42 ` Jamie Lokier
2004-06-25 3:21 ` Werner Almesberger
2004-06-25 3:57 ` Guy
2004-06-25 4:52 ` Werner Almesberger
2004-06-25 0:11 ` Bryan Henderson
2004-06-25 2:42 ` Werner Almesberger
2004-06-25 15:59 ` barriers vs. reads - O_DIRECT aio Bryan Henderson
2004-06-25 16:31 ` barriers vs. reads - O_DIRECT Bryan Henderson
-- strict thread matches above, loose matches on Subject: below --
2004-06-22 3:53 barriers vs. reads Werner Almesberger
2004-06-22 7:39 ` Jens Axboe
2004-06-22 7:50 ` Werner Almesberger
2004-06-22 7:55 ` Jens Axboe
2004-06-22 8:34 ` Werner Almesberger
2004-06-22 10:08 ` Jens Axboe
2004-06-22 11:28 ` Jamie Lokier
2004-06-22 11:32 ` Jens Axboe
2004-06-22 17:12 ` Bryan Henderson
2004-06-22 20:53 ` Jens Axboe
2004-06-23 16:41 ` Bryan Henderson
2004-06-23 16:52 ` Jens Axboe
2004-06-23 16:53 ` Jamie Lokier
2004-06-23 21:08 ` Bryan Henderson
2004-06-23 23:23 ` Werner Almesberger
2004-06-24 13:43 ` Jamie Lokier
2004-06-24 14:32 ` Christoph Hellwig
2004-06-24 17:05 ` Werner Almesberger
2004-06-22 18:53 ` Werner Almesberger
2004-06-22 19:57 ` Jamie Lokier
2004-06-22 23:13 ` Werner Almesberger
2004-06-22 20:57 ` Jens Axboe
2004-06-22 23:10 ` Werner Almesberger
2004-06-23 0:14 ` Jamie Lokier
2004-06-23 6:27 ` Jens Axboe
2004-06-22 18:45 ` Werner Almesberger
2004-06-22 19:07 ` Guy
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=20040624003944.B21586@almesberger.net \
--to=wa@almesberger.net \
--cc=linux-fsdevel@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;
as well as URLs for NNTP newsgroup(s).