Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 Etymology  





2 Background  





3 How it works  





4 Performance  





5 Evolution  





6 References  





7 External links  














Orlov block allocator






Norsk bokmål
Português
 

Edit links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 


The Orlov block allocator is an algorithm to define where a particular file will reside on a given file system (blockwise), so as to speed up disk operations.

Etymology

[edit]

The scheme is named after its creator Grigoriy Orlov, who first posted, in 2000, a brief description and implementation for OpenBSD[1] of the technique, which was later used in the BSD Fast Filesystem kernel variants.

Background

[edit]

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 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 disk's surface.

How it works

[edit]

Essentially, the Orlov algorithm tries to distribute "top-level" directories on the assumption that each is unrelated to the others. Directories created in the root directory of a filesystem are considered top-level directories; Theodore Ts'o added a special inode flag that allows the system administrator to mark other directories as being top-level directories as well. If /home lives in the root filesystem, a simple chattr command will make the system treat it as a top-level directory.

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

[edit]

The Orlov block allocator was shown to offer performance gains on workloads that traverse directory trees[2] on FreeBSD. As of October 2007, only one benchmark result[3] for ext3, using the allocator seems to have been posted. The results are promising: the time required to traverse through a Linux kernel tree was reduced by roughly 30%.

Evolution

[edit]

The Orlov scheme needs more rigorous benchmarking; it also needs some serious stress testing to demonstrate that performance does not degrade as the filesystem is changed over time.

References

[edit]
  1. ^ Grigoriy Orlov. "Directory Allocation Algorithm For FFS". Archived from the original on 2008-01-31.
  • ^ Recent Filesystem Optimisations in FreeBSD
  • ^ Bert Hubert, Naive but spectacular ext3 HTREE+Orlov benchmark
  • [edit]
    Retrieved from "https://en.wikipedia.org/w/index.php?title=Orlov_block_allocator&oldid=1146888777"

    Category: 
    Unix file system technology
    Hidden categories: 
    Articles containing potentially dated statements from October 2007
    All articles containing potentially dated statements
     



    This page was last edited on 27 March 2023, at 15:29 (UTC).

    Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki