Annotation of wikisrc/projects/project/raidframe-discard.mdwn, revision 1.1
1.1 ! dholland 1: [[!template id=project
! 2:
! 3: title="Discard for RAIDframe"
! 4:
! 5: contact="""
! 6: [tech-kern](mailto:tech-kern@NetBSD.org)
! 7: """
! 8:
! 9: mentors="""
! 10: """
! 11:
! 12: category="filesystems"
! 13: difficulty="medium"
! 14: duration="1-2 months"
! 15:
! 16: description="""
! 17: Implement the block-discard operation (also known as "trim") for RAIDframe.
! 18:
! 19: Higher-level code may call discard to indicate to the storage system
! 20: that certain blocks no longer contain useful data.
! 21: The contents of these blocks do not need to be preserved until they
! 22: are later written again.
! 23: This means, for example, that they need not be restored during a
! 24: rebuild operation.
! 25:
! 26: RAIDframe should also be made to call discard on the disk devices
! 27: underlying it, so those devices can take similar advantage of the
! 28: information.
! 29: This is particularly important for SSDs, where discard ("trim") calls
! 30: can increase both the performance and write lifetime of the device.
! 31:
! 32: The complicating factor is that a block that has been discarded no
! 33: longer has stable contents: it might afterwards read back as zeros, or
! 34: it might not, or it might change to reading back zeros (or trash) at
! 35: any arbitrary future point until written again.
! 36:
! 37: The first step of this project is to figure out a suitable model for
! 38: the operation of discard in RAIDframe.
! 39: Does it make sense to discard single blocks, or matching blocks across
! 40: stripes, or only whole stripe groups, or what?
! 41: What metadata should be stored to keep track of what's going on, and
! 42: where does it go?
! 43: Etc.
! 44: """
! 45:
! 46: ]]
CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb