Reiser4

From HandWiki
Short description: Computer file system, successor to ReiserFS
Reiser4
Developer(s)Edward Shishkin and others[1]
Full nameReiser4
Introduced2004; 20 years ago (2004) with Linux
Partition identifierApple_UNIX_SVR2 (Apple Partition Map)

0x83 (MBR)

Basic data partition (GPT)
Structures
Directory contentsDancing B*-tree
Limits
Max. file size8 TiB on x86
Max. filename length3976 bytes
Allowed characters in filenamesAll bytes except NULL and '/'
Features
Dates recordedmodification (mtime), metadata change (ctime), access (atime)
Date range64-bit timestamps[2]
ForksNo
File system permissionsUnix permissions
Transparent compressionYes
Transparent encryptionNo
Data deduplicationNo
Other
Supported operating systemsLinux
Websitereiser4.wiki.kernel.org
Repositorygithub.com/edward6/reiser4

Reiser4 is a computer file system, successor to the ReiserFS file system, developed from scratch by Namesys and sponsored by DARPA as well as Linspire. Reiser4 was named after its former lead developer Hans Reiser. (As of 2021), the Reiser4 patch set is still being maintained,[3][4] but according to Phoronix, it is unlikely to be merged into mainline Linux without corporate backing.[5]

Features

Some of the goals of the Reiser4 file system are:

  • Atomicity (filesystem operations either complete, or they do not, and they do not corrupt due to partially occurring)
  • Different transaction models: journaling, write-anywhere (copy-on-write), hybrid transaction model[6]
  • More efficient journaling through wandering logs
  • More efficient support of small files, in terms of disk space and speed through block suballocation
  • Liquid items (or virtual keys) – a special format of records in the storage tree, which completely resolves the problem of internal fragmentation
  • EOTTL (extents on the twig level) – fully balanced storage tree, meaning that all paths to objects are of equal length
  • Faster handling of directories with large numbers of files
  • Transparent compression: Lempel-Ziv-Oberhumer (LZO), zlib
  • Plugin infrastructure
  • Dynamically optimized disk-layout through allocate-on-flush (also called delayed allocation in XFS)
  • Delayed actions (tree balancing, compression, block allocation, local defragmentation)
  • R and D (Rare and Dense) caches, synchronized at commit time
  • Transactions support for user-defined integrity
  • Metadata and inline-data checksums[7]
  • Mirrors and failover[8]
  • Precise discard support[9] with delayed issuing of discard requests for SSD devices[10]

Some of the more advanced Reiser4 features (such as user-defined transactions) are also not available because of a lack of a VFS API for them.

At present Reiser4 lacks a few standard file system features, such as an online repacker (similar to the defragmentation utilities provided with other file systems). The creators of Reiser4 say they will implement these later, or sooner if someone pays them to do so.[11]

Performance

Reiser4 uses B*-trees in conjunction with the dancing tree balancing approach, in which underpopulated nodes will not be merged until a flush to disk except under memory pressure or when a transaction completes. Such a system also allows Reiser4 to create files and directories without having to waste time and space through fixed blocks.

(As of 2004), synthetic benchmarks performed by Namesys in 2003 show that Reiser4 is 10 to 15 times faster than its most serious competitor ext3 working on files smaller than 1 KiB. Namesys's benchmarks suggest it is typically twice the performance of ext3 for general-purpose filesystem usage patterns.[12] Other benchmarks from 2006 show results of Reiser4 being slower on many operations.[13] Benchmarks conducted in 2013 with Linux Kernel version 3.10 show that Reiser4 is considerably faster in various tests compared to in-kernel filesystems ext4, btrfs and XFS.[14]

Integration with Linux

Reiser4 has patches for Linux 2.6, 3.x, 4.x and 5.x.,[15][3] but (As of 2019), Reiser4 has not been merged into the mainline Linux kernel[3] and consequently is still not supported on many Linux distributions; however, its predecessor ReiserFS v3 has been widely adopted. Reiser4 is also available from Andrew Morton's -mm kernel sources, and from Zen patch set. Linux kernel developers claim that Reiser4 does not follow Linux "coding style" by decision to use own plugin system,[16] but Hans Reiser suggested political reasons.[17] Latest released reiser4 kernel patches and tools can be downloaded from reiser4 project page at sourceforge.net [4]

History of Reiser4

Hans Reiser was convicted of murder on April 28, 2008, leaving the future of Reiser4 uncertain. After his arrest, employees of Namesys were assured they would continue to work and that the events would not slow down the software development in the immediate future. In order to afford increasing legal fees, Hans Reiser announced on December 21, 2006, that he was going to sell Namesys;[18] as of March 26, 2008, it had not been sold, although the website was unavailable. In January 2008, Edward Shishkin, an employee of and programmer for Namesys, was quoted in a CNET interview saying, "Commercial activity of Namesys has stopped." Shishkin and others continued the development of Reiser4,[19] making source code available from Shishkin's web site,[20] later relocated to kernel.org.[21] Since 2008, Namesys employees have received 100% of their sponsored funding from DARPA.[22][23][24]

