All of lore.kernel.org
 help / color / mirror / Atom feed
From: "U.Mutlu" <for-gmane@mutluit.com>
To: linux-ext4@vger.kernel.org
Subject: Re: Htree concept
Date: Wed, 13 May 2015 19:22:54 +0200	[thread overview]
Message-ID: <mj019e$f8f$1@ger.gmane.org> (raw)
In-Reply-To: <55537BF7.8000602@redhat.com>

Eric Sandeen wrote on 05/13/2015 06:29 PM:
> On 5/13/15 10:37 AM, U.Mutlu wrote:
>> Hi,
>> I'm writing a toy-fs, and discover a major shortcoming
>> (finding a given child (dir/file) as fast as possible),
>> which other developers (ie. ext3/4) had encountered long ago too.
>> They introduced HTree. The info on HTree on the web is scarce
>> or I couldn't find the right texts/papers yet.
>> I wonder how HTree works on a conceptual basis.
>> Could a kind soul enligten me pls. TIA.
>
> Regarding htree details, did you look at:
>
> http://en.wikipedia.org/wiki/HTree
>
> which points to:
>
> http://ext2.sourceforge.net/2005-ols/paper-html/node3.html
> and more specifically,
> http://web.archive.org/web/20131203105316/http://www.linuxshowcase.org/2001/full_papers/phillips/phillips_html/index.html
>
> ?

Thanks, the wiki page and its refs I knew, but needed some more info.

Ok, it is written that HTree uses 32bit (or 64?) hashes for keys.
I wonder if it wouldn't be better if one instead would use that space
(32/64 bit) for storing the first n chars of the key (ie. of the dir/file name)
and keeping the directory entries in a sorted order on the disk,
and then do a bsearch instead of doing sequential table lookup using HTree?
I wonder what the "Tree"-part of HTree stand for in this context.
Am I right in my assumption that HTree mainly means the hashing mechanism,
but does not use any binary search mechanism for searching the key?

-- 
Thx
Uenal



  reply	other threads:[~2015-05-13 17:23 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-13 15:37 Htree concept U.Mutlu
2015-05-13 16:24 ` U.Mutlu
2015-05-13 16:29 ` Eric Sandeen
2015-05-13 17:22   ` U.Mutlu [this message]
2015-05-13 17:37     ` U.Mutlu
2015-05-13 21:18       ` Theodore Ts'o
2015-05-14  2:50         ` U.Mutlu

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='mj019e$f8f$1@ger.gmane.org' \
    --to=for-gmane@mutluit.com \
    --cc=linux-ext4@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.