Content deleted Content added
m →How it works: style |
m →Etymology: formatting fix |
||
(3 intermediate revisions by 3 users not shown) | |||
Line 2:
== Etymology ==
The scheme is named after its creator Grigoriy Orlov, who first posted, in 2000, a brief description and implementation for [[OpenBSD]]<ref>{{cite web | url=http://www.ptci.ru/gluk/dirpref/old/dirpref.html | title=Directory Allocation Algorithm For FFS | author=Grigoriy Orlov |archiveurl = https://web.archive.org/web/20080131082712/http://www.ptci.ru/gluk/dirpref/old/dirpref.html |archivedate = 2008-01-31}}</ref> of the technique, which was later used in the [[Berkeley Software Distribution|BSD]] Fast Filesystem [[Kernel (
== Background ==
The performance of a file system is dependent on many things; one of the crucial factors is just how that filesystem lays out files on the disk. In general, it is best to keep related items together. The Linux [[ext2]] and [[ext3]] filesystems, for instance, have tried to spread directories on the cylinders of the disk. Imagine setting up a system with users' [[Home directory|home directories]] in /home: if all the first-level directories within /home (i.e. the home directories for numerous users) are placed next to each other, there may be no space left for the contents of those directories. User files thus end up being placed far from the directories that contain them, and performance suffers.
Spreading directories on the disc allows files in the same directory to remain more or less contiguous as their number and/or size grows, but there are some situations where this causes excessive spreading of the data on the
== How it works ==
Essentially, the Orlov algorithm tries to
When creating a directory that is not in a top-level directory, the Orlov algorithm tries to put it into the same cylinder group as its parent. A little more care is taken, however, to ensure that the directory's contents will also be able to fit into that cylinder group; if there are not many inodes or blocks available in the group, the directory will be placed in a different cylinder group that has more resources available. The result of all this, hopefully, is much better locality for files that are truly related to each other and likely to be accessed together.
== Performance ==
The Orlov block allocator was shown to offer performance gains on workloads that traverse directory trees
== Evolution ==
|