请输入您要查询的百科知识:

 

词条 HTree
释义

  1. History

  2. Use

  3. PHTree

  4. References

  5. External links

{{distinguish|text=H tree, a family of fractal sets}}{{primary sources|date=September 2013}}

An HTree is a specialized tree data structure for directory indexing, similar to a B-tree. They are constant depth of either one or two levels, have a high fanout factor, use a hash of the filename, and do not require balancing.[1] The HTree algorithm is distinguished from standard B-tree methods by its treatment of hash collisions, which may overflow across multiple leaf and index blocks. HTree indexes are used in the ext3 and ext4 Linux filesystems, and were incorporated into the Linux kernel around 2.5.40.[2] HTree indexing improved the scalability of Linux ext2 based filesystems from a practical limit of a few thousand files, into the range of tens of millions of files per directory.

History

The HTree index data structure and algorithm were developed by Daniel Phillips in 2000 and implemented for the ext2 filesystem in February 2001. A port to the ext3 filesystem by Christopher Li and Andrew Morton in 2002 during the 2.5 kernel series added journal based crash consistency. With minor improvements, HTree continues to be used in ext4 in the Linux 3.x.x kernel series.

Use

  • ext2 HTree indexes were originally developed for ext2 but the patch never made it to the official branch. The dir_index feature can be enabled when creating an ext2 filesystem, but the ext2 code won't act on it.
  • ext3 HTree indexes are available in ext3 when the dir_index feature is enabled.
  • ext4 HTree indexes are turned on by default in ext4. This feature is implemented in Linux kernel 2.6.23. HTree indexes is also used for file extents when a file needs more than the 4 extents stored in the inode.

PHTree

PHTree (Physically stable HTree) is a derivation intended as a successor.[3] It fixes all the known issues with HTree except for write multiplication.{{citation needed|date=December 2014}} It is used in the Tux3 filesystem.[4]

References

1. ^{{cite web|url=http://ext2.sourceforge.net/2005-ols/paper-html/node3.html|title=Directory indexing|author=Mingming Cao|work=Features found in Linux 2.6}}
2. ^{{cite web|url=https://lwn.net/Articles/11481/|title=Add ext3 indexed directory (htree) support|author=tytso@mit.edu}}
3. ^http://phunq.net/pipermail/tux3/2013-January/000026.html{{unreliable source?|date=December 2014}}
4. ^{{cite web|url=http://tux3.org/design.html |title=Archived copy |accessdate=2014-12-28 |deadurl=yes |archiveurl=https://web.archive.org/web/20150113101112/http://tux3.org/design.html |archivedate=2015-01-13 |df= }}

External links

  • [https://archive.is/20130415075208/http://www.linuxshowcase.org/2001/full_papers/phillips/phillips_html/index.html A Directory Index for Ext2 (which describes the HTree data structure)]
  • HTree
  • [https://wiki.hpdd.intel.com/display/PUB/Parallel+Directory+High+Level+Design HPDD Wiki - Parallel Directory High Level Design]
{{CS-Trees}}

3 : Disk file systems|B-tree|Linux

随便看

 

开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。

 

Copyright © 2023 OENC.NET All Rights Reserved
京ICP备2021023879号 更新时间:2024/11/10 11:25:31