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