New ext4 features

From Ext4
(Difference between revisions)
Jump to: navigation, search
(add a feature for ext4 -- inode reservation)
(update with recent features)
 
(15 intermediate revisions by 7 users not shown)
Line 1: Line 1:
'''Multiblock Allocation'''
+
== Introduction ==
 +
 
 +
This page contains information about new ext4 features which are currently under development.
 +
 
 +
For a description of Ext4 features as they appeared in the original 2.6.28 kernel when ext4 was first released, please see the [http://kernelnewbies.org/Ext4 Ext4 Kernelnewbies article].
 +
 
 +
== Currently being worked on ==
 +
 
 +
=== Online Directory Shrink ===
 +
 
 +
* Primary developer: Harshad Shirwadkar
 +
* Status: In progress
 +
* Latest patches: https://lore.kernel.org/linux-ext4/20190824023110.GB19348@mit.edu/T/#t
 +
* e2fsprogs changes: Should not be needed with large directory support
 +
* Outstanding issues: only shrinks if last block in directory is empty, needs to handle arbitrary empty blocks
 +
 
 +
== Done ==
 +
 
 +
=== Multiblock Allocation ===
  
 
* Primary developer: Alex Tomas
 
* Primary developer: Alex Tomas
* Status: Patches available - ready to push to mainline
+
* Status: Done
 
* Changes on-disk format: No
 
* Changes on-disk format: No
* Target Date: ?
 
 
* e2fsprogs changes: No
 
* e2fsprogs changes: No
* outstanding issues: none
+
* Outstanding issues: None
  
'''Delayed Allocation'''
+
=== [[DelayedAllocation|Delayed Allocation]] ===
  
 
* Primary developer: Alex Tomas
 
* Primary developer: Alex Tomas
* Status: Patches available
+
* Status: Done
 
* Changes on-disk format: No
 
* Changes on-disk format: No
* Target Date: ?
 
 
* e2fsprogs changes: No
 
* e2fsprogs changes: No
* outstanding issues: lack of plan for 1k,2k block size and default data=order mode, and Andrew asked for more comments.
+
* Outstanding issues: None
  
'''Break 32000 subdirectory limit'''
+
=== Exceed 32000 subdirectory limit ===
  
* Primary developer: Andreas
+
* Primary developer: Andreas Dilger
* Status: Patches available, need to be resubmitted on ext4
+
* Status: Done
 
* Changes on-disk format: Yes
 
* Changes on-disk format: Yes
* Target Date: ?
+
* e2fsprogs changes: done
* e2fsprogs changes: Needed
+
* Outstanding issues: None
* outstanding issues: unknown
+
  
'''Inode reservation for directories'''
+
=== directory Inodes reservation ===
  
* Primary developer: Andreas Coly
+
* Primary developer: Coly
* Status: Prototype available, implementing by Coly with Andreas' guiding
+
* Status: Patch available
* Changes on-disk format: Yes
+
* Changes on-disk format: No
* Target Date: ?
+
 
* e2fsprogs changes: Needed
 
* e2fsprogs changes: Needed
* outstanding issues: unknown
+
* Outstanding issues:  
  
 +
=== nsec timestamps ===
  
'''nsec timestamps'''
+
* Primary developer: Andreas Dilger
 
+
* Status: Done
* Primary developer: Andreas
+
* Status: Patches available, should not need much rework once issues are resolved
+
 
* Change on-disk format: Yes
 
* Change on-disk format: Yes
* Target Date: ?
+
* e2fsprogs changes: Done
* e2fsprogs changes: Needed
+
* Outstanding issues:
* outstanding issues: should the feature be available in 128 bit inodes, or only in larger inodes. Performance impact unknown.
+
  
'''inode version on disk'''
+
=== inode version on disk ===
  
* Primary developer: Jean-Noel Cordenner
+
* Primary developer: Jean-Noel Cordenner, Kalpak Shah
* Status: Prototype available
+
* Status: Done
 
* Change on-disk format: Yes
 
* Change on-disk format: Yes
* Target Date: ?
+
* e2fsprogs changes: None
* e2fsprogs changes: Needed
+
* Outstanding issues: None
* outstanding issues: CPU usage
+
  
'''uninitialized groups'''
+
=== uninitialized block groups ===
  
* Primary developer: ?
+
* Primary developer: Andreas Dilger
* Status: Prototype available
+
* Status: Done
 
* Change on-disk format: Yes
 
* Change on-disk format: Yes
* Target Date: ?
+
* e2fsprogs changes: Done
* e2fsprogs changes: Needed
+
* Outstanding issues: None
* outstanding issues:
+
  
'''journal checksumming'''
+
=== journal checksumming ===
  
* Primary developer: Andreas
+
* Primary developer: Darrick Wong
 
* Status: Prototype available
 
* Status: Prototype available
 
* Change on-disk format: Yes
 
* Change on-disk format: Yes
* Target Date: ?
+
* e2fsprogs changes: Done
* e2fsprogs changes: Needed
+
* Outstanding issues: None
* outstanding issues:
+
  
'''persistent preallocation'''
+
=== persistent preallocation (fallocate) ===
  
 
* Primary developer: Amit Arora, Suparna
 
* Primary developer: Amit Arora, Suparna
* Status: Patches available and reviewed
+
* Status: Done
 
* Change on-disk format: Yes
 
* Change on-disk format: Yes
* Target Date: Once interface issue is resolved
 
 
* e2fsprogs changes: complete
 
* e2fsprogs changes: complete
* outstanding issues: Need consensus on what interface should be used (ioctl, fcntl..), should return value be zero or number of block allocated on success
+
* Outstanding issues:
  
'''Online Defragmentation'''
+
=== Online Defragmentation ===
  
 
* Primary developer: Takashi Sato
 
* Primary developer: Takashi Sato
* Status:
+
* Status: Done
  latest patch: v0.2 posted on Jan 10th.
+
  Previous tries:
+
  http://marc.theaimsgroup.com/?l=linux-ext4&m=116678507906760&w=2
+
  http://marc.theaimsgroup.com/?l=linux-ext4&m=116307062907075&w=2
+
 
* Related discussions
 
* Related discussions
 
   ext3 online defrag:
 
   ext3 online defrag:
Line 94: Line 98:
 
* Dependencies: Multiple block allocation from Alex Thomas
 
* Dependencies: Multiple block allocation from Alex Thomas
 
* Change on-disk format: No
 
* Change on-disk format: No
* Target Date:
+
* e2fsprogs changes: No
* e2fsprogs changes:  
+
* Outstanding issues:  
* outstanding issues:  
+
 
+
'''Undelete Feature for Ext4'''
+
  
* Primary Developer:
+
=== First Class [[Quota]] Support ===
* status: Idea was proposed on the mailing list, still need more thought on the feature.
+
* Change on-disk format:
+
* Target Date:
+
* e2fsprogs changes:
+
* outstanding issues: Should the kernel be involved with undelete
+
  
'''Large file support'''
+
* Primary developer: Aditya Kali
 +
* Status: Done
 +
* Design document: [[Design For 1st Class Quota in Ext4]]
 +
* e2fsprogs changes: Done
 +
* Outstanding issues: None
 +
 
 +
=== Big Allocation Blocks ===
 +
 
 +
* Primary developer: Theodore Ts'o
 +
* Status: Done
 +
* Design document: [[Design for Big Allocation Blocks]]
 +
* e2fsprogs changes: Done
 +
* Outstanding issues: None
 +
 
 +
=== Metadata Checksums ===
 +
 
 +
* Primary developer: Darrick J. Wong
 +
* Status: Done
 +
* Design document: [[Ext4_Metadata_Checksums|Design for Metadata Checksums]]
 +
* e2fsprogs changes: Done
 +
* Disk format change needed: Minor tweaks to existing structures.  Old code will still be able to mount read-only.  tune2fs/e2fsck generally can make the changes without problems.
 +
* Outstanding issues: None
 +
 
 +
=== Large file support ===
  
 
* Primary Developer: Takashi Sato
 
* Primary Developer: Takashi Sato
* status: Increase 2Tb limit on filesize. Takashi has begun working on this.
+
* status: Done
 
* Change on-disk format:
 
* Change on-disk format:
* Target Date:
+
* e2fsprogs Changes: Done
* e2fsprogs Changes:
+
* Outstanding issues:
* outstanding issues: unknown
+
 
 +
=== Large directory support ===
 +
 
 +
* Primary Developer: Liang Zhen, Artem Blagodarenko
 +
* status: Done
 +
* Change on-disk format: increase maximum htree level to 3, allow directories over 2GB
 +
* e2fsprogs Changes: Done
 +
* Outstanding issues: None

Latest revision as of 02:12, 26 August 2019

Contents

[edit] Introduction

This page contains information about new ext4 features which are currently under development.

For a description of Ext4 features as they appeared in the original 2.6.28 kernel when ext4 was first released, please see the Ext4 Kernelnewbies article.

[edit] Currently being worked on

[edit] Online Directory Shrink

[edit] Done

[edit] Multiblock Allocation

  • Primary developer: Alex Tomas
  • Status: Done
  • Changes on-disk format: No
  • e2fsprogs changes: No
  • Outstanding issues: None

[edit] Delayed Allocation

  • Primary developer: Alex Tomas
  • Status: Done
  • Changes on-disk format: No
  • e2fsprogs changes: No
  • Outstanding issues: None

[edit] Exceed 32000 subdirectory limit

  • Primary developer: Andreas Dilger
  • Status: Done
  • Changes on-disk format: Yes
  • e2fsprogs changes: done
  • Outstanding issues: None

[edit] directory Inodes reservation

  • Primary developer: Coly
  • Status: Patch available
  • Changes on-disk format: No
  • e2fsprogs changes: Needed
  • Outstanding issues:

[edit] nsec timestamps

  • Primary developer: Andreas Dilger
  • Status: Done
  • Change on-disk format: Yes
  • e2fsprogs changes: Done
  • Outstanding issues:

[edit] inode version on disk

  • Primary developer: Jean-Noel Cordenner, Kalpak Shah
  • Status: Done
  • Change on-disk format: Yes
  • e2fsprogs changes: None
  • Outstanding issues: None

[edit] uninitialized block groups

  • Primary developer: Andreas Dilger
  • Status: Done
  • Change on-disk format: Yes
  • e2fsprogs changes: Done
  • Outstanding issues: None

[edit] journal checksumming

  • Primary developer: Darrick Wong
  • Status: Prototype available
  • Change on-disk format: Yes
  • e2fsprogs changes: Done
  • Outstanding issues: None

[edit] persistent preallocation (fallocate)

  • Primary developer: Amit Arora, Suparna
  • Status: Done
  • Change on-disk format: Yes
  • e2fsprogs changes: complete
  • Outstanding issues:

[edit] Online Defragmentation

  • Primary developer: Takashi Sato
  • Status: Done
  • Related discussions
 ext3 online defrag:
 http://marc.theaimsgroup.com/?l=linux-fsdevel&m=116160640814410&w=2
  • Dependencies: Multiple block allocation from Alex Thomas
  • Change on-disk format: No
  • e2fsprogs changes: No
  • Outstanding issues:

[edit] First Class Quota Support

[edit] Big Allocation Blocks

[edit] Metadata Checksums

  • Primary developer: Darrick J. Wong
  • Status: Done
  • Design document: Design for Metadata Checksums
  • e2fsprogs changes: Done
  • Disk format change needed: Minor tweaks to existing structures. Old code will still be able to mount read-only. tune2fs/e2fsck generally can make the changes without problems.
  • Outstanding issues: None

[edit] Large file support

  • Primary Developer: Takashi Sato
  • status: Done
  • Change on-disk format:
  • e2fsprogs Changes: Done
  • Outstanding issues:

[edit] Large directory support

  • Primary Developer: Liang Zhen, Artem Blagodarenko
  • status: Done
  • Change on-disk format: increase maximum htree level to 3, allow directories over 2GB
  • e2fsprogs Changes: Done
  • Outstanding issues: None
Personal tools