[ 
https://issues.apache.org/jira/browse/KUDU-1857?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Adar Dembo updated KUDU-1857:
-----------------------------
    Attachment: test.c

Here's a prototype that uses the FIEMAP ioctl to print the base/bounds of all 
extents in a file. I can imagine loading them into a data structure (interval 
tree? sorted set?) and comparing it with the base/bounds of all dead blocks as 
part of the repunchening.

> Retry LBM hole punching on crash
> --------------------------------
>
>                 Key: KUDU-1857
>                 URL: https://issues.apache.org/jira/browse/KUDU-1857
>             Project: Kudu
>          Issue Type: Bug
>          Components: fs
>            Reporter: Adar Dembo
>         Attachments: test.c
>
>
> Given the LBM design, it's possible for block deletion to be committed via a 
> metadata write, but for the subsequent hole punch to fail, or for the server 
> to crash in between. As such, we should provide a mechanism to 
> "re-hole-punch" deleted blocks. This could be dumb and hole punch every dead 
> block in the container, or it could be smart and use the [FIEMAP 
> ioctl|https://www.kernel.org/doc/Documentation/filesystems/fiemap.txt] to 
> figure out which dead blocks have live extents and surgically punch them.
> Separately, this should be runnable at startup, and perhaps as part of a 
> general filesystem checker in the CLI tool.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to