In 2010, Phoronix wrote that Edward Shishkin was exploring options to get Reiser4 merged into Linux kernel mainline.[25] (As of 2019), the file system is still being updated for new kernel releases, but has not been submitted for merging.[3] In 2015, Michael Larabel mentioned it is unlikely to happen without corporate backing,[26] and then he suggested in April 2019 that the main obstacle could be the renaming of Reiser4 to avoid reference to the initial author who was convicted of murder.[3]

Shishkin announced a Reiser5 filesystem on December 31, 2019.[27]

See also

References

  1. "Credits - Reiser4 FS Wiki". https://reiser4.wiki.kernel.org/index.php/Credits. 
  2. Documentation/filesystems/reiser4.txt from a reiser4-patched kernel source, "By default file in reiser4 have 64-bit timestamps."
  3. 3.0 3.1 3.2 3.3 3.4 Larabel, Michael (2019-04-13). "Reiser4 Brought To The Linux 5.0 Kernel - Phoronix". https://www.phoronix.com/scan.php?page=news_item&px=Reiser4-Linux-5.0-Patch. 
  4. 4.0 4.1 http://reiser4.sourceforge.net/
  5. "Ten Features You Will Not Find in the Mainline Linux 4.10 Kernel - Phoronix". https://phoronix.com/scan.php?page=news_item&px=Linux-4.10-Ten-Missing-Features. 
  6. "Reiser4 transaction models". Reiser4 wiki. http://reiser4.wiki.kernel.org/index.php/Reiser4_transaction_models. 
  7. "Reiser4 checksums". Reiser4 wiki. http://reiser4.wiki.kernel.org/index.php/Reiser4_checksums. 
  8. "Reiser4 Mirrors and Failover". Reiser4 wiki. http://reiser4.wiki.kernel.org/index.php/Reiser4_Mirrors_and_Failover. 
  9. "Precise Discard". Reiser4 wiki. http://reiser4.wiki.kernel.org/index.php/PreciseDiscard. 
  10. "Reiser4 discard support". Reiser4 wiki. https://reiser4.wiki.kernel.org/index.php/Reiser4_discard_support. 
  11. Reiser, Hans (2004-09-16). "Re: Benchmark: ext3 vs reiser4 and effects of fragmentation.". Namesys, ReiserFS mailing list. http://marc.info/?l=reiserfs-devel&m=109535506122706&w=2. 
  12. Hans Reiser (November 20, 2003). "Benchmarks Of ReiserFS Version 4". Namesys. http://www.namesys.com/. 
  13. Justin Piszcz (January 2006). "Benchmarking Filesystems Part II". http://linuxgazette.net/122/TWDT.html#piszcz. 
  14. Michael Larabel (July 31, 2013). "Reiser4 File-System Shows Decent Performance On Linux 3.10". Phoronix. https://www.phoronix.com/scan.php?page=article&item=linux_310_reiser4. 
  15. "Reiser4 file system for Linux OS - Browse Files at SourceForge.net". https://sourceforge.net/projects/reiser4/files/. 
  16. "Linux: Why Reiser4 Is Not in the Kernel". Kerneltrap. September 19, 2005. http://kerneltrap.org/node/6844. 
  17. Reiser, Hans (21 July 2006). "The "'official' point of view" expressed by kernelnewbies.org regarding reiser4 inclusion". https://lkml.org/lkml/2006/7/21/109. 
  18. "Murder Suspect Selling Namesys". Wired News. 2006-12-21. https://www.wired.com/news/technology/0,72342-0.html?tw=wn_technology_1. 
  19. Namesys vanishes, but ReiserFS project lives on. http://www.news.com/8301-13580_3-9851703-39.html CNet (January 16, 2008). Retrieved on 2008-01-26.
  20. "Namesys things". Chichkin_i.zelnet.ru. http://chichkin_i.zelnet.ru/namesys/. 
  21. New location of Namesys software Linux Kernel Mailing List post, 2008-08-04
  22. "Re: we got the DARPA grant to add views to Reiser4". Mail-archive.com. 2004-04-10. http://www.mail-archive.com/reiserfs-list%40namesys.com/msg11961.html. 
  23. "Bug 114785 – reiserfs won't mount with usrquota option". Red Hat Bugzilla. https://bugzilla.redhat.com/show_bug.cgi?id=114785. 
  24. "Reports - ext3 or ReiserFS? Hans Reiser Says Red Hat's Move Is Understandable - Red Hat's Decision is Conservative, Not Radical". LinuxPlanet. http://www.linuxplanet.com/linuxplanet/reports/3726/1/. 
  25. "Reiser4 May Go For Mainline Inclusion In 2010". Phoronix. 2009-11-10. https://www.phoronix.com/scan.php?page=news_item&px=NzY4OQ. 
  26. Michael Larabel (23 February 2015). "KDBUS & Other Features You Won't Find In The Linux 4.0 Kernel". Phoronix. https://www.phoronix.com/scan.php?page=news_item&px=Linux-4.0-Missing-Features. 
  27. "[ANNOUNCE Reiser5 (Format Release 5.X.Y)"]. Linux Weekly News. 2019-12-31. https://lwn.net/ml/linux-kernel/ee55ce28-2434-d3c6-0d2d-2ed1ea8f35d7%40gmail.com/. 

External links

de:Reiser File System#Reiser4